A technique for representing the structure of hierarchically-organized data in a non-hierarchical data structure, such as a relation. The hierarchically-organized data is represented as a tree, and each node in the tree is assigned a position identifier that represents both the depth level of the node within the hierarchy, and its ancestor/descendant relationship to other nodes. The data represented by each node, as well as its position identifier, is stored in a row of a relational database, thereby capturing the hierarchical structure of the data in such relational database. A technique is provided for the compressed storage of position identifiers in a format that allows an efficient bytewise comparison of position identifiers to determine relative order and ancestry.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer-readable medium having encoded thereon a data structure which represents hierarchically-organized data, said hierarchically-organized data having at least a first node at a first level and a plurality of second nodes at a second level, the second nodes being child nodes of the first node, the first and second nodes each having a corresponding data item associated therewith, the data structure comprising: a plurality of rows each having a plurality of fields, each of said rows corresponding to a data item associated with a one of the first and second nodes, the fields of each row comprising: a first field which stores the data item associated with the one of the nodes that corresponds to the row; and a second field which stores a position identifier which identifies the level at which the node that corresponds to the row is located in the hierarchically-organized data, and which further indicates one of: (a) an identity of an ancestor node of the node that corresponds to the row, or (b) the fact that the node that corresponds to the row has no ancestor, wherein the position identifier of the first node comprises a first value in a space of ordered values, and wherein the position identifiers of each of the second nodes comprises said first value and a second value in said space of ordered values, wherein an order is defined among the second nodes, wherein the second values associated with the second nodes are respective of said order with respect to said space of ordered values, wherein said space of ordered values comprises the set of integers, wherein said first value is a “1â€, wherein the second values for the second nodes are odd integers in an increasing series of integers, wherein said hierarchically-organized data comprises a third node which is a child of said first node and which is located between first and second ones of said second nodes, said third node having a position identifier associated therewith, and wherein the position identifier for the second node comprises said first value, an even number between the second values associated with said first and second ones of said second nodes, and an odd number.
2. A computer-readable medium having encoded thereon a data structure which represents hierarchically-organized data, said hierarchically-organized data having at least a first node at a first level and a plurality of second nodes at a second level, the second nodes being child nodes of the first node, the first and second nodes each having a corresponding data item associated therewith, the data structure comprising: a plurality of rows each having a plurality of fields, each of said rows corresponding to a data item associated with a one of the first and second nodes, the fields of each row comprising: a first field which stores the data item associated with the one of the nodes that corresponds to the row; and a second field which stores a position identifier which identifies the level at which the node that corresponds to the row is located in the hierarchically-organized data, and which further indicates one of: (a) an identity of an ancestor node of the node that corresponds to the row, or (b) the fact that the note that corresponds to the row has no ancestor, wherein the position identifier of the first node comprises a first value in a space of ordered values, wherein the position identifiers of each of the second nodes comprises said first value and a second value in said space of ordered values, and wherein said ordered values are represented in a form comprising: a length indicator selected from a length-indicator space having non-uniform numbers of bits, each length indicator in said length-indicator space having a prefix property such that no member of said length-indicator space is a prefix of any other member of said length-indicator space; and an ordinal indicator having a length indicated by said length indicator.
3. The computer-readable medium of claim 2 , wherein each of the position identifiers comprises a bit length field indicative of the aggregate number of bits for the length indicators and the position identifiers in the position identifier of the corresponding bit length field.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
November 30, 2001
May 3, 2005
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.