KR20060016744A - System and method for storing and accessing data in an interlocking trees datastore - Google Patents

System and method for storing and accessing data in an interlocking trees datastore Download PDF

Info

Publication number
KR20060016744A
KR20060016744A KR1020057016962A KR20057016962A KR20060016744A KR 20060016744 A KR20060016744 A KR 20060016744A KR 1020057016962 A KR1020057016962 A KR 1020057016962A KR 20057016962 A KR20057016962 A KR 20057016962A KR 20060016744 A KR20060016744 A KR 20060016744A
Authority
KR
South Korea
Prior art keywords
node
nodes
root
context
list
Prior art date
Application number
KR1020057016962A
Other languages
Korean (ko)
Inventor
제인 캠벨 마자가티
Original Assignee
유니시스 코포레이션
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 유니시스 코포레이션 filed Critical 유니시스 코포레이션
Publication of KR20060016744A publication Critical patent/KR20060016744A/en

Links

Images

Classifications

    • 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
    • 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

Abstract

A tree-based data store comprising a forest of interconnected trees is generated and/or accessed. The tree-based data store comprising a first tree that depends from a first root node and may include a plurality of branches. Each of the branches of the first tree ends in a leaf node (350). Each leaf node may represent an end product, or a subcomponent node. A second root of the same tree-based data store is linked to each leaf node representing an end product (356). Finally, the tree- based data store comprises a plurality of trees in which the root node of each of these trees can be described as an elemental node. The root node of each of these trees may be linked to one or more nodes in one or more branches of the first tree (9a). The nodes of the tree-based data store contain only pointers to other nodes in the tree-based data store, and may contain additional fields wherein one such may be a count field. Additionally, means to get probabilities of the coincidence of variables related to particular nodes as identified by desired contexts within one or more defined foci are described. Further, the application of logical operators to queries regarding such variables is shown.

Description

인터라킹 트리 데이터스토어에서의 데이터 저장과 액세스 방법 및 시스템{SYSTEM AND METHOD FOR STORING AND ACCESSING DATA IN AN INTERLOCKING TREES DATASTORE}TECHNICAL AND METHOD FOR STORING AND ACCESSING DATA IN AN INTERLOCKING TREES DATASTORE}

본 출원은 2003.3.10 자 미국특허출원 US-A 10/385,421 호의 CIP 출원이다. This application is a CIP application of US Patent Application US-A 10 / 385,421, filed March 31, 2003.

본 발명은 연산 분야에 관한 발명으로서, 데이터를 데이터 기억 장치에 저장하고 데이터 기억 장치의 데이터에 액세스함에 관련된 발명이다. The present invention relates to the field of arithmetic, and is an invention related to storing data in a data storage device and accessing data in the data storage device.

소프트웨어 개발시 개발자가 취하는 한가지 기본적인 선택사항은 데이터의 조직 및 참조를 촉진시키는 데 적합한 데이터 구조를 선택하는 것이다. 여러 다른 종류의 데이터 구조들이 가용하다. 가령, 링크 리스트, 스택, 트리, 어레이 등등이 있다. 각각의 데이터 구조는 일부 장점 및 일부 제약사항들을 가진다.One basic option developers take in software development is to choose the right data structure to facilitate the organization and reference of the data. Many different kinds of data structures are available. For example, link lists, stacks, trees, arrays, and so on. Each data structure has some advantages and some limitations.

한가지 자주 사용되는 데이터 구조는 "트리"이다. 트리의 한가지 공통 형태는 한 루트(root)로부터 다른 한개의 내부 노드로 함께 링크된, 토드라 불리는 하정된 세트의 소자들로 구성된다. 이때, 각각의 노드는 한개 이상의 노드에 연결될 수 있고, 결국 다수의 리프 노드(leaf node)에서 종료된다. 일반적으로, 루트에 인접한 노듣르은 루트로부터 멀리 E러어진 노드들의 페어런트 노드이다. 루트로부터 멀리 떨어진 노드들은 페어런트 노드의 차일드 노드라 불린다. 데이터는 노드에 저 장되는 것이 일반적이며, 루트로부터 노드를 거쳐 리프(leaf)까지, 그리고 페어런트 노드로부터 차일드 노드까지 링크를 이용하여 참조될 수 있다. 결과적으로, 트리 구조의 노드에 저장되는 데이터에 수직구조/시퀀스 관계가 기여할 수 있다. 수직구조 관계는 콘텍스트 관계(contextual relationship)로 이해될 수 있다. 이때, 각각의 노드는 그 페어런트 노드의 콘텍스트 내에서 액세스가능하다. One frequently used data structure is a "tree". One common type of tree consists of a definite set of elements called todras, linked together from one root to another internal node. At this point, each node may be connected to one or more nodes, eventually ending in multiple leaf nodes. In general, a noir adjacent to a route is a parent node of nodes far away from the route. Nodes far from the root are called child nodes of the parent node. Data is typically stored at nodes, and can be referenced using links from root to node to leaf, and from parent node to child node. As a result, vertical / sequence relationships can contribute to the data stored in the nodes of the tree structure. Vertical relationships can be understood as contextual relationships. At this point, each node is accessible within the context of its parent node.

트리 데이터 구조의 한가지 제약사항은 트리가 한개의 수직구조만을 나타낼 수 있다는 점이다. 예를 들어, 판매 활동을 위한 루트 노드가 루트 노드로부터 분기되는 다수의 노드들을 가진다. 이대, 각각의 노드는 특정 판매자를 나타낸다. 각각의 판매자 노드는 차일드 노드를 가질 수 있고, 각각의 판매자 차일드 노드는 가령, 특정 주(state)에서의 판매를 나타낸다. 따라서, 이 트리는 판매자의 콘텍스트 내에서 주 정보에 대해 용이하게 액세스될 수 있다. 즉, 이 트리는 질문, "판매자 밥(Bob)은 어떤 주에서 판매하는가?"에 효율적으로 응답하는 데 사용될 수 있다. 판매자에 의해 상태 데이터에 액세스하는 대신에, 상태 콘텍스트 내의 판매자 데이터가 필요할 경우(즉, 우리는 질문에 대답하고 싶다: "판매자는 텍사스 주에서 무엇을 판매하는가?), 또다른 트리가 생성되어야 하고, 이때, 노드들은 루트 판매자 활동으로부터 분기되는 주들을 나타낸다. 주를 나타내는 차일드 노드는 이들로부터 분기될 수 있다. 또다른 트리를 생성하는 대안의 방법은 요망 정보를 추출하도록 전체 트리를 양방향으로 가로지르는 것이다. One limitation of tree data structures is that the tree can represent only one vertical structure. For example, a root node for sales activity has a number of nodes branching from the root node. In this instance, each node represents a particular seller. Each seller node may have a child node, and each seller child node, for example, represents a sale in a particular state. Thus, this tree can be easily accessed for main information within the seller's context. In other words, this tree can be used to efficiently answer the question, "Which state does Bob sell?" Instead of accessing the state data by the seller, if we need the seller data in the state context (that is, we want to answer the question: "What does the seller sell in Texas?), Another tree must be created The nodes represent states that diverge from the root seller activity, and child nodes representing the states can be diverted from them.An alternative way to create another tree is to traverse the entire tree in both directions to extract the desired information. will be.

데이터 내의 모든 가능한 콘텍스트 관계를 한개의 구조로 레코딩할 수 있다면, 그래서, 표준 트리 데이터 구조로 구현할 수 없었던 효율성을 달성할 수 있다 면 바람직할 것이다. It would be desirable if all possible contextual relationships within the data could be recorded in one structure, so that an efficiency that could not be realized with a standard tree data structure could be achieved.

상호연결된 트리들의 숲에서 한개 이상의 레벨들을 포함하는 트리-기반 데이터스토어가 발생되어 액세스된다. 트리-기반 데이터스토어의 각각의 레벨은 제 1 루트 노드로부터 분기되는 제 1 트리를 포함하며, 상기 제 1 트리는 다수의 브랜치들을 포함할 수 있다. 제 1 루트는 레벨 시작 인디케이터(level begin indicator)같은 개념(concept)을 나타낼 수 있다. 제 1 트리의 각각의 브랜치는 리프 노드로 끝난다. 각각의 리프 노드는 최종 프로덕트를 나타낼 수 있다. 트리-기반 데이터스토어의 동일 레벨의 제 2 루트는 최종 프로덕트를 나타내는 제 1 트리의 각각의 리프 노드에 연결된다. 따라서, 제 2 루트는 제 1 루트의 서브세트이거나, 제 1 트리의 역전 순서에 대한 루트이다. 그러나, 제 1 트리가 복제되지는 않는다. 제 2 루트는 레벨 종료 인디케이터(level end indicator)같은 개념(concept)을 나타낼 수 있다. 마지막으로, 트리-기반 데이터스토어는 다수의 트리를 포함하는 데, 이때, 이 트리들 각각의 루트 노드는 데이터세트 요소, 또는 데이터세트 요소의 표현같은 데이터를 포함할 수 있다. 이러한 종류의 루트 노드를 "요소 루트 노드"(elemental root node)라 불린다. 요소 루트 노드는 복제되지 않은 제 1 트리의 한개 이상 브랜치들의 한개 이상의 노드에 링크될 수 있다. 트리-기반 데이터베이스의 비-루트 노드들은 트리-기반 데이터스토어의 타노드들에 대한 포인터들만을 지닌다. 트리-기반 데이터스토어의 각각의 레벨을 포함하는 트리들의 숲에서 트리들의 루트들은 포인터들로 또한 구성되나, 이 루트가 정보를 표현하는 데이터를 추가적으로 지닐 수 있다. 트리-기반 데이터스토어의 모든 다른 노드들은 다른 노드들을 포인팅하기만 하며, 데이터를 보유하지 않는다. 한 실시예에서, 데이터는 문자에 관련된 정수, 화소 표현, 시작 인디케이터, 종료 인디케이터, 필드 인디케이터 시작 등등과 같은 조건에 해당한다. 상술한 트리-기반 데이터스토어의 여러 레벨들이 발생되고 액세스될 수 있다. 하위 레벨의 최종 프로덕트들이 다음 레벨의 요소 루트 노드가 된다. A tree-based datastore containing one or more levels in the forest of interconnected trees is generated and accessed. Each level of the tree-based datastore includes a first tree branching from a first root node, wherein the first tree may include a number of branches. The first route may represent a concept such as a level begin indicator. Each branch of the first tree ends with a leaf node. Each leaf node may represent a final product. A second root of the same level of the tree-based datastore is connected to each leaf node of the first tree representing the final product. Thus, the second route is a subset of the first route, or a route to the reverse order of the first tree. However, the first tree is not duplicated. The second route may represent a concept such as a level end indicator. Finally, a tree-based datastore includes a number of trees, where the root node of each of these trees may contain data, such as dataset elements, or representations of dataset elements. This kind of root node is called an "elemental root node". The element root node may be linked to one or more nodes of one or more branches of the first tree that are not replicated. Non-root nodes of a tree-based database only have pointers to other nodes of the tree-based datastore. The roots of the trees in the forest of trees containing each level of the tree-based datastore are also composed of pointers, but this route may additionally carry data representing information. All other nodes in the tree-based datastore only point to other nodes and do not hold data. In one embodiment, the data corresponds to conditions such as integers, pixel representations, start indicators, end indicators, field indicator start, etc., associated with the character. Several levels of the tree-based datastore described above can be generated and accessed. The final product at the lower level becomes the element root node at the next level.

인터라킹 트리 데이터스토어가 발생되고 액세스된다. 이 데이터스토어는 제 1 루트(다른 말로 "프라이머리 루트")로부터 분기하는 한개의 애즈케이스 트리를 형성하는 애즈케이스 브랜치들과, 다중 루트로부터 분기하는 다수개의 애즈리절트 트리를 형성하는 애즈리절트 브랜치들로 구성되는 다중-루트 트리를 포함한다. 애즈리절트 트리의 한가지 특별한 사례는 상술한 애즈케이트 트리의 한개 이상의 최종 프로덕트 리프 노드들에게 링크되는 한개의 루트 노드를 포함한다. 따라서, 이 애즈리절트 트리는 역전된 순서로 최종 프로덕트에서 종료되는 애즈케이스 트리의 브랜치들에 용이하게 액세스할 수 있다. 이 애즈리절트 트리는 다음 레벨에 대한 요소 루트 노드를 정의하는 데도 사용될 수 있다. 이 요소 루트 노드들은 하위 레벨의 최종 프로덕트 세트로 구성되는, 다음 레벨에 대한 데이터세트 요소들을 표현할 수 있다. An interlocking tree datastore is generated and accessed. This datastore contains ascension branches forming one assortment tree branching from the first root (in other words "primary root"), and asreacting forming multiple assortment trees branching from multiple roots. It contains a multi-root tree composed of branches. One particular example of an Astree tree includes one root node that is linked to one or more final product leaf nodes of the Assay Tree described above. Thus, this Astree can easily access the branches of the Astrees tree that end up in the final product in the reversed order. This results tree can also be used to define element root nodes for the next level. These element root nodes can represent dataset elements for the next level, consisting of the final product set at the lower level.

인터라킹 트리 데이터스토어는 서브컴포넌트를 표현하는 노드를 형성하기 위해 데이테세트 요소를 표현하는 노드와 레벨 시작 인디케이터를 표현하는 노드를 조합함으로서 입력 파일에 나타나는 데이터세트 요소들 간의 관계에 관한 정보를 캡처할 수 있다. 서브컴포넌트 노드는 데이터세트 요소를 표현하는 노드와 조합되어, 반복형 서브프로세스에서 또다른 서브컴포넌트 노드를 발생시킬 수 있다. 서브컴포넌트 노드를 레벨 종료 인디케이터를 표현하는 노드와 조합함으로서, 레벨 종료 프로덕트 노드를 생성할 수 있다. 서브컴포넌트 생성을 위해 레벨 시작 노드를 데이터세트 요소 노드와 조합하고, 그리고 서브컴포넌트를 데이터세트 요소 노드와 조합하는 프로세스는 반복적으로 실행되어, 한 레벨에 다수개의 애즈케이스 브랜치들을 발생시킨다. 애즈리절트 트리들이 애즈케이스 트리의 노드들에 링크될 수 있으며, 가령, 애즈케이스 트리의 한개 이상의 노드를 포인팅하는 애즈리절트 트리의 루트에 의해 링크될 수 있다. An interlocking tree datastore captures information about the relationship between dataset elements that appear in the input file by combining nodes representing dataset elements and nodes representing level start indicators to form nodes representing subcomponents. can do. Subcomponent nodes can be combined with nodes representing dataset elements to generate another subcomponent node in an iterative subprocess. By combining a subcomponent node with a node representing a level end indicator, a level end product node can be created. The process of combining the level start node with the dataset element node and subcomponent with the dataset element node for subcomponent generation is iteratively executed, generating multiple asch branches in a level. As Trees may be linked to the nodes of the As Tree, such as by the root of the As Tree, which points to one or more nodes of the As Tree.

한 레벨의 최종 프로덕트 노드는 다음 레벨의 서브컴포넌트들을 발생시키도록 조합되는 데이터세트 요소들을 표현하는 요소 루트 노드일 수 있다. 이 프로세스는 여러번 반복될 수 있고, 이에 따라, 애즈케이스 트리들의 임의의 수의 레벨들을 생성할 수 있다. 추가적으로, 한 레벨의 요소 루트 노드들이 분해되어, 하위 레벨 노드 및 루트들을 발생시킬 수 있다. 한 레벨의 최종 프로덕트 노드들은 하위 레벨 종료 인디케이터를 표현하는 루트 노드를 가진 하위 레벨의 애즈리절트 트리에 해당하는, 하위 레벨의 애즈리절트 트리의 특정 사례를 통해 다음 레벨의 요소 루트 노드들이 된다. 따라서, 하위 레벨 종료 인디케이터를 표현하는 루트 노드를 가진 하위 레벨의 애즈리절트 트리는 하위 레벨의 애즈케이스 트리의 역전에 대한 제 2 루트이다. The final product node of one level may be an element root node that represents the dataset elements that are combined to generate the next level of subcomponents. This process may be repeated many times, thus generating any number of levels of the case trees. Additionally, one level of element root nodes can be resolved to generate lower level nodes and routes. The final product nodes of one level become element root nodes of the next level through a specific instance of the lower level tree, which corresponds to the lower level tree of trees with the root node representing the lower level end indicator. Thus, the lower level tree of interest with the root node representing the lower level end indicator is the second root for the inversion of the lower level of the case tree.

발명의 한 실시예에서, 노드들이 생성됨에 따라, 애즈케이스 및 애즈리절트 링크들이 각각의 레벨에서 동시에 발생된다. 애즈케이스 브랜치들은 입력 처리에 따라 애즈케이스 링크들의 발생에 의해 생성된다. 각 레벨에서의 애즈케이스 트리의 애즈케이스 브랜치들은 해당 레벨의 각각의 서브컴포넌트와 최종 프로덕트가 데이터세트 요소들을 표현하는 노드들의 순차적 조합을 통해 어떻게 생성되었는 지에 관한 직접적인 레코드를 제공한다. 애즈케이스 트리의 브랜치들은 트리 내 노드들의 한가지 가능한 수직구조 관계를 또한 표현한다. In one embodiment of the invention, as nodes are created, the cases and the results links are generated simultaneously at each level. Ascase branches are created by the generation of ascase links in accordance with input processing. Ascase branches of the Ascase tree at each level provide a direct record of how each subcomponent and final product of that level was created through a sequential combination of nodes representing the dataset elements. The branches of the ass tree also represent one possible vertical relationship of the nodes in the tree.

애즈리절트 링크들의 발생은 일련의 인터라킹 트리들을 생성하며, 각각의 인터라킹 트리는 별도의 루트로부터 분기된다. 한 레벨에 이러한 종류의 루트가 다수개 존재할 수 있다. 이는 입력에 나타나는 데이터세트 요소들 간의 모든 나머지 관례를 레코딩하는 결과를 가진다. 상술한 정보는 트리들의 노드에 직접적으로 저장되는것보다, 구축된 인터라킹 트리들의 숲 구조에 의해 캡처된다. 그래서, 입력으로 수신된 데이터가, 구축된 인터라킹 트리들의 숲의 구조를 결정한다. 애즈리절트 트리 숲의 구조는 이렇게 저장된 정보가 요구되는 어떤 다른 컨텍스트에서도 액세스될 수 있음을 보장한다. 따라서, 데이터스토어는 자체-조직형이며, 이는 아래 설명으로부터 명백해질 것이다. The generation of associative links creates a series of interlocking trees, each branching from a separate root. There can be multiple routes of this kind at one level. This results in recording all remaining conventions between the dataset elements appearing in the input. The above information is captured by the forest structure of the constructed interlocking trees, rather than being stored directly at the nodes of the trees. Thus, the data received as input determines the structure of the forest of constructed interlocking trees. The structure of the Astree tree forest ensures that this stored information can be accessed in any other context that requires it. Thus, the datastore is self-organizing, which will be apparent from the description below.

추가적으로, 본 발명의 동작은 트리-기반 데이터스토어를 발생시키는 시스템 상에서 실행될 것이다. 이 시스템은, 프로세서, 프로세서에 연결된 메모리, 그리고 트리-기반 데이터스토어의 한개 이상의 레벨을 생성하기 위한 트리-기반 데이터스토어 발생기를 포함할 수 있다. 트리-기반 데이터스토어의 한개 이상의 레벨은 제 1 트리, 제 2 트리, 제 3 트리를 포함하며, 상기 제 1 트리는 제 1 루트와, e사의 노드 중 한개 이상의 노드를 포함하고, 상기 제 2 트리는 제 2 루트와 상기 제 1 트리의 한개 이상의 노드를 포함하며, 상기 제 3 트리는 제 3 루트와 상기 제 1 트리의 다수의 노드 중 한개 이상의 노드를 포함한다. In addition, the operation of the present invention will be executed on a system that generates a tree-based datastore. The system can include a processor, a memory coupled to the processor, and a tree-based datastore generator for generating one or more levels of the tree-based datastore. One or more levels of the tree-based datastore comprise a first tree, a second tree, and a third tree, the first tree comprising a first root and one or more nodes of node e, and the second tree A second root and one or more nodes of the first tree, wherein the third tree comprises a third root and one or more nodes of the plurality of nodes of the first tree.

카운트 필드와 노드들간 링크를 지닌 노드들을 포함하는 인터라킹 트리 데이터스토어로부터, 인터리킹 데이터스토어에 의해 표현되는 데이터의 컬렉션을 평가하기 위해, 아래의 방법이 소개된다. 이때, 상기 노드들은 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드로 구성되는 루트 노드들을 포함하며, 그외 다른 노드들을 포함할 수도 있다. 또한, 상기 노드들은 소오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함한다. 그리고 애즈리절트 및 애즈케이스 링크들이 존재하여, 상기 애즈리절트 링크들은 루트 노드와 그외 다른 노드 사이를 포인팅하고, 상기 애즈케이스 링크들은 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며 그 사이이의 경로에 한개 이상의 서브컴포넌트 노드를 포함한다. 상기 방법은, The following method is introduced to evaluate a collection of data represented by an interleaving datastore from an interlocking tree datastore that includes nodes with a count field and links between nodes. In this case, the nodes include root nodes composed of one or more primary root nodes and one or more element root nodes, and may include other nodes. The nodes also include one or more ends of a thought node, one or more subcomponent nodes, and one or more end product nodes. And there are as result and as case links, the as links point between a root node and other nodes, and the as case links point between one or more primary root nodes and one or more final product nodes Include one or more subcomponent nodes in the path between them. The method,

- 상기 데이터스토어 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the datastore,

- 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하며, 그리고Determine a focus and its corresponding value within the context, and

- 상기 콘텍스트와 상기 포커스의 해당 값들을 이용하여 상기 콘텍스트 내 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus in the context using the corresponding values of the context and the focus.

단계들을 포함한다. Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는, The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression;

- 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Intersect ascase links between subcomponent nodes to each corresponding final product node of the subcomponent node,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다. Steps.

상기 논리식은 AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO 중 어느 한가지를 포함하는 한개이상의 논리 연산자와, 상기 논리 연산자의 임의의 조합을 포함한다. 그러나 이에 제한받지는 않는다. The logical expression includes one or more logical operators including any one of AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO, and any combination of the logical operators. But not limited to this.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는,The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; ,

- 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다.Steps.

인터라킹 트리 데이터스토어에 의해 표현되는 데이터 컬렉션을 평가하는 방법은, The method of evaluating the collection of data represented by an interlocking tree datastore is:

- 상기 데이터세트 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the dataset,

- 상기 콘텍스트 내의 각각의 경로를 따라 위치를 결정하며,Determine a location along each path within the context,

- 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하고, 그리고Determine a focus and its corresponding value in the context, and

- 상기 콘텍스트 내의 상기 경로를 따라, 상기 위치와 상기 최종 프로덕트 사이에서 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus between the position and the final product, along the path in the context.

단계들을 포함할 수도 있다. It may also include steps.

콘텍스트의 각각의 경로를 따라 위치를 결정하는 상기 단계는,The step of determining a location along each path of the context,

- 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개의 루트 노드를 선택하고, 그리고 상기 루트 노드나 요소 루트 노드의 애즈리절트리스트로부터 콘텍스트의 각 경로 내 그 대응하는 서브컴포넌트 노드까지 가로지르는Selecting one root node from a root node or element root node of the interlocking tree datastore, and from the aslist list of the root node or element root node to its corresponding subcomponent node in each path of the context. Across

단계를 포함한다. Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는, The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression;

- 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Intersect ascase links between subcomponent nodes to each corresponding final product node of the subcomponent node,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다. Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는,The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; ,

- 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다. Steps.

인터라킹 트리 데이터스토어에 의해 표현되는 데이터 컬렉션을 평가하는 또한가지 방법은,Another way to evaluate the collection of data represented by an interlocking tree datastore is:

- 상기 데이터세트 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the dataset,

- 상기 콘텍스트 내의 각각의 경로를 따라 위치를 결정하며,Determine a location along each path within the context,

- 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하고, 그리고Determine a focus and its corresponding value in the context, and

- 상기 콘텍스트 내의 상기 경로를 따라, 상기 위치와 상기 프라이머리 루트 사이에서 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus between the location and the primary root, along the path in the context

단계들을 포함한다. Steps.

콘텍스트의 각각의 경로를 따라 위치를 결정하는 상기 단계는,The step of determining a location along each path of the context,

- 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개의 루트 노드를 선택하고, 그리고 상기 루트 노드나 요소 루트 노드의 애즈리절트리스트로부터 콘텍스트의 각 경로 내 그 대응하는 서브컴포넌트 노드까지 가로지르는Selecting one root node from a root node or element root node of the interlocking tree datastore, and from the aslist list of the root node or element root node to its corresponding subcomponent node in each path of the context. Across

단계를 포함한다. Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는, The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression;

- 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Intersect ascase links between subcomponent nodes to each corresponding final product node of the subcomponent node,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다. Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는,The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; ,

- 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes,

- 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and

- 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count

단계들을 포함한다.Steps.

콘텍스트 및 그 해당 값을 결정하는 상기 단계는, The step of determining the context and its corresponding value,

- 상기 인터라킹 트리 데이터스토어의, 최종 프로덕트 노드에 의해 모든 가능한 경로들을 선택하고, 요소 루트 노드에 대한 링크를 가지는 경로들을 무시하며, 이때, 상기 경로의 값 필드들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트는 무시되지 않은 경로만을 따라는 노드를 포함하며, 그리고Select all possible paths by the final product node of the interlocking tree datastore and ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression and thus The set of derived nodes that form the context includes nodes that follow only the paths that are not ignored, and

- 콘텍스트 카운트를 얻로고 폐기되지 않은 한개 이상의 경로의 최종 프로덕트 노드들의 카운트를 추가하는Get a context count and add a count of the final product nodes of one or more paths not discarded

단계를 포함한다.Steps.

포커스 및 그 해당 값을 결정하는 상기 단계는, The step of determining the focus and its value,

- 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터, 한개 이상의 루트 노드의 포커스 제약사항 리스트를 선택하고, 이때, 상기 한개 이상의 루트 노드는 논리식에 의해 서로 연계되며, Select a focus constraint list of one or more root nodes from a root node or element root node of the interlocking tree datastore, wherein the one or more root nodes are associated with each other by a logical expression;

- 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 임의의 대응하는 서브컴포넌트까지 가로지름으로서, 그리고 상기 대응하는 서브컴포넌트 노드의 애즈케이스 링크를 그 대응하는 최종 프로덕트 노드까지 가로지름으로서,상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, The one or more roots as a traversal from the aslist list of the one or more root nodes to any corresponding subcomponent, and the ascase link of the corresponding subcomponent node to its corresponding final product node; Identifies one or more paths from the node by the end product node,

- 구축된 콘텍스트 내에 있지 않은 경로들을 무시하고, 그리고 Ignore paths that are not in the built context, and

- 상기 논리식과 일치하지 않는 값 필드(value fields)들을 가진 요소 루트 노드에 대한 링크를 가진 경로들을 또한 무시하며, 따라서 포커스를 형성하는 도출된 노드 세트는 무시되지 않은 경로들만을 따르는 노드들을 포함하며, 그리고Also ignore paths with links to element root nodes with value fields that do not match the above logical expression, so that the set of derived nodes that form the focus include nodes that follow only non-ignored paths; , And

- 포커스 카운트를 얻기 위해 상기 포커스를 형성하는 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths forming the focus to obtain a focus count

단계들을 포함한다. Steps.

어떤 경우에도, 포커스 및 그 해당 값을 결정하는 상기 단계는, In any case, the step of determining the focus and its value,

- 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개 이상의 루트 노드의 포커스 제약사항 리스트를 선택하고, 이때, 상기 한개 이상의 루트 노드는 논리식에 의해 연계되며, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a focus constraint list of one or more root nodes from the root node or element root node of the interlocking tree datastore, wherein the one or more root nodes are associated by a logical expression and represented by one or more root nodes Select a context constraint list with the values that are to be generated, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression,

- 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 구축된 콘텍스트 내의 모든 최종 프로덕트 노드로부터 그 프라이머리 루트 노드를 향해 상기 경로를 따라 역방향으로 가로지름으로서 구현되고, 이때, 상기 경로는 구축된 콘텍스트 내의 상기 최종 프로덕트 노드의 케이스 링크를 이용하여 식별가능하며, 이때, 각각의 서브컴포넌트 노드에서, 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 상기 루트 노드를 상기 한개 이상의 루트 노드에 비교하며, Identifying one or more paths by the final product node, wherein the identification process is implemented by traversing backwards along the path from all final product nodes in the established context towards the primary root node, wherein The path is identifiable using the case link of the last product node in the established context, wherein at each subcomponent node, the location link is used to determine the location of the root node and route the root node to the one or more roots. To nodes,

- 상기 논리식에 일치하지 않는 값 필드(value fields)들을 가진 요소 루트 노드에 대한 링크들을 가진 경로들을 무시하고, 따라서 포커스를 형성하는 도출된 노드 세트들은 무시되지 않은 경로들만을 따르는 노드를 포함하며, 그리고Derived sets of nodes that ignore paths with links to element root nodes with value fields that do not match the above logical expression, and thus form focus, include nodes that follow only paths that are not ignored, And

- 포커스 카운트를 얻도록 무시되지 않은, 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는-Add a count of the last product node of one or more paths that are not ignored to get the focus count.

단계들을 포함한다. Steps.

상기 논리식은 AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO 중 어느 한가지를 포함하는 한개이상의 논리 연산자와, 상기 논리 연산자의 임의의 조합을 포함하지만, 이에 제한받지는 않는다. The logical expression includes, but is not limited to, one or more logical operators including any one of AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO, and any combination of the logical operators.

우리가 선호하는 구조는 노드와, 노드 간의 링크를 가진 구조로서, 상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, Our preferred structure is a node with a link between nodes, the nodes having a plurality of data fields, two or more of the plurality of fields having pointers, and one of the two or more pointers being a case pointer. And one of the two or more pointers is a result pointer, wherein the one or more nodes have one or more additional pointers to the list of pointers, and one of the additional pointers to the pointer list indicates that the node is a related ascase list. In the case of having a pointer to an assist list, another one of the additional pointers is a pointer to an assult list in a case where the node has an assult list,

상기 노드는 카운트 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비한다.The node has a count field, the node including a root node, at least one primary root node and at least one elemental root node, wherein the node may include other root nodes, The node comprises at least one end of a thought node, at least one subcomponent node, and at least one final product node, wherein the as links are pointing between a root node and other roots, and the as The case link points between one or more primary root nodes and one or more end product nodes, wherein the as case link includes one or more subcomponent nodes in the path therebetween, and the associative link includes a root or end product node. Between a subcomponent node and a final product node The element node has a field with one value.

상기 구조는 상기 구조를 생성하기 위해 활성화될 때 컴퓨터 시스템을 설정하는 프로그램 명령 세트로부터 형성된다. The structure is formed from a set of program instructions that, when activated to create the structure, set up a computer system.

프로그램 명령 세트를 지닌 컴퓨터 판독형 매체 상에서 가용한 상기 프로그램 명령 세트로부터 상기 구조가 생성될 수 있다. The structure can be generated from the program instruction set available on a computer readable medium having the program instruction set.

상기 카운트 필드는 강도 변수를 지니며, 상기 강도 변수는 상기 카운트 필드를 지닌 노드에 관련된 활동의 여러 지정된 종류에 대응하는 여러 강도로 수정가능하다. The count field has an intensity variable, and the intensity variable is modifiable to various intensities corresponding to various specified kinds of activities related to the node having the count field.

상기 애즈케이스 및 애즈리절트 리스트들은 상기 인터라킹 트리 구조와는 분리된 데이터 구조에 저장되고, 상기 분리된 데이터 구조는 포인터에 의해 상기 인터라킹 트리 구조 내 관련 노드와 연계되어 있다.The ascase and aslist lists are stored in a data structure separate from the interlocking tree structure, and the separated data structure is associated with an associated node in the interlocking tree structure by a pointer.

우리가 선호하는 또다른 형태의 구조는 노드와, 노드 간의 링크를 가진 구조로서, Another type of structure we prefer is to have nodes and links between them,

상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, The nodes have a plurality of data fields, two or more of the plurality of fields having a pointer, one of the two or more pointers being a case pointer, the other of the two or more pointers being a resort pointer, one or more The node has one or more additional pointers to the list of pointers, one of the additional pointers to the pointer list being a pointer to an ass list in the case where the node has an associated ascase list, the other of the additional pointers. One is a pointer to an Aslist list in the case where the node has an Aslist list,

상기 노드에는 각각 지정된 방식의 가로지름을 위한 한개의 서브노드가 제공되고, 상기 서브노드는 지정 방식으로 상기 노드를 가로지르는 것을 레코딩하는 카운트 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와, 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비한다.Each of the nodes is provided with one subnode for traversing a specified manner, the subnode having a count field for recording traversing the node in a specified manner, the node comprising a root node, Among them there is at least one primary root node and at least one elemental root node, the node may comprise other root nodes, the node being at least one end of a thought node, at least one subcomponent. A node and one or more final product nodes, wherein the as links link between a root node and other routes, and the ascase links point between one or more primary root nodes and one or more final product nodes, and The at least one case link may be one or more subcomponent nodes. In the path therebetween, and wherein Az resolver tree links and points to the end product and between the root node and sub-nodes and end product nodes component, the element node is provided with a field that has a value of one.

우리가 선호하는 또다른 한가지 형태의 구조는 노드와, 노드 간의 링크를 가진 구조로서, 상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, Another preferred type of structure we prefer is a structure with nodes and links between nodes, the nodes having a plurality of data fields, at least two of the plurality of fields having pointers, and at least two pointers. One of the case pointers, the other of the two or more pointers is a resort pointer, the one or more nodes having one or more additional pointers to the list of pointers, and one of the additional pointers to the pointer list is the node Is a pointer to an assense list in the case of having an associated ascase list, another of the additional pointers is a pointer to an assult list in the case of the node having an assult list,

상기 노드는 추가 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비한다. The node has an additional field, the node including a root node, at least one primary root node and at least one elemental root node, the node may comprise other root nodes, The node comprises at least one end of a thought node, at least one subcomponent node, and at least one final product node, wherein the as links are pointing between a root node and other roots, and the as The case link points between one or more primary root nodes and one or more end product nodes, wherein the as case link includes one or more subcomponent nodes in the path therebetween, and the associative link includes a root or end product node. Between the subcomponent node and the final product node The element node has a field with one value.

상기 추가 필드가 카운트 필드인 것이 선호된다.It is preferred that the additional field is a count field.

도 1은 발명의 태양들을 구현할 수 있는 일례의 연산 환경 도면.1 is an exemplary computing environment diagram that may implement aspects of the invention.

도 2a는 발명의 한 실시예에 따라 인터라킹 트링 데이터스토어로부터 데이터를 발생시키고 데이터에 액세스하는 일례의 시스템의 도면.FIG. 2A is an illustration of an example system for generating and accessing data from an interlocking triangular datastore in accordance with one embodiment of the invention. FIG.

도 2b는 인터라킹 트리 데이터베이스로부터 정보를 발생시키고 정보에 액세스하는 일례의 방법을 설명하는 도면.2B illustrates an example method of generating information and accessing information from an interlocking tree database.

도 3a는 발명의 한 실시예에 따라 도 3a의 일례의 인터라킹 트리 데이터스토어의 상세도.FIG. 3A is a detailed view of the example interlocking tree datastore of FIG. 3A, in accordance with an embodiment of the invention. FIG.

도 3b는 발명의 한 실시예에 따라 도 3b의 인터라킹 트리 데이터스토어의 일례의 노드의 상세도.FIG. 3B is a detailed view of an example node of the interlocking tree datastore of FIG. 3B, in accordance with an embodiment of the invention. FIG.

도 3c는 발명의 한 태양에 따라 도 3a의 인터라킹 트리 데이터스토어의 링크 리스트들의 도면3C is a diagram of link lists of the interlocking tree datastore of FIG. 3A, in accordance with an aspect of the invention.

도 4는 발명의 한 실시예에 따라 메모리에 저장된 도 2의 데이터 세트 요소 들의 일례의 세트 도면.4 is a set diagram of an example of the data set elements of FIG. 2 stored in a memory in accordance with one embodiment of the invention.

도 5a-e는 발명의 한 실시예에 따라 발생된 도 2의 인터라킹 트리와, 그 노드들의 해당 콘텐트를 도시하는 도면.5A-E illustrate the interlocking tree of FIG. 2 and corresponding content of its nodes generated in accordance with one embodiment of the invention.

도 6은 발명의 한 실시예에 따라 인터라킹 트리들을 발생시키는 일례의 프로세스의 순서도.6 is a flow diagram of an example process for generating interlocking trees in accordance with an embodiment of the invention.

도 7a는 발명의 한 실시예에 따라 또다른 인터라킹 트리 데이터스토어 및 해당 노드들을 도시하는 도면.FIG. 7A illustrates another interlocking tree datastore and corresponding nodes in accordance with an embodiment of the invention. FIG.

도 7b는 발명의 한 실시예에 따른 도 7a의 인터라킹 트리 데이터스토어의 링크 리스트 도면.FIG. 7B is a link list diagram of the interlocking tree datastore of FIG. 7A, in accordance with an embodiment of the invention. FIG.

도 8은 발명의 한 실시예에 따른 다른 인터라킹 트리 데이터스토어의 도면.8 is a diagram of another interlocking tree datastore, in accordance with an embodiment of the invention.

도 9a는 발명의 한 실시예에 따른 또다른 인터라킹 트리 데이터스토어의 도면.9A illustrates another interlocking tree datastore, in accordance with an embodiment of the invention.

도 9b는 발명의 한 실시예에 따라 도 9a의 인터라킹 트리 데이터스토어의 노드들의 일례의 콘텐트를 도시한 도면.FIG. 9B illustrates content of an example of nodes of the interlocking tree datastore of FIG. 9A, in accordance with an embodiment of the invention. FIG.

도 10은 발명의 한 실시예에 따른 또다른 인터라킹 트리 데이터스토어의 도면.10 is a diagram of another interlocking tree datastore in accordance with an embodiment of the invention.

도 11은 발명의 한 실시예에 따라 인터라킹 트리 데이터스토어로부터 데이터에 액세스하는 일례의 프로세스의 순서도.11 is a flowchart of an example process for accessing data from an interlocking tree datastore in accordance with an embodiment of the invention.

도 12A와 12B는 한개 이상의 추가 필드를구비한 일례의 인터라킹 트리 데이터스토어의 상세도.12A and 12B are detailed views of an exemplary interlocking tree datastore with one or more additional fields.

도 13은 발명의 선호되는 실시예에 따른 단순한 인터라킹 트리 데이터스토어의 도면.Figure 13 is a diagram of a simple interlocking tree datastore in accordance with a preferred embodiment of the invention.

도 14A-D는 순서도.14A-D are flowcharts.

개관survey

아래 소개되는 시스템 및 방법은 상호연결된 트리들의 숲에 관한 한개 이상의 레벨을 포함하는 데이터스토어를 생성한다. 상기 데이터스토어의 각 레벨의 상호연결된 트리들의 숲은, 레벨 시작 및 데이터세트 요소를 표현하는 노드들이나 서브컴포넌트 노드, 그리고 데이터세트 요소 노드나 서브컴포넌트 노드, 그리고 반복적 프로세스에서 레벨 종료 인디케이터를 표현하는 노드의 조합에 관한 정보를 캡처한다. 이때, 상기 반복적 프로세서는, 결과적으로, 애즈케이스 트리 브랜치들에 의해 연결되는 노드들로 구성된 한개의 애즈케이스 트리와, 다수개의 애즈리절트 트리가 발생한다. 애즈케이스 브랜치의 노드들은 제 1 루트로부터 분기된다. 가령, 도 3a를 참조할 때, 노드(302, 312, 314, 316)는 제 1 시작 인디케이터 루트(302)로부터 분기하는 일례의 애즈케이스 트리이다. 애즈리절트 트리는 노드(306, 312)(한개의 애즈리절트 트리), 노드(304, 314)(제 2 리절트 트리), 노드(308, 316)(데 3 리절트 트리), 노드(310, 318)(제 4 리절트 트리)를 포함한다. 제 4 애즈리절트 트리는 애즈리절트 트리의 특정한 사례이다. 왜냐하면, 루트(노드(310))가 최종 인디케이터를 표현하기 때문이다. The system and method introduced below creates a datastore containing one or more levels of a forest of interconnected trees. The forest of interconnected trees of each level of the datastore includes nodes or subcomponent nodes representing level start and dataset elements, and dataset element nodes or subcomponent nodes, and nodes representing level end indicators in an iterative process. Capture information regarding the combination of the. In this case, the iterative processor, as a result, generates one associative tree and a plurality of assort trees composed of nodes connected by the case tree branches. Nodes of the ascase branch branch from the first route. For example, referring to FIG. 3A, nodes 302, 312, 314, 316 are an example assortment tree branching from the first start indicator route 302. As Tree, nodes 306 and 312 (one as tree), nodes 304 and 314 (second tree), nodes 308 and 316 (de tree 3 tree), node 310 318) (fourth result tree). The fourth Astrid tree is a specific example of an Astrid tree. This is because the root (node 310) represents the final indicator.

이 구조를 가장 기본적인 형태로 보기 위해, 도 13을 참고할 수 있다. 도 13 에서는 인터라킹 트리 데이터스토어 구조의 최소 유닛이 도시되고 있는 데, 링크(16-19)에 의해 연결되는 노드들(11-15)을 구비한다. 기본 구조는 링크(16)를 통해 서브컴포넌트 노드(14)에 연결된 프라이머리 루트(노드(11))를 가질 것이다. 제 3 루트(요소 루트)인 노드(12)는 링크(17)에 의해 서브컴포넌트 노드(14)에 또한 연결될 것이다. 따라서 노드(14)는 노드(12)에 대한 데이터에 표시되는 사항의 사례이다. 즉, 노드(14)의 데이터는 요소 노드(12)의 데이터의 사례이다. 노드(15)는 링크(19)에 의해 노드(14)에 연결되고, 경로(11-16-14-19,15)는 프라이머리 루트에서 시작하여 최종 프로덕트 노드에서 종료되는 경로나 쓰레드라 불릴 수 있다. 경로는 링크 및 노드들의 연결 라인일 수 있다. 최종 프로덕트 노드는 제 2 루트 노드(13)의 사례이며, 링크(18)에 의해 연결된다. To see this structure in its most basic form, reference may be made to FIG. 13. In FIG. 13 a minimum unit of interlocking tree datastore structure is shown, with nodes 11-15 connected by links 16-19. The basic structure will have a primary root (node 11) connected to the subcomponent node 14 via a link 16. Node 12, which is the third root (element root), will also be connected to subcomponent node 14 by link 17. Node 14 is thus an example of what is shown in the data for node 12. In other words, the data of the node 14 is an example of the data of the element node 12. Node 15 is connected to node 14 by link 19, and paths 11-16-14-19, 15 may be called paths or threads starting at the primary root and ending at the final product node. have. The path can be a link and a connecting line of nodes. The final product node is an example of the second root node 13 and is connected by a link 18.

해당 레벨의 애즈케이스 트리의 각각의 브랜치는 레벨 시작 인디케이터를 표현하는 노드와, 서브컴포넌트 노드에 대한 데이텅세트 요소를 표현하는 노드의 조합으로 시작된다. 서브컴포넌트 노드는 또다른 서브컴포넌트 노드에 대한 데이터세트 요소와 반복적으로 조합될 수 있다. 서브컴포넌트는 레벨 종료 인디케이터를 표현하는 노드와 조합되어 최종 프로덕트 노드를 생성할 수 있다. 이 프로세서는 반복될 수 있고, 결국, 제 1 루트로부터 분기하는 다수개의 애즈케이스 트리 브랜치들을 형성할 수 있다. Each branch of the level tree of the level begins with a combination of nodes representing level start indicators and nodes representing dataset elements for subcomponent nodes. The subcomponent node may be iteratively combined with the dataset elements for another subcomponent node. The subcomponent can be combined with the node representing the level end indicator to generate the final product node. This processor may be iterated, eventually forming a plurality of case tree branches branching from the first root.

가령, 특정 인터라킹 트리 구조의 분할불가능한 요소 컴포넌트(indivisible elemental components)들이 수문자(alphanumerics)일 경우, 서브컴포넌트들은 워드가 아닌 철자들의 조합일 수 있고, 최종 프로덕트는 워드일 수 있다. 대안으로, 서 브컴포넌트들은 부분 스탁 번호나 오더 번호를 포함하는 수문자들의 조합일 수 있고, 최종 프로덕트는 완성된 스탁 또는 오더 번호일 수 있다. 이는 본 발명에 적용되는 다양한 수문자 입력 중 두가지만을 언급한 것에 불과하다. For example, if indivisible elemental components of a particular interlocking tree structure are alphanumerics, the subcomponents may be a combination of spells rather than words, and the final product may be a word. Alternatively, the subcomponents can be a combination of alphanumeric characters, including partial stock numbers or order numbers, and the final product can be a completed stock or order number. This merely refers to two of the various alphanumeric input applied to the present invention.

한 레벨의 최종 프로덕트들은 다음 레벨의 데이터세트 요소일 수 있다. 최종 프로덕트 데이터세트 요소들은, 하위 레벨의 데이터세트 요소들이 하위 레벨 서브컴포넌트 및 최종 프로덕트를 생성하는 데 사용되는 것과 동일한 방식으로, 다음 레벨의 서브컴포넌트를 발생시키는 데 사용될 수 있다. 예를 들어, 상술한 특정 인터라킹 트리 구조에서, 한 레벨의 최종 프로덕트는 상위 레벨 최종 프로덕트를 생성할 수 있는 데이터세트 요소일 수 있다. 이 프로세스는 수없이 반복될 수 있고, 데이터스토어에 애즈케이스 트리를 수많은 레벨로 생성할 수 있다. The final products of one level may be dataset elements of the next level. The final product dataset elements can be used to generate the next level of subcomponents in the same way that the lower level dataset elements are used to generate the lower level subcomponents and the final product. For example, in the particular interlocking tree structure described above, one level of final product may be a dataset element capable of generating a higher level final product. This process can be repeated many times, creating numerous levels of the case tree on the datastore.

상술한 예를 계속하기 위해, 레벨 데이터세트 요소들로 단어들을 이용함으로서 상위 레벨이 문장을 포함할 수 있다. 문장들은 조합되어, 단락(또한단위 상위 레벨)을 생성할 수 있다. 추가적으로, 상위 레벨의 데이터세트 요소들이 분해되어, 하위 레벨의 인터라킹 트리 데이터스토어를 발생시킬 수 있다. 발명의 한 실시예에서, 다음 레벨의 데이터세트 요소를 규정하기 위해, 레벨 종료 인디케이터로부터 시작하는 애즈리절트 트리가 사용된다. 이 종료 인디케이터는 발명의 한 실시예에서 애즈케이스 트리에 의해 규정되는 인터라킹 트리 데이터스토어의 역전된 순서로 제 2 루트에 해당한다. To continue the above example, the higher level may include a sentence by using words as the level dataset elements. Sentences can be combined to create paragraphs (also unit high levels). Additionally, the higher level dataset elements can be decomposed to generate lower level interlocking tree datastores. In one embodiment of the invention, an Astrib tree starting from the level end indicator is used to define the next level of dataset elements. This end indicator corresponds to the second route in an inverted order of interlocking tree datastores defined by the ascase tree in one embodiment of the invention.

노드들이 생성됨에 따라, 각각의 레벨에서 애즈케이스 및 애즈리절트 링크들이 동시에 발생될 수 있다. 애즈케이스 링크가 두 노드 중 첫번째 노드에 대한 링 크를 표현하며, 이로부터 노드가 생성된다. 애즈케이스 트리들의 애즈케이스 브랜치들은 입력 처리에 따라 애즈케이스 링크들의 발생에 의해 생성될 수 있다. 각 레벨의 애즈케이스 브랜치들은 해당 레벨의 각 서브컴포넌트 및 최종 프로덕트가 어떻게 생성되었는 지에 관한 직접적인 레코드를 제공한다. 따라서, 애즈케이스 브랜치들은 서브컴포넌트와 최종 프로덕트가 어떻게 생성되는 지를 아는 것이 유용한 분야에 대해 사용될 수 있다. 가령, 인터라킹 트리 발생기에 대한 입력이 정확하게 스펠링된 단어들을 포함할 경우, 이렇게 발생된 인터라킹 트리들의 애즈케이스 링크들이 스펠링 검사기로 사용될 수 있고, 이는 데이터스토어의 수많은 활용 분야 중 한 예에 불과할 뿐이다. As nodes are created, at each level, as-case and as-result links may occur simultaneously. The ascase link represents the link to the first of the two nodes, from which nodes are created. Ascase branches of ascase trees may be created by generation of ascase links in accordance with input processing. Ascase branches of each level provide a direct record of how each subcomponent and final product of that level was created. Thus, case branches can be used for applications where it is useful to know how subcomponents and end products are created. For example, if the input to the interlocking tree generator includes correctly spelled words, the ascase links of the interlocking trees generated as such can be used as a spelling checker, which is just one example of a number of applications in the datastore. .

추가적으로, 애즈케이스 트리의 브랜치들은 애즈케이스 트리의 노드들의 한가지 수직구조 관계를 표현한다. 가령, 인터라킹 트리 발생기에서 수신한 데이터가 "Tom sold 100 PA. Bill sold 40 NJ"일 경우, 발생되는 애즈케이스 트리는 "state information within the context of salesman" 콘텍스트나 수직구조에서 데이터의 뷰(view)를 포함한다. In addition, the branches of the ass tree represent one vertical relationship of the nodes of the ass tree. For example, if the data received by the interlocking tree generator is "Tom sold 100 PA. Bill sold 40 NJ", the generated case tree is a view of the data in the "state information within the context of salesman" context or vertical structure. It includes.

애즈리절트 링크가 두 노드 중 두번째에 대한 링크를 표현하며, 이로부터 노드가 생성된다. 애즈리절트 링크들의 발생은 일련의 인터라킹 트리들을 생성하며, 이때, 애즈리절트 트리 각각이, 데이터세트 요소를 포함하는 루트로부터 분기된다. 이는 데이터스토어 내 요소들과 애즈케이스 트리들 간의 모든 만남 관계를 레코딩하는 결과를 보인다. 즉, 애즈리절트 트리들은 인터라킹 트리들의 노듣르의 모근 가능한 콘텍스트를 캡처한다. 애즈리절트 트리들은 노드들간 관계나 콘텍스트를 아 는 것이 유용한 분야에서 사용될 수 있다. 인터라킹 트리 데이터스토어 발생기에 대한 입력이 판매자명, 요일, 품목 번호, 그리고 주(state)를 포함하는 광범위한 판매 데이터를 포함할 경우, 발생된 인터라킹 트리 데이터스토어의 애즈리절트 링크들은 "판매자가 특정 주에서 무엇을 파는가?", "월요일엔 몇개 품목을 팔았는가?", "판매자 Bob은 월요일과 화요일에 몇개 품목을 팔았는가?" 등등과 같은 정보를 추출하는 데 사용될 수 있다. 이는 모두 동일한 인터라킹 트리 데이터스토어로부터 얻는 것이며, 데이터스토어의 다중 사본들을 생성하지 않는다. The Aslink link represents the link to the second of the two nodes, from which nodes are created. The generation of the associative links creates a series of interlocking trees, each branching from the root containing the dataset element. This results in recording all encounter relationships between elements in the datastore and the case trees. In other words, the As Trees capture the nodule's possible context of interlocking trees. As Trees can be used in fields where it is useful to know the relationship or context between nodes. If the input to the interlocking tree datastore generator includes extensive sales data including seller name, day of the week, item number, and state, the associative links in the generated interlocking tree datastore are " What do you sell in a particular state? "," How many items did you sell on Monday? "," How many items did Seller Bob sell on Monday and Tuesday? " Can be used to extract information such as This is all obtained from the same interlocking tree datastore and does not create multiple copies of the datastore.

서브컴포넌트 및 최종 프로덕트들은 애즈리절트 트리에 저장된 정보를 이용하여 분류될 수 있다. 상기 정보는 상기 트리의 서브컴포넌트 및 최종 프로덕트에 직접적으로 저장되는 것보다는 구축된 인터라킹 트리 데이터베이스의 구조에 의해 저장된다. 인터라킹 트리 데이터스토어의 루트 노드만이 데이터를 포함할 수 있기 때문에, 그 서브컴포넌트나 최종 프로덕트가 루트 노드에 의해 표현되는 데이터의 클래스에 속하는 지를 결정하기 위해, 애즈리절트 링크들이 루트 노드로 다시 되돌아갈 수 있다. 이러한 특징에 의해 데이터스토어가 자체-조직형이라는 특징을 가진다. 이는 아래에 상세히 설명될 것이다. 가령, 인터라킹 트리 데이터스토어 발생기에 대한 입력이 "CAT TAB"일 경우, 결과적인 인터라킹 트리 데이터스토어의 구조에 저장된 정보는, 최종 프로덕트 "BOT-C-A-T-EOT"와 "BOT-T-A-B-EOT"가 요소 "A"를포함하는 지를 결정하는 데 사용될 수 있고, 또는, "A"를 가진 서브컴포넌트/최종 프로덕트의 클래스가 "BOT-C-A-T-EOT"와 "BOT-T-A-B-EOT"를 포함하는 지를 결정하는 데 사용될 수 있다. 더우기, "A"를가진 노드들의 애즈케이스 링크들을 따라감으로 서, "A"를가진 다른 서브컴포넌트 및 최종 프로덕트들이 애즈케이스 트리의 브랜치를 따라 발견될 수 있다. Subcomponents and final products may be classified using information stored in the As Tree. The information is stored by the structure of the built interlocking tree database rather than directly in the subcomponents and final products of the tree. Because only the root node of an interlocking tree datastore can contain data, the associative links return back to the root node to determine whether its subcomponents or end products belong to the class of data represented by the root node. You can go back. This feature makes the datastore self-organizing. This will be explained in detail below. For example, if the input to the interlocking tree datastore generator is "CAT TAB", the information stored in the structure of the resulting interlocking tree datastore is the final product "BOT-CAT-EOT" and "BOT-TAB-EOT". Can be used to determine whether the element contains the element "A", or whether the class of the subcomponent / final product with "A" contains "BOT-CAT-EOT" and "BOT-TAB-EOT". Can be used to determine. Furthermore, by following the ascase links of the nodes with "A", other subcomponents and end products with "A" can be found along the branches of the ascase tree.

발명의 한 실시예에서, 노드들 간의 링크는 양방향성이다. 예를 들어, 철자 "A"를 표현하는 루트 노드는 노드 A의 애즈리절트리스트에 노드 BOT-C-A에 대한 포인터를 포함할 수 있고, 노드 BOT-C-A는 애즈리절트 포인터로 노드 A에 대한 포인터를 포함할 수 있다. In one embodiment of the invention, the links between nodes are bidirectional. For example, a root node representing the letter "A" may contain a pointer to node BOT-CA in node A's results list, and node BOT-CA is an pointer to node A as an alias pointer. It may include.

발명의 또다른 실시예에서, 노드들 간의 링크는 일방향성이다. 가령 본 실시예에서, 노드 BOT-C-A는 노드 BOT-C 에 대한 애즈케이스 포인터를 포함하며, A를 표현하는 루트 노드에 대한 애즈리절트 포인터를 포함한다. 그러나 루트 노드 A는 애즈리절트리스트에 노드 BOT-C-A에 대한 포인터를 포함하지 않는다. 어느 노드가 클래스 A의 노드인 지에 관한 정보가 여전히 결정될 수 있지만, 이는 모든 노드에 대한 검색을 요할 수 있다. In another embodiment of the invention, the links between nodes are unidirectional. For example, in this embodiment, node BOT-C-A includes an asspointe pointer to node BOT-C and includes an pointer to the root node representing A. However, root node A does not include a pointer to node BOT-C-A in the results list. Information about which node is a node of class A may still be determined, but this may require a search of all nodes.

일례의 연산 환경Example Compute Environment

도 1은 본 발명의 태양들을 구현할 수 있는 컴퓨터 시스템(100)의 블록도표이다. 컴퓨터 시스템(100)은 메인프레임, 미니컴퓨터, IBM 호환 PC, 유닉스 워크스테이션, 또는 네트워크 컴퓨터 등등과 같은 임의의 적절한 시스템일 수 있다. 본 발명의 장치는 단일 사용자 컴퓨터나 다중-사용자 컴퓨터 시스템을 포함하는 임의의 컴퓨터 시스템에 적용될 수 있다. 도 1에 도시되는 바와 같이, 컴퓨터 시스템(100)은 메인 메모리(104), 보조 기억 인터페이스(106), 터미널 인터페이스(108), 그리고 네트워크 인터페이스(110)에 연결된 중앙 처리 유닛(CPU)(102)를 포함한다. 이 시스템 컴포넌트들은 시스템 버스(160)를 통해 연결된다. 보조 기억 인터페이스(106)는 디스크(195)같은 디스크에 데이터를 저장하는 DASD 장치(190)같은 기억 장치들을 컴퓨터 시스템(100)에 연결하는 데 사용된다. 1 is a block diagram of a computer system 100 that may implement aspects of the present invention. Computer system 100 may be any suitable system, such as a mainframe, minicomputer, IBM compatible PC, Unix workstation, network computer, or the like. The apparatus of the present invention can be applied to any computer system including a single user computer or a multi-user computer system. As shown in FIG. 1, computer system 100 includes a central processing unit (CPU) 102 connected to main memory 104, auxiliary storage interface 106, terminal interface 108, and network interface 110. It includes. These system components are connected via system bus 160. Auxiliary storage interface 106 is used to connect storage devices such as DASD device 190 to computer system 100 that store data on disks such as disk 195.

메인 메모리(104)는 컴퓨터 시스템(100)의 전체 가상 메모리를 포괄하는 것으로서, 운영체제(122)와 응용프로그램(124)을 포함하며, 인터라킹 트리 데이터스토어(126)를 또한 포함할 수 있다. 인터라킹 트리 데이터스토어(126)는 데이터 복제를 요하지 않으면서 다중 콘텍스트 모드로 데이터를 신속하게 검색할 수 있는 데이터 기억 장치를 제공하는 데 사용될 수 있다. 컴퓨터 시스템(100)은 메인 메모리(104)와 DASD 장치(190)같은 다수개의 소형 기억 실체에 액세스하기보다는 대용량 단일 기억 실체에 대해 액세스하는 것처럼 컴퓨터 시스템(100)의 프로그램들을 행동하게 하는 공지된 가상 어드레싱 메커니즘을 이용할 수 있다. 따라서, 운영체제(122), 응용프로그램(124), 그리고 인터라킹 트리 데이터스토어(126)이 메인 메모리(104) 내에 위치하는 것으로 도시되지만, 이 요소들이 동시에 메인 메모리(104) 내에 모두 완전하게 위치할 필요는 없는 것이다. Main memory 104 encompasses the entire virtual memory of computer system 100 and includes an operating system 122 and an application 124, and may also include an interlocking tree datastore 126. Interlocking tree datastore 126 can be used to provide a data storage device that can quickly retrieve data in a multiple context mode without requiring data duplication. Computer system 100 is a known virtual that allows programs in computer system 100 to behave like accessing a large single storage entity rather than accessing multiple small storage entities such as main memory 104 and DASD device 190. The addressing mechanism can be used. Thus, although operating system 122, application 124, and interlocking tree datastore 126 are shown as being located in main memory 104, these elements may all be fully located in main memory 104 at the same time. There is no need.

컴퓨터 시스템(100)이 단일 CPU와 시스템 버스만을 포함하는 것으로 도시되지만, 다중 CPU 및다중 버스를 포함하는 시스템을 이용하여 본 발명이 구현될 수 있다. 터미널 인터페이스(108)는 컴퓨터 시스템(100)에 한개 이상의 터미널을 연결하는 데 사용될 수 있다. 일례의 터미널로는 덤 터미널(dumb terminal)이나 풀리 프로그래머블 워크스테이션(fully programmable workstations)이 있으며, 이를 이용하여 시스템 관리자 및 사용자가 컴퓨터 시스템(100)과 통신할 수 있다. Although computer system 100 is shown to include only a single CPU and a system bus, the present invention may be implemented using a system that includes multiple CPUs and multiple buses. Terminal interface 108 may be used to connect one or more terminals to computer system 100. Exemplary terminals include dumb terminals or fully programmable workstations, which allow system administrators and users to communicate with computer system 100.

네트워크 인터페이스(110)는 컴퓨터 시스템(100)에 다른 컴퓨터 시스템이나 워크스테이션을 연결하는 데 사용될 수 있다. 네트워크 인터페이스(110)와 인터페이싱되는 네트워크는 LAN, WAN, 인터넷, 익스트라넷, 등등의 적절한 네트워크일 수 있다. 운영체제는 OS/2, 윈도우즈, AIX, 유닉스, LINUX, 등 임의의 적절한 운영체제일 수 있다. Network interface 110 may be used to connect other computer systems or workstations to computer system 100. The network interfaced with the network interface 110 may be a suitable network, such as a LAN, WAN, Internet, extranet, or the like. The operating system can be any suitable operating system, such as OS / 2, Windows, AIX, Unix, LINUX, and the like.

응용프로그램(124)은 인터라킹 트리 데이터스토어(126)에 저장된 데이터에 액세스하는 임의의 종류의 응용프로그램일 수 있다. 따라서, 응용프로그램은 데이터 분석 응용프로그램, 데이터 저장 응용프로그램, 명령 검출 시스템 등등을 포함할 수 있다. Application 124 may be any kind of application that accesses data stored in interlocking tree datastore 126. Thus, applications may include data analysis applications, data storage applications, command detection systems, and the like.

인터라킹 트리 데이터스토어(126)는 임의의 콘텍스트에 관련된 정보를 얻기 위해 사용자로 하여금 동일 데이터스토어에 액세스할 수 있게 하는 데이터 기억 구조를 제공한다. 여기서 데이터라는 용어는 수치, 텍스트, 그래픽, 포뮬러, 태블릿, 오디오, 비디오, 멀티미디어, 또는 이들간의 임의의 조합과 같이 컴퓨터에 의해 저장된 임의의 종류의 정보를 포함할 수 있다. 인터라킹 트리 데이터스토어(126)는 응용프로그램(124)의 일부분으로, 운영체제(122)의 일부분으로, 또는, 다양한 응용프로그램을 위한 데이터 기억을 제공하도록 만들어진 별도의 데이터스토어 프로덕트로 구현될 수 있다. Interlocking tree datastore 126 provides a data storage structure that allows a user to access the same datastore to obtain information related to any context. The term data herein may include any kind of information stored by a computer, such as numbers, text, graphics, formulas, tablets, audio, video, multimedia, or any combination thereof. Interlocking tree datastore 126 may be implemented as part of application 124, as part of operating system 122, or as a separate datastore product designed to provide data storage for various applications.

본 발명의 완전한 기능의 컴퓨터 시스템에 관하여 설명되지만, 본 발명은 다양한 형태의 프로그램 프로덕트로 분배될 수 있다. 또한, 본 발명은 이러한 분포를 운반하는 신호 운반 매체에 마찬가지로 똑같이 적용된다. 이러한 신호를 운반하는 매체의 예로는 플라피 디스크, 하드드라이브, CDROM, 디지털 및 아날로그 통신 링크 등등이 있다.Although described with respect to a fully functional computer system of the present invention, the present invention may be distributed in various forms of program products. The invention also applies equally to the signal carrier medium carrying this distribution. Examples of media that carry these signals include floppy disks, hard drives, CDROMs, digital and analog communication links, and the like.

인터라킹Interlocking 트리  tree 데이터스토어의Datastore 발생 및 액세스를 위한 시스템 및 방법 Systems and Methods for Generation and Access

도 2a는 발명의 한 실시예에 따라 데이터스토어를 포함하는 인터라킹 트리들의 숲으로부터 데이터를 발생시키고 이 데이터에 액세스하는 일례의 시스템(200)을 도시한다.한 실시예에서 상기 인터라킹 트리 데이터스토어를 발생시키는 서브시스템(250)은 인터라킹 트리 발생기(202), 데이터세트 요소 세트(206), 입력 데이터(204)를 포함한다. 상기 입력 데이터(204)로부터 일례의 인터라킹 트리 데이터스토어(208)가 발생된다. 2A illustrates an example system 200 for generating data from and accessing data from a forest of interlocking trees comprising a datastore, in accordance with an embodiment of the invention. In one embodiment, the interlocking tree datastore The subsystem 250 for generating the interpolation includes an interlocking tree generator 202, a dataset element set 206, and input data 204. An example interlocking tree datastore 208 is generated from the input data 204.

인터라킹 트리 데이터스토어(208)로부터 정보에 액세스하는 서브시스템(251)은 인터라킹 트리 데이터스토어(208)와, 인터라킹 트리 데이터스토어 액세서(210)를 포함할 수 있다. 상기 액세서(210)는 데이터 요청(212)을 수신하고, 데이터 요청(212)을 처리하며, 요청한 정보를 반송한다. Subsystem 251 to access information from interlocking tree datastore 208 may include interlocking tree datastore 208 and interlocking tree datastore accessor 210. The accessor 210 receives the data request 212, processes the data request 212, and returns the requested information.

도 2b는 인터라킹 트리 데이터스토어로부터 정보를 발생시키고 이 정보에 액세스하기 위한 일례의 방법을 설명한다. 단계 260에서, 인터라킹 트리 데이터스토어가 발생된다. 단계 262에서, 인터라킹 트리 데이터스토어로부터 정보의 요청을 수신한다. 단계 264에서, 인터라킹 트리 데이터스토어로부터 정보를 불러들인다. 2B illustrates an example method for generating information from and accessing the interlocking tree datastore. At step 260, an interlocking tree datastore is generated. In step 262, a request for information is received from an interlocking tree datastore. In step 264, information is retrieved from the interlocking tree datastore.

인터라킹Interlocking 트리  tree 데이터스토어의Datastore 발생 Occur

가령, 한 단어(가령, "CAT")를 표현하는 수문자의 스트림을 입력 데이터(204)가 포함한다고 가정해보자. 이 경우에 데이터세트 요소들(206)은 알파벳 철자 의 세트일 수 있고, 단어 시작 및 단어 종료 개념 또는 디리미터(delimiter)를 표현하는 한개 이상의 문자를 포함할 수도 있다. 인터라킹 트리 데이터스토어(208)의 각각의 루트와 비-루트 노드는 한쌍의 포인터(케이스 포인터와 리절트 포인터)와, 한쌍의 리스트 포인터(애즈케이스리스트에 대한 포인터와, 애즈리절트리스트에 대한 포인터)를 포함한다. 루트들은 한개의 값이나 한개의 값에 대한 참조를 표현하는 데이터를 추가로 포함할 수 있다. For example, suppose the input data 204 includes a stream of alphanumeric characters representing a word (eg, "CAT"). In this case, the dataset elements 206 may be a set of alphabetic spellings and may include one or more characters representing a word start and word end concept or delimiter. Each root and non-root node of interlocking tree datastore 208 has a pair of pointers (case pointers and resort pointers), a pair of list pointers (pointers to ascaselists, and aslists). Pointer). Routes can additionally contain data representing a value or a reference to a value.

도 3a는 일례의 인터라킹 트리 데이터스토어(208)의 상세도이다. 일부 노드, 가령, 루트 노드들(302)(BOT)(310)(EOT)은 시작 인디케이터나 종료 인디케이터같은 개념을 표현하며, 루트 노드(304)(A)(306)(C)(308)(T)들은 데이터세트 요소들을 표현한다. 다른 노드들, 가령, 노드(312)(BOT-C)(314)(BOT-C-A)(316)(BOT-C-A-T)(318)(BOT-C-A-T-BOT)는 시작 인디케이터를 표현하는 노드와, 데이터세트 요소를 표현하는 노드를, 또다른 서브컴포넌트를 위해 데이터세트 요소와 조합된 서브컴포넌트를 표현하는 노드로 순차적으로 합성한 것을 표현한다. 그래서 서브컴포넌트가 최종 인디케이터를 표현하는 노드와 조합되어, 최종 프로덕트를 표현하는 노드를 생성할 때까지 순차적 합성이 계속된다. 본 경우에, 일련의 철자들과 디리미터로부터 단어의 순차적 합성을 캡처한다. 입력에서의 디리미터는 최종 프로덕트를 구분하는 기능을 할 수 있다. 예를 들어, 단어들을 한정하는 문자들이 한 단어의 종료와 또다른 단어의 시작을 표시하도록 기능할 수 있다. 가령, "CATS ARE"라는 스트링에서, "CATS"와 "ARE" 사이의 블랭크 문자는 단어 "CATS"의 종료와 단어 "ARE"의 시작을 동시에 표시한다. 따라서, 입력에서 블랭크 문자같은 디리미터는 생성되는 노드에서 "BOT"같은 시작 인디케이터로, 또는, "EOT"같은 종료 인디케이터로 바뀔 수 있다. 3A is a detailed view of an example interlocking tree datastore 208. Some nodes, such as root nodes 302 (BOT) 310 (EOT), represent concepts such as start indicators or end indicators, such as root node 304 (A) 306 (C) 308 ( T) represent dataset elements. Other nodes, such as node 312 (BOT-C) 314 (BOT-CA) 316 (BOT-CAT) 318 (BOT-CAT-BOT), may represent a start indicator; A node representing a dataset element is synthesized sequentially by a node representing a subcomponent combined with a dataset element for another subcomponent. The sequential synthesis then continues until the subcomponents are combined with the nodes representing the final indicators to produce the nodes representing the final products. In this case, we capture a sequential synthesis of words from a series of spellings and delimiters. The delimiter at the input can function to distinguish the final product. For example, the letters defining the words may function to mark the end of one word and the start of another word. For example, in the string "CATS ARE", the blank character between "CATS" and "ARE" marks the end of the word "CATS" and the beginning of the word "ARE" simultaneously. Thus, a delimiter, such as a blank character at the input, can be changed to a start indicator such as "BOT" or to an end indicator such as "EOT" at the node being created.

루트 노드(304, 306, 308)같은 노드들은 요소 노드라 불린다. 왜냐하면, 이 노드들은 데이터세트 요소들을 표현하며 분할불가능한 유닛들을 포함하기 때문이다. 이러한 분할불가능한 유닛들로부터 분할가능한 유닛(서브컴포넌트 및 최종 프로덕트)가 구성된다. 노드(312, 314, 316)는 서브컴포넌트나 서브컴포넌트 노드라 불린다. 왜냐하면, 이 노드들은 시작 인디케이터같은 개념 인디케이터와, 데이터세트 요소를 표현하는 노드의 조합, 또는, 서브컴포넌트와, 최종 프로덕트를 포함하지 않는 데이터세트 요소를 표현하는 노드의 조합, 또는, 서브컴포넌트와, 최종 프로덕트를 포함하지 않는 최종 인디케이터를 표현하는 노드의 조합을 표현하기 때문이다. 노드(318)같은 노드는 최종 프로덕트를 표현한다. 본 예에서, 데이터 요소들은 철자들이며, 서브컴포넌트들은 단어를 포함하지 않는 철자들의 조합을 표현하며, 최종 프로덕트는 단어들이다. 루트 세트가 "BOT"를 포함한다. 이는 본 예에서, 단어의 시작을 표시하는 것이다. 루트 세트가 "EOT"도 포함한다. 이는 본 예에서,단어의 종료를 표시하는 것이다. "BOT"와 "EOT"가 시작 및 종료 인디케이터를 표현하지만, 발명은 이에 제한되지 않는다. 그외 다른 인디케이터의 활용을 고려할 수도 있다. 한 실시예에서, EOT 개념을 표현하는 한 노드로부터 루트 노드까지의 링크 때문에, 최종 프로덕트는 서브컴프넌트와 구별가능하다. Nodes such as root nodes 304, 306, 308 are called element nodes. This is because these nodes represent dataset elements and contain indivisible units. From these non-dividable units, a splittable unit (subcomponent and final product) is constructed. Nodes 312, 314, and 316 are called subcomponents or subcomponent nodes. Because these nodes are combinations of conceptual indicators, such as start indicators, nodes representing dataset elements, or combinations of subcomponents and nodes representing dataset elements that do not contain the final product, or subcomponents, This is because it represents a combination of nodes representing the final indicator that does not contain the final product. Nodes such as node 318 represent the final product. In this example, data elements are spelled, subcomponents represent a combination of spells that do not contain a word, and the final product is words. The root set contains "BOT". This is, in this example, marking the beginning of a word. The root set also contains "EOT". This is an indication of the end of the word in this example. Although "BOT" and "EOT" represent start and end indicators, the invention is not so limited. Other indicators may also be considered. In one embodiment, because of the link from one node to the root node representing the EOT concept, the final product is distinguishable from the subcomponent.

주어진 예에서, 입력 사항이 수문자 세트이고, 이 수문자 세트로부터 단어를 도출할 수 있다. 하지만 본 발명은 이에 제한되지 않는다. 예를 들어, 입력사항이 절차나 단어들같은 텍스트일 수 있고, 또는, 프로세스, 개념, 화소 세트, 이미지, 소리, 수치, 아날로그 측정치, 등등에 사용되는 제한된 리소스일 수 있다. 가령, 입력사항이 아미노산일 수 있고, 이로부터 게놈(genome)을 도출할 수 있다. 일반적으로 본 발명의 한 실시예에 따르면, 요소 단위들이 최적화된 시퀀스로 조합된다. In the given example, the input is a number set, from which the words can be derived. However, the present invention is not limited thereto. For example, the input may be text such as a procedure or words, or it may be a limited resource used for processes, concepts, pixel sets, images, sounds, numerical values, analog measurements, and the like. For example, the input can be an amino acid, from which the genome can be derived. In general, according to one embodiment of the invention, the element units are combined into an optimized sequence.

상술한 노드들에 부가하여, 인터라킹 트리 데이터스토어(208)는 링크(320, 322, 324, 326)과 링크(328, 330, 332, 334)같이 노드들 사이에 다수의 링크를 포함할 수 있다. 발명의 한 실시예에서 링크(320, 322, 324, 326)와 링크(328, 330, 332, 334)는 양방향성이다. 즉, 루트 노드(BOT)와 노드(318)(BOT-C-A-T-EOT) 간의 경로가 링크(320, 322, 324, 326)을 통해 양방향으로 이어질 수 있다. 링크(320, 322, 324, 326)들은 애즈케이스 링크라 불린다. 링크(328, 330, 332, 334)는 애즈리절트 링크라 불린다. 마찬가지로 발명의 한 실시예에서, 링크(328, 330, 332, 334)는 양방향성으로서, 노드 C(306)의 포인터가 노드 BOT-C(312)를포인팅하고, 노드 BOT-C(312)의 포인터가 노드 C(306)을 포인팅하며, 노드 A(304)의 포인터가 노드 BOT-C-A(314)를 포인팅하고, 노드 BOT-C-A(314)의 포인터가 노드 A(304)를 포인팅한다. In addition to the nodes described above, interlocking tree datastore 208 may include multiple links between nodes, such as links 320, 322, 324, 326 and links 328, 330, 332, 334. have. In one embodiment of the invention, links 320, 322, 324, 326 and links 328, 330, 332, 334 are bidirectional. That is, a path between the root node BOT and the node 318 (BOT-C-A-T-EOT) may lead in both directions via links 320, 322, 324, and 326. The links 320, 322, 324, 326 are called ascase links. Links 328, 330, 332, 334 are called as results links. Similarly, in one embodiment of the invention, the links 328, 330, 332, 334 are bidirectional such that a pointer at node C 306 points to node BOT-C 312 and a pointer to node BOT-C 312. Points to node C 306, a pointer of node A 304 points to node BOT-CA 314, and a pointer of node BOT-CA 314 points to node A 304.

도 3b는 인터라킹 트리 데이터스토어(208)의 일례의 노드에 포함된 정보를 도시한다. 일례의 노드(340)는 서브컴포넌트나 최종 프로덕트를 표현할 수 있다. 일례의 노드(340)는 서브컴포넌트나 최종 프로덕트(340)의 제 1 부분에 대한 포인터(즉, 애즈케이스라 불리는 케이스(342)에 대한 포인터), 서브컴포넌트나 최종 프로덕트(340)의 제 2 부분에 대한 포인터(즉, 애즈리절트라 불리는 리절트(344)에 대한 포인터), 애즈케이스리스트(346)에 대한 포인터, 그리고 애즈리절트리스트(348)에 대한 포인터를 포함할 수 있다. 이때, 애즈케이스리스트(346)는 노드(340)이 제 1 부분에 해당하는 서브컴포넌트나 최종 프로덕트의 링크된 리스트이고, 애즈리절트리스트(348)는 노드(340)이 제 2 부분에 해당하는 서브컴포넌트나 최종 프로덕트의 링크된 리스트이다. 3B shows information contained in an example node of interlocking tree datastore 208. An example node 340 may represent a subcomponent or final product. An example node 340 may be a pointer to a first component of a subcomponent or final product 340 (ie, a pointer to a case 342 called an ascase), a second portion of a subcomponent or final product 340. It may include a pointer to (i.e., a pointer to a resort 344 called as an outcome), a pointer to an as-case list 346, and a pointer to an as-list list 348. In this case, the assist list 346 is a linked list of subcomponents or final products of which the node 340 corresponds to the first part, and the aslist list 348 is a node of the node 340 corresponding to the second part. A linked list of subcomponents or final products.

일례의 노드(341)는 요소 노드를 표현한다. 도 12A와 12B는 차후에 설명되는 일부 기능들을 위해 필요한 추가 필드를 가진 노드의 설명을 위한 다음 문단에서 언급되어야 할 것이다. 일례의 노드(341)는 한개의 널 포인터(애즈케이스라 불리는 케이스(342)에 대한 포인터), 제 2 널 포인터(애즈리절트라 불리는 리절트(344)에 대한 포인터), 애즈케이스리스트(346)에 대한 포인터, 애즈리절트리스트(348)에 대한 포인터, 그리고 값(349)Z를 포함한다. 이때, 애즈케이스리스트(346)는 루트 노드(341)가 제 1 부분에 해당하는 서브컴포넌트나 최종 프로덕트의 링크된 리스트이고, 애즈리절트리스트(348)는 루트 노드(341)가 제 2 부분에 해당하는 컴포넌트나 최종 프로덕트의 링크된 리스트이다. 값(349)은 실제 값을 지닐 수 있고, 한개의 조건이나 상태를 표현할 수 있으며, 상기 값 등에 대한 포인터나 참조를 가질 수도 있다. 따라서 발명의 한 실시예에서, 시작 인디케이터 개념이나 조건을 표현하는 루트 노드는 널 애즈리절트리스트를 가질 것이다. 왜냐하면, 비긴 인디케이터는 서브컴포넌트의 제 2 부분이 될 수 없기 때문이다. 데이터세트 요소를 표현하는 루트 노드는 널 애즈케이스리스트를 가질 것이다. 왜냐하면, 데이터세트 요소는 서브컴포넌트의 제 1 부분이 될 수 없기 때문이다. 종료 인디케이터 개념이나 조건을 표현하는 루트 노드는 널 애즈케이스리스트를 가질 것이다. 왜냐하면, 종료 인디케이터는 서브컴포넌트의 제 1 부분이 될 수 없기 때문이다. 마지막으로, 하위 레벨의 최종 프로덕트로 구성되는 루트 노드는 널 애즈케이스리스트를 가질 것이다. 왜냐하면, 최종 프로덕트는 다음 레벨에 대한 데이터세트 요소로 기능하기 때문이다. An example node 341 represents an element node. 12A and 12B will be mentioned in the next paragraph for the description of a node with additional fields needed for some of the functions described later. The example node 341 includes one null pointer (pointer to case 342 called as case), second null pointer (pointer to resort 344 called as resort), ascase list 346 It contains a pointer to, a pointer to the alias list 348, and a value 349. At this time, the case list 346 is a linked list of subcomponents or final products in which the root node 341 corresponds to the first part, and the aslist list 348 is a root node 341 in the second part. A linked list of corresponding components or end products. The value 349 may have an actual value, may represent a condition or state, and may have a pointer or reference to the value or the like. Thus, in one embodiment of the invention, the root node representing the start indicator concept or condition will have a null results list. This is because the empty indicator cannot be the second part of the subcomponent. The root node representing the dataset element will have a null assist list. This is because a dataset element cannot be the first part of a subcomponent. The root node representing the end indicator concept or condition will have a null assist list. This is because the end indicator cannot be the first part of the subcomponent. Finally, the root node, consisting of the low-level final product, will have a null as-case list. Because the final product acts as a dataset element for the next level.

인터라킹 트리 데이터스토어의 모든 노드들은 상기 노드에 관련된 데이터를 표현하는 추가 필드들을 또한 포함할 수 있다. 이는 도 3b의 도해와 유사한 도해(도 12A와 12B)를 이용하여 설명될 수 있다. 도 12A와 12B에서, 서브컴포넌트 및 요소 노드 필드들이 설명용 필드 블록의 필드로 도시된다. All nodes of an interlocking tree datastore may also include additional fields representing data related to the node. This can be explained using a diagram similar to that of FIG. 3B (FIGS. 12A and 12B). 12A and 12B, subcomponent and element node fields are shown as fields of the description field block.

일례의 노드(20)가 도 12A에 도시된다. 이 노드(20)는 추가 필드로서 스트링 필드를 포함할 수 있다. 스트링 필드는 이 노드에 의해 표현되는 모든 요소들을 보여주는 시퀀스를 구비한다. 요소들의 이러한 시퀀스를 포함하는 스트링 필드를 추가함으로서, 디버깅에 도움이 된다. 이러한 추가 필드에는 여러 용도가 있으며, 노드(20)같은 노드들이 한개의 추가 필드에 제약될 필요는 없다. An example node 20 is shown in FIG. 12A. This node 20 may include a string field as an additional field. The string field has a sequence showing all the elements represented by this node. By adding a string field containing this sequence of elements, you help with debugging. There are many uses for this additional field, and nodes such as node 20 need not be constrained to one additional field.

도 12B에 도시되는 일례의 노드(30)는 카운트 필드(31)를 또한 포함한다. 카운트 필드는 초기화되어 강도 변수와 함께 증분된다. 그 값은 카운트 필드가 참조될 때의 조건에 따라 변화한다. 강도 변수는 한개 이상의 불변치를 홀딩하는 수학적 실체로 정의된다. 이 항목을 폭넓게 잡음으로서, 강보변수에 의해 나타나는 카운트 필드가 본원의 인터라킹 트리 구조의 응용에 사용될 수 있어, 자료 망실, 오기록된 데이터, 문의사항을 처리하고 있는 엔트리의 기록, 사용중인 문의사항의 종류 기록, 그리고 그외 다른 관심 프로세스를 처리할 수 있게 한다. 강도 변수의 한 가지 단순한 예는 "1"과 같은 단일 순서 필드 값으로서, 노드에 액세스한 횟수를 레코딩하도록 카운트 필드를 증분시키는 데 사용될 수 있다. The example node 30 shown in FIG. 12B also includes a count field 31. The count field is initialized and incremented with the intensity variable. The value changes depending on the condition when the count field is referenced. Intensity variables are defined as mathematical entities that hold one or more invariants. As this item is widely noisy, the count field represented by the compensating variable can be used in the application of the interlocking tree structure of the present application, recording data loss, misrecorded data, entry processing inquiries, inquiries in use. It allows you to deal with the types of records, and other processes of interest. One simple example of the intensity variable is a single order field value such as "1", which can be used to increment the count field to record the number of times the node has been accessed.

더우기, 강도 변수는 이 다양한 기능들에 대해 여러 다른 속도와 여러 다른 방향으로 변할 수 있다. 여러 다른 강도의 간단한 예는 질의가 노드를 지날때마다 +1의 값을 더하고, 상기 특정 노드를 지닌 경로가 오류라고 간주될 경우 -100의 값을 더하는 것이다. 가령, 미스스펠링되어 사용한 후 시퀀스를 발견했거나 위험한 화학물질을 지닌 영역을 센서가 발견했거나, 아동인 시뮬레이터가 시뮬레이션 상에서 뜨거운 난로를 만지거나 화상입은 경우가 위 경우에 해당한다. 강도 변수에 대한 대안은, 노드를 지나가는 각각의 종류에 대해 새로운 값을 홀딩하도록 별도의 노드를 이용하는 것이다. 그래서, 타입1, 타입2, 경험1, 경험 2, 등등의 질의 중 노드에 액세스되는 상황에서 클러스터를 생성하는 것이다. Moreover, intensity parameters can vary in different speeds and in different directions for these various functions. A simple example of different strengths is to add a value of +1 each time a query passes through a node, and add a value of -100 if the path with that particular node is considered to be an error. This is the case, for example, when a missed spell has been used to find a sequence, a sensor detects an area with dangerous chemicals, or a child simulator touches or burns a hot stove in a simulation. An alternative to the intensity variable is to use a separate node to hold a new value for each kind passing through the node. So, create a cluster in a situation where a node is accessed during a query of type 1, type 2, experience 1, experience 2, and so on.

이 구조의 현실세계 적용에 관한 현재의 고려에서, 카운트 필드의 강도 변수들은 이 문제에 대해 가장 단순하면서도 현재까지 최적의 접근법을 제공한다. 하지만, 그외 다른 대안들이 고려되어야 하며, 정보 처리 시스템 속성으로 다시 고려되어야 한다. 이 대안이 고려될 경우, 별도의 노드를 이용하는 접근법, 심지어, 노드에 관련된 각각의 종류를 지나는 횟수에 대한 카운트를 레코딩하기 위한 요소 노드나 루트 노드를 이용하는 접근법이 본 접근법 구현을 위한 한가지 방법이 될 것이다. In the present consideration of the real world application of this structure, the intensity variables of the count field provide the simplest and best approach to this problem to date. However, other alternatives should be considered and reconsidered as information processing system attributes. If this alternative is considered, one approach to implementing this approach would be to use a separate node, or even an element node or root node to record a count of the number of times it passes through each type of node. will be.

따라서, 새 데이터가 인터라킹 트리 데이터스토어에 통합될 때 카운트 필드가 증분될 수 있다. 그러나, 인터라킹 트리 데이터스토어가 질의를 받아 새 데이터 에 대해 더 큰 값을 도출하고 질의에 대해 변화를 도출하지 않을 때 카운트 필드를 증감하는 것이 생략될 수 있다. 따라서, 이 강도 변수는 본 발명에 의해 취급되는 문제점에 대한 적합성에 따라 선택되어야 한다. Thus, the count field can be incremented when new data is incorporated into the interlocking tree datastore. However, incrementing or decrementing the count field may be omitted when the interlocking tree datastore is queried to derive a larger value for new data and no change to the query. Therefore, this strength parameter should be selected according to the suitability for the problem handled by the present invention.

인터라킹 트리 구조에 의해 표현되는 지식 스토어의 이용을 촉진하기 위해 카운트 필드가 추가되며, 이 카운트 필드는 빈도 및 확률같은 통계치가 필요할 때 특히 유용하다. A count field is added to facilitate the use of the knowledge store represented by the interlocking tree structure, which is particularly useful when statistics such as frequency and probability are needed.

도 12A를 참조할 때, 대안의 일례의 노드(20)가 도시된다. 이 노드(20)는 밸류 필드(22)를 가진 요소 노드(20A)일 수도 있고, 서브컴포넌트 노드이거나 최종 프로덕트 노드(20B)(밸류 필드(32)를 빠뜨림)일 수도 있다. 그러나, 어느 경우에도, 이 노드는 추가 필드(21)를 가질 것이다. Referring to FIG. 12A, an alternative example node 20 is shown. This node 20 may be an element node 20A with a value field 22, or may be a subcomponent node or a final product node 20B (missing the value field 32). In either case, however, this node will have an additional field 21.

추가 필드의 구체적 사례가 도 12B에 도시된다. 도 12B에서 노드 형태(30)(밸류 필드(32)를 가진 요소 노드(30A), 또는, 서브컴포넌트나 최종 프로덕트 노드(30B))는 추가 필드(31)(여기선 카운트 필드)를 가진다. Specific examples of additional fields are shown in FIG. 12B. In FIG. 12B the node type 30 (element node 30A with value field 32, or subcomponent or final product node 30B) has an additional field 31 (excitation count field).

도 3c는 인터라킹 트리 데이터스토어(208)의 애즈리절트 링크 리스트를 도시한다. 링크(350)는 노드 BOT-C(302)에게로 노드 C(306)의 애즈리절트리스트의 포인터를 설정함으로서 구축되고, 링크(352)는 노드 BOT-C-A(314)에게로 노드 A(304)의 애즈리절트리스트의 포인터를 설정함으로서 구축되며, 링크(354)는 노드 BOT-C-A-T(318)에게로 노드 T(308)의 애즈리절트리스트의 포인터를 설정함으로서 구축되고, 링크(356)는 노드 BOT-C-A-T-EOT(318)에게로 노드 EOT(310)의 애즈리절트리스트의 포인터를 설정함으로서 구축된다. 3C shows an associative link list of interlocking tree datastore 208. Link 350 is established by setting a pointer to the Aslist list of node C 306 to node BOT-C 302, and link 352 to node A 304 to node BOT-CA 314. Link 354 is constructed by setting the pointer of the Aslist list of the node T 308 to the node BOT-CAT 318, and the link 356 Is constructed by setting a pointer to the aslist list of node EOT 310 to node BOT-CAT-EOT 318.

도 4는 메모리(104)에 일례의 데이터세트 요소(206)에 해당하는 BOT, a-Z, 그리고 EOT를 저장하는 예를 도시한다. 도시되는 바와 같이, BOT는 위치 0에 저장된다. A는 위치 5에, 등등해서 EOT는 위치 135에 저장된다. 데이터세트 요소들의 배치는 예시적인 사항일 뿐이며, 그외 다른 적절한 배치가 고려될 수 있다. 도 5a-e는 발명의 한 실시예에 따라 인터라킹 트리 데이터스토어(208)가 발생함에 따라, 인터라킹 트리 데이터스토어(208) 및 인터라킹 트리 데이터스토어의 노드들의 콘텐트를 도시한다. 도 6은 발명의 한 실시예에 따라 인터라킹 트리 데이터스토어(208)를 발생시키기 위한 일례의 프로세스(600)의 순서도이다. 4 shows an example of storing the BOT, a-Z, and EOT corresponding to the example dataset element 206 in the memory 104. As shown, the BOT is stored at position zero. A is stored at position 5, and so on, EOT is stored at position 135. The arrangement of dataset elements is merely illustrative and other suitable arrangements may be considered. 5A-E illustrate the contents of nodes of an interlocking tree datastore 208 and an interlocking tree datastore as interlocking tree datastore 208 occurs in accordance with one embodiment of the invention. 6 is a flow diagram of an example process 600 for generating an interlocking tree datastore 208 in accordance with one embodiment of the invention.

도 4, 5, 6에 따라 살펴보면, 단계 602에서, 인터라킹 트리 데이터스토어가 초기화된다. 발명의 한 실시예에서, 초기화는 생성될 인터라킹 트리 데이터스토어의 루트 노드에 "현 포인터"를 설정하는 단계를 포함한다. 또다른 실시예에서, 초기화는 기존 인터라킹 트리 데이터스토어의 루트에 "현 포인터"를 설정하는 단계를 포함한다. 4, 5 and 6, in step 602, an interlocking tree datastore is initialized. In one embodiment of the invention, the initialization comprises setting a "current pointer" to the root node of the interlocking tree datastore to be created. In another embodiment, the initialization includes setting a "current pointer" at the root of an existing interlocking tree datastore.

추가적으로, 데이터세트 요소들은 메모리로 로딩되어 초기화될 수 있다. 한 실시예에서, 루트 노드(가령, 도 5a의 루트 노드 BOT(302), A(535a),..., EOT(559a))는 아래의 값으로 초기화된다. 케이스 포인터 = 널, 리절트 포인터 = 널, 애즈케이스리스트에 대한 포인터 = 널, 애즈케이스리스트 = 널, 애즈리절트리스트에 대한 포인터 = 널, 애즈리절트리스트 = 널, 그리고 상기 데이터세트 요소나 개념/조건 인디케이터, 또는 이에 대한 표현들에 대한 값. Additionally, dataset elements can be loaded into memory and initialized. In one embodiment, the root node (eg, root node BOT 302, A 535a,..., EOT 559a in FIG. 5A) is initialized with the following values. Case Pointer = Null, Result Pointer = Null, Pointer to Ascase List = Null, As Case List = Null, Pointer to Aslistist = Null, Asreactlist = Null, and the dataset element or concept A value for a condition indicator, or representations thereof.

이때, 발명의 한 실시예에 따른 인터라킹 트리 데이터스토어(500a)같은 인터 라킹 트리 데이터스토어는 단어의 시작을 표시하는 단일 노드 BOT(302)를 포함할 수 있다. 블록도표 502a의 노드(302)는 한쌍의 포인터(널로 초기화된 케이스 포인터(504a)와 리절트 포인터(506a))와, 한쌍의 리스트 포인터(널로 초기화된 애즈케이스리스트에 대한 포인터와 애즈리절트리스트에 대한 포인터)와, 한개의 값(값(511a)은 본 실시예에서 BOT로 초기화됨)을 포함한다. 이해를 돕기 위해, 도 5에서, 블록도표(502a), 셀(508a), 그리고 502c-502e에 표시된 유사 셀들은 인터라킹 트리 데이터스토어가 관련 애즈케이스리스트에 대한 포인터를 실제 표현하는 것으로서, 관련 애즈케이스리스트의 현 콘텐트들을 대신에 도시한다. 마찬가지로, 셀(510a)과 502c-502e에 표시된 유사 셀들은 인터라킹 트리 데이터스토어가 관련 애즈리절트리스트에 대한 포인터를 표현하는 것으로서, 관련 애즈리절트리스트의 현 콘텐트를 대신에 표현한다. In this case, an interlocking tree datastore, such as an interlocking tree datastore 500a, may include a single node BOT 302 that marks the beginning of a word. Node 302 in block diagram 502a includes a pair of pointers (null initialized case pointer 504a and a result pointer 506a), and a pair of list pointers (pointer to null initialized assist list and results list. Pointer) and one value (value 511a is initialized to BOT in this embodiment). For ease of understanding, in FIG. 5, the block cells 502a, cells 508a, and similar cells shown in 502c-502e are the interlocking tree datastores as actual representations of pointers to the associated ascaselists. The current contents of the case list are shown instead. Similarly, the similar cells represented in cells 510a and 502c-502e represent an interlocking tree datastore as a pointer to the associated Aslist, instead representing the current content of the associated Aslist.

애즈케이스리스트(가령, 애즈케이스리스트(508a))와 애즈리절트리스트(가령, 애즈리절트리스트(510a))는 링크된 리스트로 구현될 수 있다. 또다른 실시예에서, 애즈케이스리스트(가령, 애즈케이스리스트(508a))와 애즈리절트리스트(가령, 애즈리절트리스트(510a))는 어레이같은 설정가능한 크기의 연속 메모리 위치들의 블록으로 할당되며, 애즈케이스리스트에 대한 포인터는 애즈케이스리스트 메모리 블록의 시작 위치로 설정되고, 애즈리절트리스트에 대한 포인터는 애즈리절트리스트 메모리 블록의 시작 위치로 설정된다. As case list (eg, as case list 508a) and as result list (eg, asistlist 510a) may be implemented as a linked list. In another embodiment, the cases list (eg, ascase list 508a) and the results list (eg, assultlist 510a) are assigned to a block of contiguous memory locations of configurable size, such as an array. For example, the pointer to the assist list is set to the start position of the assist list memory block, and the pointer to the assult list is set to the start position of the aslist list memory block.

단계 604에서, 입력을 수신한다. 한 실시예에서, "현 포인터"의 값은 "이전 포인터"로 설정되고, "현 포인터"는 입력으로 설정된다. 주어진 예에서, 수신한 입 력은 "C"이다. 단계 604에서, 입력이 검증(validation)된다. 주어진 예에서, 이는 "C"가 유효한 데이터세트 요소인 지를 확인한다. "C"는 물론 유효한 요소로서, 메모리(104)의 위치(15)에 배치된 요소이다. In step 604, an input is received. In one embodiment, the value of "current pointer" is set to "previous pointer" and "current pointer" is set as input. In the given example, the received input is "C". In step 604, the input is validated. In the example given, this verifies that "C" is a valid dataset element. "C" is, of course, a valid element, which is disposed at position 15 of memory 104.

단계 606에서, 노드가 기존재하지 않을 경우, 인터라킹 트리 데이터스토어에 노드가 생성되고, 초기화되어, 메모리의 한 위치에 저장된다. 본 예에서, 인터라킹 트리 데이터스토어(208)의 노드(312)가 BOT-C를 표현하면서 생성된다. 노드 BOT-C(312)의 케이스 포인터, 리절트 포인터, 애즈케이스리스트에 대한 포인터, 애즈케이스리스트, 애즈리절트리스트에 대한 포인터, 그리고 애즈리절트리스트가 널로 초기화되고, BOT-C는 메모리(104)에 위치(140)으로 저장된다.In step 606, if the node does not exist, the node is created in the interlocking tree datastore, initialized, and stored in a location in memory. In this example, node 312 of interlocking tree datastore 208 is created representing BOT-C. The case pointer of the node BOT-C 312, the result pointer, the pointer to the as case list, the as case list, the pointer to the as resolve list, and the as result list are initialized to null, and the BOT-C stores the memory ( 104 is stored as location 140.

단계 608에서, 발명의 한 실시예에 따라, 단계 606에서 생성된 노드에 대한 링크들이 생성된다. 새 노드는 새 노드의 케이스 포인터를 이전 포인터의 값으로 설정함으로서, 그리고 새 노드의 리절트 포인터를 현 포인터의 값으로 설정함으로서 규정된다. 도 5b의 인터라킹 트리 데이터스토어(500b)는 링크 생성 후 인터라킹 트리 데이터스토어(208)를 도시한다. 링크 생성 후 노드 BOT(302), C(306), 그리고 BOT-C(312)의 콘텐트들이 블록도표(502c)에 도시된다. 서브컴포넌트 BOT-C(312)는 노드 BOT(302)를 노드 C(306)와 순차적으로 조합함으로서 생성된다. 따라서, 케이스 포인터와 리절트 포인터에 대해 다음의 값들이 설정된다. 노드 BOT-C(312)의 케이스 포인터(520b)는 0으로 설정되고(메모리(104)의 노드 BOT(302)의 위치), 노드 BOT-C(312)의 결과 포인터(522b)의 위치는 15로 설정된다(메모리(104) 내 요소 노드 C(306)의 위치).In step 608, according to one embodiment of the invention, links to 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 the old pointer, and setting the result pointer of the new node to the value of the current pointer. The interlocking tree datastore 500b of FIG. 5B shows the interlocking tree datastore 208 after link creation. After link creation, the contents of node BOT 302, C 306, and BOT-C 312 are shown in block diagram 502c. The subcomponent BOT-C 312 is created by sequentially combining the node BOT 302 with the node C 306. Therefore, the following values are set for the case pointer and the result pointer. The case pointer 520b of the node BOT-C 312 is set to 0 (the position of the node BOT 302 of the memory 104), and the position of the result pointer 522b of the node BOT-C 312 is 15. Is set (position of element node C 306 in memory 104).

발명의 한 실시예에서, 새 노드로부터 새 노드를 도출한 노드까지 링크를 생성함에 추가하여, 새 노드를 도출한 노드들의 링크된 리스트들, 즉, 애즈케이스리스트와 애즈리절트리스트에, 상기 새 노드의 위치에 대한 포인터를 추가함으로서 애즈케이스리스트 및 애즈리절트리스트 링크들이 생성된다. 포인터들은 리스트의 종점에 추가될 수도 있고, 리스트의 시점에 추가될 수도 있으며, 또는, 리스트 내 어딘가에 삽입될 수도 있다. 추가적으로, 다수의 리스트들이 유지될 수 있다. 가령, 노드의 애즈케이스리스트는 가장 자주 액세스되는 순서로 포인터들을 유지하는 오더 리스트(ordered list)에 부가하여, 링크된 리스트의 종점에 포인터들을 부가하는 시퀀스 리스트(sequential list)를 포함할 수 있다. 주어진 예가 한개의 오더 리스트와 한개의 시퀀스 리스트만을 언급하고 있으나, 발명은 이에 제한되지 않는다. 오더 리스트는 최종 업데이트, 최종 액세스, 업데이트나 액세스의 빈도, 또는 그외 다른 적절한 규칙에 의해 순서정렬될 수 있다. In one embodiment of the invention, in addition to creating a link from the new node to the node that derived the new node, in the linked lists of nodes that derived the new node, namely the assist list and the results list, By adding a pointer to the location of the node, the caselist and aslistlist links are created. Pointers may be added to the end of the list, may be added to the beginning of the list, or may be inserted somewhere in the list. In addition, multiple lists may be maintained. For example, the node's case list may include a sequential list that adds pointers to the endpoints of the linked list, in addition to an ordered list that holds pointers in the order in which they are most frequently accessed. Although the example given refers only to one order list and one sequence list, the invention is not so limited. The order list may be ordered by last update, last access, frequency of updates or accesses, or other appropriate rules.

새 노드에 대한 링크들이 만들어진다. 새 노드에 대한 포인터가 이전 포인터의 애즈케이스리스트에 추가되고, 현 포인터의 애즈리절트리스트에 추가된다. 본 예에서, 노드 BOT-C(312)의 케이스포인터(520b)를 노드 BOT(302)의 위치, 즉, 위치 0(블록도표(503b)의 링크(320a))으로 설정함으로서, 그리고 노드BOT-C(312)의 위치, 즉, 위치 140에 대한 포인터를 애즈케이스리스트(508b)에 추가하여 노드 BOT(302)의 애즈케이스리스트(508b)(링크 320b)를 업데이트함으로서, 양방향 링크(320)가 발생된다. 노드 BOT(302)가 노드 BOT-C(312)를 형성하는 노드 중 하나이기 때문에, 케이스 포인터(520a)가 설정된다. 노드 BOT-C(312)를생성하는 두 노드 중 첫번째에 해당하는 노드 BOT-C(312)의 합성에 노드 BOT(302)가 사용되기 때문에, 애즈케이스리스트(508b)가 업데이트된다. 애즈케이스리스트(508b)는 널 세트를 현재 가지고 있다(즉, 애즈케이스리스트(508b)는 비어있다). 노드 BOT-C(312)가 메모리(104)내 위치(140)에 위치하기 때문에, 애즈케이스리스트(508b)는 널로부터 140으로 업데이트된다. 애즈케이스리스트(508b)가 널이 아닌 세트로 구성될 경우, 노드 BOT-C(312) 위치(140)는 상술한 방식들 중 한가지로 애즈케이스리스트(508b)에 추가될 것이다. Links to the new node are made. The pointer to the new node is added to the case list of the previous pointer and added to the aslist of the current pointer. In this example, the case pointer 520b of node BOT-C 312 is set to the position of node BOT 302, that is, position 0 (link 320a in block diagram 503b), and node BOT- By adding a pointer to the location of C 312, i.e., location 140, to the case list 508b, the bidirectional link 320 is updated by updating the case list 508b (link 320b) of the node BOT 302. Is generated. Since node BOT 302 is one of the nodes forming node BOT-C 312, case pointer 520a is set. As node list 508b is updated because node BOT 302 is used in the synthesis of node BOT-C 312 corresponding to the first of the two nodes creating node BOT-C 312. Ascaselist 508b currently has a null set (ie, ascaselist 508b is empty). As node BOT-C 312 is located at location 140 in memory 104, as-case list 508b is updated from null to 140. If the caselist 508b is configured with a non-null set, the node BOT-C 312 location 140 will be added to the ascaselist 508b in one of the ways described above.

마찬가지로, 노드 BOT-C(312)의 리절트포인터(522b)를 노드 C의 위치, 즉, 위치 15(블록도표(503b)의 링크(328a))로 설정함으로서, 그리고 노드BOT-C(312)의 위치에 대한 포인터를 애즈리절트리스트(518b)에 추가하여 요소 노드 C(306)의 애즈리절트리스트(518b)(링크 328b)를 업데이트함으로서, 양방향 링크(328)가 발생된다. 노드 C(306)가 노드 BOT-C(312)를 형성하는 노드 중 한가지이기 때문에 리절트 포인터(522b)가 설정된다. 노드 BOT-C(312)를 생성하는 두 노드 중 두번째 노드를 노드 C(306)가 포함하기 때문에 애즈리절트리스트(518b)가 업데이트된다. 그래서 링크(328b)가 애즈리절트 링크라 불린다. 애즈리절트리스트(518b)는 널 세트를 현재 지닌다. 즉, 애즈리절트리스트(518b)는 비어있다. 노드 BOT-C(312)가 메모리(104)의 위치 140에 위치하기 때문에, 애즈리절트리스트(518b)는 널로부터 140으로 업데이트된다. 애즈리절트리스트(518b)가 널이 아닌 세트로 구성된다면, 노드 BOT-C(312) 위치(140)는 상술한 방식 중 한가지로 애즈리절트리스트(518b)에 추가될 것이다. Similarly, by setting the result pointer 522b of node BOT-C 312 to the position of node C, that is, position 15 (link 328a of block diagram 503b), and node BOT-C 312. The bidirectional link 328 is generated by updating the results list 518b (link 328b) of element node C 306 by adding a pointer to the location of s to the results list 518b. The result pointer 522b is set because node C 306 is one of the nodes forming node BOT-C 312. Aslist list 518b is updated because node C 306 includes the second of the two nodes that create node BOT-C 312. Thus, the link 328b is called an associative link. Asrelicist 518b currently has a null set. In other words, the results list 518b is empty. As node BOT-C 312 is located at location 140 of memory 104, aslist list 518b is updated from null to 140. If the results list 518b consists of a non-null set, then the node BOT-C 312 location 140 will be added to the results list 518b in one of the ways described above.

이때, 도 5b에 도시되는 데이터스토어에 해당하는 인터라킹 트리 데이터스토어(500b)가 생성되었다. 동일한 구조가 도 5b에 블록도표(503b)로 상세하게 표현된다. 링크(320b)는 노드 BOT-C(312)의 위치에 대한 포인터를 표현하는 것으로서, 노드 BOT(302)에 대한 애즈케이스리스트(508b)의 첫번째 요소이며, 상기 링크(328b)는 노드 BOT-C(312)의 위치에 대한 포인터를 표현하는 것으로서, 노드 C(306)의 애즈리절트리스트(518b)의 첫번째 요소에 해당한다. 링크(320a)는 노드 BOT-C(312)로부터 그 첫 부분인 노드 BOT(302)에 대한 포인터를 표현하며, 링크(328a)는 노드 BOT-C(312)로부터 그 두번째 부분인 노드 C(306)에 대한 포인터를 표현한다. At this time, an interlocking tree datastore 500b corresponding to the datastore shown in FIG. 5B is generated. The same structure is represented in detail in block diagram 503b in FIG. 5B. Link 320b represents a pointer to the location of node BOT-C 312, which is the first element of the assistlist 508b for node BOT 302, where link 328b is node BOT-C. Represents a pointer to the location of 312, and corresponds to the first element of the results list 518b of node C (306). Link 320a represents a pointer to node BOT 302 that is its first part from node BOT-C 312, and link 328a represents node C 306 that is its second part from node BOT-C 312. Represents a pointer to).

단계 610에서, 입력이 더 있는 지를 결정한다. 본 경우에, 입력이 더 있어 단계 604로 프로세스가 되돌아간다. 단계 604에서, 입력이 검증(validation)된다. 본 예에서, 이는 "A"가 유효한 데이터세트 요소인 지를 확인하는 과정을 포함한다. "A"는 물론 유효한 요소로서, 메모리(104) 내 위치 5에 위치한다. In step 610, it is determined whether there is more input. In this case, there is more input and the process returns to step 604. In step 604, the input is validated. In this example, this involves checking that "A" is a valid dataset element. "A" is, of course, a valid element and is located at position 5 in memory 104.

단계 606에서, 노드가 기존재하지 않을 경우, 인터라킹 트리 데이터스토어(208)의 노드(314)가 생성되어, BOT-C-A를 표현한다. 노드 BOT-C-A(314)의 케이스 포인터, 리절트 포인터, 애즈케이스리스트에 대한 포인터, 애즈케이스리스트, 애즈리절트리스트에 대한 포인터, 그리고 애즈리절트리스트가 널로 초기화되며, 노드 BOT-C-A(314)는 메모리(104)에 위치 145로 저장된다. In step 606, if the node does not exist, node 314 of interlocking tree datastore 208 is created to represent the BOT-C-A. The case pointer of the node BOT-CA 314, the result pointer, the pointer to the as-case list, the pointer to the as-case list, the as-list, and the as-list are initialized to null, and the node BOT-CA 314 is initialized to null. ) Is stored in memory 104 at location 145.

단계 608에서, 발명의 한 실시예에 따라, 단계 606에서 생성된 노드에 대한 링크들이 생성된다. 도 5c는 링크들의 생성에 따른 인터라킹 트리 데이터스토어(500c)를 도시한다. 노드 BOT(302), C(306), A(304), BOT-C(312), 그리고 BOT-C- A(314)의 콘텐트들이 블록도표(502c)에 도시된다. 서브컴포넌트 BOT-C-A(314)는 노드 BOT-C(312)를 노드 A(304)와 순차적으로 조합함으로서 생성된다. 따라서, 케이스 포인터와 리절트 포인터에 대해 다음의 값들이 설정된다. 노드 BOT-C-A(314)의 케이스 포인터(528c)는 140(링크 322a)으로 설정되고(메모리(104)의 요소 노드 BOT-C(312)의 위치), 노드 BOT-C-A(314)의 결과 포인터(530c)의 위치는 5(링크 330a)로 설정된다(메모리(104) 내 요소 노드 A(304)의 위치).In step 608, according to one embodiment of the invention, links to the node created in step 606 are created. 5C shows an interlocking tree datastore 500c as the creation of links. The contents of node BOT 302, C 306, A 304, BOT-C 312, and BOT-C-A 314 are shown in block diagram 502c. Subcomponent BOT-C-A 314 is created by sequentially combining node BOT-C 312 with node A 304. Therefore, the following values are set for the case pointer and the result pointer. Case pointer 528c of node BOT-CA 314 is set to 140 (link 322a) (location of element node BOT-C 312 in memory 104), and result pointer of node BOT-CA 314 The position of 530c is set to 5 (link 330a) (the position of element node A 304 in memory 104).

케이스 포인터(528c)를 140(링크(322a))으로 설정함으로서, 그리고 노드 BOT-C-A(314)의 위치에 대한 포인터를 노드BOT-C(312)의 애즈케이스리스트(524c)에 추가함으로서, 양방향 링크(322)가 발생된다. 노드 BOT-C-A(314)를 생성하는 두 노드 중 첫번째를 노드 BOT-C(312)가 포함하기 때문에, 애즈케이스리스트(524c)가 업데이트된다. 링크(322b)를 생성하기 전에, 노드 BOT-C(312)의 애즈케이스리스트(524c)가 널 세트를 가진다. 즉, 애즈케이스리스트(524c)는 비어 있다. 노드 BOT-C-A(314)가 위치 145에서 발견되기 때문에, 애즈케이스리스트(524c)가 널로부터 145로 업데이트된다. 애즈케이스리스트(524c)가 널이 아닌 세트로 구성될 경우, 노드 BOT-C-A(314) 위치 145는 상술한 방식들 중 한가지로 애즈케이스리스트(524c)에 추가될 것이다. By setting the case pointer 528c to 140 (link 322a), and by adding a pointer to the location of node BOT-CA 314 to the case list 524c of node BOT-C 312, Link 322 is generated. As case list 524c is updated because node BOT-C 312 includes the first of the two nodes that create node BOT-C-A 314. Prior to creating the link 322b, the case list 524c of the node BOT-C 312 has a null set. In other words, the case list 524c is empty. As node BOT-C-A 314 is found at position 145, ascase list 524c is updated from null to 145. If the cases list 524c is configured with a non-null set, node BOT-C-A 314 location 145 will be added to the cases list 524c in one of the ways described above.

마찬가지로, 노드 BOT-C-A(314)의 리절트포인터(530c)를 위치 5로 설정함으로서, 그리고 노드BOT-C-A(314)의 위치에 대한 포인터를 노드 A(304)의 애즈리절트리스트(542c)에 추가하여 요소 노드 A(304)의 애즈리절트리스트(542c)를 업데이트함으로서, 양방향 링크(330)가 발생된다. 노드 A(304)가 노드 BOT-C-A(314)를 형성 하는 두 노드 중 두번째를 포함하기 때문에 애즈리절트리스트(542c)가 업데이트된다. 링크(322b)를생성하기 전에, 애즈리절트리스트(542c)는 널 세트를 지닌다. 즉, 애즈리절트리스트(542c)는 비어있다. 노드 BOT-C-A(314)가 메모리(104)의 위치 145에 위치하기 때문에, 애즈리절트리스트(542c)는 널로부터 145로 업데이트된다. 애즈리절트리스트(542c)가 널이 아닌 세트로 구성된다면, 노드 BOT-C-A(314) 위치 145는 상술한 방식 중 한가지로 애즈리절트리스트(542c)에 추가될 것이다. Similarly, by setting the result pointer 530c of the node BOT-CA 314 to position 5, and a pointer to the position of the node BOT-CA 314 to the results list 542c of the node A 304. By updating the results list 542c of element node A 304 in addition to, the bidirectional link 330 is generated. Aslist list 542c is updated because node A 304 includes the second of two nodes that form node BOT-C-A 314. Prior to creating the link 322b, the Aslist List 542c has a null set. In other words, the results list 542c is empty. As node BOT-C-A 314 is located at location 145 of memory 104, aslist list 542c is updated from null to 145. If the results list 542c is configured as a non-null set, then node BOT-C-A 314 location 145 will be added to the results list 542c in one of the ways described above.

이때, 도 5c에 도시되는 데이터스토어에 해당하는 인터라킹 트리 데이터스토어(500c)가 생성되었다. 동일한 구조가 도 5c에 블록도표(503c)로 상세하게 표현된다. 링크(322b)는 노드 BOT-C-A(314)의 위치에 대한 포인터를 표현하는 것으로서, 노드 BOT-C(312)에 대한 애즈케이스리스트(524c)의 첫번째 요소이며, 상기 링크(330b)는 노드 BOT-C-A(314)의 위치에 대한 포인터를 표현하는 것으로서, 노드 A(304)의 애즈리절트리스트(542c)의 첫번째 요소에 해당한다. 링크(322a)는 노드 BOT-C-A(314)로부터 그 첫 부분인 노드 BOT-C(312)에 대한 포인터를 표현하며, 링크(330a)는 노드 BOT-C-A(314)로부터 그 두번째 부분인 노드 A(304)에 대한 포인터를 표현한다. At this time, an interlocking tree datastore 500c corresponding to the datastore shown in FIG. 5C is generated. The same structure is represented in detail in block diagram 503c in FIG. 5C. Link 322b represents a pointer to the location of node BOT-CA 314, which is the first element of the assistlist 524c for node BOT-C 312, where link 330b is a node BOT. Represents a pointer to the location of the CA 314, which corresponds to the first element of the Aslist list 542c of node A 304. Link 322a represents a pointer to node BOT-C 312 that is its first part from node BOT-CA 314, and link 330a represents node A that is its second part from node BOT-CA 314. Represents a pointer to 304.

단계 610에서, 입력이 더 있는 지를 결정한다. 본 경우에, 입력이 더 있어 단계 604로 프로세스가 되돌아간다. 단계 604에서, 입력을 수신한다. 주어진 예에예에수신되는 입력은 "T"이다. 단계 604에서, 입력이 검증(validation)된다. 본 예에서, 이는 "T"가 유효한 데이터세트 요소인 지를 확인하는 과정을 포함한다. "T"는 물론 유효한 요소로서, 메모리(104) 내 위치 100에 위치한다.In step 610, it is determined whether there is more input. In this case, there is more input and the process returns to step 604. In step 604, an input is received. In the example given, the input received is "T". In step 604, the input is validated. In this example, this involves checking that "T" is a valid dataset element. "T" is, of course, a valid element and is located at position 100 in memory 104.

단계 606에서, 노드가 기존재하지 않을 경우, 인터라킹 트리 데이터스토어의 노드가 생성되어, 초기화되고, 메모리 내 위치에 저장된다. 본 예에서, 인터라킹 트리 데이터스토어(208)의 노드(316)이 생성되어, BOT-C-A-T(316)을 표현한다. 그 케이스 포인터, 리절트 포인터, 애즈케이스리스트에 대한 포인터, 애즈케이스리스트, 애즈리절트리스트에 대한 포인터, 그리고 애즈리절트리스트가 널로 초기화되며, 노드 BOT-C-A-T(316)는 메모리(104)에 위치 150으로 저장된다. In step 606, if the node does not exist, the node of the interlocking tree datastore is created, initialized, and stored in a location in memory. In this example, node 316 of interlocking tree datastore 208 is created to represent BOT-C-A-T 316. The case pointer, the result pointer, the pointer to the ascase list, the pointer to the ascase list, the aslist, and the aslist are initialized to null, and the node BOT-CAT 316 is stored in memory 104. It is stored at location 150

단계 608에서, 발명의 한 실시예에 따라, 단계 606에서 생성된 노드에 대한 링크들이 생성된다. 도 5d는 링크들의 생성에 따른 인터라킹 트리 데이터스토어(500d)를 도시한다. 노드 BOT(302), C(306), A(304), T(308), BOT-C(312), BOT-C-A(314), 그리고 BOT-C-A-T(316)의 콘텐트들이 블록도표(502d)에 도시된다. 서브컴포넌트 BOT-C-A-T(316)는 노드 BOT-C-A(314)를 노드 T(308)와 순차적으로 조합함으로서 생성된다. 따라서, 케이스 포인터와 리절트 포인터에 대해 다음의 값들이 설정된다. 노드 BOT-C-A-T(316)의 케이스 포인터(544d)는 145로 설정되고(메모리(104)의 노드 BOT-C-A(314)의 위치), 결과 포인터(546d)의 위치는 100으로 설정된다(메모리(104) 내 요소 노드 T(308)의 위치).In step 608, according to one embodiment of the invention, links to the node created in step 606 are created. 5D shows an interlocking tree datastore 500d as the creation of links. The contents of node BOT 302, C 306, A 304, T 308, BOT-C 312, BOT-CA 314, and BOT-CAT 316 are block diagrams 502d. Is shown. The subcomponent BOT-C-A-T 316 is created by sequentially combining the node BOT-C-A 314 with the node T 308. Therefore, the following values are set for the case pointer and the result pointer. The case pointer 544d of the node BOT-CAT 316 is set to 145 (the position of the node BOT-CA 314 of the memory 104), and the position of the result pointer 546d is set to 100 (the memory ( 104) location of element node T 308).

케이스 포인터(544d)를 145로 설정함으로서, 그리고 노드 BOT-C-A-T(316)의 위치에 대한 포인터를 노드 BOT-C-A(314)의 애즈케이스리스트(532d)에 추가함으로서, 양방향 링크(324)가 발생된다. 노드 BOT-C-A-T(316)를 생성하는 두 노드 중 첫번째를 노드 BOT-C-A(314)가 포함하기 때문에, 애즈케이스리스트(532d)가 업데이트된다. 링크(324)를 생성하기 전에, 노드 BOT-C-A(314)의 애즈케이스리스트(532d)가 널 세트를 가졌다. 즉, 애즈케이스리스트(532d)는 비어 있었다. 노드 BOT-C-A-T(316)가 위치 150에서 발견되기 때문에, 애즈케이스리스트(532d)가 널로부터 150으로 업데이트된다. 애즈케이스리스트(532d)가 데이터를 지닐 경우, 노드 BOT-C-A-T(316) 위치 150은 상술한 방식들 중 한가지로 애즈케이스리스트(532d)에 추가될 것이다. By setting the case pointer 544d to 145 and adding a pointer to the location of the node BOT-CAT 316 to the case list 532d of the node BOT-CA 314, the bidirectional link 324 occurs. do. As node list 532d is updated because node BOT-C-A 314 includes the first of two nodes that create node BOT-C-A-T 316. Prior to creating the link 324, the ascase list 532d of the node BOT-C-A 314 had a null set. In other words, the case list 532d was empty. As node BOT-C-A-T 316 is found at position 150, ascase list 532d is updated from null to 150. If the case list 532d has data, node BOT-C-A-T 316 location 150 will be added to the case list 532d in one of the ways described above.

마찬가지로, 리절트포인터(546d)를 위치 100으로 설정함으로서, 그리고 노드 BOT-C-A-T(316)의 위치에 대한 포인터를 애즈리절트리스트(558d)에 추가하여 요소 노드 T(308)의 애즈리절트리스트(558d)를 업데이트함으로서, 양방향 링크(332)가 발생된다. 노드 T(308)가 노드 BOT-C-A-T(316)를 생성하는 두 노드 중 두번째를 포함하기 때문에 애즈리절트리스트(558d)가 업데이트된다. 링크(332)를 생성하기 전에, 요소 노드 T(308)의 애즈리절트리스트(558d)는 널 세트를 지녔다. 즉, 널 세트가 150으로 바뀐다. 이 위치는 노드 BOT-C-A-T(316)의 메모리(104) 내 위치이다. 애즈리절트리스트(558d)가 데이터를 지닌다면, 노드 BOT-C-A-T(316) 위치 150은 상술한 방식 중 한가지로 애즈리절트리스트(558d)에 추가될 것이다. Similarly, by setting the result pointer 546d to position 100, and adding a pointer to the position of node BOT-CAT 316 to the results list 558d, the results list of element node T 308. By updating 558d, a bidirectional link 332 is generated. Aslist list 558d is updated because node T 308 includes the second of two nodes that create node BOT-C-A-T 316. Prior to creating the link 332, the Aslist List 558d of the element node T 308 had a null set. That is, the null set is changed to 150. This location is the location in memory 104 of node BOT-C-A-T 316. If the results list 558d has data, node BOT-C-A-T 316 location 150 will be added to the results list 558d in one of the ways described above.

이때, 도 5d에 도시되는 데이터스토어에 해당하는 인터라킹 트리 데이터스토어(500e)가 생성되었다. 동일한 구조가 도 5d에 블록도표(503d)로 상세하게 표현된다. At this time, an interlocking tree datastore 500e corresponding to the datastore shown in FIG. 5D is generated. The same structure is represented in detail in block diagram 503d in FIG. 5D.

단계 610에서, 입력이 더 있는 지를 결정한다. 본 경우에, 입력이 더 있어 단계 604로 프로세스가 되돌아간다. 단계 604에서, 입력을 수신한다. 주어진 예에서, 수신되는 입력은 " ", 또는 블랭크 문자이다. 단계 604에서, 입력이 검증 (validation)된다. 본 예에서, 이는 블랭크 문자가 유효한 데이터세트 요소인 지를 확인하는 과정을 포함한다. 블랭크 문자는 물론 유효한 요소로서, 단어 "CAT"의 종점을 표시하는 디리미터이다. 따라서, 발명의 한 실시예에서, 위치(135)에 위치한 노드 EOT(310)는 서브컴포넌트 BOT-C-A-T(316)에 추가되어, 본 경우에 한 단어에 해당하는 최종 프로덕트를 생성한다. In step 610, it is determined whether there is more input. In this case, there is more input and the process returns to step 604. In step 604, an input is received. In the given example, the input received is "", or blank character. In step 604, the input is validated. In this example, this involves checking whether the blank character is a valid dataset element. The blank character is, of course, a valid element and is a delimiter indicating the end point of the word "CAT". Thus, in one embodiment of the invention, node EOT 310 located at location 135 is added to subcomponent BOT-C-A-T 316 to produce the final product corresponding to one word in this case.

단계 606에서, 노드가 기존재하지 않을 경우, 인터라킹 트리 데이터스토어의 노드가 생성되어, 초기화되고, 메모리 내 위치에 저장된다. 본 예에서, 인터라킹 트리 데이터스토어(208)의 노드(318)가 생성되어, BOT-C-A-T-EOT(318)를 표현한다. BOT-C-A-T-EOT(318)의 케이스 포인터, 리절트 포인터, 애즈케이스리스트에 대한 포인터, 애즈케이스리스트, 애즈리절트리스트에 대한 포인터, 그리고 애즈리절트리스트가 널로 초기화되며, 노드 BOT-C-A-T-EOT(318)는 메모리(104)에 위치 155로 저장된다. In step 606, if the node does not exist, the node of the interlocking tree datastore is created, initialized, and stored in a location in memory. In this example, node 318 of interlocking tree datastore 208 is created to represent BOT-C-A-T-EOT 318. The case pointer, the result pointer, the pointer to the ascase list, the aslist, the pointer to the aslist, and the aslist of the BOT-CAT-EOT 318 are initialized to null, and the node BOT-CAT- is initialized to null. EOT 318 is stored in memory 104 at location 155.

단계 608에서, 발명의 한 실시예에 따라, 단계 606에서 생성된 노드에 대한 링크들이 생성된다. 도 5e는 링크들의 생성에 따른 인터라킹 트리 데이터스토어(500e)를 도시한다. 노드 BOT(302), C(306), A(304), T(308), EOT(310), BOT-C(312), BOT-C-A(314), BOT-C-A-T(316), 그리고 BOT-C-A-T-EOT(318)의 콘텐트들이 블록도표(502e)에 도시된다. 최종 프로덕트 BOT-C-A-T-EOT(318)는 노드 BOT-C-A-T(316)를 노드 EOT(310)와 순차적으로 조합함으로서 생성된다. 따라서, 노드 BOT-C-A-T-EOT(318)의 케이스 포인터와 리절트 포인터에 대해 다음의 값들이 설정된다. 노드 BOT-C-A-T-EOT(318)의 케이스 포인터(568e)는 150으로 설정되고(메모리(104) 의 노드 BOT-C-A-T(316)의 위치), 결과 포인터(570e)의 위치는 135로 설정된다(메모리(104) 내 요소 노드 EOT(310)의 위치).In step 608, according to one embodiment of the invention, links to the node created in step 606 are created. 5E illustrates an interlocking tree datastore 500e as the creation of links. Nodes BOT 302, C 306, A 304, T 308, EOT 310, BOT-C 312, BOT-CA 314, BOT-CAT 316, and BOT- The contents of CAT-EOT 318 are shown in block diagram 502e. The final product BOT-C-A-T-EOT 318 is created by sequentially combining the node BOT-C-A-T 316 with the node EOT 310. Accordingly, the following values are set for the case pointer and the resort pointer of the node BOT-C-A-T-EOT 318. The case pointer 568e of the node BOT-CAT-EOT 318 is set to 150 (the position of the node BOT-CAT 316 in the memory 104), and the position of the result pointer 570e is set to 135 ( Location of element node EOT 310 in memory 104).

케이스 포인터(568e)를 150으로 설정함으로서, 그리고 노드 BOT-C-A-T-EOT(318)의 위치에 대한 포인터를 노드 BOT-C-A-T(316)의 애즈케이스리스트(548e)에 추가함으로서, 양방향 링크(326)가 발생된다. 노드 BOT-C-A-T-EOT(318)를 생성하는 두 노드 중 첫번째를 노드 BOT-C-A-T(316)가 포함하기 때문에, 애즈케이스리스트(548e)가 업데이트된다. 링크(326)를 생성하기 전에, 노드 BOT-C-A-T(316)의 애즈케이스리스트(548e)가 널 세트를 지녔다. 즉, 애즈케이스리스트(548e)는 비어 있었다. 노드 BOT-C-A-T(316)가 위치 155에서 발견되기 때문에, 애즈케이스리스트(548e)가 널로부터 155로 업데이트된다. 애즈케이스리스트(548e)가 널이 아닌 세트로 구성될 경우, 노드 BOT-C-A-T 위치 155는 상술한 방식들 중 한가지로 애즈케이스리스트(548e)에 추가될 것이다. By setting the case pointer 568e to 150 and adding a pointer to the location of the node BOT-CAT-EOT 318 to the case list 548e of the node BOT-CAT 316, the bidirectional link 326. Is generated. As node list 548e is updated because node BOT-C-A-T 316 includes the first of the two nodes that create node BOT-C-A-T-EOT 318. Prior to creating the link 326, the ascase list 548e of node BOT-C-A-T 316 had a null set. In other words, as-case list 548e was empty. As node BOT-C-A-T 316 is found at position 155, ascase list 548e is updated from null to 155. If the caselist 548e is configured with a non-null set, then node BOT-C-A-T location 155 will be added to the caselist 548e in one of the ways described above.

마찬가지로, 노드 BOT-C-A-T-EOT(318)의 리절트포인터(570e)를 위치 135로 설정함으로서, 그리고 노드 BOT-C-A-T-EOT(318)의 위치 155에 대한 포인터를 노드 EOT(310)의 애즈리절트리스트(566e)에 추가하여 노드 EOT(310)의 애즈리절트리스트(566e)를 업데이트함으로서, 양방향 링크(334)가 발생된다. 노드 EOT(310)가 노드 BOT-C-A-T-EOT(318)를 생성하는 두 노드 중 두번째를 포함하기 때문에 애즈리절트리스트(566e)가 업데이트된다. 링크(334)를 생성하기 전에, 애즈리절트리스트(566e)는 널 세트를 지녔다. 즉, 애즈리절트리스트(566e)가 비어있었다. 노드 BOT-C-A-T-EOT(318)가 위치 155에 위치하기 때문에, 애즈리절트리스트(566e)가 널로부 터 155로 업데이트된다. 애즈리절트리스트(566e)가 데이터를 지닌다면, 노드 BOT-C-A-T-EOT(318) 위치 155는 상술한 방식 중 한가지로 애즈리절트리스트(566e)에 추가될 것이다. Similarly, by setting the resort pointer 570e of the node BOT-CAT-EOT 318 to position 135, and a pointer to the position 155 of the node BOT-CAT-EOT 318 as an alias of node EOT 310. By updating the results list 566e of node EOT 310 in addition to try 566e, bi-directional link 334 is generated. Aslist list 566e is updated because node EOT 310 includes the second of two nodes that create node BOT-C-A-T-EOT 318. Prior to creating the link 334, the asylistist 566e had a null set. In other words, the Aslist List 566e was empty. Because node BOT-C-A-T-EOT 318 is located at position 155, aslist list 566e is updated from null to 155. If the results list 566e has data, node BOT-C-A-T-EOT 318 location 155 will be added to the results list 566e in one of the ways described above.

이때, 도 5e에 도시되는 데이터스토어에 해당하는 인터라킹 트리 데이터스토어(500e)가 생성되었다. 동일한 구조가 도 5e에 블록도표(503e)로 상세하게 표현된다. At this time, an interlocking tree datastore 500e corresponding to the datastore shown in FIG. 5E is generated. The same structure is represented in detail in block diagram 503e in FIG. 5E.

단계 610에서, 입력이 더 있는 지를 결정한다. 본 경우에, 입력이 djqtdj 처리과정이 단계 612에서 종료된다.In step 610, it is determined whether there is more input. In this case, the input djqtdj process ends at step 612.

이제, "CAT" 대신에 "CAT TAB"을 지닌 입력(204)을 고려해보자. 아래의 과정이 이어진다. "CAT"의 입력을 처리하면, 도 5e의 인터라킹 트리 데이터스토어(500e)가 생성된다. 단계 610에서 추가 입력이 있다. 그러나 프로세스는 계속되어, 도 7a의 인터라킹 트리 데이터스토어(700a)에 도달한다. 해당 노드 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), 그리고 BOT-T-A-B-EOT(709)의 콘텐트가 블록도표(702a)에 도시된다. 인터라킹 트리 데이터스토어(500e)에 노드 BOT-T(703), BOT-T-A(705), BOT-T-A-B(707), 그리고 BOT-T-A-B-EOT(709)가 추가되어, 인터라킹 트리 데이터스토어(700a)를 생성한다. Now consider an input 204 with "CAT TAB" instead of "CAT". The following process is followed. Processing the input of " CAT " generates the interlocking tree datastore 500e of Fig. 5E. In step 610 there is an additional input. However, the process continues, reaching the interlocking tree datastore 700a of FIG. 7A. Node BOT 302, C 306, A 304, T 308, B 718, EOT 310, BOT-C 312, BOT-CA 314, BOT-CAT ( 316), BOT-CAT-EOT 318, BOT-T 703, BOT-TA 705, BOT-TAB 707, and BOT-TAB-EOT 709 include block diagram 702a. Is shown. Nodes BOT-T 703, BOT-TA 705, BOT-TAB 707, and BOT-TAB-EOT 709 are added to the interlocking tree datastore 500e, and the interlocking tree datastore 500e is added. 700a).

본 프로세스에서, 애즈케이스링크(701, 704, 706, 708)가 생성되었으며, 애즈리절트 링크(710, 712, 714, 716)이 생성되었다. 노드 BOT-T(703)의 애즈케이스 포인터(720f)는 0으로 설정되고, 이는 노드 BOT(302)의 위치에 해당한다. 노드 BOT-T(703)의 애즈리절트 포인터(722f)는 100으로 설정되었으며, 이는 노드 T(308)의 위치에 해당한다. 노드 BOT-T-A(705)의 애즈케이스 포인터(728f)는 170으로 설정되었으며, 노드 BOT-T(703)의 위치에 해당한다. 노드 BOT-T-A(705)의 애즈리절트 포인터(730f)는 5로 설정되며, 노드 A(304)의 위치에 해당한다. In this process, ascase links 701, 704, 706, and 708 have been created, and as result links 710, 712, 714, 716 have been created. As-case pointer 720f of node BOT-T 703 is set to 0, which corresponds to the position of node BOT 302. As pointer 722f of node BOT-T 703 is set to 100, which corresponds to the location of node T 308. The as-case pointer 728f of the node BOT-T-A 705 is set to 170 and corresponds to the position of the node BOT-T 703. The as pointer 730f of the node BOT-T-A 705 is set to 5 and corresponds to the position of the node A 304.

노드 BOT(302)의 애즈케이스리스트(508f)에 BOT-T(703)의 위치인 170을 추가함으로서 애즈케이스 링크(701)이 생성된다. 그래서, 애즈케이스리스트(508f)는 BOT-C(312)의 위치인 140과, BOT-T(703)의 위치인 170을 모두 포함한다. 노드 BOT-T(703)의 애즈케이스리스트(724f)에 BOT-T-A의 위치인 175를 추가함으로서, 애즈케이스 링크(704)가 생성된다. 노드 BOT-T-A(705)의 애즈케이스리스트(732f)에 BOT-T-A-B의 위치인 180을 더함으로서, 애즈케이스링크(706)가 생성된다. The add as link 701 is created by adding 170, the location of the BOT-T 703, to the as list 508f of the node BOT 302. Thus, the case list 508f includes both 140, which is the position of the BOT-C 312, and 170, which is the position of the BOT-T 703. By adding 175, which is the location of the BOT-T-A, to the case list 724f of the node BOT-T 703, an ascase link 704 is generated. As-case link 706 is created by adding 180, which is the position of BOT-T-A-B, to the case list 732f of node BOT-T-A 705.

노드 T(308)의 애즈리절트리스트(558f)에 BOT-T(703)의 위치인 170을 추가함으로서 애즈리절트 링크(710)가 생성된다. 그래서, 애즈리절트리스트(558f)는 노드 BOT-C-A-T의 위치인 150과, BOT-T(703)의 위치인 170을 모두 포함한다. 노드 A(304)의 애즈리절트리스트(542f)에 BOT-T-A의 위치인 175를 추가함으로서 애즈리절트 링크(712)가 생성된다. 그래서, 애즈리절트리스트(542f)는 노드 BOT-C-A(314)의 위치인 145와, 노드 BOT-T-A의 위치인 175를 모두 포함한다. 노드 B(718)의 애즈리절트리스트(742f)에 노드 BOT-T-A-B(707)의 위치인 180을 추가함으로서 애즈리절트 링크(714)가 생성된다. 노드 B(718)의 애즈리절트리스트(742f)가 이전에 널이었기 때문에, 노드 B(718)의 애즈리절트리스트(742f)는 노드 BOT-T-A-B(707)의 위치인 180만을 가진다. 노드 EOT(310)의 애즈리절트리스트(566f)에 BOT-T-A-B- EOT(709)의 위치인 185를 추가함으로서 애즈리절트 링크(716)가 생성된다. 그래서, 애즈리절트리스트(566f)는 노드 BOT-C-A-T-EOT(318)의 위치인 155와, 노드 BOT-T-A-B-EOT(185)의 위치인 185를 모두 포함한다. The add link 710 is created by adding 170, which is the location of the BOT-T 703, to the resolve list 558f of the node T 308. FIG. Thus, the aslist list 558f includes both the position 150 of the node BOT-C-A-T and the position 170 of the BOT-T 703. The add link 712 is created by adding 175, which is the location of the BOT-T-A, to the aslist list 542f of the node A 304. Thus, the results list 542f includes both the position 145 of the node BOT-C-A 314 and the position 175 of the node BOT-T-A. The add link 714 is created by adding 180, which is the position of the node BOT-T-A-B 707, to the aslist list 742f of the node B 718. Since the asylistist 742f of node B 718 was previously null, the asylistist 742f of node B 718 has only 180, which is the position of node BOT-T-A-B 707. As links 716 are created by adding 185, which is the location of the BOT-T-A-B-EOT 709, to the Aslist list 566f of the node EOT 310. As shown in FIG. Thus, the aslist list 566f includes both the position 155 of the node BOT-C-A-T-EOT 318 and the position 185 of the node BOT-T-A-B-EOT 185.

"CAT" 대신에 "CATS CATHODE"를 입력(204)하는 경우를 고려해보자. 상술한 프로세스가 이어진다. 입력 "CAT"를 처리하면, 도 5d의 인터라킹 트리 데이터스토어가 생성된다. 단계 610에서, 추가 입력이 발견되어, 프로세스가 계속된다. 입력 "CATS"의 처리에 이어, 도 8의 인터라킹 트리 데이터스토어(800a)가 발생되었다. 추가 입력이 발견되었다. "CATHODE"가 처리됨에 따라, BOT-C, BOT-C-A, BOT-C-A-T에대한 새 노드들을 생성되지 않았다. 왜냐하면 이들은 기존재하기 때문이다. 추가 입력 "S CATHODE"가 처리되어, 도 8의 인터라킹 트리 데이터스토어(800b)를 도출한다. 결과적인 트리는 자체-조직형으로서, 결과적인 인터라킹 트리 데이터스토어의 구조는 수신 입력에 따라 좌우된다. Consider the case of entering 204 CATS CATHODE instead of CAT. The above process is followed. Processing the input " CAT " generates the interlocking tree datastore of FIG. 5D. At step 610, additional input is found and the process continues. Following processing of the input " CATS ", the interlocking tree datastore 800a of FIG. Additional input was found. As "CATHODE" was processed, no new nodes were created for BOT-C, BOT-C-A, BOT-C-A-T. Because they exist. Additional input "S CATHODE " is processed to derive interlocking tree datastore 800b of FIG. The resulting tree is self-organizing, so the structure of the resulting interlocking tree datastore depends on the incoming input.

"CAT" 대신에 "CATS ARE FURRY"를 입력(204)하는 경우를 고려해보자. 도 9a는 발명의 한 실시예에 따라 발생된 인터라킹 트리 데이터베이스(900)를 도시한다. 본 예에서 구절 종료 또는 문자 종료 인디케이터같은 입력사항의 인디케이터 존재는 한 레벨의 최종 프로덕트들(가령, BOT-C-A-T-EOT(908), BOT-A-R-E-EOT(906), BOT-F-U-R-R-Y-EOT(904))을 다음 레벨의 서브컴포넌트들로 조합하는 것을 트리거링시킬 수 있다. 즉, 한 레벨(가령, 레벨 1(910))의 최종 프로덕트 노드들(가령, "CATS", "ARE", "FURRY"같은 단어들)이 다음 레벨(가령, 레벨 2(912))의 데이터세트 요소들을 표현하는 루트 노드가 될 수 있다. 따라서, 노드 "BOT-CATS-ARE- FURRY-EOT"(902)는 "CATS ARE FURRY" 문장을 표현하는 단일 노드이다. Consider the case of entering (204) "CATS ARE FURRY" instead of "CAT". 9A illustrates an interlocking tree database 900 generated in accordance with one embodiment of the invention. In this example, the presence of an indicator of an entry, such as a phrase-end or character-end indicator, indicates that one level of final products (eg, BOT-CAT-EOT 908, BOT-ARE-EOT 906, BOT-FURRY-EOT 904). ) Can be triggered to combine the next level of subcomponents. That is, the final product nodes of one level (e.g., level 1 910) (e.g. words such as "CATS", "ARE", "FURRY") are the data of the next level (e.g., level 2 912). It can be a root node that represents set elements. Thus, node "BOT-CATS-ARE-FURRY-EOT" 902 is a single node representing the "CATS ARE FURRY" sentence.

발명의 한 실시예에서, 상위 레벨의 데이터세트 요소들을 표현하는 노드들은 데이터, 또는 데이터나 개념들의 표현들을 지니지 않는다. 즉, 상위 레벨의 데이터세트 요소들을 표현하는 요소 루트 노드들은 하위 레벨의 노드들에 대한 포인터만을 지닌다. 가령 도 9b는, 도 9a의 노드들 중 일부분의 콘텐트를 도시한다. 레벨 1(910)의 노드 BOT-C-A-T-S-EOT는 레벨 2(912)의 요소 루트 노드로 사용되고 있다. 노드(908)의 애즈리절트리스트(914)는 노드 BOS-CATS(916)의 위치인 300을 지니며, BOS-CATS(916)의 애즈리절트 포인터(918)는 BOT-C-A-T-S-EOT(908)의 위치인 200을 지닌다. In one embodiment of the invention, nodes representing higher level dataset elements have no data, or representations of data or concepts. That is, element root nodes that represent upper level dataset elements only have pointers to lower level nodes. For example, FIG. 9B shows the content of some of the nodes of FIG. 9A. Node BOT-C-A-T-S-EOT at level 1 910 is being used as the element root node at level 2 912. Aslist list 914 of node 908 has a position of node BOS-CATS 916, 300, and aspoint pointer 918 of BOS-CATS 916 to BOT-CATS-EOT 908. Has a position of 200.

임의의 적절한 수의 레벨들이 발생될 수 있다. 가령, 텍스트 분야에서, 레벨들은 철자, 단어, 문장, 구절, 장(chapter), 책, 도서관 등등을 표현할 수 있다. 본원의 도면에서는 두 레벨(레벨 1(910), 레벨 2(912))의 인터라킹 트리 데이터스토어만이 도시되었으나, 발명은 이에 제한되지 않는다. 임의의 수치의 레벨들을 가진 인터라킹 트리 데이터스토어가 구성될 수 있다. 본원의 예가 텍스트여서 철자들의 조합으로 단어(한 레벨의 최종 프로덕트)를 형성하기 때문에, 발명의 본 실시예에서 단어들 조합의 결과는 구절이나 문장(또다른 레벨의 최종 프로덕트)이다. 문장은 조합되어 구절을 형성할 수 있고, 구절이 조합되어 장을 형성할 수 있다. Any suitable number of levels can be generated. For example, in the field of text, levels can represent spelling, words, sentences, phrases, chapters, books, libraries, and the like. In the drawings herein, only two levels of interlocking tree datastores (level 1 910, level 2 912) are shown, but the invention is not so limited. An interlocking tree datastore can be constructed with any number of levels. Since the examples herein are text and thus form words (one level of final product) in a combination of spellings, the result of the word combinations in this embodiment of the invention is a phrase or sentence (another level of final product). Sentences can be combined to form phrases, and phrases can be combined to form chapters.

입력의 다양성에 따라, 최종 프로덕트가 단어, 문장, 구절 등등과는 다른 실체를 표현할 수 있다. 한 예를 제시하자면, 입력이 염색체를 포함하는 아미노산의 시퀀스일 경우, 한가지 최종 프로덕트는 유전자, 또는 대립 유전자를 표현할 수 있 다. Depending on the variety of input, the final product may represent a different entity than words, sentences, phrases, and so on. As an example, if the input is a sequence of amino acids comprising a chromosome, one final product may represent a gene, or allele.

입력(204)이 다음과 같은 데이터 레코드를 지니는 경우를 고려해보자. Consider the case where the input 204 has the following data record.

- Bill Tuesday 40 sold PA-Bill Tuesday 40 sold PA

- Bill Nonday 103 sold NJ-Bill Nonday 103 sold NJ

- Bill Monday 100 trial PA-Bill Monday 100 trial PA

- Tom Monday 80 sold PA-Tom Monday 80 sold PA

- Tom Monday 13 trial NJ-Tom Monday 13 trial NJ

발명의 한 실시예에서, 데이터세트 요소들은 블랭크 문자같은 디리미터에 의해 분리되는 정보의 필드들로 구성된다. 한 실시예에서, 데이터세트 요소들은 입력으로부터 도출된다. 하지만 발명이 이에 제한되지는 않는다. 따라서 지금까지 입력 데이터에서 나타난 데이터세트 요소들은 판매자명(Bill과 Tom), 요일(월요일, 화요일), 품목수(40, 103, 100, 80, 13), 상태(판매, 시험), 주(펜실베이니아, 뉴저지)이다. 한 실시예에서, 도 10의 인터라킹 트리 데이터스토어(1000)가 이 입력으로부터 도출될 것이다. 도 10에서, 노드의 제 1 부분은 도시하지 않았다. 예를 들어, 노드(1002)가 "Bill"이라고 표시되지만, 노드(1002)는 실제 "BOT-Bill"을 표현한다. 노드(1004)가 "Tuesday"로 표시되지만, 노드(1004)는 실제 "BOT-Bill-Tuesday"를 표현한다. In one embodiment of the invention, the dataset elements consist of fields of information separated by delimiters, such as blank characters. In one embodiment, dataset elements are derived from input. However, the invention is not limited thereto. Thus, the dataset elements presented so far in the input data are: seller name (Bill and Tom), day of the week (Monday, Tuesday), number of items (40, 103, 100, 80, 13), status (sale, test), state (Pennsylvania) , New Jersey). In one embodiment, the interlocking tree datastore 1000 of FIG. 10 will be derived from this input. In FIG. 10, the first portion of the node is not shown. For example, although node 1002 is labeled "Bill", node 1002 represents the actual "BOT-Bill". Although node 1004 is represented as "Tuesday", node 1004 represents the actual "BOT-Bill-Tuesday".

인터라킹Interlocking 트리  tree 데이터스토어로부터From the datastore 정보에 액세스 Access information

인터라킹 트리 데이터스토어에 저장된 정보에 액세스하는 방법이 도 11에 도시되어 있다. 단계 1102에서, 인터라킹 트리 데이터스토어로부터 정보를 불러오라 는 요청을 수신한다. 정보 불러오기 요청은 인터라킹 트리 액세서에 의해 처리도리 수 있는 형태로 변환될 수 있다. 단계 1104에서, 표시된 노드에 액세스한다. 단계 1106에서, 적절한 애즈케이스리스트와 애즈리절트리스트를 불러온다. 단계 1108에서, 적절한 애즈케이스리스트와 애즈리절트리스트의 포인터들을 따라, 요망 정보를 불러온다. 단계 1110에서, 요청된 정보가 수집되고 출력된다. A method of accessing information stored in an interlocking tree datastore is shown in FIG. In step 1102, a request is received to retrieve information from an interlocking tree datastore. The information retrieval request may be converted into a form that can be processed by an interlocking tree accessor. In step 1104, the indicated node is accessed. In step 1106, the appropriate as-case list and as-result list are retrieved. In step 1108, the desired information is retrieved along with the pointers of the appropriate aslist and aslistlist. In step 1110, the requested information is collected and output.

예를 들어, 도 7a를 참고할 때, 애즈리절트 링크(328, 330, 332, 334, 710, 712, 714, 716)을 포함하는 데이터스토어(700a)는 "어떤 노드가 철자 'A'를 포함하는가?", "'A' 앞뒤로 어떤 철자가 오는가?", "어떤 단어(또는 몇개의 단어)가 ㅊ철ㅈ자 'A'를 포함하는가?", "어떤 단어가 철자 'A'와 'T'를 둘다 포함하는가?", "'A' 다음에 'T'가 오는 단어는 어떤 단어인가?" 등등과 같은 콘텍스트의 질문에 대한 답변들을 결정하는 데 사용될 수 있다. For example, referring to FIG. 7A, a datastore 700a that includes an Astrib link 328, 330, 332, 334, 710, 712, 714, 716 may read “A node contains the spelling 'A'. ? "," What is the spelling before or after 'A'? "," What word (or how many words) contains the letter 'A'? "," What word is spelled 'A' and 'T' Do you include both? "," What is the word that follows 'A' followed by 'T'? " It can be used to determine the answers to the context's questions, and so forth.

가령, 발명의 한 실시예에서, 요망 데이터세트 요소를 지닌 노드 및 최종 프로덕트들은 데이터세트 요소들을 표현하는 특정 노드의 애즈리절트리스트에 포함된 포인터들을 따름으로서 결정될 수 있다. 애즈리절트리스트에 액세스하여, 상기 노드에 관련된 애즈케이스 브랜치에 리스트의 각각의 포인터가 이어진다. 최종 프로덕트가 요망될 경우, 애즈케이스 브랜치 트리는 브랜치의 리프 노드에 이어진다. For example, in one embodiment of the invention, the node with the desired dataset element and the end products may be determined by following the pointers included in the aslist list of the particular node representing the dataset element. The access list is accessed, followed by each pointer of the list to an assense branch associated with the node. If the final product is desired, the ascase branch tree is followed by the leaf nodes of the branch.

발명의 한 실시예에서, 정보 요청은 제약사항을 명시하는 형태이다. 이는 관점에 따라 "콘텍스트"나 "포커스"로 비춰질 수 있다. 가령, 정보 요청이 제약사항들의 리스트 형태로 나타날 수 있다. 제약사항의 리스트는 집단화될 수도 있고, 서로 독립적일 수도 있다. 발명의 한 실시예에서, 리스팅된 각 제약사항의 애즈리절 트리스트가 발견되고, 각 제약사항에 대한 각 애즈리절트리스트 내의 각각의 노드에 대한 브랜치들이 발견되며, 브랜치들은 그 최종 프로덕트를 따라가고, 각 제약사항에 대한 각 애즈리절트리스트 내 각각의 브랜치에 대한 최종 프로덕트들의 교차(즉, 해당사항)가 선택된다. 데이터세트를 불러들이기 위해 데이터스토어를 먼저 제약함으로서 집단화된 제약사항들이 발견되며, 이 데이터세트는 그후 추가적으로 제약될 데이터세트로 사용된다. In one embodiment of the invention, the information request is in the form of specifying a constraint. This can be viewed as "context" or "focus" depending on the point of view. For example, the request for information may appear in the form of a list of constraints. The list of constraints may be grouped or independent of each other. In one embodiment of the invention, an Aztrist list of each listed constraint is found, branches for each node in each Astristlist for each constraint are found, and the branches follow the final product. For each constraint, the intersection of the final products (ie, corresponding) for each branch in each Aslist list is selected. Grouping constraints are found by first constraining the datastore to import the dataset, which is then used as a dataset to be further constrained.

제약사항을 규정하는 데 논리 연산자가 사용될 수 있다. 사람(persons), 장소(places), 그리고 사물(things)을 식별하는 노드를 찾는 경우를 고려해보자. 이때, 그리고 는 모든 사람, 장소, 그리고 사물의 세트의 연합체를 명시하는 논리 연산자일 것이다. 즉, "사람", "장소", 그리고 "사물"이라 불리는 요소 또는 루트 노드들에 의해 식별되는 모든 노드들을 명시하는 논리 연산자일 것이다. "사물"에 해당하는(또다른 논리 연산자) "사람"과 "장소"는 무엇인가 라는 질의를 받았을 때, 인터라킹 트리 구조는 "사물'이라는 아이템으로 그 답변이 제약될 것이다. 인터라킹 트리 구조를 구성할 때, 사물이 장소를 포인팅하지 않는다면, 모든 다른 "사물들"이 질의에서 발견되지 않을 것이다. 그러나, 인터라킹 트리 구조에서 알려져 있는 모든 장소들은 발견될 것이다. 상기 구조에 통합될 때 인간(people)이 사물(things)인 것으로 간주되면, 질의에서 역시 발견될 것이다. Logical operators can be used to specify constraints. Consider the case of finding nodes that identify people, places, and things. Where and are logical operators that specify the union of all people, places, and sets of things. That is, it would be a logical operator that specifies all nodes identified by an element or root node called "person", "place", and "thing". When asked for "person" and "place" for "thing" (another logical operator) , the interlocking tree structure will be constrained by an item called "thing." Interlocking tree structure When constructing a, if the thing does not point to a place, all other "things" will not be found in the query, but all the places known in the interlocking tree structure will be found. If people are considered to be things, they will also be found in the query.

논리 연산자는 AND, OR, NOT, GreaterThan, XNOR, EqualTo, 등등 여러가지 형태를 취할 수 있고, 서로 조합될 수도 있다. 이러한 모든 논리 연산자 및 이들의 조합은 본 발명 내에서 이용가능하다. 비교 수학식도 경우에 따라 사용가능하다. 100대 이상의 차를 판매한 모든 판매자들을 찾아라라는 것은 비교 수학식에 따른 질의가 될 수 있다. 가령, 상기 비교 수학식은 수치 > 100인 차량 판매 대수를 가진 판매자일 것이다. Logical operators can take many forms, including AND, OR, NOT, GreaterThan, XNOR, EqualTo, and so on, and can be combined with each other. All such logical operators and combinations thereof are available within the present invention. Comparative equations may also be used in some cases. Finding all sellers who sold more than 100 cars can be a query based on a comparison equation. For example, the comparison equation would be a seller with a vehicle sales number of> 100.

발명의 한 실시예에서, 포커스는 출력되는 정보를 결정한다. 데이터세트 요소들이 철자인 2-레벨 데이터스토어의 경우에, 레벨 1 최종 프로덕트는 단어를 포함하고, 레벨 2 최종 프로덕트는 문장을 포함한다면, 명시된 제약사항은 특정 철자로서, 포커스를 "단어"이도록 명시하면 단어만을 출력할 것이고, 포커스를 "문장"이도록 명시하면 문장만을 출력할 것이다. 제 1 레벨로부터 최종 프로덕트를 불러오면, 단어들이 출력될 것이다. 따라서, "포커스"는 콘텍스트 내 요망되는 정보의 종류를 식별한다. 제 2 레벨로부터 최종 프로덕트를 불러오면, 문장들이 출력될 것이다. 한 실시예에서, 문장을 불어오기 위해, 각 단어의 애즈리절트리스트가 다음 레벨까지 따라오며, 명시된 브랜치는 명시된 철자를 포함하는 문장을 불어오기 위해 그 최종 프로덕트에 이어진다. In one embodiment of the invention, the focus determines the information that is output. In the case of a two-level datastore where the dataset elements are spelled out, if the level 1 final product contains words and the level 2 final product contains sentences, the specified constraint is a specific spelling, specifying that the focus is a "word". Will print only words, and if you specify the focus as "sentences" it will only print sentences. When the final product is loaded from the first level, words will be output. Thus, "focus" identifies the kind of information desired in the context. When the final product is loaded from the second level, sentences will be output. In one embodiment, to blow a sentence, an Azultist of each word follows to the next level, and the specified branch is followed by its final product to blow a sentence containing the specified spelling.

한 실시예에서, 레벨 시작 인디케이터를 그 루트로 구비한 트리를 따름으로서, 한가지 제약사항과 함께 시작되는 모든 최종 프로덕트들을 발견할 수 있다. 가령, 특정 철자로 시작하는 모든 단어들을 발견할 수 있다. 마찬가지로, 특정 제약사항을 가진 모든 최종 프로덕트들, 또는 특정 위치에 특정 제약사항을 가진 모든 최종 프로덕트들을 발견할 수 있다. 가령, 그 중에서 특정 철자를 가진 모든 단어, 또는 특정 열에서 특정 철자를 가진 모든 단어를 발견할 수 있다. 마찬가지로, 레벨 종료 인디케이터를 루트로 가진 트리를 따름으로서, 명시된 제약사항으로 종료 되는 모든 최종 프로덕트를 발견할 수 있다. 가령, 특정 철자로 끝나는 단어를 발견할 수 있다. 다수의 제약사항과 포커스를 명시할 수 있다.In one embodiment, by following a tree with a level start indicator as its root, one can find all the end products starting with one constraint. For example, you can find all words that start with a particular spelling. Likewise, you can find all end products with specific constraints, or all end products with specific constraints at a specific location. For example, you can find all words with a particular spell, or all words with a particular spell in a particular column. Similarly, by following the tree with the level end indicator as root, we can find all the end products that end with the specified constraints. For example, you might find a word that ends with a particular spelling. Multiple constraints and focus can be specified.

가령, 한개의 철자(가령, 철자 "B")같은 데이터세트 요소를 지닌 트리의 애즈케이스 브랜치의 제 1 노드가 요망되는 경우를 고려해보자. 한 실시예에서, 데이터요소를 표현하는 요소 루트 노드(가령, 노드 B(718))를 메모리로부터 불러와, 그 애즈리절트리스트(가령, 애즈리절트리스트(742f))에 액세스하여, 상기 요소 루트 노드와 일부 서브컴포넌트와의 조합을 통해 생성된 노드들의 위치를 출력한다. 상기 애즈리절트리스트의 노드들에 액세스한다. 본 예에서 위치 180에 액세스한다. 이 위치는 노드 BOT-T-A-B(707)를 홀딩한다. 따라서, 노드 BOT-T-A-B(707)는 철자 "B"의 표현을 포함하는 인터라킹 트리 데이터스토어(700a)의 노드이다. 형성된 최종 프로덕트를 찾기 위해, 불러들인 애즈케이스리스트가 널이 될 때까지 액세스되는 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치를 따른다. 가령, 본 예에서, 브랜치는 노드 BOT-T(703), 노드 BOT-T-A(705), 노드BOT-T-A-B(707), 그리고 노드 BOT-T-A-B-EOT(709)를 지닌다. 예를 들어, 데이터세트 요소 B(718)를지닌 단어가 "TAB"임을 결정하기 위하여, 노드 BOT-T-A-B(707)의 애즈케이스리스트(740f)에 액세스하여 위치 185를 불러들인다. 위치 185의 콘텐트에 액세스하여 애즈케이스리스트(748f)를 불러들인다. 애즈케이스리스트(748f)가 널 포인터이기 때문에, 최종 프로덕트에 도달하였다. For example, consider the case where the first node of an ascase branch of a tree with a dataset element such as one spelling (eg, spelling "B") is desired. In one embodiment, an element root node (e.g., Node B 718) representing a data element is retrieved from memory and accessed to an alias list (e.g., an alias list 742f) to access the element. Outputs the locations of nodes created through the combination of the root node and some subcomponents. Access nodes in the Aslist list. In this example, location 180 is accessed. This position holds node BOT-T-A-B 707. Thus, node BOT-T-A-B 707 is a node of interlocking tree datastore 700a that contains a representation of the spelling "B". To find the final product formed, it follows the ascase branch by repeatedly invoking the ascaselist of the node being accessed until the imported ascaselist is null. For example, in this example, the branch has a node BOT-T 703, a node BOT-T-A 705, a node BOT-T-A-B 707, and a node BOT-T-A-B-EOT 709. For example, to determine that the word with dataset element B 718 is " TAB, " access the caselist 740f of node BOT-T-A-B 707 to retrieve location 185. Access the content at location 185 to retrieve the as-case list 748f. Since the case list 748f is a null pointer, the final product has been reached.

도 7a에서, 철자 "A"를 지닌 모든 애즈케이스 브랜치의 첫번째 노드들이 요망되는 경우를 고려해보자. 요소 루트 노드 A(304)를 메모리로부터 불러들이고, 그 애즈리절트리스트(542f)에 액세스하여, 위치 145와 175를 출력한다. 노드 BOT-C-A(314)를 지닌 첫번째 위치 145에 액세스한다. 노드 BOT-C-A(314)는 철자 A를 포함하는 데이터 구조(700a)의 첫번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 불러들인 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서, 상기 브랜치는 노드 BOT-C(312), 노드 BOT-C-A(314), 노드 BOT-C-A-T(316), 그리고 노드 BOT-C-A-T-EOT(318)을 지닌다. 예를 들어, 데이터세트 요소 A(304)를 지닌 첫번째 단어가 CAT임을 결정하기 위해, 노드 BOT-C-A(314)의 애즈케이스리스트(740f)에 액세스하여 위치 145를 불러들인다. 위치(145)의 콘텐트들에 액세스하여 애즈케이스리스트(532f) 150을 불러들인다. 위치 150의 콘텐트들에 액세스하여 애즈케이스리스트(548f) 155를 불러들인다. 위치 155의 콘텐트에 액세스하여 애즈케이스리스트(572f)를 불러들인다. 애즈케이스리스트(572f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다.In FIG. 7A, consider the case where the first nodes of all ascase branches with the letter “A” are desired. Element root node A 304 is retrieved from memory, accesses its alias list 542f, and outputs positions 145 and 175. The first location 145 with node BOT-C-A 314 is accessed. Node BOT-C-A 314 is the first node of the first branch of data structure 700a containing spell A. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the imported caselist is null. In this example, the branch has a node BOT-C 312, a node BOT-C-A 314, a node BOT-C-A-T 316, and a node BOT-C-A-T-EOT 318. For example, to determine that the first word with dataset element A 304 is CAT, access caselist 740f of node BOT-C-A 314 to retrieve location 145. Access the contents of location 145 to invoke assistlist 532f 150. Access the contents of location 150 to invoke assist list 548f 155. The content at position 155 is accessed to retrieve the as-case list 572f. Since the case list 572f is a null pointer, the final product has been reached.

노드 BOT-T-A(705)를 지닌 다음 위치 175에 액세스한다. 노드 BOT-T-A(705)는 철자 A를 포함하는 인터라킹 트리 데이터스토어(700a)의 두번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서는 상기 브랜치가 노드 BOT-T(703), 노드TOT-T-A(705), 노드BOT-T-A-B(707), 그리고 노드 BOT-T-A-B-EOT(709)를 지닌다. 가령, 데이터세트 요소 A(304)를 지닌 두번째 단어가 "TAB"임을 결정하기 위해, 노드 BOT-T-A-B(707)의 애즈케이스리스트(740f)에 액세스하여 위치 185를 불러들인다. 위치 185의 콘텐트에 액세스하여 애즈케이스리스트(748f)를 불러들인다. 애즈케이스리스트(748f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다. The next location 175 with node BOT-T-A 705 is accessed. Node BOT-T-A 705 is the first node of the second branch of interlocking tree datastore 700a that includes letter A. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the caselist is null. In this example, the branch has a node BOT-T 703, a node TOT-T-A 705, a node BOT-T-A-B 707, and a node BOT-T-A-B-EOT 709. For example, to determine that the second word with dataset element A 304 is “TAB,” access caselist 740f of node BOT-T-A-B 707 and retrieve location 185. Access the content at location 185 to retrieve the as-case list 748f. Since the case list 748f is a null pointer, the final product has been reached.

도 7a에서, 철자 A와 T를 지닌 모든 애즈케이스 브랜치들의 첫번째 노드들이 요망되는 경우를 고려해보자. 상술한 바와 같이, 메모리로부터 요소 루트 노드 A(304)를 불러와, 그 애즈리절트리스트(542f)에 액세스하여, 위치 145와 175를 출력한다. 노드 BOT-C-A(314)를 지닌 첫번째 위치 145에 액세스한다. 노드 BOT-C-A(314)는 철자 A를 포함하는 데이터 구조(700a)의 첫번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 불러들인 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서, 상기 브랜치는 노드 BOT-C(312), 노드 BOT-C-A(314), 노드 BOT-C-A-T(316), 그리고 노드 BOT-C-A-T-EOT(318)를 지닌다. 예를 들어, 데이터세트 요소 A(304)를 지닌 첫번째 단어가 CAT임을 결정하기 위해, 노드 BOT-C-A(314)의 애즈케이스리스트(740f)에 액세스하여 위치 145를 불러들인다. 위치 145의 콘텐트들에 액세스하여 애즈케이스리스트(532f) 150을 불러들인다. 위치 150의 콘텐트들에 액세스하여 애즈케이스리스트(548f) 155를 불러들인다. 위치 155의 콘텐트에 액세스하여 애즈케이스리스트(572f)를 불러들인다. 애즈케이스리스트(572f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다. 최종 프로덕트 노드 BOT-C-A-T-EOT(318)는 데이터세트 요소 A를 지닌다. In FIG. 7A, consider the case where the first nodes of all ascase branches with the letters A and T are desired. As described above, the element root node A 304 is retrieved from the memory, the access list 542f is accessed, and the positions 145 and 175 are output. The first location 145 with node BOT-C-A 314 is accessed. Node BOT-C-A 314 is the first node of the first branch of data structure 700a containing spell A. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the imported caselist is null. In this example, the branch has a node BOT-C 312, a node BOT-C-A 314, a node BOT-C-A-T 316, and a node BOT-C-A-T-EOT 318. For example, to determine that the first word with dataset element A 304 is CAT, access caselist 740f of node BOT-C-A 314 to retrieve location 145. Access content at location 145 to invoke assistlist 532f 150. Access the contents of location 150 to invoke assist list 548f 155. The content at position 155 is accessed to retrieve the as-case list 572f. Since the case list 572f is a null pointer, the final product has been reached. The final product node BOT-C-A-T-EOT 318 has a dataset element A.

노드 BOT-T-A(705)를 지닌 다음 위치 175에 액세스한다. 노드 BOT-T-A(705) 는 철자 A를 포함하는 인터라킹 트리 데이터스토어(700a)의 두번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서는 상기 브랜치가 노드 BOT-T(703), 노드BOT-T-A(705), 노드 BOT-T-A-B(707), 그리고 노드 BOT-T-A-B-EOT(709)를 지닌다. 가령, 데이터세트 요소 A(304)를 지닌 두번째 단어가 "TAB"임을 결정하기 위해, 노드 BOT-T-A-B(707)의 애즈케이스리스트(740f)에 액세스하여 위치 185를 불러들인다. 위치 185의 콘텐트에 액세스하여 애즈케이스리스트(748f)를 불러들인다. 애즈케이스리스트(748f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다. 최종 프로덕트 노드 BOT-T-A-B-EOT(709)는 데이터세트 요소 A를 지닌다. The next location 175 with node BOT-T-A 705 is accessed. Node BOT-T-A 705 is the first node of the second branch of interlocking tree datastore 700a that includes spell A. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the caselist is null. In this example, the branch has a node BOT-T 703, a node BOT-T-A 705, a node BOT-T-A-B 707, and a node BOT-T-A-B-EOT 709. For example, to determine that the second word with dataset element A 304 is “TAB,” access caselist 740f of node BOT-T-A-B 707 and retrieve location 185. Access the content at location 185 to retrieve the as-case list 748f. Since the case list 748f is a null pointer, the final product has been reached. The final product node BOT-T-A-B-EOT 709 has dataset element A.

그다음, 메모리로부터 요소 루트 노드 T(308)를 불러와, 그 애즈리절트리스트(558f)에 액세스하여, 위치 150, 170을 출력한다. 노드 BOT-C-A-T(316)를 지닌 첫번째 위치 150에 액세스한다. 노드 BOT-C-A-T(316)는 철자 T를 포함하는 데이터 구조(700a)의 첫번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 불러들인 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서, 상기 브랜치는 노드 BOT-C(312), 노드 BOT-C-A(314), 노드 BOT-C-A-T(316), 그리고 노드 BOT-C-A-T-EOT(318)를 지닌다. 예를 들어, 분할불가능한 요소 단위 T(308)를 지닌 첫번째 단어가 CAT임을 결정하기 위해, 노드BOT-C-A(314)의 애즈케이스리스트(532f)에 액세스하여 위치 145를 불러들인다. 위치 145의 콘텐트에 액세 스하여 애즈케이스리스트(532f), 150을 불러들인다. 위치 150(노드 BOT-C-A-T(316))의 콘텐트에 액세스하여 애즈케이스리스트(548f) 155를 불러들인다. 위치 155의 콘텐트에 액세스하여 애즈케이스리스트(572f)를 불러들인다. 애즈케이스리스트(572f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다. 최종 프로덕트 노드 BOT-C-A-T-EOT(318)는 데이터세트 요소 T를 지닌다. Then, the element root node T 308 is retrieved from the memory, the access list 558f is accessed, and the positions 150 and 170 are output. First location 150 with node BOT-C-A-T 316 is accessed. Node BOT-C-A-T 316 is the first node of the first branch of data structure 700a containing the letter T. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the imported caselist is null. In this example, the branch has a node BOT-C 312, a node BOT-C-A 314, a node BOT-C-A-T 316, and a node BOT-C-A-T-EOT 318. For example, to determine that the first word with non-divisible element unit T 308 is CAT, access case list 532f of node BOT-C-A 314 is invoked to retrieve location 145. Access to the content at location 145 invokes as-case list 532f, 150. Access content at location 150 (node BOT-C-A-T 316) to invoke assistlist 548f. The content at position 155 is accessed to retrieve the as-case list 572f. Since the case list 572f is a null pointer, the final product has been reached. The final product node BOT-C-A-T-EOT 318 has a dataset element T.

노드 BOT-T(703)를 지닌 다음 위치 170에 액세스한다. 노드 BOT-T(703)는 철자 T를 포함하는 인터라킹 트리 데이터스토어(700a)의 두번째 브랜치의 첫번째 노드이다. 형성된 최종 프로덕트를 찾기 위해, 애즈케이스리스트가 널이 될 때까지 노드의 애즈케이스리스트를 반복적으로 불러들임으로서 애즈케이스 브랜치의 애즈케이스 링크들을 따라간다. 본 예에서는 상기 브랜치가 노드 BOT-T(703), 노드 BOT-T-A(705), 노드 BOT-T-A-B(707), 그리고 노드 BOT-T-A-B-EOT(709)를 지닌다. 가령, 데이터세트 요소 T(308)를 지닌 두번째 단어가 "TAB"임을 결정하기 위해, 노드 BOT-T-A-B(707)의 애즈케이스리스트(740f)에 액세스하여 위치 185를 불러들인다. 위치 185의 콘텐트에 액세스하여 애즈케이스리스트(748f)를 불러들인다. 애즈케이스리스트(748f)가 널 포인터이기 때문에, 최종 프로덕트에 도달한 것이다. 최종 프로덕트 노드 BOT-T-A-B-EOT(709)는 데이터세트 요소 T를 지닌다. 따라서, A와 T를 지닌 최종 프로덕트는 A를 지닌 최종 프로덕트 세트와 T를 지닌 최종 프로덕트 세트와의 교차점을 포함한다. 또는 본 경우에, BOT-C-A-T-EOT(318)와 BOT-T-A-B-EOT(709)를지닌다. The next location 170 with node BOT-T 703 is accessed. Node BOT-T 703 is the first node of the second branch of interlocking tree datastore 700a that includes the letter T. To find the final product formed, follow the ascase branch's ascase links by repeatedly invoking the node's caselist until the caselist is null. In this example, the branch has a node BOT-T 703, a node BOT-T-A 705, a node BOT-T-A-B 707, and a node BOT-T-A-B-EOT 709. For example, to determine that the second word with dataset element T 308 is "TAB", access caselist 740f of node BOT-T-A-B 707 and retrieve location 185. Access the content at location 185 to retrieve the as-case list 748f. Since the case list 748f is a null pointer, the final product has been reached. The final product node BOT-T-A-B-EOT 709 has a dataset element T. Thus, the final product with A and T includes the intersection of the final product set with A and the final product set with T. Or in the present case, carry BOT-C-A-T-EOT 318 and BOT-T-A-B-EOT 709.

발명의 한 실시예에서, 불러들인 정보는 디스플레이되거나 인쇄된다. 불러들 인 정보를 디스플레이하거나 인쇄하기 위해, 최종 프로덕트로부터 시점(BOT)까지 역방향으로 애즈케이스 트리를 따라간다. 애즈케이스 트리를 따라 각각의 노드에서, 요소 루트 노드가 표현한 바를 결정하는 데 리절트 포인터가 사용된다. 리절트 포인터는 노드를 도출한 두번째 부분을 포인팅한다. 인터라킹 트리 데이터스토어가 두개 이상의 레벨을 포함할 경우, 리절트 포인터는 하위 레벨의 최종 프로덕트를 포인팅하고, 하위 레벨의 요소 루트 노드를 불러들일 때까지 동일한 프로세스가 이어져야 한다. In one embodiment of the invention, the imported information is displayed or printed. To display or print the imported information, it follows the case tree backwards from the final product to the point of view (BOT). At each node along the case tree, a result pointer is used to determine what the element root node represents. The result pointer points to the second part of the node. If an interlocking tree datastore contains more than one level, the result pointer must point to the last product at the lower level and follow the same process until the element root node at the lower level is called.

도 10에서, 화요일에 판매한 총 단위수가 요망되는 경우를 고려해보자. 전체 데이터스토어의 모든 노드들을 양방향으로 가로지르는 대신에, 발명의 한 실시예에서, 이 정보를 불러들이는 것은 요소 루트 노드(1006, 1008)의 애즈리절트 리스트들만을 불러오는 것을 요한다. 화요일(1006)을 표현하는 요소 노드가 노드(1004)를 포인팅하기 때문에, 그리고 판매(1008)를 표현하는 요소 노드가 노드(1026)를 포인팅하기 때문에, 브랜치 5(1010)는 양방향으로 가로지른다. 판매(1008)를 표현하는 요소 노드가 노드(1028)를 포인팅하기 때문에 브랜치 4(1012)는 양방향으로 가로지른다. 브랜치 1(1015), 브랜치 2(1014), 브랜치 3(1013)은 가로지를 필요가 없다. 요소 노드(1006, 1008)이 포인팅하는 브랜치들로부터 출력되는 최종 프로덕트 세트의 교차점은 Bill Tuesday 40 sold PA(그 의미는 "빌이 펜실베니아에서 화요일에 40개를 판매함"이라는 의미)를 표현하는 노드(1030)를 포함한다. In Figure 10, consider the case where the total number of units sold on Tuesday is desired. Instead of traversing all nodes of the entire datastore in both directions, in one embodiment of the invention, retrieving this information requires retrieving only the results lists of element root nodes 1006 and 1008. Branch 5 1010 crosses in both directions because the element node representing Tuesday 1006 points to node 1004, and the element node representing sale 1008 points to node 1026. Branch 4 1012 crosses in both directions because the element node representing sale 1008 points node 1028. Branch 1 1015, branch 2 1014, branch 3 1013 need not cross. The intersection of the final product set output from the branches pointed to by the element nodes 1006 and 1008 is the node representing Bill Tuesday 40 sold PA (which means "Bill sells 40 on Tuesday" in Pennsylvania). 1030.

노드(1024)로부터 수치 40을 나타내는 루트 노드까지 포인터들을 따라감으로서 판매한 유닛의 수를 결정할 수 있다. 이 단계는 최종 프로덕트의 교차점이 발견 된 후 실행될 수 있고, 브랜치를 양방향으로 가로지름에 따라 이 정보를 불러와 저장할 수 있다. The number of units sold can be determined by following the pointers from node 1024 to the root node representing the number 40. This step can be executed after the intersection of the final product has been found, and this information can be retrieved and stored as the branch traverses in both directions.

도 12B의 카운트 필드같은 카운트 필드를 가진 인터라킹 트리 데이터스토어에 의해 표현되는 데이터의 컬렉션을 평가하기 위한 방법들이 도 14A-E를 참고하여 설명된다. Methods for evaluating a collection of data represented by an interlocking tree datastore having a count field, such as the count field of FIG. 12B, are described with reference to FIGS. 14A-E.

도 14A에서, 작업(40a)은 우리가 논의해온 인터라킹 트리 구조의 데이터스토어로부터 일부 요망 데이터를 평가하는 것이다. 이를 위해, 우리는 관련 콘텍스트를 결정하여야 한다(40b). 이는 도 14b에 소개되어 있다. 관련 콘텍스트(41a)는 요망값을 선택(41b)함으로서 시작되며, 이때, 이러한 값을 가진 루트 노드들이 식별된다. 그다음 선택된 값만을 가진 모든 경로가 발견된다. 선호되는 실시예에서, 일치하지 않는 값을 가진 모든 경로를 무시하는 단계 (41d)는 여러 방식으로 단계 (41c)와 조합되어, 프로세스를 보다 효율적으로 만든다. 하지만, 이러한 조합은 데이터스토어 내의 데이터 및 값들의 종류에 따라 필요적절하게 좌우될 것이다. 그래서 여기서는 별도의 단계로 도시하였다. In FIG. 14A, task 40a is to evaluate some desired data from a datastore in an interlocking tree structure that we have discussed. To do this, we must determine the relevant context (40b). This is introduced in Figure 14b. The relevant context 41a begins by selecting 41b the desired value, where root nodes with this value are identified. Then all paths with only the selected value are found. In a preferred embodiment, step 41d, ignoring all paths with inconsistent values, is combined with step 41c in several ways, making the process more efficient. However, this combination will suitably depend on the type of data and values in the datastore. So it is shown here as a separate step.

콘텍스트를 결정(40b)한 후, 다음 단계는 질의의 속성에 따라 좌우되는, 포커스나 위치, 또는 둘 모두를 결정하는 것이다(40c). After determining the context 40b, the next step is to determine 40c, focus or position, or both, depending on the nature of the query.

도 14D에서, 현 위치의 노드 값에 관련된 루트 노드를 찾음으로서(단계 42b) 위치를 결정한다(단계 42a).In FIG. 14D, the position is determined (step 42a) by finding the root node associated with the node value of the current position (step 42b).

도 14C에서, 포커스 결정(40c)은 값들의 포커스 제약사항 리스트를 선택함으로서, 따라서, 관련 루트 노드들을 식별(43b)함으로서 구현된다. In FIG. 14C, focus determination 40c is implemented by selecting a focus constraint list of values, thus identifying 43b relevant root nodes.

도 14E의 콘텍스트로 되돌아가, 카운트를 더하기 전에 질의에 의해 결정되는 포커스나 위치 내에 있지 않은 콘텍스트 내 모든 카운트들을 무시한다(44c). Returning to the context of FIG. 14E, all counts in the context that are not within the focus or position determined by the query before adding the count are ignored (44c).

상술한 방법 및 시스템은 플라피디스켓, CD-ROM, DVD-ROM, DVD-RAM, 하드디스크 드라이브, 또는 그외 다른 기계-판독형 저장 매체같은 컴퓨터-판독형 매체에 저장되는 프로그램 형태로 구현될 수 있다. 이때, 컴퓨터같은 기계에 의해 프로그램 코드가 로딩되고 실행되면, 기계는 본 발명의 구현을 위한 장치가 된다. 본 발명은 전기도선이나 케이블을 통해, 광섬유를 통해, 네트워크(인터넷, 인트라넷 등등)를 통해, 또다른 그외 다른 형태의 전송 매체를 통해 전송되는 프로그램 코드 형태로 구현될 수도 있다. 컴퓨터같은 기계에 의해 프로그램 코드가 수신되고 로딩되어 실행되면, 이 기계는 발명을 구현하기 위한 장치가 된다. 범용 프로세서에서 구현될 때, 프로그램 코드를 프로세서와 조합되어, 특정 논리 회로에 유사하게 동작하는 고유한 장치를 제공한다. 프로그램 코드는 C, C++, 자바같은 하이레벨 프로그래밍 언어로 구현될 수 있다. 대안으로, 프로그램 코드가 어셈블리나 기계어로 구현될 수 있다. 어느 경우에도, 언어는 컴파일되거나 인터프리팅된 언어일 수 있다. The method and system described above may be embodied in the form of a program stored on a computer-readable medium, such as a floppy diskette, CD-ROM, DVD-ROM, DVD-RAM, hard disk drive, or other machine-readable storage medium. have. At this time, when the program code is loaded and executed by a machine such as a computer, the machine becomes an apparatus for implementing the present invention. The present invention can also be implemented in the form of program code transmitted over electrical wires or cables, over optical fibers, over a network (Internet, intranet, etc.), or through any other form of transmission medium. When the program code is received, loaded and executed by a machine such as a computer, the machine becomes an apparatus for implementing the invention. When implemented in a general purpose processor, the program code is combined with the processor to provide a unique apparatus that operates similarly to a particular logic circuit. Program code can be implemented in high-level programming languages such as C, C ++, and Java. Alternatively, program code may be implemented in assembly or machine language. In either case, the language can be a compiled or interpreted language.

Claims (24)

트리-기반 데이터스토어를 발생시키는 시스템으로서, 상기 시스템은,A system for generating a tree-based datastore, the system comprising: - 프로세서,-Processor, - 상기 프로세서에 연결된 메모리, 그리고Memory coupled to the processor, and - 트리-기반 데이터스토어의 한개 이상의 레벨을 생성하기 위한 트리-기반 데이터스토어 발생기A tree-based datastore generator for creating one or more levels of the tree-based datastore 를 포함하며, 이때, 상기 트리기반 데이터스토어의 한개 이상의 레벨은 제1 트리, 제 2 트리, 그리고 제 3 트리를 포함하며, 상기 제 1 트리는 제 1 루트와, 다수의 노드 중 한개 이상의 노드를 포함하고, 상기 제 2 트리는 제 2 루트와, 상기 제 1 루트의 상기 한개 이상의 노드를 포함하며, 상기 제 3 트리는 제 3 루트와, 상기 제 1 트리의 다수의 노드 중 한개 이상의 노드를 포함하는 것을 특징으로 하는 트리-기반 데이터스토어 발생 시스템.Wherein at least one level of the tree-based datastore comprises a first tree, a second tree, and a third tree, wherein the first tree comprises a first root and at least one node of a plurality of nodes. And the second tree includes a second route and the one or more nodes of the first route, and the third tree includes a third route and one or more nodes of the plurality of nodes of the first tree. Tree-based datastore generation system. 노드들 사이의 링크들과 카운트 필드를 지닌 노드들을 포함하는 인터라킹 트리 데이터스토어에 의해 표현되는 데이터의 컬렉션을 평가하는 방법으로서, 상기 노드는 루트 노드를 포함하고, 상기 루트 노드 중에는 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 루트 노드는 그외 다른 루트 노드를 포함할 수 있고, 상기 루트 노드는 소오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 추가로 포함하며, 애즈리절트 및 애즈케이스 링크들이 존재하고, 상기 애즈리절트 링크는 루트 노드와 그외 다른 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하며, 상기 방법은,A method of evaluating a collection of data represented by an interlocking tree datastore including nodes with links between nodes and a count field, the node comprising a root node, wherein the root node comprises one or more primary nodes. There is a root node and at least one elemental root node, the root node may comprise other root nodes, the root node being at least one end of a thought node, at least one subcomponent node, and at least one root node. And further includes the final product node, wherein there are as result and as case links, wherein the as result link points between the root node and other nodes, and the as case link is associated with one or more primary root nodes. Pointing between one or more end product nodes, Case link comprises a one or more subcomponents node in the path therebetween, the method comprising the steps of: - 상기 데이터스토어 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the datastore, - 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하며, 그리고Determine a focus and its corresponding value within the context, and - 상기 콘텍스트와 상기 포커스의 해당 값들을 이용하여 상기 콘텍스트 내 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus in the context using the corresponding values of the context and the focus. 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 2 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는, 3. The method of claim 2, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; - 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Intersect ascase links between subcomponent nodes to each corresponding final product node of the subcomponent node, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 2 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는,3. The method of claim 2, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; , - 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스 트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, and thus the set of derived nodes forming the context is not ignored. The node that follows the bay, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 노드들 사이의 링크들과 카운트 필드를 지닌 노드들을 포함하는 인터라킹 트리 데이터스토어에 의해 표현되는 데이터의 컬렉션을 평가하는 방법으로서, 상기 노드는 루트 노드를 포함하고, 상기 루트 노드 중에는 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 루트 노드는 그외 다른 루트 노드를 포함할 수 있고, 상기 루트 노드는 소오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 추가로 포함하며, 애즈리절트 및 애즈케이스 링크들이 존재하고, 상기 애즈리절트 링크는 루트 노드와 그외 다른 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하며, 상기 방법은,A method of evaluating a collection of data represented by an interlocking tree datastore including nodes with links between nodes and a count field, the node comprising a root node, wherein the root node comprises one or more primary nodes. There is a root node and at least one elemental root node, the root node may comprise other root nodes, the root node being at least one end of a thought node, at least one subcomponent node, and at least one root node. And further includes the final product node, wherein there are as result and as case links, wherein the as result link points between the root node and other nodes, and the as case link is associated with one or more primary root nodes. Pointing between one or more end product nodes, Case link comprises a one or more subcomponents node in the path therebetween, the method comprising the steps of: - 상기 데이터세트 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the dataset, - 상기 콘텍스트 내의 각각의 경로를 따라 위치를 결정하며,Determine a location along each path within the context, - 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하고, 그리고Determine a focus and its corresponding value in the context, and - 상기 콘텍스트 내의 상기 경로를 따라, 상기 위치와 상기 최종 프로덕트 사이에서 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus between the position and the final product, along the path in the context. 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 5 항에 있어서, 콘텍스트의 각각의 경로를 따라 위치를 결정하는 상기 단계는,The method of claim 5, wherein determining the location along each path of the context comprises: - 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개의 루트 노드를 선택하고, 그리고 상기 루트 노드나 요소 루트 노드의 애즈리절트리스트로부터 콘텍스트의 각 경로 내 그 대응하는 서브컴포넌트 노드까지 가로지르는Selecting one root node from a root node or element root node of the interlocking tree datastore, and from the aslist list of the root node or element root node to its corresponding subcomponent node in each path of the context. Across 단계를 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating the data collection. 제 5 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는, 6. The method of claim 5, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; - 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노 드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Crosses the case-link between subcomponent nodes to each corresponding final product node of the subcomponent node, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 7 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는,8. The method of claim 7, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; , - 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 노드들 사이의 링크들과 카운트 필드를 지닌 노드들을 포함하는 인터라킹 트리 데이터스토어에 의해 표현되는 데이터의 컬렉션을 평가하는 방법으로서, 상기 노드는 루트 노드를 포함하고, 상기 루트 노드 중에는 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 루트 노드는 그외 다른 루트 노드를 포함할 수 있고, 상기 루트 노드는 소오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 추가로 포함하며, 애즈리절트 및 애즈케이스 링크들이 존재하고, 상기 애즈리절트 링크는 루트 노드와 그외 다른 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하며, 상기 방법은,A method of evaluating a collection of data represented by an interlocking tree datastore including nodes with links between nodes and a count field, the node comprising a root node, wherein the root node comprises one or more primary nodes. There is a root node and at least one elemental root node, the root node may comprise other root nodes, the root node being at least one end of a thought node, at least one subcomponent node, and at least one root node. And further includes the final product node, wherein there are as result and as case links, wherein the as result link points between the root node and other nodes, and the as case link is associated with one or more primary root nodes. Pointing between one or more end product nodes, Case link comprises a one or more subcomponents node in the path therebetween, the method comprising the steps of: - 상기 데이터세트 내의 콘텍스트와 그 해당 값을 결정하고,Determine a context and its corresponding value in the dataset, - 상기 콘텍스트 내의 각각의 경로를 따라 위치를 결정하며,Determine a location along each path within the context, - 상기 콘텍스트 내의 포커스와 그 해당 값을 결정하고, 그리고Determine a focus and its corresponding value in the context, and - 상기 콘텍스트 내의 상기 경로를 따라, 상기 위치와 상기 프라이머리 루트 사이에서 상기 포커스의 발생 확률을 연산하는Calculating a probability of occurrence of the focus between the location and the primary root, along the path in the context 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 9 항에 있어서, 콘텍스트의 각각의 경로를 따라 위치를 결정하는 상기 단계는,10. The method of claim 9, wherein determining the location along each path of the context includes: - 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개의 루트 노드를 선택하고, 그리고 상기 루트 노드나 요소 루트 노드의 애즈리절트리스트로부터 콘텍스트의 각 경로 내 그 대응하는 서브컴포넌트 노드까지 가로지르는Selecting one root node from a root node or element root node of the interlocking tree datastore, and from the aslist list of the root node or element root node to its corresponding subcomponent node in each path of the context. Across 단계를 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating the data collection. 제 9 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는, 10. The method of claim 9, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; - 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 상기 한개 이상의 루트 노드의 대응하는 서브컴포넌트 노드까지 가로지름으로서 상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하고, 그리고, 상기 대응하는 서브컴포넌트 노드 사이의 애즈케이스 링크를 상기 서브컴포넌트 노드의 각각의 대응하는 최종 프로덕트 노드까지 가로지르게 하며, Identify one or more paths by the last product node from the one or more root nodes by traversing from the results list of the one or more root nodes to the corresponding subcomponent nodes of the one or more root nodes, and Intersect ascase links between subcomponent nodes to each corresponding final product node of the subcomponent node, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 9 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는,10. The method of claim 9, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 한개 이상의 루트 노드에 의해 표현되는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a context constraint list of values of the interlocking tree datastore with values represented by one or more root nodes, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression; , - 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 상기 경로를 따라 케이스 링크를 이용하여 모든 가능한 최종 프로덕트 노드로부터 프라이머리 루트를 향해 역방향으로 가로지름으로서 구현되고, 이때, 각각의 서브컴포넌트 노드에서 그 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 루트 노드를 상기 한개 이상의 루트 노드에 비교하며,Identifying one or more paths by the end product node, wherein the identification process is implemented by traversing backwards from the all possible end product nodes back to the primary route using a case link along the path, where each Determine the location of the root node at the subcomponent node of the node using the result link and compare the root node to the one or more root nodes, - 요소 루트 노드들에 대한 링크들을 가진 경로들을 무시하고, 이때, 상기 경로의 값 필드(value fields)들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트가 무시되지 않은 경로만을 따르는 노드에 해당하고, 그리고Ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression, so that the set of derived nodes forming the context only follows the path that is not ignored. The node, and - 콘텍스트 카운트를 얻도록 무시되지 않은 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths not ignored to obtain a context count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 9 항에 있어서, 콘텍스트 및 그 해당 값을 결정하는 상기 단계는, 10. The method of claim 9, wherein determining the context and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 최종 프로덕트 노드에 의해 모든 가능한 경로들을 선택하고, 요소 루트 노드에 대한 링크를 가지는 경로들을 무시하며, 이때, 상기 경로의 값 필드들은 상기 논리식과 일치하지 않으며, 따라서 콘텍스트를 형성하는 도출된 노드 세트는 무시되지 않은 경로만을 따라는 노드를 포함하며, 그리고Select all possible paths by the final product node of the interlocking tree datastore and ignore paths with links to element root nodes, where the value fields of the path do not match the logical expression and thus The set of derived nodes that form the context includes nodes that follow only the paths that are not ignored, and - 콘텍스트 카운트를 얻로고 폐기되지 않은 한개 이상의 경로의 최종 프로덕트 노드들의 카운트를 추가하는Get a context count and add a count of the final product nodes of one or more paths not discarded 단계를 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating the data collection. 제 2 항, 5 항, 9 항, 12 항 중 어느 한 항에 있어서, 포커스 및 그 해당 값을 결정하는 상기 단계는, 13. The method of any of claims 2, 5, 9 and 12, wherein determining the focus and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터, 한개 이상의 루트 노드의 포커스 제약사항 리스트를 선택하고, 이때, 상기 한개 이상의 루트 노드는 논리식에 의해 서로 연계되며, Select a focus constraint list of one or more root nodes from a root node or element root node of the interlocking tree datastore, wherein the one or more root nodes are associated with each other by a logical expression; - 상기 한개 이상의 루트 노드의 애즈리절트 리스트로부터 임의의 대응하는 서브컴포넌트까지 가로지름으로서, 그리고 상기 대응하는 서브컴포넌트 노드의 애즈케이스 링크를 그 대응하는 최종 프로덕트 노드까지 가로지름으로서,상기 한개 이상의 루트 노드로부터 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, The one or more roots as a traversal from the aslist list of the one or more root nodes to any corresponding subcomponent, and the ascase link of the corresponding subcomponent node to its corresponding final product node; Identifies one or more paths from the node by the end product node, - 구축된 콘텍스트 내에 있지 않은 경로들을 무시하고, 그리고 Ignore paths that are not in the built context, and - 상기 논리식과 일치하지 않는 값 필드(value fields)들을 가진 요소 루트 노드에 대한 링크를 가진 경로들을 또한 무시하며, 따라서 포커스를 형성하는 도출된 노드 세트는 무시되지 않은 경로들만을 따르는 노드들을 포함하며, 그리고Also ignore paths with links to element root nodes with value fields that do not match the above logical expression, so that the set of derived nodes that form the focus include nodes that follow only non-ignored paths; , And - 포커스 카운트를 얻기 위해 상기 포커스를 형성하는 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는 Add a count of the last product node of one or more paths forming the focus to obtain a focus count 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 2, 5, 9, 12 항 중 어느 한 항에 있어서, 포커스 및 그 해당 값을 결정하는 상기 단계는, The method of any one of claims 2, 5, 9 and 12, wherein the determining of the focus and its corresponding value comprises: - 상기 인터라킹 트리 데이터스토어의, 루트 노드나 요소 루트 노드로부터 한개 이상의 루트 노드의 포커스 제약사항 리스트를 선택하고, 이때, 상기 한개 이상의 루트 노드는 논리식에 의해 연계되며, 한개 이상의 루트 노드에 의해 표현되 는 값들을 지닌 콘텍스트 제약사항 리스트를 선택하고, 이때, 상기 콘텍스트 제약사항 리스트 상의 상기 한개 이상의 루트 노드들 전부는 논리식에 의해 서로 연계되며, Select a focus constraint list of one or more root nodes from the root node or element root node of the interlocking tree datastore, wherein the one or more root nodes are associated by a logical expression and represented by one or more root nodes Select a context constraint list having the following values, wherein all of the one or more root nodes on the context constraint list are associated with each other by a logical expression, - 최종 프로덕트 노드에 의해 한개 이상의 경로를 식별하며, 이때, 상기 식별 과정은 구축된 콘텍스트 내의 모든 최종 프로덕트 노드로부터 그 프라이머리 루트 노드를 향해 상기 경로를 따라 역방향으로 가로지름으로서 구현되고, 이때, 상기 경로는 구축된 콘텍스트 내의 상기 최종 프로덕트 노드의 케이스 링크를 이용하여 식별가능하며, 이때, 각각의 서브컴포넌트 노드에서, 리절트 링크를 이용하여 루트 노드의 위치를 결정하고 상기 루트 노드를 상기 한개 이상의 루트 노드에 비교하며, Identifying one or more paths by the final product node, wherein the identification process is implemented by traversing backwards along the path from all final product nodes in the established context towards the primary root node, wherein The path is identifiable using the case link of the last product node in the established context, wherein at each subcomponent node, the location link is used to determine the location of the root node and route the root node to the one or more roots. To nodes, - 상기 논리식에 일치하지 않는 값 필드(value fields)들을 가진 요소 루트 노드에 대한 링크들을 가진 경로들을 무시하고, 따라서 포커스를 형성하는 도출된 노드 세트들은 무시되지 않은 경로들만을 따르는 노드를 포함하며, 그리고Derived sets of nodes that ignore paths with links to element root nodes with value fields that do not match the above logical expression, and thus form focus, include nodes that follow only paths that are not ignored, And - 포커스 카운트를 얻도록 무시되지 않은, 한개 이상의 경로의 최종 프로덕트 노드의 카운트를 추가하는-Add a count of the last product node of one or more paths that are not ignored to get the focus count. 단계들을 포함하는 것을 특징으로 하는 데이터 컬렉션 평가 방법.And evaluating data collection. 제 4, 6, 7, 8, 9, 11, 12, 14 항 중 어느 한 항에 있어서, 상기 논리식은 AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO 중 어느 한가지를 포함하는 한개이상의 논리 연산자와, 상기 논리 연산자의 임의의 조합을 포함하는 것을 특징 으로 하는 데이터 컬렉션 평가 방법.The method of any one of claims 4, 6, 7, 8, 9, 11, 12, 14, wherein the logical expression is one or more logical operators including any one of AND, OR, NOT, GREATERTHAN, LESSTHAN, XNOR, EQUALTO And any combination of the logical operators. 노드와, 노드 간의 링크를 가진 구조로서, 상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, A node having a link between nodes, wherein the nodes have a plurality of data fields, two or more of the plurality of fields having a pointer, one of the two or more pointers being a case pointer, and the two or more pointers. The other one is a result pointer, wherein one or more nodes have one or more additional pointers to the list of pointers, and one of the additional pointers to the pointer list is an case in the case where the node has an associated ascase list. A pointer to a list, the other of the additional pointers is a pointer to an Aslist list in the case where the node has an Aslist list, 상기 노드는 카운트 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비하는 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.The node has a count field, the node including a root node, at least one primary root node and at least one elemental root node, wherein the node may include other root nodes, The node comprises at least one end of a thought node, at least one subcomponent node, and at least one final product node, wherein the as links are pointing between a root node and other roots, and the as The case link points between one or more primary root nodes and one or more end product nodes, wherein the as case link includes one or more subcomponent nodes in the path therebetween, and the associative link includes a root or end product node. Between a subcomponent node and a final product node And wherein said element node comprises a field having a single value. 제 17 항에 있어서, 상기 구조는 상기 구조를 생성하기 위해 활성화될 때 컴퓨터 시스템을 설정하는 프로그램 명령 세트로부터 형성되는 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.18. The structure of claim 17, wherein the structure is formed from a set of program instructions that, when activated to create the structure, establish a computer system. 제 18 항에 따른 프로그램 명령 세트를 지닌 컴퓨터 판독형 매체.A computer readable medium having a program instruction set according to claim 18. 제 17 항에 있어서, 상기 카운트 필드는 강도 변수를 지니며, 상기 강도 변수는 상기 카운트 필드를 지닌 노드에 관련된 활동의 여러 지정된 종류에 대응하는 여러 강도로 수정가능한 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.18. The node and node of claim 17, wherein the count field has an intensity variable, the intensity variable being modifiable to various intensities corresponding to various specified kinds of activities related to the node having the count field. Structure containing a link. 제 17항에 있어서, 상기 애즈케이스 및 애즈리절트 리스트들은 상기 인터라킹 트리 구조와는 분리된 데이터 구조에 저장되고, 상기 분리된 데이터 구조는 포인터에 의해 상기 인터라킹 트리 구조 내 관련 노드와 연계되는 것을 특징으로 하는 구조.18. The system of claim 17, wherein the ascase and aslist lists are stored in a data structure separate from the interlocking tree structure, the separated data structure being associated with a related node in the interlocking tree structure by a pointer. Structure characterized in that. 노드와, 노드 간의 링크를 가진 구조로서, A structure with nodes and links between nodes, 상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, The nodes have a plurality of data fields, two or more of the plurality of fields having a pointer, one of the two or more pointers being a case pointer, the other of the two or more pointers being a resort pointer, one or more The node has one or more additional pointers to the list of pointers, one of the additional pointers to the pointer list being a pointer to an ass list in the case where the node has an associated ascase list, the other of the additional pointers. One is a pointer to an Aslist list in the case where the node has an Aslist list, 상기 노드에는 각각 지정된 방식의 가로지름을 위한 한개의 서브노드가 제공되고, 상기 서브노드는 지정 방식으로 상기 노드를 가로지르는 것을 레코딩하는 카운트 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와, 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비하는 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.Each of the nodes is provided with one subnode for traversing a specified manner, the subnode having a count field for recording traversing the node in a specified manner, the node comprising a root node, Among them there is at least one primary root node and at least one elemental root node, the node may comprise other root nodes, the node being at least one end of a thought node, at least one subcomponent. A node and one or more final product nodes, wherein the as links link between a root node and other routes, and the ascase links point between one or more primary root nodes and one or more final product nodes, and The at least one case link may be one or more subcomponent nodes. Included in the path therebetween, the As links link between the root or final product node and the subcomponent node or the final product node, wherein the element node has a field with a single value. A structure containing nodes and links between nodes. 노드와, 노드 간의 링크를 가진 구조로서, 상기 노드들은 다수의 데이터 필드를 구비하고, 상기 다수의 필드 중 두개 이상은 포인터를 지니며, 상기 두개 이상의 포인터 중 하나는 케이스 포인터이고, 상기 두개 이상의 포인터 중 다른 하나는 리절트 포인터이며, 한개 이상의 노드는 포인터들의 리스트에 대한 한개 이상의 추가 포인터를 가지고 있고, 상기 포인터 리스트에 대한 상기 추가 포인터 중 하나는 상기 노드가 관련 애즈케이스 리스트를 가지는 사례에서 애즈케이스 리스트에 대한 포인터이고, 상기 추가 포인터 중 다른 하나는 상기 노드가 애즈리절트 리스트를 가지는 사례에서 애즈리절트 리스트에 대한 포인터이며, A node having a link between nodes, wherein the nodes have a plurality of data fields, two or more of the plurality of fields having a pointer, one of the two or more pointers being a case pointer, and the two or more pointers. The other one is a result pointer, wherein one or more nodes have one or more additional pointers to the list of pointers, and one of the additional pointers to the pointer list is an case in the case where the node has an associated ascase list. A pointer to a list, the other of the additional pointers is a pointer to an Aslist list in the case where the node has an Aslist list, 상기 노드는 추가 필드를 지니며, 상기 노드는 루트 노드를 포함하는 데, 그 중에 한개 이상의 프라이머리 루트 노드와 한개 이상의 요소 루트 노드가 존재하며, 상기 노드는 그외 다른 루트 노드들을 포함할 수 있고, 상기 노드는 쏘오트 노드(thought node)의 한개 이상의 엔드, 한개 이상의 서브컴포넌트 노드, 그리고 한개 이상의 최종 프로덕트 노드를 포함하며, 상기 애즈리절트 링크는 루트 노드와 그외 다른 루트 사이를 포인팅하고, 상기 애즈케이스 링크는 한개 이상의 프라이머리 루트 노드와 한개 이상의 최종 프로덕트 노드 사이를 포인팅하며, 상기 애즈케이스 링크는 한개 이상의 서브컴포넌트 노드를 그 사이의 경로에 포함하고, 상기 애즈리절트 링크는 루트나 최종 프로덕트 노드와 서브컴포넌트 노드나 최종 프로덕트 노드 사이를 포인팅하며, 상기 요소 노드는 한개의 값을 가진 필드를 구비하는 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.The node has an additional field, the node including a root node, at least one primary root node and at least one elemental root node, the node may comprise other root nodes, The node comprises at least one end of a thought node, at least one subcomponent node, and at least one final product node, wherein the as links are pointing between a root node and other roots, and the as The case link points between one or more primary root nodes and one or more end product nodes, wherein the as case link includes one or more subcomponent nodes in the path therebetween, and the associative link includes a root or end product node. Between the subcomponent node and the final product node And the element node comprises a field having a single value. 제 23 항에 있어서, 상기 추가 필드가 카운트 필드인 것을 특징으로 하는 노드 및 노드들 간의 링크를 포함하는 구조.24. The structure of claim 23, wherein the additional field is a count field.
KR1020057016962A 2003-03-10 2004-02-27 System and method for storing and accessing data in an interlocking trees datastore KR20060016744A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
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/385,421 2003-03-10
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 (1)

Publication Number Publication Date
KR20060016744A true KR20060016744A (en) 2006-02-22

Family

ID=32993817

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057016962A KR20060016744A (en) 2003-03-10 2004-02-27 System and method for storing and accessing data in an interlocking trees datastore

Country Status (7)

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

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7348980B2 (en) * 2004-11-08 2008-03-25 Unisys Corporation Method and apparatus for interface for graphic display of data from a Kstore
US20070162508A1 (en) * 2004-11-08 2007-07-12 Mazzagatti Jane C Updating information in an interlocking trees datastore
US20070214153A1 (en) * 2006-03-10 2007-09-13 Mazzagatti Jane C Method for processing an input particle stream for creating upper levels of KStore
US7734571B2 (en) * 2006-03-20 2010-06-08 Unisys Corporation Method for processing sensor data within a particle stream by a KStore
US8238351B2 (en) * 2006-04-04 2012-08-07 Unisys Corporation Method for determining a most probable K location

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2338807A (en) * 1997-12-29 1999-12-29 Infodream Corp 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 (en) * 2000-06-13 2004-12-15 日本電気株式会社 Information retrieval method and device
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

Also Published As

Publication number Publication date
JP2006521639A (en) 2006-09-21
EP1606723A2 (en) 2005-12-21
BRPI0408282A (en) 2006-03-07
AU2004219257A1 (en) 2004-09-23
EP1606723A4 (en) 2006-12-20
WO2004081710A3 (en) 2004-12-23
WO2004081710A2 (en) 2004-09-23
CA2518797A1 (en) 2004-09-23

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
US6279005B1 (en) Method and apparatus for generating paths in an open hierarchical data structure
US20080065661A1 (en) Saving and restoring an interlocking trees datastore
Robinson et al. Report on the textual criticism challenge 1991
KR20060016744A (en) System and method for storing and accessing data in an interlocking trees datastore
Squire Mastering Data Mining with Python–Find patterns hidden in your data
Herzberg How SAS works
US8516004B2 (en) Method for processing K node count fields using an intensity variable
US8238351B2 (en) Method for determining a most probable K location
US7996425B1 (en) Storing element-based descriptions of documents in a database
US7676330B1 (en) Method for processing a particle using a sensor structure
Repanovici Exploitation of information resources within knowledge society: digital library
Leyton The design and implementation of a relational database management system
Escardó Foundations of Computer Science

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid