CN1781094A - 用于存储和访问互锁树数据仓库中的数据的系统和方法 - Google Patents
用于存储和访问互锁树数据仓库中的数据的系统和方法 Download PDFInfo
- Publication number
- CN1781094A CN1781094A CNA2004800113729A CN200480011372A CN1781094A CN 1781094 A CN1781094 A CN 1781094A CN A2004800113729 A CNA2004800113729 A CN A2004800113729A CN 200480011372 A CN200480011372 A CN 200480011372A CN 1781094 A CN1781094 A CN 1781094A
- Authority
- CN
- China
- Prior art keywords
- node
- tree
- pointer
- data warehouse
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/953—Organization of data
- Y10S707/956—Hierarchical
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
Abstract
生成和/或访问包括互连的树的林所构成的基于树的数据仓库。基于树的数据仓库包括从第一根节点下垂的第一树,并可以包括多个树枝。第一树的每一个树枝都在叶节点中结束。每一个叶节点都可以代表最终产物,如下面比较全面地描述的。同一个基于树的数据仓库的第二根链接到代表最终产物的每一个叶节点。因此,第二根基本上是第一树的倒序的根,但第一树不重复。最后,基于树的数据仓库包括多个树,其中,这些树中的每一个树的根节点都是基本节点,如下面比较全面地描述的。这些树中的每一个树的基本根节点都可以链接到第一树的一个或多个树枝中的一个或多个节点。基于树的数据仓库的节点只包含指向基于树的数据仓库中的其他节点的指针。包括基于树的数据仓库的树林中的树的根可以链接到数据。
Description
技术领域
本发明涉及计算领域,具体来说,涉及将数据存储在数据仓库中并访问其中的数据的领域。
背景技术
在开发软件时开发人员所作出的一个基本选择是选择适当的数据结构以便于组织和引用数据。有许多不同类型的数据结构,包括链接列表、堆栈、树、数组及其他。每一个数据结构都与某些优点和局限关联。
一个频繁使用的数据结构是树。树的一种常见形式由叫做节点的元素的有限集构成,从根到一个或多个内部节点链接在一起,其中每一个节点都可以链接到一个或多个节点,最终以许多叶节点结束。通常,与根比较近的节点是远离根的节点的父节点。远离根的节点叫做父节点的子节点。数据通常存储在节点中,并可以使用从根到节点到叶和从父节点到子节点的链接来引用。因此,分层或顺序关系可以是存储在树结构的节点中的数据的属性。分层关系也可以被理解为上下文关系,每一个节点都可在其父节点的上下文内被访问。
树数据结构的一个局限是,通常,一个树只能代表一个层次结构。例如,销售活动的根节点可以具有许多从根节点下垂的节点,每一个节点都代表特定销售员。每一个销售员节点都可以具有子节点,每一个销售员子节点都代表位于特定州的销售。因此,在销售员的上下文内可以轻松地访问此树,以查找州信息,即,此树可以用来有效地回答问题:“销售员Bob在哪个州进行销售?”如果不是按销售员访问州数据,而需求州的上下文内的销售员数据,(即,我们希望回答问题:“哪个销售员在得克萨斯州销售?”),则必须创建另一个树,代表州的节点从根销售员活动下垂,代表销售员的子节点可以从该节点中下垂。创建另一个树的替代方法将是遍历整个树,以提取所希望的信息。
如果一个结构可以记录数据内的所有可能的上下文关系是有帮助的,从而实现用标准树数据结构无法实现的效率。
发明内容
生成和/或访问包括互连的树的林所构成的一个或多个级别的基于树的数据仓库。基于树的数据仓库的每一个级别包括从第一根节点下垂的第一树,并可以包括多个树枝。第一根可以代表诸如但不限于级别开始指示符之类的概念。第一树的每一个树枝都在叶节点中结束。每一个叶节点都可以代表最终产物,如下面比较全面地描述的。基于树的数据仓库的同一个级别的第二根链接到代表最终产物的第一树的每一个叶节点。因此,第二根基本上是第一树或第一树的子集的倒序的根,但第一树不重复。第二根可以代表诸如但不限于级别结束指示符之类的概念。最后,基于树的数据仓库包括多个树,其中,这些树中的每一个树的根节点都可以包括诸如数据集元素或数据集元素的表示法之类的数据。这种根节点这里被称为基本根节点。这些树中的每一个树的基本根节点都可以链接到非复制的第一树的一个或多个树枝中的一个或多个节点。基于树的数据仓库的非根节点只包含指向基于树的数据仓库中的其他节点的指针。包括基于树的数据仓库的每一个级别的树林中的树的根也由指示器组成,然而,根节点也可以包含代表信息的数据(即,包含是或代表诸如数据集元素之类的数据或诸如级别开始或级别结束指示符之类的概念的数据);基于树的数据仓库的所有其他节点只指向其他节点,不包含数据。在本发明的一个实施例中,数据是与字符关联的整数,像素表示法、诸如开始指示符、结束指示符、字段指示符的开始等等条件,尽管本发明不仅限于此。可以生成和访问上文所描述的基于树的数据仓库的多个级别;较低级别的最终产物变成下一级别的基本根节点。
生成和访问互锁树数据仓库。数据仓库包括构成了从第一根下垂的一个asCase树的asCase树枝的多根树;这里叫做主根,asResult树枝构成了从多重根下垂的多个asResult树。asResult树的一个特殊实例包括链接到上文所描述的asCase树的一个或多个最终产物叶节点的根节点。因此,此asResult树可以轻松地按照倒序访问在最终产物中结束的asCase树的树枝。此asResult树也可以用来定义下一级别的基本根节点。这些基本根节点可以代表由较低级别的最终产物集组成的下一级别的数据集元素。
互锁树数据仓库可以通过组合代表级别开始指示符的节点和代表数据集元素的节点以构成代表子组件的节点,捕获有关在输入文件中遇到的数据集元素之间的关系的信息。子组件节点可以同代表数据集元素的节点相组合,以生成迭代子进程位于另一个子组件节点。将子组件节点与代表级别结束指示符的节点组合可以创建级别最终产物节点。将级别开始节点与数据集元素节点组合以创建子组件以及将子组件与数据集元素节点组合的过程本身可以迭代,以生成一个级别中的多个asCase树枝。AsResult树还可以通过指向asCase树中的一个或多个节点的asResult树的根,链接或连接到asCase树中的节点。
一个级别的最终产物节点可以是代表数据集元素的基本根节点,它们组合起来以生成子组件的下一级别。此过程可以重复任意次,创建asCase树的任意个级别。另外,还可以分解一个级别的基本根节点以生成较低级别的节点和根。一个级别的最终产物节点,通过较低级别的asResult树的特殊实例,即,具有代表较低级别的结束指示符的根节点的较低级别的asResult树,变成下一级别的基本根节点。如此,具有代表较低级别的结束指示符的根节点的较低级别的asResult树是第二根,较低级别的asCase树的反转。
在本发明的一个实施例中,在创建节点时,在每一个级别中基本上同时生成asCase和asResult链接。通过在处理输入时生成asCase链接来创建AsCase树枝。每一个级别上的asCase树的asCase树枝提供是如何通过将代表数据集元素的节点按顺序组合为子组件等等到最终产物,创建级别每一个子组件和最终产物的直接记录。asCase树的树枝还代表树中的节点的一个可能的分层关系。
asResult链接的生成创建了一系列互锁树,每一个互锁树都从一个单独的根下垂。在一个级别中可能有多个此类型的根。这具有记录在输入中遇到的数据集元素之间的所有其他关系的结果。如前所述的信息是通过构建的而不是显式存储在树的节点中的互锁树的林的结构来捕获的,以便实际上作为输入接收的数据判断构建的互锁树的林的结构。asResult树的林的结构确保了,可以在需要的任何其他上下文中访问如此存储的信息。因此,数据仓库是自组织的,从下面的描述中就可以看出。
附图说明
当与所附的图形阅读时,可以更好地了解前面的摘要,以及本发明的实施例的下面详细描述。为了说明本发明,在图形中显示了本发明的示范性结构;然而,本发明不仅限于所说明的特定方法。在图形中:
图1是其中可以实现本发明的各个方面的示范性计算环境;
图2a说明了根据本发明的一个实施例的用于从互锁树数据仓库生成数据并访问数据的示范性系统;
图2b说明了用于从互锁树形数据库生成信息并访问信息的示范性方法;
图3a显示了根据本发明的一个实施例的图3a的示范性互锁树数据仓库的比较详细的视图;
图3b显示了根据本发明的一个实施例的图3a的互锁树数据仓库的示范性节点的比较详细的视图;
图3c显示了根据本发明的一个方面的图3a的互锁树数据仓库的链接列表;
图4显示了根据本发明的一个实施例的存储在存储器中的图2的示范性数据集元素集;
图5a-e描述了图2的互锁树,以及根据本发明的一个实施例生成互锁树时互锁树的节点的对应的内容;
图6是根据本发明的一个方面的生成互锁树的示范性过程的流程图;
图7a显示了根据本发明的一个实施例的另一个互锁树数据仓库和对应的节点;
图7b显示了根据本发明的一个方面的图7a的互锁树数据仓库的链接列表;
图8显示了根据本发明的实施例的其他互锁树数据仓库;
图9a显示了根据本发明的一个实施例的另一个互锁树数据仓库;
图9b显示了根据本发明的一个实施例的图9a的互锁树数据仓库的节点的示范性内容;
图10显示了根据本发明的一个实施例的另一个互锁树数据仓库;以及
图11是根据本发明的一个实施例的从互锁树数据仓库访问数据的示范性过程的流程图。
具体实施方式
概述
如下所述的系统和方法创建了包括互连的树的林至少一个级别的数据仓库。数据仓库的每一个级别的互连的树的林捕获有关代表级别开始的节点和数据集元素(创建子组件节点)或子组件节点和数据集元素节点或子组件节点和代表迭代过程中的级别结束指示符的导致生成由被asCase树枝和多个asResult树链接的节点组成单个asCase树的节点的组合的信息。asCase树枝的节点从第一根下垂。例如,请参看图3a,节点302、312、314和316是从第一开始指示符根302下垂的示范性asCase树。AsResult树包括下列树:节点306和312(一个asResult树),节点304和314(第二asResult树),节点308和316(第三asResult树)和节点310和318(第四asResult树)。第asResult树是asResult树的特殊实例,因为根(节点310)代表了结束指示符。
给定级别的asCase树的每一个树枝以将代表级别开始指示符的节点和代表数据集元素的节点组合为子组件节点开始。子组件节点可以反复地同数据集元素节点相组合为另一个子组件节点。子组件可以同代表级别结束指示符的节点相组合,以创建最终产物节点。此过程可以重复,并可能导致形成从第一根下垂的多个asCase树枝。
例如,如果特定互锁树结构的不可分的基本组件是字母数字的,则子组件可以是不是单词的字母的组合,最终产物可以是单词。或者,子组件可以是包括部分库存品编号或订购编号的字母数字的组合,最终产物可以是完整的库存品或订购编号,这里只是举应用于本发明的输入的字母数字universe的两个可能的用途。
一个级别的最终产物可以是下一个级别的数据集元素。最终产物数据集元素可以用来生成子组件的下一级别,方式与较低级别的数据集元素用来创建较低级别的子组件和最终产物的方式相同。例如,在上文所描述的特定互锁树结构中,一个级别(单词)的最终产物可以是从中可以创建较高级别最终产物(句子)的数据集元素。此过程可以重复任意次,在数据仓库中创建asCase树的任意个级别。
为继续上文所描述的示例,较高的级别,使用单词作为级别数据集元素,可以包括句子。句子可以组合起来,以创建段落(较高的级别)等等。另外,还可以分解较高级别的数据集元素,以生成互锁树数据仓库的较低级别。在本发明的一个实施例中,从级别结束指示符启动的asResult树被用来定义下一级别的数据集元素。结束指示符是互锁树数据仓库的倒序的第二根,如本发明的一个实施例中的asCase树所定义的。
在创建节点时,在每一个级别中基本上同时生成asCase和asResult链接。asCase链接代表到从中创建节点的两个节点的第一个节点的链接。可以理解,在处理输入时,通过生成asCase链接,可以创建asCase树的asCase树枝。每一个级别的asCase树枝提供是如何创建级别每一个子组件和最终产物的直接记录。因此,asCase树枝可以用于任何目的,知道子组件和最终产物是如何创建的是有用的。例如,如果到互锁树生成器的输入包括正确拼写的单词的universe,则所生成的互锁树的所产生的asCase链接可以用作拼写检查程序,这里只是列出数据仓库的公用程序的许多可能的示例中的一个示例。
另外,asCase树的树枝还代表asCase树中的节点的一个可能的分层关系。例如,如果互锁树生成器接收到的数据是“Tom销售了100个PA。Bill销售了40个NJ”,所生成的asCase树包括“销售员的上下文内的州信息”上下文或层次结构中的数据的视图。
asResult链接代表到从中创建节点的两个节点的第二个节点的链接。asResult链接的生成创建了一系列互锁树,其中,每一个asResult树都从包括数据集元素的根下垂。这具有记录数据仓库中的元素和asCase树之间的所有遇到的关系的结果。即,asResult树捕获互锁树的节点的所有可能的上下文。asResult树可以用于任何目的,知道节点之间的上下文或关系是有用的。例如,如果对互锁树数据仓库生成器的输入包括若干销售数据,包括销售员姓名、星期几、商品编号和州、所生成的互锁树数据仓库的所产生的asResult链接可以用来从同一个互锁树数据仓库中提取下列信息:“哪个销售员在特定的州销售?”“星期一销售了多少商品?”“销售员Bob在星期一和星期二销售了多少商品?”等等,无需创建数据仓库的多个副本。
可以使用存储在asResult树来分类子组件和最终产物。可以理解,如前所述的信息实际是通过构建的而不是显式存储在树的子组件和最终产物节点中的互锁树数据仓库的结构来存储的。由于只有互锁树数据仓库的根节点才可以包括数据,因此,可以沿asResult链接反向而行到根节点,以判断子组件或最终产物是否属于由根节点所代表的数据的类。根据如下所述的过程,进一步可以理解,此功能使数据仓库为自组织的。例如,如果对互锁树数据仓库生成器的输入是“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”的节点的asCase链接而行,可以沿着asCase树的树枝查找包含“A”的其他子组件和最终产物。
在本发明的一个实施例中,节点之间的链接是双向的。例如,代表字母“A”的根节点可以包括指向节点A的asResultList中的节点BOT-C-A的指针,而节点BOT-C-A可以包括指向节点A的指针作为其asResult指针,依次类推。
在本发明的另一个实施例中,节点之间的链接是单向的。例如,在本实施例中,节点BOT-C-A包括指向节点BOT-C的asCase指针和指向代表A根节点的asResult指针,但根节点A不包括指向其asResultList中的节点BOT-C-A的指针。那些精通本技术的人员将认识到,虽然仍可以判断涉及哪些节点属于类别A的信息,但是,这样做可能需要搜索所有节点。
示范性计算环境
图1是其中可以实现本发明的各个方面的示范性计算机系统100的方框图。计算机系统100可以是任何合适的系统,如但不限于大型机、小型计算机、IBM兼容的个人计算机,Unix工作站或网络计算机。那些精通相关技术的人将认识到,本发明的设备可以适用于任何计算机系统,包括但不限于多用户计算机系统或单用户计算机。如图1所示,计算机系统100包括连接到主存储器104的中央处理单元(CPU)102,辅助存储器接口106,终端接口108,以及网络接口110。这些系统组件通过系统总线160连接起来。辅助存储器接口106用来连接存储设备,如但不限于DASD设备190,将存储在如但不限于磁盘195之类的磁盘上的数据仓库到计算机系统100。
包含了计算机系统100的整个虚拟存储器的主存储器104,包括了操作系统122和应用程序124,还可以包括互锁树数据仓库126。互锁树数据仓库126可以用来提供这样的数据仓库:可以以多个上下文模式对该数据仓库快速进行搜索,以查找数据,而不需要数据的重复。计算机系统100可以使用已知的虚拟寻址机制,这种机制允许计算机系统100的程序这样操作:似乎它们可以访问大型单个存储实体而不是访问诸如主存储器104和DASD设备190之类的多个较小的存储实体。因此,尽管显示的操作系统122、应用程序124,以及互锁树数据仓库126驻留在主存储器104上,那些精通相关技术的人将认识到,这些元件不一定都完全同时位于主存储器104中。
尽管显示的计算机系统100只包括单个CPU和系统总线,但是,那些精通相关技术的人将理解,可以使用包括多个CPU和/或总线的系统来实现本发明。可以使用终端接108来将一个或多个终端连接到计算机系统100。引用的终端可以是哑终端,或完全可编程的工作站,可以被用来使系统管理员和用户与计算机系统100进行通信。
可以使用网络接口110来将其他计算机系统和/或工作站连接到计算机系统100。网络接口110所连接的网络可以是局域网(LAN)、广域网(WAN),内部网、extranet或因特网,或任何其他合适的网络。操作系统122可以是诸如OS/2、WINDOWS、AIX、UNIX、LINUX之类的操作系统或任何其他合适的操作系统。
应用程序124可以是访问存储在互锁树数据仓库126中的数据的任何类型的应用程序。如此,应用程序可以包括数据分析应用程序、数据仓储应用程序、入侵检测系统,这里仅举几个例子,虽然本发明不仅限于此。
互锁树数据仓库126提供能使用户访问相同数据仓库以获取与任何上下文关联的信息的数据仓库结构。这里所使用的术语“数据”可以包括任何类型的计算机存储的信息,如但不限于数字、文本、图形、公式、表、音频、视频、多媒体或其任何组合。互锁树数据仓库126可以作为应用程序124的一部分、作为操作系统122的一部分或作为可以用于为各式各样的应用程序提供数据仓库的单独的数据仓库产品。
尽管是在完全运转的计算机系统的上下文中描述本发明的,但是,那些精通本技术的普通人员将认识到,本发明能够作为各种各样的形式的程序产品进行分发,本发明同样适用,不管用于进行分发的信号携带介质的特定类型是什么。携带这样的信号的介质的示例包括但不仅限于软盘、硬盘驱动器、CD-ROM、电的、光学、无线的数字和模拟通信链路或其他合适的介质。
用于生成和访问互锁树数据仓库的系统和方法
图2a说明了根据本发明的一个实施例的用于从构成了数据仓库的互锁树林生成数据并访问数据的示范性系统200。一个实施例中的用于生成互锁树数据仓库的子系统250包括互锁树生成器202、一组数据集元素206,用来生成示范性互锁树数据仓库208的输入数据204。或者,可以从输入数据204派生数据集元素集206。
用于从互锁树数据仓库208访问信息的子系统251可以包括互锁树数据仓库208,如上所述,和/或用于接收数据请求212、处理数据请求212并返回请求的信息的互锁树数据仓库存取器210。
图2b说明了用于从互锁树数据库生成信息并访问信息的示范性方法。在步骤260中,如下面比较全面地描述的,生成互锁树数据仓库。在步骤262中,接收需要互锁树数据仓库中的信息的请求。在步骤264中,从互锁树数据仓库中检索信息。
生成互锁树数据仓库
例如,假设输入数据204包括代表一个单词(例如,“CAT”)的字母数字字符的流。在此情况下,数据集元素206可以是字母表中的字母集,并可以包括一个或多个字符,以代表分隔符或开始单词/单词结束的概念。分隔符可以包括字母数字字符,如但不限于空白(“”)、逗号(“,”),和句点(“.”)。
互锁树数据仓库208包括许多根、许多非根节点和非根节点之间的或根和非根节点之间的许多链接或连接。互锁树数据仓库208的每一个根和非根节点都包括一对指针(情况指针(case pointer)和结果指针(result pointer))和一对列表指针(指向asCaseList的指针和指向asResultList的指针)。此外,根还可以包括代表值或对值的引用的数据。
图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-EOT)代表了代表开始指示符的节点和代表数据集元素的节点顺序合成为代表子组件的节点,该子组件与数据集元素组合成为另一个子组件,依次类推,直到子组件与代表结束指示符的节点组合,从而创建代表最终产物的节点。在此情况下,捕获来自一连串字母(后面是分隔符(即,一连串字母“CAT”,后面是分隔符“”或空白字符))的单词的顺序合成。输入中的分隔符可以用来区别最终产物。例如,值得注意的是,分隔单词的字符可以指出一个单词的末尾和另一个单词的开始。例如,在字符串“CATS ARE”中,“CATS”和“ARE”之间的空白字符既表示单词“CATS”的末尾,又表示单词“ARE”的开始。因此,诸如输入中的空白字符之类的分隔符可以被创建的节点中的诸如“BOT”之类的开始指示符替代,或被诸如“EOT”之类的结束指示符替代,如下面比较全面地描述的。
诸如根节点304、306和308之类的节点这里被称为基本节点,因为这些节点代表数据集元素,并包括用来构成可分的单元(子组件和最终产物)的不可分的单元。诸如312、314和316之类的节点这里被称为子组件或子组件节点,因为这些节点代表诸如开始指示符之类的概念指示符和代表数据集元素的节点的组合,或子组件和代表代表数据集元素的不包括最终产物的节点的组合或子组件和代表结束指示符的包括最终产物的节点的组合。诸如节点318之类的节点代表最终产物。在所引用的示例中,数据集元素是字母,子组件代表了不包括单词的字母的组合,最终产物是单词。值得注意的是,根节点集包括在本示例中表示单词开始的“BOT”和表示单词末尾的“EOT”。可以理解,“BOT”和“EOT”代表首尾指示符,但本发明不仅限于此。也可以使用其他这样的指示符,如同不存在一个或两个这样的指示符。在本发明的一个实施例中,由于从节点到代表EOT概念的根节点而将最终产物与子组件区分开。
可以理解,尽管在给定示例中,输入的universe是可用来派生单词的字母数字字符集,但是,本发明没有这样的限制。例如,输入的universe可以是文本,如字母(可以用来派生单词)或单词(可以用来派生词组或句子),或者,也可以是可以用来派生基因组的氨基酸,进程中使用的有限资源,概念、像素集、图像、声音、数字、模拟测量或值或由基本单元构成的可以被数字化和按顺序组合以生成最终产物的任何其他合适的universe。通常,根据本发明的一个实施例,基本单元以优化的序列组合。
除了上文所描述的节点之外,互锁树数据仓库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遍历,或者,也可以通过链接326、324、322和320来遍历。链接320、322、324和326(用实线表示)这里被称为asCase链接。链接328、330、332和334(用虚线表示)这里被称为asResult链接。同样,在本发明的一个实施例中,链接328、330、332和334是双向的,因为节点C 306中的指针指向节点BOT-C 312,节点BOT-C 312中的指针指向节点C 306,节点A304中的指针指向节点BOT-C-A 314,节点BOT-C-A 314中的指针指向节点A 304等等。
图3b显示了互锁树数据仓库208的示范性节点中包括的信息。示范性节点340可以代表子组件或最终产物。示范性节点340可以包括指向子组件或最终产物340的第一部分的指针(指向case342的指针,这里也被称为“asCase”),指向子组件或最终产物340第二部分的指针(指向结果344的指针,这里也被称为“asResult”),指向asCaseList 346的指针,其节点340是第一部分和指向AsResultList 348的指针的子组件或最终产物的链接列表,其节点340是第二部分的组件或最终产物的链接列表。
示范性节点341代表根节点。示范性节点341包括Null指针(指向case 342的指针,这里也被称为“asCase”),第二Null指针(指向结果344的指针,这里也被称为“asResult”),指向asCaseList 346的指针,其根节点341是第一部分和指向AsResultList 348的指针的子组件或最终产物的链接列表,其根节点341是第二部分和值349的组件或最终产物的链接列表。值349可以包含实际值,代表条件或状态,可以包含指针或对值的引用等等。因此,在本发明的一个实施例中,代表开始指示符概念或条件的根节点将具有空值asResultList,因为开始指示符永远不会是子组件的第二部分,代表数据仓库元素的根节点将具有空值asCaseList,因为数据集元素永远不会是子组件的第一部分,代表结束指示符概念或条件的根节点将具有空值asCaseList,因为结束指示符永远不会是子组件的第一部分。最后由较低级别的最终产物组成的根节点将具有空值asCaseList,因为最终产物充当下一级别的数据集元素。
图3c显示了互锁树数据仓库208的asResult链接列表。链接350是通过设置节点C 306到节点BOT-C 302的asResultList中的指针而建立的,链接352通过设置节点A 304到节点BOT-C-A 314的asResultList中的指针而建立的,链接354是通过设置节点T 308到节点BOT-C-A-T 318的asResultList中的指针而建立的链接356是通过节点EOT 310到节点BOT-C-A-T-EOT 318的asResultList中的指针而建立的。
图4描述了存储器104中的示范性数据集元素206 BOT、A-Z和EOT的示范性存储。可以看出,在本示例中,BOT存储在位置0,A存储在位置5,等等,EOT存储在135。可以理解,数据集元素的放置只是示范性的,数据集元素的任何合适的放置都是可以的。图5a-e描述了互锁树数据仓库208和互锁树数据仓库208的节点的对应的内容,互锁树数据仓库208是在本发明的示范性实施例中生成的。图6是根据本发明的一个实施例的用于生成互锁树数据仓库208的示范性过程600的流程图。
请同时参看图4、5和6,在步骤602中,初始化互锁树数据仓库。在本发明的一个实施例中,初始化包括将“当前指针”设置到将要创建的互锁树数据仓库的根节点。在本发明的另一个实施例中,初始化包括将“当前指针”设置到现有的互锁树数据仓库的根。
此外,数据集元素可以加载到存储器中,并进行初始化。在本发明的一个实施例中,用下列值初始化根节点(例如,图5a的根节点BOT 302,A 535a,...EOT 559a):情况指针=空值,结果指针=空值,指向asCaseList的指针=空值,asCaseList=空值,指向asResultList的指针=空值,asresultlist=空值,以及数据集元素或概念/条件指示符或表示法的值。
此时,互锁树数据仓库,如,根据本发明的一个实施例的互锁树数据仓库500a,可以包括单个节点302(BOT),在此情况下,表示一个单词的开始。方框图502a的节点302包括一对指针(被初始化为空值的情况指针504a和结果指针506a)和一对列表指针(被初始化为空值的指向asCaseList的指针和指向asResultList的指针)和值(被初始化为某个值的值511a,这里描述为BOT)。为便于理解,在图5中,方框图502a,图502b-e中的单元508a和类似的单元,互锁树数据仓库实际上代表了指向关联的asCaseList的指针的所有图,显示了关联的asCaseList的当前内容。同样,互锁树数据仓库实际上代表了指向关联的asResultList的指针的图502b-e中的单元510a和类似的单元,显示了关联的asResultList的当前内容。
AsCaseList(例如,asCaseList 508a)和AsResultList(例如,asResultList 510a)可以作为链接列表来实现。在另一个实施例中,asCaseList(例如,asCaseList 508a)和AsResultList(例如,asResultList 510a)作为大小可配置的连续的存储器位置的块来分配,如但不限于数组,指向asCaseList的指针被设置为asCaseList存储块的开始位置,指向asResultList的指针被设置为asResultList存储块的开始位置。
在步骤604中,接收输入。在本发明的一个实施例中,“当前指针”的值被设置为“前一指针”,“当前指针”被设置为输入。在给定的示例中,接收到的输入为“C”。在步骤604中,对输入进行验证。在给定的示例中,这涉及检查“C”是否为有效的数据集元素。“C”的确是有效的元素,位于存储器104中的位置15中。
在步骤606中,如果节点已经不存在,则创建互锁树数据仓库中的节点,将其初始化,并存储在存储器中的某个位置。在示例中,创建互锁树数据仓库208中的节点312,代表BOT-C,节点BOT-C312的情况指针、结果指针、指向asCaseList的指针、asCaseList、指向asResultList的指针,以及asResultList,被初始化为空值,BOT-C存储在存储器104的位置140处。
在步骤608中,根据本发明的一个实施例,创建在步骤606中创建的节点的链接。通过将新节点的情况指针设置为前一指针的值,并将新节点的结果指针设置为当前指针的值,来定义新节点。图5b的互锁树数据仓库500b显示了创建链接之后的互锁树数据仓库208。方框图502b显示了创建链接之后的节点BOT 302、C 306和BOT-C 312的内容。通过将节点BOT 302与节点C 306顺序组合来创建子组件BOT-C 312。因此,设置了情况指针和结果指针的下列值:节点BOT-C 312的情况指针520b被设置为0(存储器104中的节点BOT 302的位置),节点BOT-C 312的结果指针522b被设置为15(存储器104中的基本节点C 306的位置)。
在本发明的一个实施例中,除了创建从新节点到从中派生的新节点的节点的链接,通过将指向新节点的位置的指针添加到从中派生了新节点的节点的链接列表,asCaseList和asResultList,创建asCaseList和asResultList链接。指针可以添加到列表的末尾,添加到列表的开始,也可以插入列表内的某处。另外,也可以维护许多列表。例如,除了其中按照最频繁地被访问的顺序维护了指针的有序列表之外,节点的asCaseList可以包括其中指针被添加到链接列表的末尾的顺序列表。可以理解,虽然给定的示例引用了一个有序列表和一个顺序列表,但是,本发明不仅限于此,列表的任何组合和任何数量都在本发明的范围内。有序列表可以按照最近更新、最后一次的访问、或更新或访问的频率,或按照任何其他合适的排序规则来进行排序。
建立到新节点的链接:将指向新节点的指针添加到前一指针的asCaseList,并添加到当前指针的asResultList。在本示例中,通过将节点BOT-C 312的情况指针520b设置为节点BOT 302的位置(位置0)来生成双向链接320(方框图503b的链接320a),通过将指向节点BOT-C 312的位置(位置140)的指针添加到asCaseList 508b来更新节点BOT 302的asCaseList 508b(链接320b)。设置了情况指针520a,因为节点BOT 302是节点BOT-C312的定义节点之一。更新了AsCaseList 508b,因为在合成从中创建节点BOT-C 312的两个节点中的第一个节点(节点BOT-C 312)时使用节点BOT 302。AsCaseList 508b目前包含空集(即,asCaseList 508b是空的)。因为节点BOT-C 312位于存储器104中的位置140,因此,asCaseList 508b从空值更新为140。假设asCaseList 508b包括非零集,则节点BOT-C 312位置140将以上文讨论的任何一种方式添加到asCaseList 508b中。
同样,通过将节点BOT-C 312的结果指针522b设置为节点C的位置(位置15)来生成双向链接328(方框图503b的链接328a),通过将指向节点BOT-C 312的位置的指针添加到asResultList 518b来更新基本节点BOT 306的asResultList 518b(链接328b)。设置了结果指针522b,因为节点C 306是节点BOT-C 312的定义节点之一。更新了AsResultList 518b,因为节点C 306包括从中创建节点BOT-C 312的两个节点的第二个节点,(因此,链接328b 做asResult链接)。AsResultList 518b目前包含空集,(即,asResultList 518b是空的)。因为节点BOT-C 312位于存储器104中的位置140,因此,asResultList 518b从空值更新为140。假设asResultList 518b包括非零集,则节点BOT-C 312位置140将以上文讨论的任何一种方式添加到asResultList 518b中。
此时,已经创建了图5b中描述的数据仓库,互锁树数据仓库500b。在图5b中的方框图503b中比较详细地显示了相同结构。值得注意的是,链接320b代表了指向节点BOT-C 312的位置的指针,并是节点BOT 302的asCaseList 508b中的第一个元素,链接328b代表指向节点BOT-C 312的位置的指针,并是节点C 306的asResultList 518b中的第一个元素。链接320a代表了从节点BOT-C 312到其第一部分(节点BOT 302)的指针,而链接328a代表了从节点BOT-C 312到其第二部分(节点C 306)的指针。
在步骤610中,判断是否有更多输入。在此情况下,有更多输入,因此,处理返回到步骤604。在步骤604中,接收输入。在给定的示例中,接收到的输入为“A”。在步骤604中,对输入进行验证。在给定的示例中,这涉及检查“A”是否为有效的数据集元素。“A”的确是有效的元素,位于存储器104中的位置5中。
在步骤606中,如果节点已经不存在,则创建互锁树数据仓库中的节点,将其初始化,并存储在存储器中的某个位置。在示例中,创建互锁树数据仓库208中的节点314,代表BOT-C-A、节点BOT-C-A 314的情况指针、结果指针、指向asCaseList的指针、asCaseList、指向asResultList的指针,以及asResultList,被初始化为空值,节点BOT-C-A 314存储在存储器104的位置145处。
在步骤608中,根据本发明的一个实施例,创建在步骤606中创建的节点的链接。图5c显示了创建链接之后的互锁树数据仓库500c。方框图502c中显示了节点BOT 302、C 306、A 304、BOT-C312和BOT-C-A 314的内容。通过将节点BOT-C 312与节点A304顺序组合来创建子组件BOT-C-A 314。因此,设置了情况指针和结果指针的下列值:节点BOT-C-A 314的情况指针528c被设置为140(链接322a),这是存储器104中的基本节点BOT-C 312的位置,节点BOT-C-A 314的结果指针530c被设置为5(链接330a),这是存储器104中的基本节点A 304的位置。
通过将情况指针528c设置为140(链接322a)并通过将指向存储器104中的节点BOT-C-A 314的位置的指针添加到节点BOT-C 312的asCaseList 524c(链接322b),生成双向链接322。更新了AsCaseList 524c,因为节点BOT-C 312包括从中创建节点BOT-C-A 314的两个节点中的第一个节点。在创建链接322b之前,节点BOT-C 312的asCaseList 524c包含了空集(即,asCaseList524c是空的)。因为节点BOT-C-A 314位于存储器104中的位置145,因此,asCaseList 524c从空值更新为145。假设asCaseList 524c包括非零集,则节点BOT-C-A 314位置145将以上文讨论的任何一种方式添加到asCaseList 524c中。
同样,通过将节点BOT-C-A 314的结果指针530c设置为5,并通过将指向节点BOT-C-A 314的位置的指针添加到节点A 304的asResultList 542c而更新基本节点A 304的asResultList 542c,生成双向链接330。更新了AsResultList 542c,因为节点A 304包括从中创建节点BOT-C-A 314的两个节点中的第二个节点。在创建链接330b之前,AsResultList 542c包含了空集,(即,AsResultList542c是空的)。因为节点BOT-C-A 314位于存储器104中的位置145,因此,asResultList 542c从空值更新为145。假设AsResultList542c包括非零集,则节点BOT-C-A 314位置145将以上文讨论的任何一种方式添加到AsResultList 542c中。
此时,已经创建了图5c中描述的数据仓库,互锁树数据仓库500c。在图5c中的方框图503c中比较详细地显示了相同结构。值得注意的是,链接322b代表了指向节点BOT-C-A 314的位置的指针,并是节点BOT-C 312的asCaseList 524c中的第一个元素,链接330b代表指向节点BOT-C-A 314的位置的指针,并且145是节点A 304的AsResultList 542c中的第一个元素。链接322a代表了从节点BOT-C-A 314到其第一部分(节点BOT-C 312)的指针,而链接330a代表了从节点BOT-C-A 314到其第二部分(节点A304)的指针。
在步骤610中,判断是否有更多输入。在此情况下,有更多输入,因此,处理返回到步骤604。在步骤604中,接收输入。在给定的示例中,接收到的输入为“T”。在步骤604中,对输入进行验证。在给定的示例中,这涉及检查“T”是否为有效的数据集元素。“T”的确是有效的数据集元素,位于存储器104中的位置100中。
在步骤606中,如果节点已经不存在,则创建互锁树数据仓库中的节点,将其初始化,并存储在存储器中的某个位置。在示例中,创建互锁树数据仓库208中的节点316,代表BOT-C-A-T 316,情况指针、结果指针、指向asCaseList的指针、asCaseList、指向asResultList的指针,以及asResultList,被初始化为空值,节点BOT-C-A-T 316存储在存储器104的位置150处。
在步骤608中,创建在步骤606中创建的节点的链接。图5d显示了创建链接之后的互锁树数据仓库500d。方框图502d中显示了节点BOT 302、C 306、A 304、T 308、BOT-C 312、BOT-C-A 314和BOT-C-A-T 316的内容。通过将节点BOT-C-A 314与节点T308顺序组合来创建子组件BOT-C-A-T 316。因此,为节点BOT-C-A-T 316设置了情况指针和结果指针的下列值:情况指针544d被设置为145(存储器104中的节点BOT-C-A 314的位置),结果指针546d被设置为100(存储器104中的基本节点T 308的位置)。
通过将情况指针544d设置为140并将指向存储器104中的节点BOT-C-A 314的位置(位置150)的指针添加到节点BOT-C-A314的asCaseList 532d,生成双向链接324。更新了AsCaseList532d,因为节点BOT-C-A 314包括从中创建节点BOT-C-A-T 316的两个节点中的第一个节点。在创建链接324之前,节点BOT-C-A314的asCaseList 532d包含空集。因为节点BOT-C-A-T位于存储器104中的位置150,因此,asCaseList 532d从空值更新为150。假设节点BOT-C-A 314的asCaseList 532d包含数据,则150将以上文概述的任何一种方式添加到列表中。
同样,通过将结果指针546d设置为100并通过将指向节点BOT-C-A-T 316的位置的指针添加到asResultList 558d来更新asResultList,生成双向链接332。更新了AsResultList 558d,因为节点T 308包括从中创建节点BOT-C-A-T 316的两个节点中的第二个节点。在创建链接332之前,基本节点T 308的asResultList558d包含空集,因此,空集被替换为150(存储器104中的节点BOT-C-A-T 316的位置)。假设asResultList 558d包含数据,则150将以上文概述的任何一种方式添加到列表中。
此时,已经创建了图5d中描述的数据仓库,互锁树数据仓库500d。那些精通本技术的人员将理解,可以显示互锁树数据仓库500d的比较详细的表示法,类似于图5c中的互锁树数据仓库500c的方框图503c所描述的。
在步骤610中,判断是否有更多输入。在此情况下,有更多输入,因此,处理返回到步骤604。在步骤604中,接收输入。在给定的示例中,接收到的输入为“”或空白字符。在步骤604中,对输入进行验证。在给定的示例中,这涉及检查本空白字符是否为有效的数据集元素。空白字符的确是有效元素在此情况下,是表示单词“CAT”的末尾的分隔符。如此,在本发明的一个实施例中,位于位置135处的节点EOT 310被添加到子组件BOT-C-A-T 316以创建最终产物或monad,在此情况下是一个单词。
在步骤606中,如果节点已经不存在,则创建互锁树数据仓库中的节点,将其初始化,并存储在存储器中的某个位置。在示例中,创建互锁树数据仓库208中的节点318,代表节点BOT-C-A-T-EOT 318,节点BOT-C-A-T-EOT 318的情况指针、结果指针、指向asCaseList的指针、asCaseList、指向asResultList的指针和asResultList被初始化为空值,节点BOT-C-A-T-EOT 318存储在存储器104的位置150处。
在步骤608中,创建在步骤606中创建的节点的链接。图5e显示了创建链接之后的互锁树数据仓库500e。方框图502e显示了创建链接之后的节点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-EOT318的内容。通过将节点BOT-C-A-T 316与节点EOT 310顺序组合来创建最终产物318(BOT-C-A-T-EOT)。因此,设置了节点BOT-C-A-T-EOT 318的情况指针和结果指针的下列值:最终产物BOT-C-A-T-EOT 318的情况指针568e被设置为150(存储器104中的节点BOT-C-A-T 316的位置),最终产物BOT-C-A-T-EOT 318的结果指针570e被设置为135(存储器104中的元素节点EOT135的位置)。
通过将最终产物BOT-C-A-T-EOT 318的情况指针568e设置为150并将指向存储器中的节点BOT-C-A-T 316的位置的指针添加到节点BOT-C-A-T 316的asCaseList 548e,生成双向链接326。更新了AsCaseList 548e,因为节点BOT-C-A 314包括从中创建节点BOT-C-A-T 316的两个节点中的第一个节点。在创建链接334之前,节点BOT-C-A-T 316的asCaseList 548e包含了空集(即,asCaseList 548e是空的)。因为节点BOT-C-A-T 316位于存储器104中的位置155,因此,节点BOT-C-A-T 316从空值更新为155。假设asCaseList 548e包括非零集,则节点BOT-C-A-T位置155将以上文讨论的任何一种方式添加到asCaseList 548e中。
同样,通过将最终产物BOT-C-A-T-EOT 318的结果指针570e设置为135以及通过将指向节点BOT-C-A-T-EOT 318的位置的指针添加到节点EOT 310的asResultList 566e来更新节点EOT 310的asResultList 566e,生成双向链接334。更新了AsResultList 566e,因为节点EOT 310包括从中创建节点BOT-C-A-T-EOT 318的两个节点的第二个节点,(因此,链接334叫做asResult链接)。在创建链接334之前,AsResultList 566e包含了空集,(即,AsResultList 566e是空的)。因为节点BOT-C-A-T-EOT 318位于存储器104中的位置155,因此,asResultList 566e从空值更新为155。假设AsResultList 566e包括非零集,则节点BOT-C-A-T-EOT 318位置155将以上文讨论的任何一种方式添加到AsResultList 566e中。
此时,已经创建了图5e中描述的数据仓库,互锁树数据仓库500e。那些精通本技术的人员将理解,可以显示互锁树数据仓库500e的比较详细的表示法,类似于图5c中的互锁树数据仓库500c的方框图503c所描述的。
在步骤610中,判断是否有更多输入。在此情况下,没有更多输入,因此,处理在步骤612中结束。
现在假设输入204包含“CAT TAB”而不是“CAT”。按照上面的过程执行。在处理输入直到“CAT”时,创建图5e的互锁树数据仓库500e。然而,在步骤610中,有更多输入,因此,处理继续,最终产生图7a的互锁树数据仓库700a。方框图702a中显示了对应的节点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。值得注意的是,节点BOT-T 703、BOT-T-A 705、BOT-T-A-B 707和BOT-T-A-B-EOT 709都已经添加到互锁树数据仓库500e中,以创建互锁树数据仓库700a。
在此过程中,创建了asCase链接701、704、706和708,创建了asResult链接710、712、714和716。节点BOT-T 703的AsCase指针720f被设置为0(节点BOT 302的位置)。节点BOT-T 703的AsResult指针722f被设置为100(节点T 308的位置)。节点BOT-T-A 705的AsCase指针728f被设置为170(节点BOT-T 703的位置)。节点BOT-T-A 705的AsResult指针730f被设置为5(节点A 304的位置)。
通过将170(BOT-T 703的位置)和节点BOT 302的asCaseList 508f相加来创建AsCase链接701,以便asCaseList508f包括140(BOT-C 312的位置)和170(BOT-T 703的位置)两者。通过将175(BOT-T-A的位置)和节点BOT-T 703的asCaseList 724f相加来创建AsCase链接704。通过将180(BOT-T-A-B的位置)和节点BOT-T-A 705的asCaseList 732f相加来创建AsCase链接706。
通过将170(BOT-T 703的位置)和节点T 308的asResultList 558f相加来创建AsResult链接710,以便asResultList 558f包括150(节点BOT-C-A-T的位置)和170(BOT-T 703的位置)两者。通过将175(BOT-T-A的位置)和节点A 304的asResultList 542f相加来创建AsResult链接712,以便asResultList 542f包括145(节点BOT-C-A 314的位置)和175(BOT-T-A的位置)两者。通过将180(节点BOT-T-A-B 707的位置)和节点B 718的asResultList 742f相加来创建AsResult链接714。因为节点B 718的asResultList 742f以前是空值,因此,节点B 718的asResultList 742f只包含180(节点BOT-T-A-B 707的位置)。通过将185(BOT-T-A-B-EOT 709的位置)和节点EOT310的asResultList 566f相加来创建AsResult链接716,以便asResultList 566f包括155(节点BOT-C-A-T-EOT 318的位置)和185(BOT-T-A-B-EOT 185的位置)。
现在假设输入204包含“CATS CATHODE”而不是“CAT”。按照上面的过程执行。在处理输入“CAT”时,创建图5d的互锁树数据仓库。在步骤610中,发现有更多输入,因此,处理继续。在处理输入“CATS”之后,生成了图8的互锁树数据仓库800a。发现有更多输入。在处理“CATHODE”时,没有创建BOT-C、BOT-C-A和BOT-C-A的新节点,因为它们已经存在。处理额外的输入“SCATHODE”,产生图8的互锁树数据仓库800b。对那些精通本技术的人员显而易见的,所产生的树是自组织的,以便所产生的互锁树数据仓库的结构取决于接收到的输入。
现在假设输入204包含“CATS ARE FURRY”而不是“CAT”。图9a显示了在本发明的一个实施例中生成的互锁树数据仓库900。输入中的指示符的存在,在本示例中,词组末尾或句子末尾指示符(例如,“FURRY”之后的句点),可以触发将一个级别的最终产物(BOT-C-A-T-EOT 908、BOT-A-R-E-EOT 906、BOT-F-U-R-R-Y-EOT 904)组合成下一个级别的子组件,即,一个级别(例如,级别1910)最终产物节点(例如,诸如“CATS”、“ARE”和“FURRY”之类的单词)可以变成代表下一级别(例如,级别2912)的数据集元素的根节点。因此,节点“BOT-CATS-ARE-FURRY-EOT”902是代表句子“CATS AREFURRY”的单个节点。
在本发明的一个实施例中,代表较高级别的数据集元素的节点不包含数据或数据的表示方法或概念;即,代表较高级别的数据集元素的基本根节点只包含指向较低级别中的节点的指针。例如,图9b显示了图9a的某些节点的内容。值得注意的是,节点BOT-C-A-T-S-EOT被用作级别2 912的基本根节点(节点908的asResultList 914包含300,节点BOS-CATS 916的位置,而节点BOS-CATS 916的asResult指针918包含200,节点BOT-C-A-T-S-EOT 908的位置)等等。
可以生成任何合适数量的级别。例如,在文本中,级别可以代表字母、单词、句子、段落、章节、图书、图书馆等等。可以理解,虽然在示范图中显示了互锁树数据仓库的两个级别(级别1 910和级别2 912),但是,本发明不仅限于此。可以构建任意个级别的互锁树数据仓库。因为本示例的universe是文本,即,构成单词(最终产物的一个级别)的字母的组合,本发明的此实施例中的单词的组合的结果是词组或句子(最终产物的另一个级别)。句子可以组合起来以构成段落,段落可以组合起来,以构成章节等等。
可以进一步理解,取决于输入universe,最终产物可以代表单词、短语、句子等等之外的实体。仅举一个例子:如果输入是包括染色体的氨基酸的序列,一个最终产物可以代表基因或等位基因。
现在假设输204包括诸如下列记录的数据记录:
Bill Tuesday 40 sold PA
Bill Monday 103 sold NJ
Bill Monday 100 trial PA
Tom Monday 80 sold PA
Tom Monday 13 trial NJ
在本发明的一个实施例中,数据集元素包括被诸如但不限于空白字符之类的分隔符分隔的信息的字段。在一个实施例中,数据集元素由输入派生而来,虽然可以理解,如上所述,本发明不仅限于此。到现在为止在输入数据中遇到的数据集元素是销售员姓名(Bill和Tom)、星期几(星期一、星期二),商品编号(40、103、100、80、13),状态(销售,试用)和州(PA,NJ)。在本发明的一个实施例中,将从此输入中产生图10的互锁树数据仓库1000。在图10中,由于空间原因,没有显示节点的第一部分。例如,虽然节点1002被标记为“Bill”,节点1002实际上代表“BOT-Bill”。虽然节点1002被标记为“Tuesday”,节点1004实际上代表“BOT-Bill-Tuesday”等等。
从互锁树数据仓库中访问信息
在图11中显示了访问存储在互锁树数据仓库中的信息的方法。在步骤1102中,接收要从互锁树数据仓库中检索的信息的请求。可以将待检索的信息的请求转换为可以由互锁树存取器处理的形式。在步骤1104中,访问被指出的节点。在步骤1106中,检索适当的asCaseList和/或asResultList。在步骤1108中,沿适当的asCaseList或asResultList而行,以检索所需要的信息。在步骤1110中,收集并返回所请求的信息。
例如,再次请参看图7a,包括asResult链接328、330、332、334、710、712、714和716的数据仓库700a可以用来确定上下文的诸如下列问题的答案:“哪些节点包括字母A?”,“A在哪些字母前面或后面?”,“哪些(或多少)单词包括字母A?”,“哪些单词既包含字母A又包含T?”,“哪些单词包含A并且A前面有T?”和数不清的其他问题。(可以理解,虽然为便于理解,在示例问题中指定了特定的字母,但是可以替代任何数据集元素或单元组。)
例如,在本发明的一个实施例中,通过遵循代表数据集元素的特定节点的asResultList中包含的指针,可以判断包含所需要的数据集元素的节点和最终产物。访问asresultlist,并沿列表中的每一个指针而行,直到与该节点关联的asCase树枝。如果需要最终产物,则沿asCase树枝树而行,直到树枝的叶节点。
在本发明的一个实施例中,对信息的请求是指定约束和/或焦点的形式。例如,对信息的请求可以是约束的列表的形式。约束的列表可以嵌套,也可以是独立的。在本发明的一个实施例中,查找每一个列出的约束的AsResultList,查找每一个约束的每一个AsResultList内的每一个节点的树枝,沿树枝而行,到它们的最终产物,选择每一个约束的每一个asResultList内的每一个树枝的最终产物的交叉点。通过首先约束数据仓库以检索一组数据,然后该组数据被用作被进一步约束的数据集,来查找嵌套的约束。
在本发明的一个实施例中,焦点判断返回的信息。在其中数据集元素是字母(级别1最终产物包括单词,级别2包括句子)两级别数据仓库的情况下,指定的约束是特定字母,指定焦点为“单词”将导致只返回单词,指定焦点为“句子”将导致只返回句子。从第一级别检索最终产物将导致返回单词。从第二级别检索最终产物将导致返回句子。在一个实施例中,为检索句子,沿每一个单词的asResultList而行,直到下一个级别,并沿指定的树枝而行,直到其最终产物,以检索包括指定的字母的句子。
在一个实施例中,通过沿具有级别开始指示符作为其根的树而行,可以查找以约束开始的所有最终产物(例如,可以查找以指定字母开始的所有单词。)同样,可以查找具有指定约束的所有最终产物,或指定位置中的指定约束(例如,具有特定字母的所有单词或在指定列中具有指定字母的所有单词)。同样,通过沿具有级别结束指示符作为根的树而行,可以查找以指定约束结束的所有最终产物(例如,以指定字母结束的所有单词。)可以指定多个约束和/或焦点。
例如,假设需要包含诸如字母(例如,字母“B”)之类的数据集元素的树的asCase树枝的第一个节点。在一个实施例中,从存储器中检索代表数据元素的基本根节点(例如,节点B 718),访问其asResultList(例如,asResultList 742f),以返回通过某些子组件与基本根节点(例如,节点B 718)组合而创建的节点的位置。访问asResultList中的节点。在本示例中,访问位置180,该位置保留了节点BOT-T-A-B 707。如此,节点BOT-T-A-B 707是互锁树数据仓库700a中的包括字母“B”的表示法的节点。为查找形成的最终产物,通过反复检索被访问的节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝而行(例如,在本示例中,包含节点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的asCaseList740f,以检索位置185。访问位置185的内容,以检索asCaseList748f。由于asCaseList 748f是Null指针,因此,已经到达最终产物。
仍请参看图7a,现在假设需要包含字母“A”的所有asCase树枝的第一个节点。从存储器中检索基本根节点A 304,并访问其asResultList 542f,以返回位置145和175。访问包含节点BOT-C-A314的第一位置145。节点BOT-C-A 314是数据结构700a的包括字母“A”的第一树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-C 312、节点BOT-C-A 314、节点BOT-C-A-T 316和节点BOT-C-A-T-EOT 318的树枝)、树枝的asCase链接而行。例如,为判断包含数据集元素A 304的单词是“CAT”,访问节点BOT-C-A 314的asCaseList740f,以检索位置145。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 532f,150。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 548f,155。访问位置155(节点BOT-C-A-T-EOT 318)的内容,以检索asCaseList 572f。由于asCaseList 572f是Null指针,因此,已经到达最终产物。
访问包含节点BOT-T-A 705的下一个位置175。节点BOT-T-A 705是互锁树数据仓库700a的包括字母“A”的第二树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-T 703、节点BOT-T-A 705、节点BOT-T-A-B 707和节点BOT-T-A-B-EOT 709树枝),树枝的asCase链接而行。例如,为判断包含数据集元素A 304的第二个单词单词是“TAB”,访问节点BOT-T-A-B 707的asCaseList 740f,以检索位置185。访问位置185的内容,以检索asCaseList 748f。由于asCaseList 748f是Null指针,因此,已经到达最终产物。
再次请参看图7a,现在假设需要包含字母“A”和“T”的所有asCase树枝的第一个节点。如前面所描述的,从存储器中检索基本根节点A 304,并访问其asResultList 542f,以返回位置145和175。访问包含节点BOT-C-A 314的第一位置145。节点BOT-C-A314是互锁树数据仓库700a的包括字母“A”的第一树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-C 312、节点BOT-C-A 314、节点BOT-C-A-T316和节点BOT-C-A-T-EOT 318的树枝)、树枝的asCase链接而行。例如,为判断包含数据集元素A 304的单词是“CAT”,访问节点BOT-C-A 314的asCaseList 740f,以检索位置145。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 532f,150。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 548f,155。访问位置155(节点BOT-C-A-T-EOT 318)的内容,以检索asCaseList 572f。由于asCaseList 572f是Null指针,因此,已经到达最终产物。最终产物节点BOT-C-A-T-EOT 318包含数据集元素A。
访问包含节点BOT-T-A 705的下一个位置175。节点BOT-T-A 705是互锁树数据仓库700a的包括字母“A”的第二树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-T 703、节点BOT-T-A 705、节点BOT-T-A-B 707和节点BOT-T-A-B-EOT 709树枝),树枝的asCase链接而行。例如,为判断包含数据集元素A 304的第二个单词单词是“TAB”,访问节点BOT-T-A-B 707的asCaseList 740f,以检索位置185。访问位置185的内容,以检索asCaseList 748f。由于asCaseList 748f是Null指针,因此,已经到达最终产物。最终产物节点BOT-T-A-B-EOT 709包含数据集元素A。
接下来,从存储器中检索基本根节点T 308,并访问其asResultList 558f,以返回位置150和170。访问包含节点BOT-C-A-T 316的第一位置150。节点BOT-C-A-T 316是互锁树数据仓库700a的包括字母“T”的第一树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-C 312、节点BOT-C-A 314、节点BOT-C-A-T 316和节点BOT-C-A-T-EOT 318的树枝)、树枝的asCase链接而行。例如,为判断包含不可分的基本单元T 308的单词是“CAT”,访问节点BOT-C-A 314的asCaseList 532f,以检索位置145。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 532f,150。访问位置145(节点BOT-C-A 314)的内容,以检索asCaseList 548f,155。访问位置155(节点BOT-C-A-T-EOT 318)的内容,以检索asCaseList 572f。由于asCaseList 572f是Null指针,因此,已经到达最终产物。最终产物节点BOT-C-A-T-EOT 318包含数据集元素T。
访问包含节点BOT-T 703的下一个位置170。节点BOT-T703是互锁树数据仓库700a的包括字母“T”的第二树枝中的第一节点。为查找形成的最终产物,通过反复检索节点的asCaseList,直到被检索到的asCaseList是空值,沿着asCase树枝(例如,在本示例中,包含节点BOT-T 703、节点BOT-T-A 705、节点BOT-T-A-B707和节点BOT-T-A-B-EOT 709树枝),树枝的asCase链接而行。例如,为判断包含数据集元素T 308的第二个单词单词是“TAB”,访问节点BOT-T-A-B 707的asCaseList 740f,以检索位置185。访问位置185的内容,以检索asCaseList 748f。由于asCaseList 748f是Null指针,因此,已经到达最终产物。最终产物节点BOT-T-A-B-EOT 709包含数据集元素T。如此,包含A和T的最终产物包括包含A的最终产物集与包含T的最终产物集的交集,或,在此情况下:BOT-C-A-T-EOT 318和BOT-T-A-B-EOT 709。
在本发明的一个实施例中,显示或打印检索到的信息。为显示或打印检索到的信息,从最终产物到开始(BOT)反向沿asCase树而行。在沿着asCase树的每一个节点中,结果指针(指向从中派生了节点的第二个部分)用来判断基本根节点代表了什么。如果互锁树数据仓库包括一个以上的级别,则结果指针指向较低级别的最终产物,必须执行相同的过程,直到检索到最低级别的基本根节点。
现在请参看图10,假设需要星期二销售的物品总数。对那些精通本技术的人员显而易见的,不是遍历整个数据仓库中的所有节点,在本发明的一个实施例中,要检索此信息,只需要检索基本根节点1006和1008的asResultList。遍历树枝5 1010,因为代表星期二1006的基本节点指向节点1004,并且因为代表销售1008的基本节点指向节点1026,遍历树枝4 1012,因为代表销售1008的基本节点指向节点1028。不必遍历树枝1 1015、2 1014和3 1013。从沿基本节点1006和1008指向的树枝而行所返回的最终产物的交集包括代表Bill Tuesday 40 sold PA的节点1030。
销售的物品数量可以通过沿从节点1024到代表数量40(未显示)的根节点的指针而行来确定。可以理解,此步骤可以在发现最终产物的交叉点之后,或者,也可以在遍历树枝时检索和存储此信息。
上文所描述的方法和系统可以以存储在诸如软盘、CD-ROM、DVD-ROM、DVD-RAM、硬盘驱动器之类的计算机可读的介质或任何其他机器可读的存储介质上的程序代码(即,指令)的形式来实现,其中,当程序代码被加载到诸如计算机之类的机器中并由机器执行时,机器变成实践本发明的设备。本发明也可以以通过某些传输介质(如通过电线或电缆,通过光纤,通过网络,包括因特网或内部网,或任何其他形式的传输)传输的程序代码的形式来实现,其中,当接收到程序代码并加载到诸如计算机之类的机器中并由机器执行时,机器变成实践本发明的设备。当在通用处理器上实现时,程序代码与处理器结合,以提供与特定逻辑电路类似地工作的唯一设备。程序代码可以以诸如C、C++或Java之类的高级程序设计语言来实现。或者,程序代码也可以以汇编或机器语言来实现。在任何情况下,语言都可以是编译的或解释的语言。
值得注意的是,前面所提供的示例只是为了说明,决不能理解为对本发明的限制。例如,互锁树数据仓库可以使用面向对象的技术、过程技术、这些技术的混合技术或任何其他合适的方法来实现。此外,虽然所提供的示例显示了存储在存储器中的数据集元素,那些精通本技术的人员将理解,此功能可以以许多不同的方式来实现。例如,本发明也使用存储在多个远程机器上的许多不同的universe的数据集元素的许多不同集。
Claims (40)
1.一种用于生成基于树的数据仓库的系统,包括:
处理器;
连接到处理器的存储器;以及
用于创建基于树的数据仓库的至少一个级别的基于树的数据仓库生成器,所述基于树的数据仓库的至少一个级别包括第一树、第二树以及至少第三树,所述第一树中包括第一根和多个节点中的至少一个节点,所述第二树中包括第二根和第一树的至少一个节点,所述第三树中包括第三根和第一树的多个节点中的至少一个节点。
2.根据权利要求1所述的系统,其中,数据仓库的节点包括至少一个基本节点、一个子组件节点和一个最终产物节点。
3.根据权利要求2所述的系统,其中,基于树的数据仓库包括至少第一级别和第二级别,所述第一级别的最终产物包括第二级别的基本节点。
4.根据权利要求2所述的系统,其中,基于树的数据仓库包括至少第一级别和第二级别,分解第一级别的最终产物,以创建第一级别的基本节点。
5.根据权利要求2所述的系统,其中,基于树的数据仓库包括至少第一级别和第二级别,分解第二级别的最终产物,以创建第一级别的基本节点。
6.根据权利要求1所述的系统,其中,节点包括指向基于树的数据仓库中的其他节点的指针。
7.根据权利要求1所述的系统,其中,第一根和第二根包括指向基于树的数据仓库中的其他节点的指针,并包括非指针信息。
8.根据权利要求7所述的系统,其中,第一根与开始指示符关联并以第一分层顺序访问基于树的数据仓库。
9.根据权利要求7所述的系统,其中,第二根与结束指示符关联并以反转的第一分层顺序访问基于树的数据仓库。
10.根据权利要求7所述的系统,其中,第三根包括与数据集的元素关联的非指针信息,并基于数据集元素以第三分层顺序来访问基于树的数据仓库。
11.根据权利要求1所述的系统,进一步包括用于从基于树的数据仓库检索信息的基于树的数据仓库。
12.根据权利要求11所述的系统,其中,基于树的数据仓库存取器进一步包括:
用于接收对要从基于树的数据仓库中检索的信息的请求的装置;
用于从基于树的数据仓库中检索请求的信息的装置;以及
用于返回从基于树的数据仓库检索到的信息的装置。
13.一种用于生成数据仓库的系统,包括:
处理器;
连接到处理器的存储器;以及
用于创建数据仓库的数据仓库生成器,其中,数据仓库包括:
被组织成多个连接的树的根节点和非根节点,所述多个连接的树包括第一种类型的树和多个第二种类型的树的至少一个树,所述第一种类型的树中包括了第一根和多个非根节点中的至少一个节点,其中,第二种树包括第二根节点和与第一种类型的树的节点共用的多个非根节点。
14.根据权利要求13所述的系统,其中,数据仓库的节点包括至少一个基本节点、一个子组件节点和一个最终产物节点。
15.根据权利要求14所述的系统,其中,第一种类型的树记录子组件节点与基本节点的至少一个组合的最终产物的顺序合成,并提供对第一上下文中的数据仓库中的数据。
16.根据权利要求13所述的系统,其中,多个第二种类型的树中的至少一个树提供对第二上下文中的数据仓库中的数据的访问。
17.根据权利要求14所述的系统,其中,至少一个基本节点包括指向到节点的第二指针列表的第一Null指针,第二Null指针,第三Null指针和第四指针,所述第二列表包括包含基本节点作为它们的第二部分的节点。
18.根据权利要求14所述的系统,其中,至少一个子组件节点包括指向第一节点的第一指针,第一节点包括子组件节点的第一部分,指向第二节点的第二指针,第二节点包括子组件节点的第二部分,指向到节点的第一指针列表的第三指针,第一列表包括包含子组件作为它们的第一部分和第四Null指针的第一列表。
19.根据权利要求14所述的系统,其中,至少一个最终产物节点包括至少指向第一部分的第一指针,指向结束指示符第二部分的第二指针,指向到节点的第二指针列表的第三Null指针和第四指针,第二列表包括包含最终产物节点作为它们的第二部分的节点。
20.根据权利要求13所述的系统,其中,代表开始指示符的根节点包括指向到节点的第一指针列表的第一Null指针,第二Null指针,第三指针,第一列表包括包含开始指示符作为第一部分和第四Null指针的节点。
21.根据权利要求13所述的系统,其中,代表数据集元素的根节点包括指向到节点的第二指针列表的第一Null指针,第二Null指针,第三Null指针和第四指针,第二列表包括包含数据集元素作为第二部分的节点。
22.根据权利要求13所述的系统,其中,代表最终产物的根节点包括指向到节点的第二指针列表的第一Null指针,第二Null指针,第三Null指针和第四指针,第二列表包括包含最终产物作为第二部分的第二级别的节点。
23.根据权利要求13所述的系统,进一步,包括用于访问存储在互锁树数据仓库中的信息的存取器。
24.根据权利要求23所述的系统,其中,存取器进一步包括:
用于接收对要从基于树的数据仓库中检索的信息的请求的装置;
用于从基于树的数据仓库中检索请求的信息的装置;以及
用于返回从基于树的数据仓库检索到的信息的装置。
25.一种用于生成数据并从数据仓库访问数据的方法,包括:
响应接收数据的情况,创建基于树的数据仓库的至少一个级别,基于树的数据仓库的至少一个级别包括第一树、第二树以及至少第三树,所述第一树中包括第一根和多个节点中的至少一个节点,所述第二树中包括第二根和第一树的至少一个节点,所述第三树中包括第三根和第一树的多个节点中的至少一个节点;
接收对可从基于树的数据仓库的至少一个级别访问的信息的信息请求;以及
从基于树的数据仓库的至少一个级别中检索信息。
26.根据权利要求25所述的方法,包括:
响应接收到要被添加到基于树的数据仓库中的数据,在基于树的数据仓库中创建用于存储与接收到的数据关联的信息的新节点;
创建从新节点到包括新节点的第一部分的第一节点和到包括新节点的第二部分的第二节点的链接;
将到新节点的链接添加到第一节点的第一指针列表中;以及
将到新节点的链接添加到第二节点的第二指针列表中。
27.根据权利要求26所述的方法,其中,在基于树的数据仓库中创建新节点包括将代表开始指示符的第一节点与代表数据集元素的第二节点组合,以生成代表不完整的产物的第三节点。
28.根据权利要求27所述的方法,其中,在基于树的数据仓库中创建新节点包括将代表第一不完整的产物的第一节点与代表数据集元素的第二节点组合,以生成代表第二不完整的产物的第三节点。
29.根据权利要求27所述的方法,其中,在基于树的数据仓库中创建新节点包括将第一不完整的产物与代表结束指示符的第四节点组合,以生成代表最终产物的第五节点。
30.根据权利要求27所述的方法,其中,在基于树的数据仓库中创建新节点包括将第二不完整的产物与代表结束指示符的第四节点组合,以生成代表最终产物的第五节点。
31.根据权利要求26所述的方法,其中,创建新节点包括为第一指针、第二指针、第三指针和第四指针分配空间。
32.根据权利要求26所述的方法,其中,第三指针和第四指针是Null指针。
33.一种从基于树的数据仓库中访问信息的方法,该方法包括:
响应接收对数据仓库中的信息的请求,该信息请求包括至少一个约束,数据仓库包括基于树的数据仓库的一个级别,基于树的数据仓库的至少一个级别包括第一树、第二树以及至少第三树,所述第一树中包括第一根和多个节点中的至少一个节点,所述第二树中包括第二根和第一树的至少一个节点,所述第三树中包括第三根和第一树的多个节点中的至少一个节点,
检索与第三根关联的节点的列表,该节点列表中的每一个节点都包括第一部分和第二部分,其中,第三根包括至少一个约束;以及
沿第一树中的每一个节点的树枝而行到第二树的至少一个节点。
34.根据权利要求33所述的方法,其中,对信息的请求包括第一约束和第二约束,并返回第二树的节点交集。
35.包括用于生成互锁树数据库的计算机可执行的指令的计算机可读的介质,包括用于执行下列操作的指令:
响应接收到要被添加到基于树的数据仓库中的数据,在基于树的数据仓库中创建用于存储与接收到的数据关联的信息的新节点;
创建从新节点到包括新节点的第一部分的第一节点和到包括新节点的第二部分的第二节点的链接;
将到新节点的链接添加到第一节点的指针的第一列表中;以及
将到新节点的链接添加到第二节点的第二指针列表中。
36.一种包括节点和所述节点之间的链接的结构,所述节点具有多个数据字段,所述多个数据字段中至少有两个数据字段包含指针,所述至少两个指针中的一个是Case指针,所述至少两个指针的另一个是Result指针,至少一个节点具有至少一个指向指针列表的附加指针,在所述节点具有关联的asCase列表的情况下,所述指向指针列表的附加指针中的一个是asCase列表,在所述节点具有关联的asResult列表的情况下,另一个是asResult列表,其中,所述节点包括根节点,其中,有至少一个主根节点和至少一个基本根节点,其中,所述节点可以包括其他根节点,所述节点进一步包括至少一个结束思考节点、至少一个子组件节点、以及至少一个最终产物节点,其中,所述asResult链接在根节点和任何其他节点之间的路径中在所述根节点和所述任何其他节点之间提供指向,所述asCase链接在至少一个主根节点和至少一个最终产物节点之间提供指向,在所述至少一个主根节点和至少一个最终产物节点之间的路径上包含至少一个子组件节点,并且所述asResult链接在根节点或最终产物节点和子组件节点或最终产物节点之间在它们之间的所述路径上提供指向,其中,所述基本节点还具有一个字段,该字段具有值。
37.根据权利要求36所述的结构,所述结构由一组程序指令构成,该组程序指令当被激活时配置计算机系统,以产生所述结构。
38.包含如权利要求37所述的程序指令集的计算机可读取的介质。
39.包含符合权利要求36所述的结构的电子系统。
40.根据权利要求36中所述的结构,其中,所述asCase和所述asResult列表存储在所述互锁树结构之外的单独的数据结构中,其中,所述单独的数据结构通过指针与所述互锁树结构中的相关的节点关联。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/385,421 | 2003-03-10 | ||
US10/385,421 US6961733B2 (en) | 2003-03-10 | 2003-03-10 | System and method for storing and accessing data in an interlocking trees datastore |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1781094A true CN1781094A (zh) | 2006-05-31 |
Family
ID=32961503
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800113729A Pending CN1781094A (zh) | 2003-03-10 | 2004-02-27 | 用于存储和访问互锁树数据仓库中的数据的系统和方法 |
CNA2004800113697A Pending CN1781093A (zh) | 2003-03-10 | 2004-02-27 | 用于存储和访问互锁树数据仓库中的数据的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800113697A Pending CN1781093A (zh) | 2003-03-10 | 2004-02-27 | 用于存储和访问互锁树数据仓库中的数据的系统和方法 |
Country Status (10)
Country | Link |
---|---|
US (4) | US6961733B2 (zh) |
EP (3) | EP1703422A3 (zh) |
JP (1) | JP2006522984A (zh) |
KR (1) | KR20060008292A (zh) |
CN (2) | CN1781094A (zh) |
AU (1) | AU2004219258A1 (zh) |
BR (1) | BRPI0408292A (zh) |
CA (1) | CA2518802A1 (zh) |
NZ (2) | NZ542716A (zh) |
WO (1) | WO2004081711A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411572A (zh) * | 2010-09-21 | 2012-04-11 | 重庆诺京生物信息技术有限公司 | 生物分子数据的高效共享方法 |
CN105765900A (zh) * | 2013-11-27 | 2016-07-13 | 思科技术公司 | 动态优化的多树多播网络 |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415472B2 (en) * | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Comparison tree data structures of particular use in performing lookup operations |
US7415463B2 (en) * | 2003-05-13 | 2008-08-19 | Cisco Technology, Inc. | Programming tree data structures and handling collisions while performing lookup operations |
US6973654B1 (en) * | 2003-05-27 | 2005-12-06 | Microsoft Corporation | Systems and methods for the repartitioning of data |
AU2004252912A1 (en) * | 2003-06-24 | 2005-01-06 | Interwoven, Inc. | Website development involving journahng and parent maps replacement |
US8516004B2 (en) * | 2003-09-19 | 2013-08-20 | Unisys Corporation | Method for processing K node count fields using an intensity variable |
US20110314022A9 (en) * | 2003-09-19 | 2011-12-22 | Unisys Corporation | K engine - process count after build in threads |
US8010572B1 (en) * | 2003-09-19 | 2011-08-30 | Unisys Corporation | Kstore scenario simulator processor and XML file |
US7406461B1 (en) | 2004-06-11 | 2008-07-29 | Seisint, Inc. | System and method for processing a request to perform an activity associated with a precompiled query |
US7739287B1 (en) | 2004-06-11 | 2010-06-15 | Seisint, Inc. | System and method for dynamically creating keys in a database system |
US7797333B1 (en) | 2004-06-11 | 2010-09-14 | Seisint, Inc. | System and method for returning results of a query from one or more slave nodes to one or more master nodes of a database system |
US7873650B1 (en) * | 2004-06-11 | 2011-01-18 | Seisint, Inc. | System and method for distributing data in a parallel processing system |
US8266234B1 (en) | 2004-06-11 | 2012-09-11 | Seisint, Inc. | System and method for enhancing system reliability using multiple channels and multicast |
US7917495B1 (en) | 2004-06-11 | 2011-03-29 | Seisint, Inc. | System and method for processing query requests in a database system |
US7693826B1 (en) | 2004-06-11 | 2010-04-06 | Seisint, Inc. | System and method for pre-compiling a query and pre-keying a database system |
US7778997B1 (en) | 2004-06-11 | 2010-08-17 | Seisint, Inc. | System and method for managing throughput in the processing of query requests in a database system |
US20060100845A1 (en) * | 2004-11-08 | 2006-05-11 | Mazzagatti Jane C | Multiple stream real time data simulation adapted for a KStore data structure |
US20070162508A1 (en) * | 2004-11-08 | 2007-07-12 | Mazzagatti Jane C | Updating information in an interlocking trees datastore |
US7348980B2 (en) * | 2004-11-08 | 2008-03-25 | Unisys Corporation | Method and apparatus for interface for graphic display of data from a Kstore |
US20060101048A1 (en) * | 2004-11-08 | 2006-05-11 | Mazzagatti Jane C | KStore data analyzer |
US7730101B2 (en) * | 2005-06-10 | 2010-06-01 | Microsoft Corporation | Implementing a tree data storage structure in a distributed environment |
US7475072B1 (en) * | 2005-09-26 | 2009-01-06 | Quintura, Inc. | Context-based search visualization and context management using neural networks |
US7620607B1 (en) * | 2005-09-26 | 2009-11-17 | Quintura Inc. | System and method for using a bidirectional neural network to identify sentences for use as document annotations |
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 |
EP2076838A4 (en) * | 2006-10-05 | 2010-03-17 | Brainwave Applic Ltd | NEW DATABASE |
US8051105B1 (en) * | 2007-01-10 | 2011-11-01 | The Mathworks, Inc. | Directing searches on tree data structures |
US7949711B2 (en) * | 2007-01-24 | 2011-05-24 | Chang Ypaul L | Method, system, and program for integrating disjoined but related network components into collaborative communities |
US7437370B1 (en) * | 2007-02-19 | 2008-10-14 | Quintura, Inc. | Search engine graphical interface using maps and images |
US20090138491A1 (en) * | 2007-11-28 | 2009-05-28 | Sandeep Chowdhury | Composite Tree Data Type |
CN101470722A (zh) * | 2007-12-27 | 2009-07-01 | 鸿富锦精密工业(深圳)有限公司 | 产品基本资料配置系统及方法 |
US8312050B2 (en) * | 2008-01-16 | 2012-11-13 | International Business Machines Corporation | Avoiding database related joins with specialized index structures |
US20090248716A1 (en) * | 2008-03-31 | 2009-10-01 | Caterpillar Inc. | Hierarchy creation and management tool |
US8180754B1 (en) | 2008-04-01 | 2012-05-15 | Dranias Development Llc | Semantic neural network for aggregating query searches |
US8010569B2 (en) * | 2008-12-31 | 2011-08-30 | Unisys Corporation | Adding and subtracting KStores |
CN101702176B (zh) * | 2009-11-25 | 2011-08-31 | 南开大学 | 一种基于局部路径锁的xml数据并发控制方法 |
US8386421B2 (en) | 2010-06-28 | 2013-02-26 | Microsoft Corporation | Concurrency control for confluent trees |
US8412689B2 (en) | 2010-07-07 | 2013-04-02 | Microsoft Corporation | Shared log-structured multi-version transactional datastore with metadata to enable melding trees |
KR101130734B1 (ko) * | 2010-08-12 | 2012-03-28 | 연세대학교 산학협력단 | 상황 구조 생성 방법 및, 상황 구조 생성 시스템 |
US9848106B2 (en) | 2010-12-21 | 2017-12-19 | Microsoft Technology Licensing, Llc | Intelligent gameplay photo capture |
US9069807B2 (en) * | 2012-11-30 | 2015-06-30 | Facebook, Inc. | Method and system for implementing an array using different data structures |
Family Cites Families (123)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4286330A (en) | 1976-04-07 | 1981-08-25 | Isaacson Joel D | Autonomic string-manipulation system |
US5245337A (en) | 1991-05-29 | 1993-09-14 | Triada, Ltd. | Data compression with pipeline processors having separate memories |
US5592667A (en) | 1991-05-29 | 1997-01-07 | Triada, Ltd. | Method of storing compressed data for accelerated interrogation |
US5634133A (en) | 1992-01-17 | 1997-05-27 | Compaq Computer Corporation | Constraint based graphics system |
US6339767B1 (en) | 1997-06-02 | 2002-01-15 | Aurigin Systems, Inc. | Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing |
US5630125A (en) | 1994-05-23 | 1997-05-13 | Zellweger; Paul | Method and apparatus for information management using an open hierarchical data structure |
US6160549A (en) | 1994-07-29 | 2000-12-12 | Oracle Corporation | Method and apparatus for generating reports using declarative tools |
US5768564A (en) | 1994-10-07 | 1998-06-16 | Tandem Computers Incorporated | Method and apparatus for translating source code from one high-level computer language to another |
US5918224A (en) * | 1995-07-26 | 1999-06-29 | Borland International, Inc. | Client/server database system with methods for providing clients with server-based bi-directional scrolling at the server |
US5894311A (en) | 1995-08-08 | 1999-04-13 | Jerry Jackson Associates Ltd. | Computer-based visual data evaluation |
US5758353A (en) * | 1995-12-01 | 1998-05-26 | Sand Technology Systems International, Inc. | Storage and retrieval of ordered sets of keys in a compact 0-complete tree |
JP3409552B2 (ja) * | 1995-12-27 | 2003-05-26 | 三菱電機株式会社 | ディジタル情報符号化装置、ディジタル情報復号化装置、及びディジタル情報符号化・復号化装置 |
US6286002B1 (en) | 1996-01-17 | 2001-09-04 | @Yourcommand | System and method for storing and searching buy and sell information of a marketplace |
US5978794A (en) | 1996-04-09 | 1999-11-02 | International Business Machines Corporation | Method and system for performing spatial similarity joins on high-dimensional points |
US5870735A (en) | 1996-05-01 | 1999-02-09 | International Business Machines Corporation | Method and system for generating a decision-tree classifier in parallel in a multi-processor system |
US5829004A (en) | 1996-05-20 | 1998-10-27 | Au; Lawrence | Device for storage and retrieval of compact contiguous tree index records |
US6745194B2 (en) | 2000-08-07 | 2004-06-01 | Alta Vista Company | Technique for deleting duplicate records referenced in an index of a database |
US6144962A (en) | 1996-10-15 | 2000-11-07 | Mercury Interactive Corporation | Visualization of web sites and hierarchical data structures |
US5970490A (en) * | 1996-11-05 | 1999-10-19 | Xerox Corporation | Integration platform for heterogeneous databases |
US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
US5963965A (en) | 1997-02-18 | 1999-10-05 | Semio Corporation | Text processing and retrieval system and method |
US6137492A (en) * | 1997-04-03 | 2000-10-24 | Microsoft Corporation | Method and system for adaptive refinement of progressive meshes |
US6102958A (en) | 1997-04-08 | 2000-08-15 | Drexel University | Multiresolutional decision support system |
US6233575B1 (en) * | 1997-06-24 | 2001-05-15 | International Business Machines Corporation | Multilevel taxonomy based on features derived from training documents classification using fisher values as discrimination values |
US6389406B1 (en) | 1997-07-30 | 2002-05-14 | Unisys Corporation | Semiotic decision making system for responding to natural language queries and components thereof |
US5995971A (en) * | 1997-09-18 | 1999-11-30 | Micdrosoft Corporation | Apparatus and accompanying methods, using a trie-indexed hierarchy forest, for storing wildcard-based patterns and, given an input key, retrieving, from the forest, a stored pattern that is identical to or more general than the key |
US6141655A (en) * | 1997-09-23 | 2000-10-31 | At&T Corp | Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template |
US5966709A (en) | 1997-09-26 | 1999-10-12 | Triada, Ltd. | Method of optimizing an N-gram memory structure |
US5983232A (en) | 1997-09-29 | 1999-11-09 | Triada, Ltd. | Virtual structured information system |
US6018734A (en) | 1997-09-29 | 2000-01-25 | Triada, Ltd. | Multi-dimensional pattern analysis |
US6029170A (en) | 1997-11-25 | 2000-02-22 | International Business Machines Corporation | Hybrid tree array data structure and method |
GB2338807A (en) * | 1997-12-29 | 1999-12-29 | Infodream Corp | Extraction server for unstructured documents |
US6341281B1 (en) | 1998-04-14 | 2002-01-22 | Sybase, Inc. | Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree |
US6138117A (en) | 1998-04-29 | 2000-10-24 | International Business Machines Corporation | Method and system for mining long patterns from databases |
US6115715A (en) | 1998-06-29 | 2000-09-05 | Sun Microsystems, Inc. | Transaction management in a configuration database |
US6769124B1 (en) | 1998-07-22 | 2004-07-27 | Cisco Technology, Inc. | Persistent storage of information objects |
US6356902B1 (en) | 1998-07-28 | 2002-03-12 | Matsushita Electric Industrial Co., Ltd. | Method and system for storage and retrieval of multimedia objects |
US6108698A (en) * | 1998-07-29 | 2000-08-22 | Xerox Corporation | Node-link data defining a graph and a tree within the graph |
US6654761B2 (en) * | 1998-07-29 | 2003-11-25 | Inxight Software, Inc. | Controlling which part of data defining a node-link structure is in memory |
US6180549B1 (en) * | 1998-09-10 | 2001-01-30 | The B. F. Goodrich Company | Modified zeolites and methods of making thereof |
US6553366B1 (en) | 1998-10-02 | 2003-04-22 | Ncr Corporation | Analytic logical data model |
EP1129417A4 (en) | 1998-12-04 | 2004-06-30 | Technology Enabling Company Ll | DATA ORGANIZATION SYSTEMS AND METHODS |
US6442561B1 (en) * | 1998-12-18 | 2002-08-27 | Wisconsin Alumni Research Foundation | Method of constructing binary decision trees with reduced memory access |
US6635089B1 (en) | 1999-01-13 | 2003-10-21 | International Business Machines Corporation | Method for producing composite XML document object model trees using dynamic data retrievals |
US6751622B1 (en) | 1999-01-21 | 2004-06-15 | Oracle International Corp. | Generic hierarchical structure with hard-pegging of nodes with dependencies implemented in a relational database |
US6373484B1 (en) | 1999-01-21 | 2002-04-16 | International Business Machines Corporation | Method and system for presenting data structures graphically |
US6477683B1 (en) | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
US6591272B1 (en) | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US6360224B1 (en) | 1999-04-23 | 2002-03-19 | Microsoft Corporation | Fast extraction of one-way and two-way counts from sparse data |
US6662180B1 (en) * | 1999-05-12 | 2003-12-09 | Matsushita Electric Industrial Co., Ltd. | Method for searching in large databases of automatically recognized text |
US6920608B1 (en) | 1999-05-21 | 2005-07-19 | E Numerate Solutions, Inc. | Chart view for reusable data markup language |
US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
US6470344B1 (en) | 1999-05-29 | 2002-10-22 | Oracle Corporation | Buffering a hierarchical index of multi-dimensional data |
US6711585B1 (en) | 1999-06-15 | 2004-03-23 | Kanisa Inc. | System and method for implementing a knowledge management system |
US6278987B1 (en) | 1999-07-30 | 2001-08-21 | Unisys Corporation | Data processing method for a semiotic decision making system used for responding to natural language queries and other purposes |
US6394263B1 (en) | 1999-07-30 | 2002-05-28 | Unisys Corporation | Autognomic decision making system and method |
AU6611900A (en) | 1999-07-30 | 2001-03-13 | Agy Therapeutics, Inc. | Techniques for facilitating identification of candidate genes |
US6453314B1 (en) | 1999-07-30 | 2002-09-17 | International Business Machines Corporation | System and method for selective incremental deferred constraint processing after bulk loading data |
US6505184B1 (en) | 1999-07-30 | 2003-01-07 | Unisys Corporation | Autognomic decision making system and method |
US6381600B1 (en) | 1999-09-22 | 2002-04-30 | International Business Machines Corporation | Exporting and importing of data in object-relational databases |
AU1086901A (en) | 1999-10-15 | 2001-04-30 | Dekalb Genetics Corporation | Methods and systems for plant performance analysis |
US6615202B1 (en) | 1999-12-01 | 2003-09-02 | Telesector Resources Group, Inc. | Method for specifying a database import/export operation through a graphical user interface |
JP3866466B2 (ja) * | 1999-12-13 | 2007-01-10 | 株式会社東芝 | データ構造管理装置、データ構造管理システム、データ構造管理方法およびデータ構造管理プログラムを格納する記録媒体 |
US6721723B1 (en) * | 1999-12-23 | 2004-04-13 | 1St Desk Systems, Inc. | Streaming metatree data structure for indexing information in a data base |
US7058636B2 (en) | 2000-01-03 | 2006-06-06 | Dirk Coldewey | Method for prefetching recursive data structure traversals |
AUPQ498500A0 (en) | 2000-01-07 | 2000-02-03 | Flixco Pty Limited | Information system |
US6760720B1 (en) | 2000-02-25 | 2004-07-06 | Pedestrian Concepts, Inc. | Search-on-the-fly/sort-on-the-fly search engine for searching databases |
US20020029207A1 (en) | 2000-02-28 | 2002-03-07 | Hyperroll, Inc. | Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein |
US6900807B1 (en) | 2000-03-08 | 2005-05-31 | Accenture Llp | System for generating charts in a knowledge management tool |
US6507849B1 (en) * | 2000-03-15 | 2003-01-14 | Cisco Techno-Ogy, Inc. | Methods and apparatus for accessing a data storage system |
US6473757B1 (en) | 2000-03-28 | 2002-10-29 | Lucent Technologies Inc. | System and method for constraint based sequential pattern mining |
US6831668B2 (en) | 2000-04-03 | 2004-12-14 | Business Objects, S.A. | Analytical reporting on top of multidimensional data model |
US7213048B1 (en) | 2000-04-05 | 2007-05-01 | Microsoft Corporation | Context aware computing devices and methods |
US6952736B1 (en) | 2000-04-25 | 2005-10-04 | Microsoft Corporation | Object-based locking mechanism |
JP3562572B2 (ja) | 2000-05-02 | 2004-09-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データベースのドキュメントにおける新規な事項・新規クラスの検出及び追跡 |
US20020138353A1 (en) | 2000-05-03 | 2002-09-26 | Zvi Schreiber | Method and system for analysis of database records having fields with sets |
US6704729B1 (en) | 2000-05-19 | 2004-03-09 | Microsoft Corporation | Retrieval of relevant information categories |
US6965892B1 (en) | 2000-05-31 | 2005-11-15 | International Business Machines Corporation | Method, system and program products for concurrently accessing a global data repository by multithreaded clients |
US6681225B1 (en) | 2000-05-31 | 2004-01-20 | International Business Machines Corporation | Method, system and program products for concurrent write access to a global data repository |
JP3601416B2 (ja) * | 2000-06-13 | 2004-12-15 | 日本電気株式会社 | 情報検索方法及び装置 |
US6581063B1 (en) | 2000-06-15 | 2003-06-17 | International Business Machines Corporation | Method and apparatus for maintaining a linked list |
US6684207B1 (en) | 2000-08-01 | 2004-01-27 | Oracle International Corp. | System and method for online analytical processing |
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 |
US6868414B2 (en) | 2001-01-03 | 2005-03-15 | International Business Machines Corporation | Technique for serializing data structure updates and retrievals without requiring searchers to use locks |
GB0100331D0 (en) | 2001-01-06 | 2001-02-14 | Secr Defence | Method of querying a structure of compressed data |
US6959303B2 (en) | 2001-01-17 | 2005-10-25 | Arcot Systems, Inc. | Efficient searching techniques |
US6691109B2 (en) | 2001-03-22 | 2004-02-10 | Turbo Worx, Inc. | Method and apparatus for high-performance sequence comparison |
US20020143735A1 (en) | 2001-03-30 | 2002-10-03 | Akin Ayi | User scope-based data organization system |
US6748378B1 (en) | 2001-04-20 | 2004-06-08 | Oracle International Corporation | Method for retrieving data from a database |
EP1402254A1 (en) | 2001-05-04 | 2004-03-31 | Paracel, Inc. | Method and apparatus for high-speed approximate sub-string searches |
US6816856B2 (en) | 2001-06-04 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | System for and method of data compression in a valueless digital tree representing a bitset |
US7117216B2 (en) | 2001-06-07 | 2006-10-03 | Sun Microsystems, Inc. | Method and apparatus for runtime merging of hierarchical trees |
US20030009443A1 (en) | 2001-06-15 | 2003-01-09 | Oleg Yatviskiy | Generic data aggregation |
US6799184B2 (en) | 2001-06-21 | 2004-09-28 | Sybase, Inc. | Relational database system providing XML query support |
JP2003032654A (ja) * | 2001-07-16 | 2003-01-31 | Jisedai Joho Hoso System Kenkyusho:Kk | 番組関連コンテンツ生成・提示方法および番組関連コンテンツ生成・提示装置 |
US7027052B1 (en) | 2001-08-13 | 2006-04-11 | The Hive Group | Treemap display with minimum cell size |
KR100656528B1 (ko) | 2001-09-10 | 2006-12-12 | 한국과학기술원 | 영역-합 질의를 위한 동적 업데이트 큐브와 하이브리드질의 검색방법 |
US6918097B2 (en) * | 2001-10-09 | 2005-07-12 | Xerox Corporation | Method and apparatus for displaying literary and linguistic information about words |
DK200101619A (da) | 2001-11-01 | 2003-05-02 | Syntonetic Aps | Automat til skabelon-baseret sekvensproduktion, samt metode for automatisk sekvensproduktion |
US6952704B2 (en) * | 2001-11-26 | 2005-10-04 | Microsoft Corporation | Extending a directory schema independent of schema modification |
CA2365687A1 (en) | 2001-12-19 | 2003-06-19 | Ibm Canada Limited-Ibm Canada Limitee | Mechanism for invocation of user-defined routines in a multi-threaded database environment |
US6826568B2 (en) | 2001-12-20 | 2004-11-30 | Microsoft Corporation | Methods and system for model matching |
US6807541B2 (en) | 2002-02-28 | 2004-10-19 | International Business Machines Corporation | Weak record locks in database query read processing |
US7287033B2 (en) | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
US7096228B2 (en) * | 2002-03-27 | 2006-08-22 | Microsoft Corporation | Method and system for managing data records on a computer network |
US6624762B1 (en) | 2002-04-11 | 2003-09-23 | Unisys Corporation | Hardware-based, LZW data compression co-processor |
US6694323B2 (en) | 2002-04-25 | 2004-02-17 | Sybase, Inc. | System and methodology for providing compact B-Tree |
US7085771B2 (en) | 2002-05-17 | 2006-08-01 | Verity, Inc | System and method for automatically discovering a hierarchy of concepts from a corpus of documents |
US6785674B2 (en) * | 2003-01-17 | 2004-08-31 | Intelitrac, Inc. | System and method for structuring data in a computer system |
US20040133590A1 (en) | 2002-08-08 | 2004-07-08 | Henderson Alex E. | Tree data structure with range-specifying keys and associated methods and apparatuses |
US6768995B2 (en) | 2002-09-30 | 2004-07-27 | Adaytum, Inc. | Real-time aggregation of data within an enterprise planning environment |
US7007027B2 (en) | 2002-12-02 | 2006-02-28 | Microsoft Corporation | Algorithm for tree traversals using left links |
US20040169654A1 (en) | 2003-02-27 | 2004-09-02 | Teracruz, Inc. | System and method for tree map visualization for database performance data |
JP2004295674A (ja) | 2003-03-27 | 2004-10-21 | Fujitsu Ltd | Xml文書解析方法、xml文書検索方法、xml文書解析プログラム、xml文書検索プログラムおよびxml文書検索装置 |
US20040230896A1 (en) | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with unique node identifications |
US8250107B2 (en) | 2003-06-03 | 2012-08-21 | Hewlett-Packard Development Company, L.P. | Techniques for graph data structure management |
US20050015383A1 (en) | 2003-07-15 | 2005-01-20 | Microsoft Corporation | Method and system for accessing database objects in polyarchical relationships using data path expressions |
US7349913B2 (en) | 2003-08-21 | 2008-03-25 | Microsoft Corporation | Storage platform for organizing, searching, and sharing data |
US7454428B2 (en) | 2003-10-29 | 2008-11-18 | Oracle International Corp. | Network data model for relational database management system |
US7499921B2 (en) | 2004-01-07 | 2009-03-03 | International Business Machines Corporation | Streaming mechanism for efficient searching of a tree relative to a location in the tree |
US7383276B2 (en) | 2004-01-30 | 2008-06-03 | Microsoft Corporation | Concurrency control for B-trees with node deletion |
US7587685B2 (en) | 2004-02-17 | 2009-09-08 | Wallace James H | Data exploration system |
US7647356B2 (en) | 2004-05-07 | 2010-01-12 | Oracle International Corporation | Methods and apparatus for facilitating analysis of large data sets |
-
2003
- 2003-03-10 US US10/385,421 patent/US6961733B2/en not_active Expired - Lifetime
- 2003-09-19 US US10/666,382 patent/US7158975B2/en not_active Expired - Fee Related
-
2004
- 2004-02-27 NZ NZ542716A patent/NZ542716A/en unknown
- 2004-02-27 NZ NZ542715A patent/NZ542715A/en not_active IP Right Cessation
- 2004-02-27 CN CNA2004800113729A patent/CN1781094A/zh active Pending
- 2004-02-27 WO PCT/US2004/006044 patent/WO2004081711A2/en active Application Filing
- 2004-02-27 CA CA002518802A patent/CA2518802A1/en not_active Abandoned
- 2004-02-27 AU AU2004219258A patent/AU2004219258A1/en not_active Abandoned
- 2004-02-27 JP JP2006508907A patent/JP2006522984A/ja active Pending
- 2004-02-27 EP EP06116626A patent/EP1703422A3/en not_active Withdrawn
- 2004-02-27 EP EP04715743A patent/EP1609081A4/en not_active Withdrawn
- 2004-02-27 KR KR1020057016963A patent/KR20060008292A/ko not_active Application Discontinuation
- 2004-02-27 CN CNA2004800113697A patent/CN1781093A/zh active Pending
- 2004-02-27 BR BRPI0408292-3A patent/BRPI0408292A/pt not_active IP Right Cessation
- 2004-02-27 EP EP07105962A patent/EP1801717A1/en not_active Withdrawn
-
2005
- 2005-03-18 US US11/084,996 patent/US7788287B2/en not_active Expired - Fee Related
- 2005-09-29 US US11/239,177 patent/US7424480B2/en not_active Expired - Lifetime
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411572A (zh) * | 2010-09-21 | 2012-04-11 | 重庆诺京生物信息技术有限公司 | 生物分子数据的高效共享方法 |
CN102411572B (zh) * | 2010-09-21 | 2014-11-05 | 重庆诺京生物信息技术有限公司 | 生物分子数据的高效共享方法 |
CN105765900A (zh) * | 2013-11-27 | 2016-07-13 | 思科技术公司 | 动态优化的多树多播网络 |
CN105765900B (zh) * | 2013-11-27 | 2019-04-05 | 思科技术公司 | 用于实现动态优化的多树多播网络的方法、节点 |
Also Published As
Publication number | Publication date |
---|---|
BRPI0408292A (pt) | 2006-03-07 |
US20040181547A1 (en) | 2004-09-16 |
CA2518802A1 (en) | 2004-09-23 |
NZ542715A (en) | 2008-02-29 |
EP1609081A4 (en) | 2006-12-20 |
WO2004081711A2 (en) | 2004-09-23 |
US7788287B2 (en) | 2010-08-31 |
US7158975B2 (en) | 2007-01-02 |
US20050165772A1 (en) | 2005-07-28 |
US20050076011A1 (en) | 2005-04-07 |
NZ542716A (en) | 2009-02-28 |
EP1609081A2 (en) | 2005-12-28 |
CN1781093A (zh) | 2006-05-31 |
US6961733B2 (en) | 2005-11-01 |
WO2004081711A3 (en) | 2005-04-14 |
US7424480B2 (en) | 2008-09-09 |
EP1703422A3 (en) | 2006-12-20 |
AU2004219258A1 (en) | 2004-09-23 |
EP1703422A2 (en) | 2006-09-20 |
US20060074947A1 (en) | 2006-04-06 |
EP1801717A1 (en) | 2007-06-27 |
JP2006522984A (ja) | 2006-10-05 |
KR20060008292A (ko) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1781094A (zh) | 用于存储和访问互锁树数据仓库中的数据的系统和方法 | |
US7523095B2 (en) | System and method for generating refinement categories for a set of search results | |
US7266548B2 (en) | Automated taxonomy generation | |
Harris | Improved pairwise alignment of genomic DNA | |
US7152065B2 (en) | Information retrieval and text mining using distributed latent semantic indexing | |
US20060218138A1 (en) | System and method for improving search relevance | |
Xiang et al. | Summarizing transactional databases with overlapped hyperrectangles | |
US20170199960A1 (en) | Systems and methods for adaptive local alignment for graph genomes | |
CN1639682A (zh) | 在线索化应用中高效存储缩进式线索 | |
CN1910581A (zh) | 用于按类别提供关键字输入频率信息的搜索系统及其方法 | |
US7672958B2 (en) | Method and system to identify records that relate to a pre-defined context in a data set | |
CN1584884A (zh) | 检索结构化文档的数据的设备和方法 | |
CN1648901A (zh) | 大规模关键词匹配的方法和系统 | |
Wang et al. | On mining instance-centric classification rules | |
CN1492361A (zh) | 嵌入式数据库查询的处理方法 | |
CN1304991C (zh) | 检索简档的比较方法 | |
CN1571966A (zh) | 信息检索方法、信息检索程序、和记录有信息检索程序的计算机可读记录介质 | |
CN1429370A (zh) | 将文本输入与词汇知识库相匹配并利用匹配结果的系统和方法 | |
Alkan et al. | RedNemo: topology-based PPI network reconstruction via repeated diffusion with neighborhood modifications | |
CN1106614C (zh) | 数据处理设备 | |
Delabre et al. | Reconstructing the history of syntenies through super-reconciliation | |
Wang et al. | Snpminer: A domain-specific deep web mining tool | |
Guo et al. | PCB assembly scheduling with alternative nozzle types for one component type | |
AU2004219257A1 (en) | System and method for storing and accessing data in an interlocking trees datastore | |
JPH10240741A (ja) | 木構造型データの管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |