WO2004081710A2 - Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles - Google Patents

Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles Download PDF

Info

Publication number
WO2004081710A2
WO2004081710A2 PCT/US2004/005954 US2004005954W WO2004081710A2 WO 2004081710 A2 WO2004081710 A2 WO 2004081710A2 US 2004005954 W US2004005954 W US 2004005954W WO 2004081710 A2 WO2004081710 A2 WO 2004081710A2
Authority
WO
WIPO (PCT)
Prior art keywords
node
nodes
root
context
end product
Prior art date
Application number
PCT/US2004/005954
Other languages
English (en)
Other versions
WO2004081710A3 (fr
Inventor
Jane Campbell Mazzagatti
Original Assignee
Unisys Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/385,421 external-priority patent/US6961733B2/en
Application filed by Unisys Corporation filed Critical Unisys Corporation
Priority to EP04715724A priority Critical patent/EP1606723A4/fr
Priority to CA002518797A priority patent/CA2518797A1/fr
Priority to BRPI0408282-6A priority patent/BRPI0408282A/pt
Priority to JP2006508890A priority patent/JP2006521639A/ja
Priority to NZ542716A priority patent/NZ542716A/en
Priority to AU2004219257A priority patent/AU2004219257A1/en
Publication of WO2004081710A2 publication Critical patent/WO2004081710A2/fr
Publication of WO2004081710A3 publication Critical patent/WO2004081710A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging

Definitions

  • This invention relates to the field of computing and in particular to the field of storing and accessing data in datastores.
  • One frequently-used data structure is the tree.
  • One common form of tree is composed of a finite set of elements called nodes, linked together from a root to one or more internal nodes, each of which may be linked to one or more nodes, eventually ending in a number of leaf nodes.
  • nodes closer to the root are parent nodes of the nodes farther away from the root.
  • the nodes farther away from the root are called child nodes of the parent nodes.
  • Data is typically stored in the nodes and can be referenced using the links from root to node to leaf and from parent to child and so on. Consequently, a hierarchical or sequential relationship may be attributed to data stored in the nodes of a tree structure.
  • a hierarchical relationship can also be understood as a contextual relationship, each node being accessible within the context of its parent node.
  • a tree can only represent one hierarchy.
  • a root node for sales activities could have a number of nodes depending from the root node, each node representing a particular salesman.
  • Each salesman node could have child nodes, each salesman child node representing, for example, sales in a particular state.
  • this tree could be easily accessed for state information within the context of salesman, that is, this tree could be used to efficiently answer the question: "What states does Salesman Bob sell in?” If, instead of accessing state data by salesman, salesman data within the context of state were needed, (that is, we want to answer the question: "What salesmen sell in Texas?”), another tree would have to be created, with nodes representing states depending from the root salesman activity, from which child nodes representing salesmen might depend. The alternative to creating another tree would be to traverse the entire tree to extract the desired information.
  • a tree-based datastore comprising one or more levels of forests of interconnected trees is generated and/or accessed.
  • Each level of the tree-based datastore comprises a first tree that depends from a first root node and may include a plurality of branches.
  • the first root may represent a concept, such as but not limited to, a level begin indicator.
  • Each of the branches of the first tree ends in a leaf node.
  • Each leaf node may represent an end product, as described more fully below.
  • a second root of the same level of the tree-based datastore is linked to each leaf node of the first tree that represents an end product. Hence, the second root is essentially a root to an inverted order of the first tree or subset of the first tree, but the first tree is not duplicated.
  • the second root may represent a concept, such as but not limited to, a level end indicator.
  • the tree-based datastore comprises a plurality of trees in which the root node of each of these trees may include data such as a dataset element or a representation of a dataset element. This type of root node is referred to herein as an elemental root node.
  • the elemental root node of each of these trees may be linked to one or more nodes in one or more branches of the unduplicated first tree.
  • the non-root nodes of the tree-based datastore contain only pointers to other nodes in the tree-based datastore.
  • the roots of the trees in the forest of trees comprising each level of the tree-based datastore are also comprised of pointers, however the root nodes may, in addition, contain data that represents information (i.e., contain data that is or represents data such as dataset elements or concepts such as level begin or level end indicators); all the other nodes of the tree-based datastore only point to other nodes and contain no data.
  • the data is an integer that is associated with a character, a pixel representation, a condition such as begin indicator, end indicator, beginning of field indicator or the like, although the invention is not so limited.
  • Multiple levels of the above-described tree- based datastore may be generated and accessed; the end products of a lower level becoming the elemental root nodes of the next level.
  • An interlocking trees datastore is generated and accessed.
  • the datastore comprises a multi-rooted tree of asCase branches forming one asCase tree depending from a first root, called herein the primary root, and asResult branches forming multiple asResult trees depending from multiple roots.
  • One special instance of an asResult tree comprises a root node that is linked to one or more end product leaf nodes of the asCase tree described above. Hence this asResult tree can easily access the branches of the asCase tree terminating in end products, in inverted order.
  • This asResult tree can also be used to define elemental root nodes for the next level. These elemental root nodes may represent dataset elements for the next level, composed of the set of end products of the lower level.
  • the interlocking trees datastore may capture information about relationships between dataset elements encountered in an input file by combining a node that represents a level begin indicator and a node that represents a dataset element to form a node representing a subcomponent.
  • a subcomponent node may be combined with a node representing a dataset element to generate another subcomponent node in an iterative sub-process.
  • Combining a subcomponent node with a node representing a level end indicator may create a level end product node.
  • the process of combining level begin node with dataset element node to create a subcomponent and combining a subcomponent with a dataset element node and so on may itself be iterated to generate multiple asCase branches in a level.
  • AsResult trees may also be linked or connected to nodes in the asCase tree, such as, for example, by a root of an asResult tree pointing to one or more nodes in the asCase tree.
  • End product nodes of one level may be the elemental root nodes representing dataset elements that are combined to generate a next level of subcomponents. This process can be repeated any number of limes, creating any number of levels of asCase trees. Additionally, elemental root nodes of a level maybe decomposed to generate lower level nodes and roots. End product nodes of one level become the elemental root nodes of the next level through a special instance of an asResult tree of the lower level, that is, the asResult tree of the lower level having the root node that represents the lower level ending indicator. The asResult tree of the lower level having the root node that represents the lower level ending indicator, thus, is a second root into an inversion of the asCase tree of the lower level.
  • asCase and asResult links are essentially simultaneously generated at each level.
  • AsCase branches are created by the generation of the asCase links as the input is processed.
  • the asCase branches of the asCase tree on each level provide a direct record of how each subcomponent and end product of the level was created through the sequential combination of nodes representing dataset elements into subcomponents and so on to end products.
  • the branches of the asCase tree also represent one possible hierarchical relationship of nodes in the tree.
  • the generation of the asResult links creates a series of interlocking trees, each of which depends from a separate root. There may be multiple roots of this type in a level. This has the result of recording all the other relationships between the dataset elements encountered in the input.
  • the aforementioned information is captured by the structure of the forest of interlocking trees that is built rather than explicitly stored in the nodes of the trees, so that in effect, the data that is received as input determines the structure of the forest of interlocking trees that is built.
  • the structure of the forest of asResult trees ensures that the information so stored can be accessed in any other context required. Hence, the datastore is self-organizing, as will become evident from the description below.
  • a system for generating a tree-based datastore may have a processor; a memory coupled to the processor; and a tree- based datastore generator for creating at least one level of a tree-based datastore, the at least one level of the tree-based datastore comprising a first tree comprising a first root and at least one node of a plurality of nodes, a second tree comprising a second root and the at least one node of the first tree and at least a third tree comprising a third root and at least one of the plurality of nodes of the first tree.
  • the method may perform the steps of: determining a context within said data store and its corresponding value determining a focus within said context and its corresponding value calculating the probability of the occurrence of said focus within said context employing the corresponding values of said context and said focus.
  • the step of determining a context and its corresponding value may be a multi-step process itself, which may have steps of: selecting a context constraint list containing values represented by at least one root node, of said interlocking trees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, from the said at least one root node, by traversing from an asResult list of the at least one root node to the at least one root node's corresponding subcomponent node and then traversing asCase links between said corresponding subcomponent node to each corresponding end product node of said subcomponent node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths which have not been disregarded
  • the "logical expression” includes at least one logical operator such as but not limited to, AND, OR, and NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO and any combination of such logical operators.
  • a collection of data in an interlocking trees datastore can be evaluatedwherein determining a context and its corresponding value can proceed in accord with a process of: selecting a context constraint list containing values represented by at least one root node, of said interlocking trees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, by traversmg from all possible end product nodes back toward the primary root using Case links along said path, and, at each subcomponent node using its Result link to locate and compare the root node to the said at least one root node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths, which have not been disregarded to obtain a context count.
  • the method of evaluating a collection of data represented by an interlocking trees data may also proceed as follows: determining a context within said data set and its corresponding value determining a position along each path of the context determining a focus within said context and its corresponding value calculating the probability of the occurrence of said focus between the said position and the end product, along the path within said context.
  • the step of determining a position along each path of the context may have a step of: selecting a root node from the root nodes or the elemental root nodes, of said interlocking trees data store, and traversing from said root node's or elemental root node's asResult list to its corresponding subcomponent node in each path of the context.
  • determining a context and its corresponding value may comprise the steps of: selecting a context constraint list containing values represented by at least one root node, of said interlocking frees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, from the said at least one root node, by traversing from an asResult list of the at least one root node to the at least one root node's corresponding subcomponent node and then traversing asCase links between said corresponding subcomponent node to each corresponding end product node of said subcomponent node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths which have not been disregarded to obtain a context count.
  • the step of determining a context and its corresponding value can comprise the steps of: selecting a context constraint list containing values represented by at least one root node, of said interlocking trees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, by traversing from all possible end product nodes back toward the primary root using Case links along said path, and, at each subcomponent node using its Result link to locate and compare the root node to the said at least one root node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths, which have not been disregarded to obtain a context count.
  • Yet another method of evaluating a collection of data represented by an interlocking trees data store wherein the method may comprise the steps of: determining a context within said data set and its corresponding value determining a position along each path of the context determining a focus within said context and its corresponding value calculating the probability of the occurrence of said focus between the said position and the primary root, along the path within said context
  • the step of determining a position along each path of the context may comprise the steps of: selecting a root node from the root nodes or the elemental root nodes, of said interlocking trees data store, and traversing from said root node's or elemental root node's asResult list to its corresponding subcomponent node in each path of the context.
  • the step of determining a context and its corresponding value may comprise the steps of: selecting a context constraint list containing values represented by at least one root node, of said interlocking trees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, from the said at least one root node, by traversing from an asResult list of the at least one root node to the at least one root node's corresponding subcomponent node and then traversing asCase links between said corresponding subcomponent node to each corresponding end product node of said subcomponent node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths which have not been disregarded to obtain a context count.
  • the step of determining a context and its corresponding value may comprise the steps of: selecting a context constraint list containing values represented by at least one root node, of said interlocking trees data store, wherein all of the at least one root nodes on said context constraint list are associated to each other by a logical expression; identifying one or more paths by end product node, by traversing from all possible end product nodes back toward the primary root using Case links along said path, and, at each subcomponent node using its Result link to locate and compare the root node to the said at least one root node; disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context being nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths, which have not been disregarded to obtain a context count.
  • step of determining a context and its corresponding value may comprise the steps of: selecting all possible paths by end product node, of said interlocking trees data store, disregarding those paths that have links to elemental root nodes, the value fields of which do not conform with said logical expression, a resultant set of nodes thus forming a context including nodes along only those paths which have not been disregarded; and adding the counts of the end product nodes of those one or more paths which have not been disregarded to obtain a context count.
  • the step of determining a focus and its corresponding value may comprise the steps of: selecting a focus constraint list of at least one root node, from the root nodes or the elemental root nodes, of said interlocking trees data store, said at least one root node being associated by a logical expression; identifying one or more paths by end product node, from the said at least one root node, by traversing from the asResult list of the at least one root node to any corresponding subcomponent node and then traversing said corresponding subcomponent node's asCase links to its corresponding end product node.
  • the step of determining a focus and its corresponding value may comprise the steps of: selecting a focus constraint list of at least one root node, from the root nodes or the elemental root nodes, of said interlocking trees data store, said at least one root node being associated by a logical expression; identifying one or more paths by end product node, by fraversing from all end product nodes within established context back along paths toward their primary root nodes, said paths identifiable using Case links of said end product nodes within established context, and while traversing, at each subcomponent node useing the Result link to locate and compare the root node to the said at least one root node; disregarding those paths that have links to elemental root nodes having value fields which do not conform to said logical expression, a resultant set of nodes thus forming a focus including nodes along only those paths which have not been disregarded; and, adding the counts of the end product nodes of those one or more paths, which have not been disregarded to obtain a focus count.
  • a logical expression could be any expression.
  • it should includes at least one logical operator such as but not limited to, AND, OR, and NOT,
  • the structure we prefer generally comprises nodes and links between said nodes, said nodes having a plurality of data fields, at least two of said plurahty of data fields containing a pointer, one of said at least two pointers being a Case pointer and the other of said at least two pointers being a Result pointer and at least one node having at least one additional pointer to a list of pointers, one of said additional pointers to said list of pointers being to an asCase list in instances where said node has associated asCase list and another being to asResult list in instances where said node has associated an asResult list, and wherein said nodes contain a count field, and wherein said nodes include root nodes of which there are at least one primary root node and at least one elemental root node and wherein said nodes may include other root nodes, said nodes further including at least one end of thought node, at least one subcomponent node, and at least one end product node, and wherein said asResult links point between a root
  • the structure is formed from a set of program instructions which configure a computer system when activated therein to produce said structure.
  • the structure can be created from said set of program instructions available on or in a computer readable medium containing the set of program instructions.
  • the count field contains an intensity variable, the intensity variable being modifiable at various intensities corresponding to various predetermined traversal types of activity related to a node containing said count field.
  • theasCase and the asResult lists are stored in a separate data structure from said interlocking trees structure and wherein said separate data structure is associated with related nodes in said interlocking frees structure by pointers.
  • Another preferable form of the structure is described as a structure comprising nodes and links between said nodes, said nodes having a plurality of data fields, at least two of said plurality of data fields containing a pointer, one of said at least two pointers being a Case pointer and the other of said at least two pointers being a Result pointer and at least one node having at least one additional pointer to a list of pointers, one of said additional pointers to said list of pointers being to an asCase list in instances where said node has associated asCase list and another being to asResult list in instances where said node has associated an asResult list, and wherein said nodes are provided with one sub-node for each predetermined manner of traversal, said sub-nodes containing a count field for recording traversals of said nodes in predetermined manners, and wherein said nodes include root nodes of which there are at least one primary root node and at least one elemental root node and wherein said nodes may include other root nodes, said
  • Another preferred form of inventive structure comprises nodes and links between said nodes, said nodes having a plurality of data fields, at least two of said plurality of data fields containing a pointer, one of said at least two pointers being a Case pointer and the other of said at least two pointers being a Result pointer and at least one node having at least one additional pointer to a list of pointers, one of said additional pointers to said list of pointers being to an asCase list in instances where said node has associated asCase list and another being to asResult list in instances where said node has associated an asResult list, and wherein said nodes contain an additional field, and wherein said nodes include root nodes of which there are at least one primary root node and at least one elemental root node and wherein said nodes may include other root nodes, said nodes further including at least one end of thought node, at least one subcomponent node, and at least one end product node, and wherein said asResult links point between a root node and any
  • said additional field preferably is a count field.
  • FIG. 1 is an exemplary computing environment in which aspects of the invention may be implemented;
  • FIG. 2a illustrates an exemplary system for generating and accessing data from an interlocking trees datastore in accordance with one embodiment of the invention;
  • FIG. 2b illustrates an exemplary method for generating and accessing information from an interlocking frees database
  • FIG. 3 a illustrates a more detailed view of the exemplary interlocking frees datastore of FIG. 3a in accordance with one embodiment of the invention
  • FIG. 3b illustrates a more detailed view of an exemplary node of the interlocking trees datastore of FIG. 3 a in accordance with one embodiment of the invention
  • FIG. 3 c illustrates the linked lists of interlocking frees datastore of FIG. 3 a in accordance with one aspect of the invention
  • FIG. 4 illustrates an exemplary set of the data set elements of FIG. 2, as stored in memory in accordance with one embodiment of the invention
  • FIGs. 5a-e depict the interlocking trees of FIG. 2 and the corresponding content of the nodes of the interlocking trees, as the interlocking trees are generated in accordance with one embodiment of the invention
  • FIG. 6 is a flow diagram of an exemplary process of generating interlocking trees in accordance with one aspect of the invention.
  • FIG. 7a illustrates another interlocking trees datastore and corresponding nodes in accordance with one embodiment of the invention
  • FIG. 7b iUusfrates the linked lists of interlocking trees datastore of FIG. 7a in accordance with one aspect of the invention
  • FIG. 8 illustrates other interlocking trees datastores in accordance with embodiments of the invention.
  • FIG. 9a illustrates another interlocking trees datastore in accordance with one embodiment of the invention
  • FIG. 9b illustrates exemplary content of nodes of the interlocking trees datastore of FIG. 9a in accordance with one embodiment of the invention
  • FIG. 10 illustrates another interlocking trees datastore in accordance with one embodiment of the invention
  • FIG. 11 is a flow diagram of an exemplary process of accessing data from an interlocking trees datastore in accordance with one embodiment of the invention.
  • Figs. 12 A and B illustrate a detailed view of the exemplary interlocking frees data store having at least one additional field.
  • Fig. 13 is an illustration of the least complex interlocking frees data store in accord with preferred embodiments of the invention.
  • Figs. 14 A-D are flow charts.
  • the system and method described below creates a datastore comprising at least one level of forests of interconnected trees.
  • the forest of interconnected frees of each level of the datastore captures information about combinations of nodes representing a level begin and a dataset element (creating a subcomponent node) or a subcomponent node and a dataset element node or a subcomponent node and a node representing a level end indicator in an iterative process that results in the generation of a single asCase tree composed of nodes linked by asCase tree branches and multiple asResult trees.
  • the nodes of the asCase branches depend from a first root. For example, referring to FIG.
  • nodes 302, 312, 314 and 316 is an exemplary asCase tree depending from a first begin indicator root 302.
  • AsResult trees include the following frees: node 306 and 312 (one asResult tree), nodes 304 and 314 (a second asResult tree), nodes 308 and 316 (a third asResult tree) and nodes 310 and 318 (a fourth asResult free).
  • the fourth asResult tree is a special instance of asResult tree because the root (node 310) represents an end mdicator.
  • Fig. 13 in which the smallest unit of the interlocking trees data store structure is pictured, having nodes 11-15, which are connected by links 16-19.
  • the base structure will have a primary root (1st root, node 11) connected through a link 16 to a subcomponent node 14.
  • a 3 rd root, (elemental root) node 12 will be connected also to subcomponent node 14 by a link 17.
  • Thius node 14 is an instance of whatever is indicated in data for node 12, that is, the data of node 14 is an instance of the data of elemental nodel2).
  • Node 15 is connected to node 14 by link 19, and the path 11-16-14-19-15 may be called a path or a thread that begins at the primary root and tends at the end product node 15.
  • a path can be any connected line of links and nodes).
  • the end product node is also an instance of a 2 nd root node (end of thought node) 13, and is connected to it by link 18. '
  • Each branch of the asCase tree of a given level begins with a combination of a node representing a level begin mdicator and a node representing a dataset element into a subcomponent node.
  • a subcomponent node may be iteratively combined with a dataset element node into another subcomponent node.
  • a subcomponent may be combined with a node representing a level end indicator to create an end product node. This process can be repeated and may result in the formation of multiple asCase tree branches depending from the first root. For example, if the indivisible elemental components of a particular interlocking frees structure are alphanumerics, subcomponents may be combinations of letters that are not words and end products may be words. Alternatively, subcomponents may be combinations of alphanumerics that comprise a partial stock number or order number and end products may be a complete stock or order number, to mention just two possible uses of many, of an alphanumeric universe of input applied to the invention.
  • End products of one level may be the dataset elements of a next level.
  • the end product dataset elements may be used to generate a next level of subcomponents, in the same fashion that the dataset elements of the lower level are used to create lower level subcomponents and end products.
  • the end products of one level can be the dataset elements from which a higher level end product (a sentence) may be created. This process can be repeated any number of times, creating any number of levels of asCase tees in the datastore.
  • a higher level using words as the level dataset elements, may comprise sentences. Sentences may be combined to create paragraphs (a higher level yet), and so on.
  • dataset elements of a higher level may be decomposed to generate lower levels of the interlocking trees datastore.
  • the asResult tree that initiates from the level end indicator is used to define the dataset elemental of the next level.
  • the end indicator is a second root into an inverted order of the interlocking frees datastore as defined by the asCase tree in one embodiment of the invention.
  • asCase and asResult links may be simultaneously generated at each level.
  • An asCase link represents a link to the first of the two nodes from which a node is created.
  • asCase branches of the asCase trees may be created by the generation of the asCase links as the input is processed.
  • the asCase branches of each level provide a direct record of how each subcomponent and end product of the level was created.
  • the asCase branches can be used for any purpose for which knowing how subcomponents and end products are created is useful. If, for example, the input to the interlocking trees generator comprises a universe of correctly spelled words, the resulting asCase links of the generated interlocking frees could be used as a spelling checker, to list just one example out of many possible examples of the utility of the datastore.
  • branches of the asCase free also represent one possible hierarchical relationship of nodes in the asCase tree. For example, if the data received by the interlocking frees generator is "Tom sold 100 PA. Bill sold 40 NJ.” the asCase tree generated comprises a view of the data in a "state information within the context of salesman" context or hierarchy.
  • An asResult link represents a link to the second of the two nodes from which a node is created.
  • the generation of the asResult links creates a series of interlocking trees where each of the asResult frees depend from a root comprising a dataset element. This has the result of recording all encountered relationships between the elementals and asCase trees in the datastore. That is, the asResult trees capture all possible contexts of the nodes of the interlocking trees.
  • the asResult frees can be used for any purpose for which knowing the context or relationships between nodes is useful.
  • the input to the interlocking trees datastore generator comprises a universe of sales data including salesman name, day of the week, number of items and state
  • the resulting asResult links of the generated interlocking frees datastore could be used to extract information such as: "What salesmen sell in a particular state?” "How many items were sold on Monday?" "How many items did Salesman Bob sell on Monday and Tuesday?” and the like, - all from the same interlocking trees datastore, without creating multiple copies of the datastore.
  • Subcomponents and end products may be classified using the information stored in the asResult frees. It will be appreciated that the aforementioned information is actually stored by the structure of the interlocking trees datastore that is built rather than explicitly stored in the subcomponent and end product nodes of the free. Because only the root nodes of the interlocking trees datastore may include data, asResult links can be followed back to the root node to determine if the subcomponent or end product belongs to the class of data represented by the root node. It will be further appreciated that this feature causes the datastore to be self- organizing, in accordance with the process described below.
  • the input to the interlocking frees datastore generator were "CAT TAB"
  • information stored in the structure of the resultant interlocking trees datastore could be used to determine that both end products "BOT-C-A-T-EOT” and "BOT-T-A-B-EOT” contain the elemental "A”
  • the class of subcomponents/end products containing "A” include “BOT-C-A-T-EOT” and "BOT-T-A-B-EOT”.
  • other subcomponents and end products containing "A” can be found along the branch of the asCase tree.
  • links between nodes are bi-directional.
  • a root node representing the letter "A” may include a pointer to a node BOT-C-A in node A's asResultList while the node BOT-C-A may include a pointer to the node A as its asResult pointer and so on.
  • links between nodes are uni-directional.
  • node BOT-C-A includes an asCase pointer to node BOT-C and an asResult pointer to the root node representing A but the root node A does not include a pointer to node BOT-C-A in its asResultList.
  • node BOT-C-A includes an asCase pointer to node BOT-C and an asResult pointer to the root node representing A but the root node A does not include a pointer to node BOT-C-A in its asResultList.
  • FIG. 1 is a block diagram of an exemplary computer system 100 in which aspects of the present invention may be implemented.
  • Computer system 100 may be any suitable system, such as but not limited to a mainframe, minicomputer, IBM compatible personal computer, Unix workstation or network computer.
  • computer system 100 comprises central processing unit (CPU) 102 connected to main memory 104, auxiliary storage interface 106, terminal interface 108, and network interface 110.
  • CPU central processing unit
  • auxiliary storage interface 106 is connected to main memory 104
  • terminal interface 108 terminal interface
  • network interface 110 are connected via system bus 160.
  • Auxiliary storage interface 106 is used to connect storage devices, such as but not limited to DASD devices 190, storing data on a disk such as but not limited to disk 195, to computer system 100.
  • Main memory 104 encompassing the entire virtual memory of computer system 100, includes an operating system 122 and an application 124, and may also include an interlocking trees datastore 126.
  • the interlocking trees datastore 126 may be used to provide data storage that can be quickly searched for data in multiple contextual modes without requiring a duplication of data.
  • Computer system 100 may use well-known virtual addressing mechanisms that allow the programs of computer system 100 to behave as if they have access to a large single storage entity rather than access to multiple, smaller storage entities such as main memory 104 and DASD devices 190.
  • operating system 122, application 124, and interlocking trees datastore 126 are shown to reside in main memoiy 104, those skilled in the art will recognize that these elements are not necessarily all completely located in main memory 104 at the same time.
  • Terminal interface 108 may be used to connect one or more terminals to computer system 100.
  • the referenced terminals may be dumb terminals or fully programmable workstations and may be employed to enable system administrators and users to communicate with computer system 100.
  • Network interface 110 may be used to connect other computer systems and/or workstations to computer system 100.
  • the network to which network interface 110 interfaces may be a local area network (LAN), wide area network (WAN), an internet, extranet or the Internet, or any other suitable network.
  • Operating system 122 may be an operating system such as OS/2, WINDOWS, AIX, UNIX, LINUX or any other suitable operating system.
  • Application program 124 can be any type of application program which accesses data stored in interlocking trees datastore 126.
  • the application could comprise a data analytics application, data warehousing application, intrusion detection system, to name several examples, although the invention is not limited thereto.
  • Interlocking trees datastore 126 provides a data storage structure that enables users to access the same datastore to obtain information associated with any context.
  • the term data can include any type of computer stored information such as but not limited to numbers, text, graphics, formulas, tables, audio, video, multimedia or any combination thereof.
  • Interlocking frees datastore 126 can be implemented as part of application 124, as part of operating system 122 or as a separate datastore product that can be adapted to provide data storage for a wide variety of applications.
  • FIG. 2a illustrates an exemplary system 200 for generating and accessing data from a forest of interlocking trees comprising a datastore in accordance with one embodiment of the invention.
  • a subsystem 250 for generating the interlocking trees datastore in one embodiment includes an interlocking trees generator 202, a set of dataset elements 206, and input data 204 from which exemplary interlocking trees datastore 208 is generated.
  • the set of dataset elements 206 may be derived from input data 204.
  • a subsystem 251 for accessing information from the interlocking frees datastore 208 may include the interlocking frees datastore 208, as described above, and/or an interlocking trees datastore accessor 210 for receiving data requests 212, processing the data requests 212 and returning the requested information.
  • FIG. 2b illustrates an exemplary method for generating and accessing information from an interlocking trees database.
  • an interlocking trees datastore is generated, as described more fully below.
  • a request for information from the interlocking frees datastore is received.
  • the information is retrieved from the interlocking trees datastore.
  • the input data 204 comprises a stream of alphanumeric characters representing a word (e.g., "CAT ").
  • Dataset elements 206 in this case may be the set of letters in the alphabet, and may include one or more characters to represent a delimiter or beginning-of-word/end-of-word concept.
  • Delimiters may include alphanumeric characters such as but not limited to blank (" "), comma (","), and period (".”).
  • Interlocking trees datastore 208 includes a number of roots, a number of non-root nodes and a number of links or connections between non-root nodes or between a root and a non-root node.
  • Each root and non-root node of interlocking trees datastore 208 includes a pair of pointers (case pointer and result pointer) and a pair of list pointers (a pointer to an asCaseList and a pointer to an asResultList). Roots may include, in addition, data representing a value or a reference to a value.
  • FIG. 3a is a more detailed view of the exemplary interlocking trees datastore 208.
  • Some nodes notably, root nodes 302 (BOT) and 310 (EOT) in the example, represent concepts such as begin indicator or end indicator, and root nodes 304 (A), 306 (C), 308 (T) represent dataset elements while other nodes, notably nodes 312 (BOT-C), 314 (BOT-C-A), 316 (BOT-C-
  • A-T and 318 represent a sequential synthesis of a node representing a begin indicator and a node representing a dataset element into a node representing a subcomponent which is combined with a dataset element into another subcomponent and so on until a subcomponent is combined with a node representing an end indicator, creating a node representing an end product.
  • a sequential synthesis of a word from a series of letters followed by a delimiter i.e., the series of letters "CAT” followed by the delimiter " " or the blank character
  • Delimiters in the input may act to distinguish end products.
  • the character or characters that delimit words may act to both indicate the end of one word and the beginning of another word.
  • the blank character between “CATS” and “ARE” both signifies the end of the word “CATS” and the beginning of the word “ARE”.
  • a delimiter such as the blank character in the input may be replaced by a begin indicator, such as "BOT”, or by an end indicator, such as "EOT", in the node that is created, as described more fully below.
  • Nodes such as root nodes 304, 306, and 308 are referred to herein as elemental nodes because these nodes represent dataset elements and comprise indivisible units from which divisible units (subcomponents and end products) are composed.
  • Nodes such as 312, 314, and 316 are referred to herein as subcomponents or subcomponent nodes because these nodes represent a combination of a concept indicator such as a begin indicator and a node representing a dataset element, or a combination of a subcomponent and a node representing a dataset element that does not comprise an end product or a combination of a subcomponent and a node representing an end indicator that does comprise an end product.
  • Nodes such as node 318 represents an end product.
  • dataset elements are letters, subcomponents represent combinations of letters that do not comprise words and end products are words.
  • the set of root nodes includes "BOT", signifying, in the example, the beginning of a word and "EOT", signifying the end of a word.
  • BOT signifying, in the example, the beginning of a word
  • EOT signifying the end of a word.
  • “BOT” and “EOT” represent begin and end indicators to which the invention is not limited. The use of other such indicators is contemplated, as is the absence of one or both such indicators.
  • an end product is distinguishable from a subcomponent because of a link from the node to a root node representing the EOT concept.
  • the universe of the input is the set of alphanumeric characters from which words can be derived
  • the contemplated invention is not so limited.
  • the universe of the input may be text, such as letters (from which words may be derived) or words (from which phrases or sentences may be derived), or may alternatively be amino acids from which a genome can be derived, limited resources used in a process, concepts, pixel sets, images, sounds, numbers, analog measurements or values or any other suitable universe which is composed of elemental units which can be digitized and sequentially combined to generate end products.
  • the elemental units are combined in an optimized sequence.
  • interlocking trees datastore 208 may also comprise a number of connections or links between nodes, such as links 320, 322, 324 and 326 and links 328, 330, 332 and 334.
  • Links 320, 322, 324, and 326 and links 328, 330, 332 and 334 in one embodiment of the invention are bi-directional, that is, the pathway between root node (BOT) and node 318 (BOT-C-A-T-EOT) may be traversed via links 320, 322, 324 and 326, or alternatively, may be traversed via links 326, 324, 322 and 320.
  • Links 320, 322, 324 and 326 are referred to herein as asCase links.
  • Links 328, 330, 332 and 334 (depicted by an interrupted or dashed line) are referred to herein as asResult links.
  • links 328, 330, 332 and 334 are bi-directional in that a pointer in node C 306 points to node BOT-C 312 and a pointer in node BOT-C 312 points to node C 306, a pointer in node A 304 points to node BOT-C-A 314 and a pointer in node BOT-C-A 314 points to node A 304, etc.
  • Exemplary node 340 may represent a subcomponent or an end product.
  • Exemplary node 340 may include a pointer to a first portion of the subcomponent or end product 340 (pointer to case 342, also referred to herein as "asCase”), a pointer to a second portion of the subcomponent or end product 340 (pointer to result 344, also referred to herein as "asResult”), a pointer to an asCaseList 346, a linked list of subcomponents or end products for which node 340 is a first portion and a pointer to an asResultList 348, a linked list of components or end products for which node 340 is a second portion.
  • Exemplary node 341 represents an elemental node.
  • Figures 12A and 12 B should be referred to in the next paragraph for a description of nodes having additional fields needed for certain functions also described later.
  • An exemplary node 341 includes a null pointer (pointer to case 342, also referred to herein as "asCase”), a second null pointer (pointer to result 344, also referred to herein as "asResult”), a pointer to an asCaseList 346, a linked list of subcomponents or end products for which root node 341 is a first portion and a pointer to an asResultList 348, a linked list of components or end products for which root node 341 is a second portion and value 349.
  • asCase null pointer
  • asResult pointer to result 344
  • Value 349 may contain the actual value, represent a condition or state, may contain a pointer or reference to a value or the like.
  • a root node representing a begin indicator concept or condition will have a null asResultList because a begin indicator will never be the second portion of a subcomponent
  • a root node representing a dataset element will have a null asCaseList because a dataset element will never be the first portion of a subcomponent
  • a root node representing an end indicator concept or condition will have a null asCaseList because the end indicator will never be the first portion of a subcomponent.
  • All nodes of the interlocking trees data store may also include additional fields representing data associated with said nodes. This may be illustrated using an illusfration similar to the illustration of Fig 3b, here using Figs 12A and 12B. Here again in these new Figs. 12A and 12B, the subcomponent and elemental node fields are shown as fields in a block of fields for teaching purposes.
  • An exemplary node 20 is shown in Fig. 12 A. This node 20 may include a string field, as the additional field, that contains a sequence that shows all of the elementals represented by this node.
  • the exemplary node 30 shown in Fig. 12B also includes a count field 31.
  • the count field is initialized and incremented with an intensity variable, whose value varies with conditions at times when the count field is being referenced.
  • intensity variable is defined as a mathematical entity holding at least one unchangeable value.
  • the intensity variable populated count field can be used for applications of the inventive interlocking tees structure to processes dealing with forgetting, erroneous recorded data, recording which entity is doing the inquiry, recording the type of inquiry being used, and other processes of interest which may be derived when using the data.
  • a simple example form of an intensity variable would be a single ordinal field value, such as '1' to be used to increment or decrement count fields to record the number of times that a node has been accessed or traversed. Further, the intensity variable may change at different rates and in different directions for these various functions.
  • a simple example of different intensities might be the addition of a value +1 each time a query traverses a node, and the addition of a value of -100 if a path containing that particular node (or that particular sequence of nodes) is deemed (for some overarching reason not of importance to this explanation) to be a mistake, such as when a sequence is found after use to have been a misspelling, or in the case of where a sensor finds an area containing a dangerous chemical, or if a human child simulator "touches" and "burns itself on a hot stove in simulation.
  • intensity variables in a count field provide the simplest and thus the current best approach to this problem, however, this or other alternatives should be considered and reconsidered as information processing systems mature. If this alternative is considered, an approach of using a separate node, possibly even an elemental or root node to record a count for the number of fraversals of each type related to the node would be one way to implement this approach.
  • the count field may be incremented when new data is being incorporated in the interlocking trees data store but incrementing the count field may be omitted when the interlocking trees data store is being queried yielding a bigger value for new data and no change for inquiries. Accordingly, this intensity variable must be chosen for its suitabihty to the problem being addressed by the invention.
  • the count field is added to facilitate use of the knowledge store represented by the interlocking trees structure and are particularly useful when statistics, such as frequency and probability are sought.
  • Fig. 12 A in which an alternative exemplary node 20 is illusfrated. Note that this node 20 can be an elemental node 20A having a Value field 22, or a subcomponent node or end product node 20B (which is missing the value field 22), but in either instance it will have an additional field or fields 21.
  • FIG. 12B A specific instance of an additional field is shown in Fig. 12B, where the node form 30 (either an elemental node 30A (with a value field 32) or a subcomponent or end product node 30B) both have the additional field 31, herein a count field.
  • FIG. 3c illustrates the asResult linked lists of interlocking trees datastore 208.
  • Link 350 is established by setting a pointer in the asResultList of node C 306 to node BOT-C 302, link 352 by setting a pointer in the asResultList of node A 304 to node BOT-C-A 314, link 354 by setting a pointer in the asResultList of node T 308 to node BOT-C-A-T 318 and link 356 by setting a pointer in the asResultList of node EOT 310 to node BOT-C-A-T-EOT 318.
  • FIG. 4 depicts an exemplary storage of exemplary dataset elements 206 BOT, A- Z and EOT in memory 104.
  • BOT is stored at location 0, A at location 5, and so on to EOT at location 135.
  • FIGs. 5a-e depict the interlocking trees datastore 208 and the corresponding content of the nodes of the interlocking frees datastore 208, as the interlocking trees datastore 208 is generated in an exemplary embodiment of the invention.
  • FIG. 6 is a flow diagram of an exemplary process 600 for generating interlocking trees datastore 208 in accordance with one embodiment of the invention.
  • initialization comprises setting a "current pointed ' to a root node of an interlocking trees datastore that is to be created.
  • initialization comprises setting the "current pointer" to the root of an existing interlocking frees datastore.
  • root nodes e.g., root nodes BOT 302, A 535a ... EOT 559a of FIG. 5a
  • the interlocking trees datastore may comprise a single node 302 (BOT), signifying, in this case, the beginning of a word.
  • Node 302 of block diagram 502a includes a pair of pointers (case pointer 504a and result pointer 506a initialized to null) and a pair of list pointers (a pointer to asCaseList and a pointer to asResultList initialized to null) and a value (value 511a initialized to some value, here described as BOT).
  • BOT node 302
  • FIG. 5 block diagram 502a, the cell 508a and analogous cells in FIGs.
  • AsCaseLists (e.g., asCaseList 508a) and asResultLists (e.g., asResultList 510a) may be implemented as linked lists.
  • the asCaseLists (e.g., asCaseList 508a) and asResultLists (e.g., asResultList 510a) are allocated as blocks of contiguous memory locations of configurable size, such as but not limited to arrays, the pointer to asCaseList is set to the beginning location of the asCaseList memory block and the pointer to the asResultList is set to the beginning location of the asResultList memory block.
  • step 604 input is received.
  • the value of "current pointer” is set to “previous pointer” and “current pointer” is set to the input.
  • the input received is "C”.
  • the input is validated. In the example given, this involves checking to see if "C” is a valid dataset element. "C” is indeed a valid element, located at location 15 in memory 104.
  • a node in the interlocking trees datastore is created, initialized and stored in some location in memory.
  • node 312 in the interlocking trees datastore 208 is created, representing BOT-C, case pointer, result pointer, pointer to asCaseList, asCaseList, pointer to asResultList, and asResultList of node BOT-C 312, are initialized to null and BOT-C is stored in memory 104 at location 140.
  • links for the node created in step 606 are created.
  • the new node is defined by setting the case pointer of the new node to the value of previous pointer and setting the result pointer of the new node to the value of the current pointer.
  • FIG. 5b interlocking trees datastore 500b illustrates the interlocking frees datastore 208 after the creation of the links.
  • Contents of nodes BOT 302, C 306 and BOT- C 312 after creation of the links are shown in block diagram 502b.
  • Subcomponent BOT-C 312 is created by the sequential combination of node BOT 302 with node C 306.
  • case pointer 520b of node BOT-C 312 is set to 0, the location of node BOT 302 in memory 104, and result pointer 522b of node BOT-C 312 is set to 15, the location of the elemental node C 306 in memory 104.
  • asCaseList and asResultList links are created by adding a pointer to the location of the new node to the linked lists, asCaseList and asResultList, of the nodes from which the new node is derived.
  • the pointers may be added to the end of the list, to the beginning of the list, or may be inserted somewhere within the list.
  • a number of lists may be maintained.
  • a node's asCaseList may include a sequential list wherein pointers are added to the end of the linked list in addition to an ordered list wherein pointers are maintained in an order of most frequently accessed.
  • An ordered list may be ordered by last update, last access, or frequency of update or access, or by any other suitable ordering rule.
  • Links to the new node are made: a pointer to the new node is added to the asCaseList of previous pointer and to the asResultList of current pointer.
  • bidirectional link 320 is generated by setting Case pointer 520b of node BOT-C 312 to the location of node BOT 302, location 0, (link 320a of block diagram 503b), and updating asCaseList 508b
  • (link 320b) of node BOT 302 by adding a pointer to the location of node BOT-C 312, location 140, to asCaseList 508b.
  • Case pointer 520a is set because node BOT 302 is one of the defining nodes of node BOT-C 312.
  • AsCaseList 508b is updated because node BOT 302 is used in the synthesis of node BOT-C 312 being the first of the two nodes from which node BOT-C 312 is created.
  • AsCaseList 508b presently contains the null set, (i.e., asCaseList 508b is empty).
  • asCaseList 508b is updated from null to 140.
  • node BOT-C 312 location 140 would have been added to asCaseList 508b in one of the ways discussed above.
  • bi-directional link 328 is generated by setting Result pointer 522b of node BOT-C 312 to the location of node C, location 15, (link 328a of block diagram 503b) and updating asResultList 518b (link 328b) of elemental node C 306 by adding a pointer to the location of node BOT-C 312 to asResultList 518b.
  • Result pointer 522b is set because node C 306 is one of the defining nodes of node BOT-C 312.
  • AsResultList 518b is updated because node C 306 comprises the second of the two nodes from which node BOT-C 312 is created, (hence link 328b is called an asResult link).
  • AsResultList 518b presently contains the null set, (i.e., asResultList 518b is empty). Because node BOT-C 312 is located at location 140 in memory 104, asResultList 518b is updated from null to 140. Had asResultList 518b comprised a non-null set, node BOT-C 312 location 140 would have been added to asResultList 518b in one of the ways discussed above.
  • link 320b represents a pointer to the location of node BOT-C 312, and is the first element in the asCaseList 508b for node BOT 302, and that link 328b represents a pointer to the location of node BOT-C 312, and is the first element in the asResultList 518b of node C 306.
  • Link 320a represents a pointer from node BOT-C 312 to its first portion, node BOT 302, and link 328a represents a pointer from node BOT-C 312 to its second portion, node C 306.
  • the input received is "A”.
  • the input is validated. In the example given, this involves checking to see if "A” is a valid dataset elemental. "A” is indeed a valid elemental, located at location 5 in memory 104.
  • a node in the interlocking frees datastore is created, initialized and stored in some location in memory.
  • node 314 in the interlocking tees datastore 208 is created, representing BOT-C-A, case pointer, result pointer, pointer to asCaseList, asCaseList, pointer to asResultList and asResultList of node BOT- C-A 314 are initialized to null and node BOT-C-A 314 is stored in memory 104 at location 145.
  • FIG. 5c illustrates the interlocking trees datastore 500c following creation of the links.
  • BOT-C-A 314 are shown in block diagram 502c.
  • Subcomponent BOT-C-A 314 is created by the sequential combination of node BOT-C 312 with node A 304. Therefore, the following values for case pointer and result pointer are set: case pointer 528c of node BOT-C-A 314 is set to 140 (link 322a), the location of the elemental node BOT-C 312 in memory 104 and result pointer 530c of node BOT-C-A 314 is set to 5 (link 330a), the location of the elemental node A 304 in memory 104.
  • Bi-directional link 322 is generated by setting Case pointer 528c to 140 (link 322a) and by adding a pointer to the location of node BOT-C-A 314 in memory 104 to asCaseList 524c of node BOT-C 312 (link 322b).
  • AsCaseList 524c is updated because node BOT-C 312 comprises the first of the two nodes from which node BOT-C-A 314 is created.
  • asCaseList 524c of node BOT-C 312 contained the null set, (i.e., asCaseList 524c was empty).
  • asCaseList 524c is updated from null to 145.
  • asCaseList 524c comprised a non-null set, node BOT-C-A 314 location 145 would have been added to asCaseList 524c in one of the ways discussed above.
  • bi-directional link 330 is generated by setting Result pointer 530c of node BOT-C-A 314 to 5 and by updating asResultList 542c of elemental node A 304 by adding a pointer to the location of node BOT-C-A 314 to asResultList 542c of node A 304.
  • AsResultList 542c is updated because node A 304 comprises the second of the two nodes from which node BOT-C-A 314 is created.
  • asResultList 542c contained the null set, (i.e., asResultList 542c was empty).
  • asResultList 542c is updated from null to 145.
  • asResultList 542c comprised a non-null set
  • node BOT-C-A 314 location 145 would have been added to asResultList 542c in one of the ways discussed above.
  • FIG. 5c the datastore depicted in FIG. 5c, interlocking trees datastore 500c has been created. The same structure is represented in more detail in FIG. 5c, block diagram
  • link 322b represents a pointer to the location of node BOT-C-A 314, and location 145 is the first element in the asCaseList 524c for node BOT-C 312, and that link
  • 330b represents a pointer to the location of node BOT-C-A 314, and 145 is the first element in the asResultList 542c for node A 304.
  • Link 322a represents a pointer from node BOT-C-A 314 to its first portion, node BOT-C 312 and link 330a represents a pointer from node BOT-C-A 314 to its second portion, node A 304.
  • step 610 it is determined whether or not there is more input. In this case, there is more input so processing returns to step 604.
  • input is received. In the example given, the input received is "T”.
  • the input is validated. In the example given, this involves checking to see if "T" is a valid dataset element. "T” is indeed a valid dataset element, located at location 100 in memory 104.
  • a node in the interlocking frees datastore is created, initialized and stored in some location in memory.
  • node 316 in the interlocking frees datastore 208 is created, representing node BOT-C-A-T 316, case pointer, result pointer, pointer to asCaseList, asCaseList, pointer to asResult List and asResult List are initialized to null and node BOT-C-A-T 316 is stored in memory 104 at location 150.
  • FIG. 5d illustrates the interlocking trees datastore 500d following creation of the links.
  • Content of nodes BOT 302, C 306, A 304, T 308, BOT-C 312, BOT-C-A 314 and BOT-C-A-T 316 are shown in block diagram 502d.
  • Subcomponent BOT-C-A-T 316 is created by the sequential combination of node BOT-C-A 314 with node T 308.
  • case pointer 544d is set to 145
  • result pointer 546d is set to 100
  • the location of the elemental node T 308 in memory 104 is set to 100
  • Bi-directional link 324 is generated by setting case pointer 544 d to 145 and adding a pointer to the location of node BOT-C-A 314 (location 150) in memory 104 to asCaseList 532d of node BOT-C-A 314. AsCaseList 532d is updated because node BOT-C-A 314 comprises the first of the two nodes from which node BOT-C-A-T 316 is created. Before the creation of link 324, asCaseList 532d of node BOT-C-A 314 contained the null set. Because BOT-C-A-T is found at location 150 in memory 104, asCaseList 532d is updated from null to 150. Had asCaseList 532d of node BOT-C-A 314 contained data, 150 would have been added to the list, in one of the ways outlined above. Similarly, bi-directional link 332 is generated by setting result pointer 546d to
  • asResultList 558d of elemental node T 308 contained the null set, so the null set is replaced with 150, the location of node BOT-C-A-T 316 in memory 104.
  • asResultList 558d contained data, 150 would have been added to the list in one of the ways outlined above.
  • interlocking frees datastore 500d has been created.
  • block diagram 503c for interlocking frees datastore 500c could be shown.
  • step 610 it is determined whether or not there is more input. In this case, there is more input so processing returns to step 604.
  • input is received. In the example given, the input received is " " or the blank character.
  • the input is validated. In the example given, this involves checking to see if the blank character is a valid dataset elemental. The blank character is indeed a valid elemental, and is a delimiter signifying, in this case, the end of the word "CAT".
  • node EOT 310 located at location 135 is added to the subcomponent BOT-C-A-T 316 to create an end product or monad, which in this case is a word.
  • a node in the interlocking trees datastore is created, initialized and stored in some location in memory.
  • node 318 in the interlocking trees datastore 208 is created, representing node BOT-C-A-T-EOT 318, case pointer, result pointer, pointer to asCaseList, asCaseList, pointer to asResultList and asResultList of node BOT-C-A-T-EOT 318 are initialized to null and node BOT-C-A-T-EOT 318 is stored, for example, in memory 104 at location 155.
  • FIG. 5e illustrates the interlocking frees datastore 500e following creation of the links.
  • Content of nodes BOT 302, C 306, A 304, T 308, EOT 310, BOT-C 312, BOT-C-A 314, BOT-C-A-T 316 and BOT-C-A-T- EOT 318 after creation of the links are shown in block diagram 502e.
  • End product 318 (BOT-C- A-T-EOT) is created by the sequential combination of node BOT-C-A-T 316 with node EOT 310.
  • case pointer 568e of end product BOT-C-A-T-EOT 318 is set to 150
  • the location of the node BOT-C-A-T 316 in memory 104 and result pointer 570e of end product BOT-C-A-T-EOT 318 is set to 135, the location of the elemental node EOT 135 in memoiy 104.
  • Bi-directional link 326 is generated by setting Case pointer 568e of end product
  • BOT-C-A-T-EOT 318 to 150 and adding a pointer to the location of node BOT-C-A-T 316 in memory 104 to asCaseList 548e of node BOT-C-A-T 316.
  • AsCaseList 548e is updated because node BOT-C-A 314 comprises the first of the two nodes from which node BOT-C-A-T 316 is created.
  • asCaseList 548e of node BOT-C-A-T 316 contained the null set, (i.e., asCaseList 548e was empty).
  • asCaseList 548e of node BOT-C-A-T 316 is updated from null to 155.
  • asCaseList 548e comprised a null-null set
  • node BOT-C-A-T location 155 would have been added to asCaseList 548e in one of the ways discussed above.
  • bi-directional link 334 is generated by setting Result pointer 570e of end product BOT-C-A-T-EOT 318 to 135 and updating asResultList 566e of node EOT 310 by adding a pointer to the location of node BOT-C-A-T-EOT 318 to asResult List 566e of node EOT 310.
  • AsResultList 566e is updated because node EOT 310 comprises the second of the two nodes from which node BOT-C-A-T-EOT 318 is created, (hence link 334 is called an asResult link).
  • asResultList 566e contained the null set, (i.e., asResultList 566e was empty).
  • asResultList 566e is updated from null to 155.
  • asResultList 566e comprised a non-null set
  • node BOT-C-A-T-EOT 318 location 155 would have been added to asResultList 566e in one of the way discussed above.
  • interlocking frees datastore 500e has been created.
  • block diagram 503c for interlocking tees datastore 500c could be shown.
  • step 610 it is determined whether or not there is more input. In this case, there is no more input so processing ends at step 612.
  • nodes BOT 302, C 306, A 304, T 308, B 718, EOT 310, BOT-C 312, BOT-C- A 314, BOT-C-A-T- 316, BOT-C-A-T-EOT 318, BOT-T 703, BOT-T-A 705, BOT-T-A-B 707 and BOT-T-A-B-EOT 709 is illustrated in block diagram 702a. It will be noted that nodes BOT- T 703, BOT-T-A 705, BOT-T-A-B 707 and BOT-T-A-B-EOT 709 have been added to interlocking trees datastore 500e to create interlocking frees datastore 700a.
  • AsCase links 701, 704, 706 and 708 were created and the asResult links 710, 712, 714 and 716 were created.
  • AsCase pointer 720f of node BOT-T 703 is set to 0, the location of node BOT 302.
  • AsResult pointer 722f of node BOT-T 703 is set to 100, the location of node T 308.
  • AsCase pointer 728f of node BOT-T-A 705 is set to 170, the location of node BOT-T 703.
  • AsResult pointer 730f of node BOT-T-A 705 is set to 5 the location of node A 304 and so on.
  • AsCase link 701 is created by adding 170, the location of BOT-T 703 to asCaseList 508f of node BOT 302, so that asCaseList 508f includes both 140, the location of BOT-C 312 and 170, the location of BOT-T 703.
  • AsCase link 704 is created by adding 175, the location of BOT-T-A to asCaseList 724f of node BOT-T 703.
  • AsCase link 706 is created by adding 180, the location of BOT-T-A-B to asCaseList 732f of node BOT-T-A 705 and so on.
  • AsResult link 710 is created by adding 170, the location of BOT-T 703 to asResultList 558f of node T 308, so that asResultList 558f includes both 150, the location of node BOT-C-A-T and 170, the location of BOT-T 703.
  • AsResult link 712 is created by adding 175, the location of BOT-T-A to asResultList 542f of node A 304, so that asResultList 542f includes both 145, the location of node BOT-C-A 314 and 175, the location of BOT-T-A.
  • AsResult link 714 is created by adding 180, the location of node BOT-T-A-B 707 to asResultList 742f of node B 718.
  • asResultList 742f of node B 718 contains only 180, the location of node BOT-T-A-B 707.
  • AsResult link 716 is created by adding 185, the location of BOT-T-A-B-EOT 709 to asResultList 566f of node EOT 310, so that asResultList 566f includes both 155, the location of node BOT-C-A-T-EOT 318 and 185, the location of BOT-T-A-B-EOT 185.
  • input 204 contains "CATS CATHODE” instead of "CAT ".
  • the above process is followed.
  • the interlocking tees datastore of FIG. 5d is created.
  • more input is found so the process continues.
  • the interlocking trees datastore 800a of FIG. 8 has been generated. More input is found.
  • new nodes for BOT-C, BOT-C-A, and BOT-C-A are not created because they already exist.
  • the additional input "S CATHODE” is processed, resulting in the interlocking tees datastore 800b of FIG. 8.
  • FIG. 9a illustrates an interlocking trees datastore 900 generated in one embodiment of the invention.
  • the presence of an indicator in the input such as, in the present example, an end of phrase or end of sentence indicator, (e.g., the period after "FURRY"), may trigger the combination of end products of one level (BOT-C-A-T-EOT 908, BOT-A-R-E-EOT 906, BOT-
  • F-U-R-R-Y-EOT 904 into subcomponents of the next level, that is the end product nodes (e.g., words such as "CATS”, "ARE” and “FURRY") of one level (e.g., level 1 910) may become the root nodes representing dataset elements of the next level (e.g., level 2 912).
  • node "BOT-CATS-ARE-FURRY-EOT" 902 is a single node representing the sentence "CATS ARE FURRY.”
  • nodes representing the dataset elements of the higher level do not contain data or representations of data or concepts; that is elemental root nodes representing dataset elements of a higher level contain only pointers to nodes in a lower level.
  • FIG. 9b shows the content of some of the nodes of FIG. 9a.
  • node BOT-C-A-T-S-EOT of level 1 910 is being used as an elemental root node of level 2 912 (asResultList 914 of node 908 contains 300, the location of node BOS-CATS 916 while the asResult pointer 918 of node BOS-CATS 916 contains 200, the location of node BOT-C-A-T-S- EOT 908) and so on.
  • levels may represent letters, words, sentences, paragraphs, chapters, books, libraries and so on. It will be understood that although in the exemplary figure, two levels of the interlocking trees datastore (level 1 910 and level 2 912), the invention is not so limited. Any number of levels of the interlocking trees datastore can be constructed. Because the universe of this example is text, that is, combinations of letters form words (one level of end products), the result of the combination of words in this embodiment of the invention is a phrase or sentence (another level of end products). Sentences may be combined to form paragraphs, paragraphs may be combined to form chapters or sections and so on.
  • end products may represent entities other than words, phrases, sentences and so on.
  • input 204 comprises data records such as the following:
  • the dataset elements are comprised of fields of information separated by a delimiter such as but not limited to the blank character.
  • the dataset elements are derived from the input, although it will be understood that the invention is not so limited, as described above.
  • Dataset elements encountered thus far in the input data are salesman name, (Bill and Tom), days of the week (Monday, Tuesday), number of items (40, 103, 100, 80, 13), status (sold, trial) and state (PA, NJ).
  • the interlocking trees datastore 1000 of FIG. 10 will result from this input. In FIG. 10, for space reasons, the first portion of the node is not shown.
  • node 1002 is labeled “Bill”
  • node 1002 actually represents “BOT-Bill”.
  • node 1004 actually represents “BOT-Bill-Tuesday” and so on.
  • a method for accessing information stored in the interlocking frees datastore is illusfrated in FIG. 11.
  • a request for information to be retrieved from the interlocking trees datastore is received.
  • the request for information to be retrieved may be converted into a form that can be processed by the interlocking trees accessor.
  • the indicated node is accessed.
  • the appropriate asCaseList and/or asResultList is retrieved.
  • the pointers in the appropriate asCaseList or asResultList are followed to retrieve the information desired.
  • the requested information is collected and returned.
  • datastore 700a including asResult links 328, 330, 332, 334, 710, 712, 714 and 716 can be used to determine the answers to questions of context such as: "What nodes include the letter 'A'?", “What letters does 'A' precede/follow?", "What (or how many) words include the letter 'A'?". "What words contain both the letters 'A' and 'T'?" "What words contain an 'A' preceded by a 'T'?" and innumerable other questions.
  • nodes and end products containing a desired dataset element can be determined by following the pointers contained in the asResultList of the particular node representing the dataset element.
  • the asResultList is accessed and each pointer in the list is followed to the asCase branch associated with that node. If end products are desired, the asCase branch tree is followed to the leaf node of the branch.
  • a request for information is in the form of specifying constraints (which can be seen as either a "context” or a "focus” depending upon perspective).
  • a request for information may be in the form of a list of constraints.
  • the list of constrains may be nested or independent.
  • the asResultList of each listed constraint is found, branches for each node within each asResultList for each constraint are found, the branches are followed to their end products and the intersection of the end products for each branch within each asResultList for each constraint is selected.
  • Nested constraints are found by first constraining the datastore to retrieve a set of data which is then used as the set of data to be further consfrained and so on. Logical operators can be used in defining constraints.
  • Logical operators can take many forms, such as AND, OR, NOT, GreaterThan, XNOR, EqualTo, and the like, and may also be combined. All such logical operators and combinations thereof will be useable within this invention. Comparative mathematical expressions will also be useable, depending of course on context. Find all salesmen having sold more than 100 cars, might be a query depending upon a comparative mathematical expression for an example, where that expression would be salesmen having sales of cars being a number >100.
  • the focus determines the information that is returned.
  • the dataset elements are letters
  • level one end products comprising words and level two end products comprising sentences
  • the specified constraints are specific letters
  • specifying the focus to be "words” will result in the return of only words
  • specifying the focus to be "sentences” will result in the return of only sentences.
  • Retrieval of end products from the first level would result in the return of words.
  • a "focus" identifies the type of information desired within the context.
  • Retrieval of end products from the second level would result in the return of sentences.
  • the asResultList of each word is followed up to the next level and the specified branch is followed to its end product to retrieve the sentence including the specified letters.
  • all end products beginning with a constraint can be found, (e.g., all the words beginning with a specified letter can be found.
  • all end products with a specified constraint, or a specified constraint in a specified position e.g., all the words that have a specific letter in them or all words having a specified letter in a specified column) can be found.
  • all end products that end in a specified constraint can be found (e.g., all words ending in a specified letter.)
  • a plurality of constraints and/or foci may be specified.
  • the elemental root node representing the data element e.g., node B 718
  • its asResultList e.g., asResultList 742f
  • the nodes in the asResultList are accessed. In the example, location 180 is accessed, which holds node BOT-T-A-B 707.
  • node BOT-T-A-B 707 is a node in interlocking frees datastore 700a that includes a representation of the letter "B".
  • the asCase branch e.g., in this example, the branch containing node BOT-T 703, node BOT-T-A 705, node BOT-T-A-B 707 and node BOT-T-A-B-EOT 709, is followed by iteratively retrieving the asCaseList of the accessed node until the asCaseList retrieved is null.
  • asCaseList 740f of node BOT-T-A-B 707 is accessed to retrieve the location 185.
  • the contents of location 185 are accessed to retrieve asCaseList 748f. Because asCaseList 748f is the null pointer, the end product has been reached.
  • Elemental root node A 304 is retrieved from memory and its asResultList 542f is accessed to return the locations 145 and 175.
  • First location 145 is accessed, which contains node BOT-C-A 314.
  • Node BOT-C-A 314 is the first node in the first branch of data structure 700a that includes the letter "A”.
  • the asCase branch (e.g., in this example, the branch containing node BOT-C 312, node BOT-C-A 314, node BOT-C-A-T 316 and node BOT-C-A-T-EOT 318), the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null. For example, to determine that the first word containing dataset element A 304 is "CAT", asCaseList 740f of node BOT-C-A 314 is accessed to retrieve the location 145.
  • the contents of location 145 are accessed to retrieve asCaseList 532f, 150.
  • the contents of location 150 are accessed to retrieve asCaseList 548f, 155.
  • the contents of location 155 are accessed to retrieve asCaseList 572f . Because asCaseList 572f is the null pointer, the end product has been reached.
  • Next location 175 is accessed, which contains node BOT-T-A 705.
  • Node BOT- T-A 705 is the first node in the second branch of interlocking frees datastore 700a that includes the letter "A".
  • the asCase branch e.g., in this example, the branch containing node BOT-T 703, node BOT-T-A 705, node BOT-T-A-B 707 and node BOT- T-A-B-EOT 709
  • the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null.
  • asCaseList 740f of node BOT-T-A-B 707 is accessed to retrieve the location 185.
  • the contents of location 185 are accessed to retrieve asCaseList 748f. Because asCaseList 748f is the null pointer, the end product has been reached.
  • the asCase branch (e.g., in this example, the branch containing node BOT-C 312, node BOT-C-A 314, node BOT-C-A-T 316 and node BOT-C-A-T-EOT 318), the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null. For example, to determine that the first word containing dataset element A 304 is "CAT", asCaseList 740f of node BOT-C-A 314 is accessed to retrieve the location 145.
  • the contents of location 145 are accessed to retrieve asCaseList 532f, 150.
  • the contents of location 150 are accessed to retrieve asCaseList 548f, 155.
  • the contents of location 155 are accessed to retrieve asCaseList 572f . Because asCaseList 572f is the null pointer, the end product has been reached. End product node BOT-C-A-T-EOT 318 contains dataset element A.
  • Next location 175 is accessed, which contains node BOT-T-A 705.
  • Node BOT- T-A 705 is the first node in the second branch of interlocking trees datastore 700a that includes the letter "A".
  • the asCase branch e.g., in this example, the branch containing node BOT-T 703, node BOT-T-A 705, node BOT-T-A-B 707 and node BOT- T-A-B-EOT 709
  • the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null.
  • asCaseList 740f of node BOT-T-A-B 707 is accessed to retrieve the location 185.
  • the contents of location 185 are accessed to retrieve asCaseList 748f.
  • asCaseList 748f is the null pointer, the end product has been reached.
  • End product node BOT-T-A-B-EOT 709 contains dataset element A.
  • elemental root node T 308 is retrieved from memory and its asResultList
  • First location 150 is accessed, which contains node BOT-C-A-T 316.
  • Node BOT-C-A-T 316 is the first node in the first branch of interlocking trees datastore 700a that includes the letter "T".
  • the asCase branch (e.g., in this example, the branch containing node BOT-C 312, node BOT-C-A 314, node BOT-C-A-T 316 and node BOT-C-A-T-EOT 318)
  • the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null. For example, to determine that the first word containing indivisible elemental unit T 308 is "CAT", asCaseList 532f of node BOT-C-A 314 is accessed to retrieve the location 145.
  • the contents of location 145 are accessed to retrieve asCaseList 532f, 150.
  • the contents of location 150 are accessed to retrieve asCaseList 548f, 155.
  • the contents of location 155 are accessed to retrieve asCaseList 572f . Because asCaseList 572f is the null pointer, the end product has been reached. End product node BOT-C-A-T-EOT 318 contains dataset element T.
  • Next location 170 is accessed, which contains node BOT-T 703.
  • Node BOT-T 703 is the first node in the second branch of interlocking frees datastore 700a that includes the letter "T".
  • the asCase branch e.g., in this example, the branch containing node BOT-T 703, node BOT-T-A 705, node BOT-T-A-B 707 and node BOT-T-A-B- EOT 709
  • the asCase links of the branch are followed by iteratively retrieving the asCaseList of the node until the asCaseList retrieved is null.
  • asCaseList 740f of node BOT-T-A-B 707 is accessed to retrieve the location 185.
  • the contents of location 185 are accessed to retrieve asCaseList 748f.
  • asCaseList 748f is the null pointer, the end product has been reached.
  • End product node BOT-T-A-B-EOT 709 contains dataset element T.
  • the end products containing both A and T comprise the intersection of the sets of end products containing A with the set of end products containing T, or, in this case: BOT-C-A-T-EOT 318 and BOT-T-A-B- EOT 709.
  • the retrieved information is displayed or printed.
  • the asCase tree is followed backwards from the end product to the beginning (BOT).
  • the Result pointer (which points to the second portion from which the node was derived) is used to determine what the elemental root node represented. If the interlocking frees datastore comprises more than one level, the Result pointer points to an end product of the lower level and the same process must be followed until the elemental root nodes of the lowest level is retrieved. Referring now to FIG. 10, suppose the total number of units sold on Tuesday are desired.
  • this step can be performed after the intersection of end products is found or this information may be retrieved and stored as the branch is traversed.
  • FIG. 14A-E in which methodologies for evaluating a collection of data represented by an interlocking trees data store which has a count field, such as the count field of Fig. 12B are described.
  • Fig. 1 A the task 40a is to evaluate some desired data from the data store of interlocking tree structure we have been discussing. To do this, we must first make a determination 40b of relevant context. This is described in Fig. 14B.
  • the relevant context 41a starts by a selection of desired values 41b, in which the root nodes having such values are identified. Next all the paths with only the values selected are discovered.
  • step 4 Id that is, disregarding all paths having paths with non-conforming values, can be combined with step 41c in various ways to make the process more efficient, however such combination will of necessity depend upon the kind of data and values within the data store so they are illustrated as separate steps here.
  • the next step is to determine either the focus or the position or both 40c, depending on the nature of the query.
  • Fig. 14D we can see that position is determined 42a by finding 42b the root node related to the value of the node of the current location.
  • the focus determination 40c is made by selecting the focus constraint list of values and thereby identifying the relevant root nodes 43b.
  • the methods and system described above may be embodied in the form of program code (i.e., instructions) stored on a computer-readable medium, such as a floppy diskette, CD-ROM, DVD-ROM, DVD-RAM, hard disk drive, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention.
  • program code i.e., instructions
  • the present invention may also be embodied in the form of program code that is transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, over a network, including the Internet or an intranet, or via any other form of transmission, wherein, when the program code is received and loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention.
  • a machine such as a computer
  • the program code When implemented on a general-purpose processor, the program code combines with the processor to provide a unique apparatus that operates analogously to specific logic circuits.
  • the program code may be implemented in a high level programming language, such as, for example, C, C++, or Java. Alternatively, the program code may be implemented in assembly or machine language. In any case, the language may be a compiled or an interpreted language.
  • the interlocking frees datastore can be implemented using object-oriented technologies, procedural technologies, a hybrid thereof or any other suitable methodology.
  • object-oriented technologies procedural technologies
  • a hybrid thereof any other suitable methodology.
  • the examples presented show the dataset elements stored in a memory, one of skill in the art will understand that this functionality can be implemented in many different ways.
  • the invention contemplates the use of many different sets of dataset elements of many different universes stored on multiple remotely located machines.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

L'invention concerne un système et un procédé pour générer et/ou accéder à une mémoire de données à structure arborescente comprenant une forêt d'arbres interconnectés. Selon l'invention, cette mémoire de données à structure arborescente comprend un premier arbre qui dépend d'un premier noeud racine et qui peut comprendre une pluralité de branches. Chacune des branches du premier arbre se termine en noeud feuille. Chaque noeud feuille peut représenter un produit final ou un noeud de sous-composant. Une deuxième racine de cette même mémoire de données à structure arborescente est reliée à chaque noeud feuille représentant un produit final. Cette mémoire de données à structure arborescente comprend enfin une pluralité d'arbres dans lesquels le noeud racine de chacun de ces arbres peut être qualifié de noeud élémentaire. Le noeud racine de chacun de ces arbres peut être relié à un ou plusieurs noeuds dans une ou plusieurs branches du premier arbre. Les noeuds de la mémoire de données à structure arborescente contiennent uniquement des pointeurs vers d'autres noeuds de ladite mémoire et ils peuvent contenir des champs additionnels, un de ces champs pouvant être un champ de comptage. L'invention concerne également des moyens permettant d'obtenir des probabilités de coïncidence de variables relatives à des noeuds particuliers, identifiées par des contextes voulus dans un ou plusieurs foyers définis. L'application d'opérateurs logiques à des demandes concernant de telles variables est en outre présentée.
PCT/US2004/005954 2003-03-10 2004-02-27 Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles WO2004081710A2 (fr)

Priority Applications (6)

Application Number Priority Date Filing Date Title
EP04715724A EP1606723A4 (fr) 2003-03-10 2004-02-27 Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles
CA002518797A CA2518797A1 (fr) 2003-03-10 2004-02-27 Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles
BRPI0408282-6A BRPI0408282A (pt) 2003-03-10 2004-02-27 sistema e método para armazenar e acessar dados em armazenamento de dados em árvores de conexão
JP2006508890A JP2006521639A (ja) 2003-03-10 2004-02-27 インタロック状態のツリーデータストアにデータを記憶し、このデータにアクセスするためのシステムおよび方法
NZ542716A NZ542716A (en) 2003-03-10 2004-02-27 System and method for storing and accessing data in an interlocking trees datastore
AU2004219257A AU2004219257A1 (en) 2003-03-10 2004-02-27 System and method for storing and accessing data in an interlocking trees datastore

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US10/385,421 2003-03-10
US10/385,421 US6961733B2 (en) 2003-03-10 2003-03-10 System and method for storing and accessing data in an interlocking trees datastore
US10/666,382 US7158975B2 (en) 2003-03-10 2003-09-19 System and method for storing and accessing data in an interlocking trees datastore
US10/666,382 2003-09-19

Publications (2)

Publication Number Publication Date
WO2004081710A2 true WO2004081710A2 (fr) 2004-09-23
WO2004081710A3 WO2004081710A3 (fr) 2004-12-23

Family

ID=32993817

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/005954 WO2004081710A2 (fr) 2003-03-10 2004-02-27 Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles

Country Status (7)

Country Link
EP (1) EP1606723A4 (fr)
JP (1) JP2006521639A (fr)
KR (1) KR20060016744A (fr)
AU (1) AU2004219257A1 (fr)
BR (1) BRPI0408282A (fr)
CA (1) CA2518797A1 (fr)
WO (1) WO2004081710A2 (fr)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1815439A2 (fr) * 2004-11-08 2007-08-08 Unisys Corporation Methode et appareil pour une interface destinee a un affichage graphique de donnees
EP1955138A2 (fr) * 2005-10-24 2008-08-13 Unisys Corporation Actualisation des informations dans une base de connaissances a arborescence d'interverrouillage
EP2002328A2 (fr) * 2006-03-10 2008-12-17 Unisys Corporation Procede de traitement de courant de particules d'entree pour la creation de niveaux superieurs de base de connaissances
EP2011000A2 (fr) * 2006-03-20 2009-01-07 Unisys Corporation Procédé de traitement de données de capteur dans un flux de particules au moyen d'une mémoire k
EP2011001A2 (fr) * 2006-04-04 2009-01-07 Unisys Corporation Procede pour determiner un emplacement k le plus probable

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1948299A (en) * 1997-12-29 1999-07-19 Infodream Corporation Extraction server for unstructured documents
US6654761B2 (en) * 1998-07-29 2003-11-25 Inxight Software, Inc. Controlling which part of data defining a node-link structure is in memory
US6108698A (en) * 1998-07-29 2000-08-22 Xerox Corporation Node-link data defining a graph and a tree within the graph
US6477683B1 (en) * 1999-02-05 2002-11-05 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6721723B1 (en) * 1999-12-23 2004-04-13 1St Desk Systems, Inc. Streaming metatree data structure for indexing information in a data base
JP3601416B2 (ja) * 2000-06-13 2004-12-15 日本電気株式会社 情報検索方法及び装置
US6735595B2 (en) * 2000-11-29 2004-05-11 Hewlett-Packard Development Company, L.P. Data structure and storage and retrieval method supporting ordinality based searching and data retrieval
GB0100331D0 (en) * 2001-01-06 2001-02-14 Secr Defence Method of querying a structure of compressed data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of EP1606723A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1815439A2 (fr) * 2004-11-08 2007-08-08 Unisys Corporation Methode et appareil pour une interface destinee a un affichage graphique de donnees
EP1815439A4 (fr) * 2004-11-08 2008-09-03 Unisys Corp Methode et appareil pour une interface destinee a un affichage graphique de donnees
EP1955138A2 (fr) * 2005-10-24 2008-08-13 Unisys Corporation Actualisation des informations dans une base de connaissances a arborescence d'interverrouillage
EP1955138A4 (fr) * 2005-10-24 2010-01-13 Unisys Corp Actualisation des informations dans une base de connaissances a arborescence d'interverrouillage
EP2002328A2 (fr) * 2006-03-10 2008-12-17 Unisys Corporation Procede de traitement de courant de particules d'entree pour la creation de niveaux superieurs de base de connaissances
EP2002328A4 (fr) * 2006-03-10 2010-03-24 Unisys Corp Procede de traitement de courant de particules d'entree pour la creation de niveaux superieurs de base de connaissances
EP2011000A2 (fr) * 2006-03-20 2009-01-07 Unisys Corporation Procédé de traitement de données de capteur dans un flux de particules au moyen d'une mémoire k
EP2011000A4 (fr) * 2006-03-20 2010-03-31 Unisys Corp Procédé de traitement de données de capteur dans un flux de particules au moyen d'une mémoire k
EP2011001A2 (fr) * 2006-04-04 2009-01-07 Unisys Corporation Procede pour determiner un emplacement k le plus probable
EP2011001A4 (fr) * 2006-04-04 2010-01-13 Unisys Corp Procede pour determiner un emplacement k le plus probable

Also Published As

Publication number Publication date
EP1606723A2 (fr) 2005-12-21
CA2518797A1 (fr) 2004-09-23
WO2004081710A3 (fr) 2004-12-23
BRPI0408282A (pt) 2006-03-07
AU2004219257A1 (en) 2004-09-23
JP2006521639A (ja) 2006-09-21
KR20060016744A (ko) 2006-02-22
EP1606723A4 (fr) 2006-12-20

Similar Documents

Publication Publication Date Title
US7158975B2 (en) System and method for storing and accessing data in an interlocking trees datastore
US20070143527A1 (en) Saving and restoring an interlocking trees datastore
US20080065661A1 (en) Saving and restoring an interlocking trees datastore
JPH06103497B2 (ja) レコード検索方法及びデータベース・システム
US7363284B1 (en) System and method for building a balanced B-tree
JP2001331509A (ja) リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体
Puntambekar Data structures
WO2004081710A2 (fr) Systeme et procede pour stocker et acceder a des donnees dans une memoire de donnees comprenant des arbres interverrouilles
US8516004B2 (en) Method for processing K node count fields using an intensity variable
US8238351B2 (en) Method for determining a most probable K location
Pai A Textbook of Data Structures and Algorithms, Volume 3: Mastering Advanced Data Structures and Algorithm Design Strategies
Usmani et al. DNA-Based Storage of RDF Graph Data: A Futuristic Approach to Data Analytics
Adhikary et al. Unveiling the Power of Data Structures: Exploring Applications in Diverse Computing Domains
Dandamudi et al. Improved partial-match search algorithms for BD trees
Strate et al. Index Storage Fundamentals
Leyton The design and implementation of a relational database management system
Su Cdllular § Logic'Devic Corj, ceptsaijdApplication

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DPEN Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed from 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2518797

Country of ref document: CA

Ref document number: 2006508890

Country of ref document: JP

Ref document number: 2004219257

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 1020057016962

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 2004219257

Country of ref document: AU

Date of ref document: 20040227

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 542716

Country of ref document: NZ

WWP Wipo information: published in national office

Ref document number: 2004219257

Country of ref document: AU

WWE Wipo information: entry into national phase

Ref document number: 2004715724

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 20048113697

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2004715724

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020057016962

Country of ref document: KR

ENP Entry into the national phase

Ref document number: PI0408282

Country of ref document: BR

DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)