While keyword full-text searches work well for textual data, they do not work well for numeric, date, or other more highly structured information. In particular, Netmark/XDB could retrieve any record where the author contained “Knight” in the text, but could not return only those records from Calendar Year 2010 that have “Knight” in their author section. Traditional relational databases allow for rich comparison “relational” operators; for example, one can express a query such as “return all rows where the signature date is on January 1, 2010.” Netmark/XDB, being primarily targeted at XML processing and retrieving XML-structured data, was designed for full-text querying to find keywords. Most other XML indexing and querying systems also are designed with the assumption that content (“CDATA”) is textual or binary data that can be queried against, but not with relational comparison operators like “greater than a value.”
This invention adds the capability to query, using a suite of additional operators in the Netmark/XDB query language, based on absolute value of tags in the XML source. Netmark/XDB, particularly XDB3, utilizes a relational database as its underlying storage engine, wherein individual XML “nodes” (tags, content) are decomposed into individual rows of the XDB node table. In standard XDB3, a full-text index is applied to this node table so that rows can be retrieved using full-text query terms. This invention adds one or more additional indexes (“traditional” RDBMS indexes) and possibly additional, typespecific columns to the node table so that queries can be performed using these additional operators in an efficient manner.
XDB3 stores node data in an internal RDBMS table “xdb_node” with node data (tag name, content) stored in the “data” column. This invention adds a traditional index to the data column, adds SQL query logic, and adds additional operators to the XDB3 query grammar.
This work was done by Chris Knight of Ames Research Center. This software is available for use. To request a copy, please visit https://software.nasa.gov/software/ARC-16119-1B