CN101432725A - 用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作 - Google Patents

用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作 Download PDF

Info

Publication number
CN101432725A
CN101432725A CNA2005800260578A CN200580026057A CN101432725A CN 101432725 A CN101432725 A CN 101432725A CN A2005800260578 A CNA2005800260578 A CN A2005800260578A CN 200580026057 A CN200580026057 A CN 200580026057A CN 101432725 A CN101432725 A CN 101432725A
Authority
CN
China
Prior art keywords
system component
particle
engine
data
interlocking trees
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
Application number
CNA2005800260578A
Other languages
English (en)
Inventor
简·C·马扎加尼
简·V·K·克莱尔
托尼·T·潘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Unisys Corp
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
Application filed by Unisys Corp filed Critical Unisys Corp
Publication of CN101432725A publication Critical patent/CN101432725A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition
    • 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
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Abstract

一组处理与知识库及其K引擎通信的机制。知识库(KStore)无需索引或表来支持它,而代之以根据互锁树的节点内的指针的互锁树的结构形成。建立K引擎并用于通过利用与K引擎一起使用的软件对象查询KStore,以便学习粒子化了的事件,从而建立KStore,而这些或其它的软件对象能够用于进行查询并从KStore得到回答,通常是在K引擎的帮助下。在一些情况下,能够直接从KStore获取信息,但是通常是仅通过K引擎的行为是可用的。该机制为用户和应用软件提供通信路径以建立和/或查询KStore。这两个过程可同时在多个实例中进行。在KStore上基本同时可以有多个引擎操作。此外,用于提供触发器的机制允许自动给用户和应用报告事件、条件和发生的事情。

Description

用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作
背景技术
尽管在我们的现有专利申请中已经描述了我们的无需索引或表格以构建或使用它的互锁树数据仓库的基本模型的功能,但还是能够对其添加有价值的附加的结构和过程。我们经常称我们的互锁树数据仓库为KStore(或有时就称为K,尽管在一些讨论中我们也将其称为KStore结构)。已经在美国申请的描述Kstroe的以前的专利申请可以通过序列号10/385,421、10/666,382、和10/759,466识别,我们将其各自的全部内容引入作为参考。我们已经发现,为了使KStroe结构更加适于市场销售并更为容易地使用,有几点创新已经变得重要。我们为了促进该结构与应用软件和用户的配合操作而描述这些创新,总之是为了使其更容易使用。为了做到这些,KStore、或多个KStore成为集成到易于在对几乎任何所希望的使用的处理数据的系统中。
能够利用通用软件接口使数据进入KStore结构或取出KStore结构的知识将使得该结构作为商品更具生存力并对公众更加有用,因为它会使得用户使用他们早已使用或习惯使用的工具访问该结构。根据对KStore结构内的数据促进该结构易于使用所需要的组件的论证,对于普通技术人员来说变得显而易见的是如何应用这些组件到几乎任何种类的应用,用于其与KStore的交互作用。
迄今为止,KStroe是使用定制的软件通过其引擎访问的。全新的是,其对于具有建立这种软件的能力的那些应用有用。因此,对于任何应用,需要根据定制而重新设计并再次访问。需要能够发现避免K引擎的这些经常重复使用的过程的定制的方式,以使KStore更具商业生存力。如果能够发现的话,则能够对如果不是几乎全部的话则对多数需要建立KStore并提供到其的查询访问的应用避免所有这种定制和重建。类似的,这将促进KStore对于仅需要从其获得查询答案的那些应用的使用。我们选择提供一组中间软件实体和简单的方法步骤来完成这些工作。这些中间过程或对象需要解决与需要访问KStore的应用的变化和复杂性相关的问题,包括多个和完全不同的输入数据源,以及查询的类型和格式。
例如,如果数据源使用ORACLE数据库结构并且其以任何方式仅使用直接的中间结构处理连接直接附加到KStore,或者如果数据通过因特网来自事务RDBMS系统并隐藏在HTML或XML中,或者如果数据来自实时传感器阵列,或无论数据采取什么格式,KStore的底层结构不应不得不被改变以适应这些输入格式。
因此,我们感到获得公共使用并允许许多应用出于任何目的而利用KStore的固有价值的中间件将成为使KStore在商业上能生存的要素。
从而,我们创建了使得编程领域内的普通技术人员无需理解KStore应用引擎或KStore结构而访问KStore的过程。我们生成了一个系统,由此借助于该系统程序员能够出于任何目的建立和/或访问KStore。
此外,我们需要允许在仅仅访问KStore的查询与允许学习并从而添加到KStore的结构的查询之间切换状态。在此还描述并要求了用于将智力置于KStore与其的用户之间的接口中的许多其它的创新。
附图说明
图1A和1B为举例说明在本发明的优选实施例中使用的主要组件的交互作用的框图。
图2为指令字格式的消息的框图。
图3为根据优选实施例的学习引擎的框图。
图4为一个典型过程的流程图,优选实施例的学习引擎根据该过程操作以准备传递数据到K引擎。
图5为根据本发明的优选实施例的API实用程序的应用查询处理过程的流程图。
图6A和6B为优选实施例API实用程序的框图。图6B为在优选实施例中有用的更加特别的用于由用户和应用程序进行维护、初始化和修改的API实用程序组件。
图7为根据本发明的优选实施例的工作制度中的KStore数据结构的框图。
图8为出于举例说明的目的有用的互锁树数据仓库(KStore)中的节点的框图。
图9为互锁树数据仓库中的节点的另一个框图。
图10为与本发明的优选实施例一起使用,或作为本发明优选实施例的一部分的单个变量预测GUI的显示屏图像。
图11为互锁树数据仓库内的节点的另一个框图。
发明内容
为了使得K引擎易于使用,我们已经创建了新的一组对象(或系统组件),其能够为学习和查询线程提供服务以使任何类型的应用和接口能够寻址、建立并使用KStore。我们称该对象为a)学习引擎和b)API(应用程序编程接口)实用程序引擎。学习引擎对象提供以各种方式从各种源接收或获取数据并将其变为K引擎能够使用的粒子的能力。API实用程序对象规定了任何种类的应用软件所接收的询问的适当处理。它们二者以非常类似的方式运行,使得线程能够从K获取信息和/或将信息放入K。计算机领域的技术人员应当理解的是,对象能够以软件方式构建,该软件将配置计算机系统以一种方式运行以实现对象的属性。还应当理解的是,该对象能够以硬件以及软件方式创建以便提高其功能。
线程--有时称为执行上下文或轻量级进程--是程序内的独立的控制时序流。每个线程通常是同一程序内的控制时序流。有关此背景,参见http://www.serpentine.com/~bos/os-faq/FAQ-1.html#/Threads对于线程及其历史的讨论。线程被定义为轻量级进程。它们能够被认为是CPU调度的基本单位和进程内顺序执行的流。进程的通用定义是它们具有五个基本部分:代码、数据、堆栈、文件I/O和信号表。这在当切换时创建了显著数量的开销。线程通过共享基本部分而减少了开销。通过共享,从一个线程到另外一个线程切换执行能够更为频繁地发生并更加有效。
线程是任何操作系统的主要的部分。然而,工业领导者中的三个对于如何实现线程都有不同的概念。在这个应用中我们使用术语线程来指示从其启动到其结束处理学习功能或查询的软件过程。
出于方便我们通常在此描述KStore数据模型结构,尽管能够找到其在以上所引入的专利参考文献中更加详细的描述。互锁树数据仓库本身通常包括悬于第一个根节点下并可以包括大量分支的第一个树。第一个树的每个分支在我们现在称为最后结果节点的叶子节点处结束。同一个基于树的数据仓库的第二个根点被链接到表示最后结果的每个叶子节点。最终,基于树的数据仓库包括许多的树,其中每个这些树的根节点都能够描述为基本节点。这些树中的每一个的根节点都能够链接到第一个树的一个或多个分支的一个或多个节点。基于树的数据仓库的各节点优选仅包括到基于树的数据仓库中的其它节点的指针而不是就其本身而言为数据,并且还可以包括附加的字段,其中一个这种附加的字段可以是计数字段。此外,获得与如在一个或多个定义的焦点内的所期望的上下文识别的特定节点有关的变量的一致性概率的装置是已知的。此外,查询有关这种变量的逻辑运算符的应用能够如参考文献中所描述的那样实现。
刚刚描述的互锁树结构是利用初始化并构建K数据结构的K引擎构建的。在构建时KStore是一个数据集模型。该数据集可以是任何静态的或动态的输入数据流。通过与对象一起使用K引擎用于如此处所描述的查询并建立数据集,很可能的是几乎任何应用都能够访问、建立并使用该互锁树数据仓库和结构。
建立KStore的规则非常简单。对于每一个数据粒子,检查看从当前位置指针(即,位置指针)的序列中跟随的这个粒子是否已经是该结构中的节点的事件,如果是,则通过增加节点中的计数器及其结果节点而提高该事件的强度,并重置当前位置指针到新的位置。否则,创建一个新的节点以记录该事件并重置当前指针到该新的节点。序列可以从BOT事件开始并由EOT事件完成,(其可以是由定界元素触发或指示的,指示句子结束,如句号;指示字的结束,如空格粒子;指示记录的结束,如某些数据库中的分号)。
从来自粒子的序列创建开始,可以依赖所建模域创建其它级别的结构。例如对于字段/记录域,粒子的第一个序列作为字段中的序列中的变量而识别。完成的字段变量序列用于以该粒子用于创建字段变量序列相同的方式形成记录序列。
用于查找数据的规则是类似的。对于数据的每一个粒子,查看从当前位置指针的序列中跟随的这个粒子是否已经是结构中的节点的事件,如果是的话,则重置当前位置指针为新的位置。(这个重置当前位置指针为新的(下一个)位置的动作将使这个节点的地址的返回可用)。如果不是,进程或者指示没有发现额外的匹配,或者可能重置当前位置指针为“下一个最优”结果的位置。
例如,如果你想要记录1449B2中A的所有列表,该请求会包括为记录1449B2的基本根节点的调用,从该节点可以获得构成该记录的所有节点的列表,以及获得到元素A是结果的节点的指针列表的调用。在该列表之间比较所匹配的地址。所匹配地址的数量将指示在记录1449B2中有多少A的节点,以及它们在记录中的位置。
K引擎由此应当能够处理由调用启动的线程,并促进线程做各种各样的搜索工作,以学习搜索,以不同的方式搜索,并学习,以及具有具有当可能被要求时返回错误信息到调用发起者的能力。
总之,我们已经建立了允许通过外部应用连接以查询并建立KStore的方式。
总之,该组件包括学习引擎和一组API实用程序。学习引擎允许从多种类型的输入数据源接收数据,并能够配置用于以适用于用户建立的KStore所准备进行工作的方式将数据粒子化。有关粒子的元数据由学习引擎以与用户对于正建立的KStore的意愿相一致的方式处理。例如,如果正在构建图片知识库,而用户想要能够获得各种格式的图片数据,有关图像格式的数据被读取并处理为粒子化的并放置到KStore中,数据可以被保持并作为粒子或多个粒子与图像数据一起传送。如果发送到KStore的数据是来自字段/记录类型数据库的信息,则依赖于用户正试图创建的KStore的总体设计,特定的字段名可以保留、更改、或丢弃。在适当粒子化数据之后,学习引擎接着适当调用K引擎并以粒子格式以使K引擎能够将其放置到KStore结构中的方式传递数据。
API实用程序有助于KStroe的询问。它们必须要能够接收询问并将其解析为对K引擎的调用,以直接访问K或更新相关存储器。可能优选KStore要在其结构中记录不是的事件的查询;在这种情况下LEARN SWITCH应当关闭以防止查询引发一个事件或多个事件被记录。(注意:对于字段/记录数据域通常如此,但是对于人工智能应用,由于LEARN SWITCH可能优选为“打开”用于查询置,则可能理解要反转该位置,但是有可能“打开”仅用于学习/训练。还应当指出的是,开关实质上可以不是适应与KStore有关的学习和非学习活动之间的改变的最佳方式)。这可以通过建立对应于不同类型的线程活动的K引擎的独立实例,即,对不同的设置的每项检测而建立。从而这些过程的其中之一将对应于使用学习引擎的线程从而就会学习,另一个可能是来自学习的查询线程,而再一个可能是来自不学习的查询线程。
API实用程序有时从使用当建立K时创建的预定义指针的K获得信息(而不是从粒子化和调用KEngine)。举例来说,存在指向记录EOT传感器、字段EOT传感器、列EOT传感器以及思考开始传感器的字段。这个字段将与K引擎相关联,并且将允许其遍历使用该指针而不要求API实用程序跟踪这个指针信息的K。(如BOThought或EOThought内的“thought”是一系列的记录的事件节点)。由此,它是事件链,类似于具有开始(BOT)和结束(EOT)的思考。为了最简单地使用通信实例,利用思考作为通过传感器的一系列感知,此处这些感知拼写为C-A-T-S-<space>-A-R-E-<space>-F-U-R-R-Y-<period>,如果我们使用<space>作为思考之间的定界符(或者是在字CATS、ARE和FURRY的结尾处设置EOT,或者是在每个字之后的空格处设置EOT)的话我们具有几个潜在的EOT,而结尾(<period>)处的一个EOT使句子成为一个完整的“思考”。由此,在这个例子中我们对字母C,A,T,S,F,U,R,Y,<space>和<period>具有传感器。BOT节点启动该系列的感知。用于C,A,T,S,R,E,F,U,Y的根节点都具有到这个思考的链接,具有一个链接用于由C传感器表示的节点,两个链接用于由A传感器表示的节点,三个用于R,一个用于E,一个用于F,一个用于U,以及一个用于Y。诸如空白、条、不可打印的字母、分号等的定界符(以及能够被创建的诸如EOT节点的传感器)。(在图9中,这些可以是节点904,906和908,它们也可被称为最后结果节点)。在典型的KStore中,句号可能应当具有它的传感器,但是更可能指示“句子”的结束,从而导致EOS(句子的结束)节点(类似于节点902)的创建。然而当句号显示作为句子的结束之外的意思时,下一个传感器感知的输入粒子将发起新的BOT链接,即使其不是在句子的结尾处,并且KStore将不得不增长得相当大,以便如果句号粒子被设置到句子的结尾而非仅是被感知时整理好所有的这个粒子。)提出本讨论以定义BOT/EOT比我们在本申请的其它地方进行要稍好一点。在图9中,我们还有第二级定义的(句子,使用句子的开始(BOS)和句子得到结束(EOS)节点)。每个字节点都被链接到前一级中的它们的EOT节点,例如节点906和节点908。在此列出了刚刚讨论过的结构,但是在节点结构中没有任何空格或句号定界符。当KStore建立时其可以使用定界符建立作为节点,或者不是,如可以期望的和根据如在本专利中的其它地方所描述的通过管理API实用程序所强加的(利用例如,状态变量)的控制。
还应当注意参考图9直接连接和间接链接之间的区别。当查找提交到其的粒子的位置时当前实施例的K引擎将查找直接链接。一个消息(类似于图2的消息)将具有与识别KStore内的至少一个最后位置的粒子相关联的指针。K引擎将具有确定该最后的位置是否通过下一个子组件节点链接到其中一个基本根节点的代码(如通过参考该最后位置节点的asCase列表而发现的),并且如果是的话,则认为这是直接链接。本领域的技术人员将会非常好的理解这个术语,因为下一子组件节点可能是思考中的下一个内容。为了理解这个内容,注意通过图9中的CATS的该字,开始于粒子BOT-C结束于粒子BOT-C-A-T-S-EOT,其在这个KStore中成为节点908。如果最后一个粒子是BOT-C,而下一个提交的粒子是BOT-C-A,在这种情况下,确定K引擎部分的该链接将注意到BOT-C-A被链接到基本根节点A,并由此在KStore中找到用于这个粒子的该事件的位置,建立链接到这个粒子的基本根节点的所述下一个子组件节点的现有位置作为互锁树数据仓库中的新的当前位置,并将这个位置返回到该粒子的源。该粒子的源将使用这个当前位置或者为其可能发送以学习的下一个粒子添加到下一个消息数据,或者是用作它可能正在处理的过程中的查询的答案的一部分。当然,基本根节点都将在由可以寻址特定KStore的任何K引擎所保持的传感器列表上具有对应的条目。
存在我们将要查找间接连接的情况。可能会感兴趣的间接的程度将依赖于用户希望做什么事情。在此情况下,如果确定了从所述最后位置到所述粒子的基本根节点的链接可能是间接的,即,该粒子是通过子组件节点而非所述互锁树数据仓库中的所述下一个子组件节点链接的。为了确定是否存在间接链接,我们使用一种算法,例如,该算法将在aaCase列表上向前查找到下一子组件节点之外的其它节点。依赖于用户在做出这种判断中需要或想要的内容,也可以使用其它的过程,包括思考中的所有节点的asCase列表、通过所有asResult列表的迭代处理、或来自相关的根或思考节点的结尾的所有指针。
无论是否是通过直接链接,或是通过间接链接(无论哪种情况下用户都通过K引擎的相关状态变量设置),如果确定粒子是否连接的K引擎代码的段确定该最后的位置链接到考虑下的这个特定粒子的根节点,则建立该粒子的基本根节点的位置作为新的当前位置。在优选实施例中,我们在子组件节点中以及在基本根节点和所增长的粒子的子组件节点中都有一个计数器。
此外,如果通过代码确定K引擎中最后位置不是通过下一个子组件链接到基本根节点(如参考asCase列表所确定的),则K引擎将致使为KStore中的该粒子形成新的子组件节点。同样,如果存在K引擎所接收的粒子结束了“思考”的一些指示,则它将激活一个例程以生成最后结果节点。诸如句子结尾处的句号,字之间的空格,记录中字段之间的逗号、分号等,图像中的颜色之间的黑色空间等的通用定界符是一些现成的实例,它们的任何一个都能够充当定界符,当它们出现时启动最后结果节点的生成,因为在这种情况下它们被“转换”为内部传感器。由此如果该过程确定粒子为思考的结束或EOT节点,则这个过程将优选激活KStore中形成最后结果节点。
同样,如果K引擎/KStore组合的这个状态变量是以那种方式设置的话,可以构成粒子是思考的结束的判断以依赖于找到定界符。如果是这样,并且如果在粒子中找到的定界符是用于更高一级的定界符的话,我们的优选实施例中的这个过程将为当前级别下的每个级别增加思考结束节点,并对以上的级别增加新的子组件节点。由此如果KStore是由字、句子和段落构成的话,并且到达了EOS,则处理EOW(字的结束)和EOS(句子的结束)而句子的最后结果节点用于在段落级创建下一个子组件节点。
在这一点上简要讨论如何在优选实施例中保持传感器是有用的。尽管没有典型地取出作为单独的代码,在我们的K引擎中找到了一个传感器列表管理器。参考图1B。传感器列表管理器(未单独显示而是K引擎11的一部分)利用其自身的存储区域28a以便在列表中保持每个传感器以与进入的粒子做比较。由此,传感器列表管理器的例程将回顾每个进入的粒子与传感器列表相比较以确定这个进入的粒子是否是已知的传感器。如果它发现进入的粒子是传感器列表上的传感器,则它通过检查asCase列表找到链接到所述传感器的下一个子组件节点,然后它能够仅仅调整当前位置到BOT/EOT链中的下一个子组件节点。如果没有找到有效的传感器,则提出一个选择。
在这一点上,我们对于这个选择具有至少三个选项,它还能以各种方式组合。首先,假定其为噪声,我们能够使K引擎忽略该粒子并仅仅等待下一个。其次,K引擎能够创建对应于该粒子的新的传感器并在传感器列表上存储该新传感器。第三,对于没有现存的传感器,K引擎能够启动粒子列表并发送错误信号。对于这三个选择任何一个我们都能够发送或不发送错误信号,和/或我们也能够保留这种事件发生的日志。对于任何新创建的传感器我们能够将它们标记为新创建的或通过错误创建的,或作任何数量的类似操作以记录该事件发生。对于这些选择中的任何一个,我们还能够发送不同种类的信号以致使特定的例程管理或监测这个粒子,这种类型的、或这些许多类型的任何配置的发生。如果我们已经建立了KStore以便如此致使或触发K引擎外部的某些例程的启动或继续,我们认为这种类型的建立是“内部”触发器,因为它对应于内部事件发生。这个术语将其与能够通过API实用程序接口建立以定期检查KStore存在特定条件或事件发生的“外部”触发器区分开。
同样,单子(monad)列表也可以由K引擎保持以在粒子级以上的级别保持符号的跟踪。(单子也被称为最后结果节点)。换言之,优选K引擎能够在其相关存储器,单子的列表,中保持。如果用户或程序想要该单子列表存在则通常将使用这种列表,但是该列表能够通过KStore的查询而生成,因此它不需要保持这种列表。(也有可能在一些实施例中其对允许API实用程序组件或甚至是学习引擎组件访问有关单子和/或传感器等的数据是有利的或有效的。用于结合到KStore的发送查询的API实用程序或发送粒子的学习引擎可以使用这种到单子列表或传感器列表、或到有关这种列表的元数据的入口,以避免发送错误的数据类型)。在以上的CATS ARE FURRY的例子中,“CATS”和“ARE”以及“FURRY”将会是单子,但是不在优选实施例中的传感器列表上。优选实施例根本不需要单子列表,但是它们能够在某些情况下有利,诸如如果有人希望的话打印输出单子列表。该暗示是K引擎对比粒子检查传感器列表,比如这个例子中的字母,而非字(同样,在这个例子中)。其它的暗示是有关单子的信息(诸如,能够利用与这个KStore相关联的数据重新获得的字的列表或表格)能够从与保持该单子列表信息的组件相关联的存储器中重新获得。从而使用该组件(即,API实用程序或学习引擎组件)的任何线程将具有到单子上的这种数据的入口,而无需在KStore中查找它们。假设组件为K引擎的实例,使用该K引擎访问KStore的任何线程都将具有到这些数据的入口。假设组件为API实用程序的实例,使用该K引擎访问KStore的任何线程将访问这种数据,用于查找KStore中可能更加复杂的结构,比在查找更加复杂的结构或各种单子之间以及单子与可能在特定查询中感兴趣的其它节点之间的关系之前不得不首先查找感兴趣的特定单子要快得多。
应当提及另一件事情有关处理最后结果节点或思考结束节点的另一个可能优选的实施例。对于互锁树数据仓库(KStore)结构中的下一级可视作这些最后结果节点为根节点。因此,当它们发生时,它们能够被添加到传感器列表上,而较大的粒子能够通过K引擎馈送给KStore。在图9中能够很容易看到这一点,其中字能够代替字母成为传感器,并且如果在给定上下文中希望的话,传感器列表能够为较大的(字大小而非字母大小)粒子的接收铺平道路(利用这个例子的特征)。然而,如果大的传感器列表需要长的搜索时间以确定粒子是否对应于传感器,因此在采用这个方法之前必须要考虑这个实施例在其中运行的系统的物理限制。
将需要一个查询以访问API实用程序以便API实用程序对K引擎的所有返回的调用将被适当处理并适当编译为有用的结果以作为对查询的响应发送回去。存在许多实现来自K引擎的返回调用的这个处理的方式,并且它们随查询的特性而变化。在其中的一些中,列表将被编译和/或比较,在其中的一些中将找到来自列表的项目。K引擎将仅仅返回当前位置指针,利用其对KStore本身的只读访问,API实用程序将使用这些返回的子组件节点或最后结果节点指针以访问KStore。这些返回的当前位置指针将指向子组件节点,其包含到其它节点的指针(即,asCase列表,以及asResult列表)。返回的位置指针将不指向可能包含实际值的基本根节点。
在优选实施例中这是通过具有许多API实用程序对象而完成的,每一个都与一个或多个相对于K的函数相关联。这些相对于K的函数是运行以提供用于在对查询或部分查询,例如设置“约束”和“焦点”,查找解决方案的算法过程的装置。这些函数可以直接从应用程序或由用户调用。在一些优选实施例中,创建真实的GUI或菜单屏幕以促进相对于K的特定函数的使用。
通过应用相对于K的这些函数,API实用程序和GUI等,我们使得使用KStore为应用程序和用户提供从多个源实时添加数据的能力相对容易,并且同样使数据立即可用于搜索、分析、或其它使用。
我们在此描述的过程将能够从标准文件以及更多的动态实时输入处理静态数据。一个标准输入格式可以是诸如“.txt”或XML或任何其它格式的文件。这将与预先配置的转换组件一起使用。该过程还可能采用常规格式的静态和/或实时数据输入。如果输入数据格式是已知的并且能够转换为对于构造之下的特定K普遍使用的格式,则无论数据是什么格式应当都不是问题。K的不同实例能够使用不同的输入格式,并且如果希望的话单个K本身能够从不同的输入格式接收数据。此外,有可能仅允许输入数据流无需格式化而仅仅是粒子化的,而KStore最终将挑选出哪个是哪个,但是在当前时间这种实现方法是不切实际的。从数据构建的知识库将优选通过一个或多个GUI(图形用户接口,其可能包括声音、触觉感知或任何形式的接口)接口而是可浏览的,该接口在优选实施例中管理正在访问KStore的软件应用。还值得一提的是输入数据不需要限制为数字格式的数据。同样能够使用模拟输入(包括各种和各式各样的特征,包括但不限于信号的高度、信号的持续时间、信号的强度),诸如当模拟传感器数据是部分输入数据流时,麦克风用于获取声音而输出是非数字化的,模拟信号的各种其它潜在的源被分接。在这个数字时代中,了解这种输入也能够使用看起来非常重要。当某人看起来适合给出输入的特性和所期望的所构建KStore的使用时,某人可以选择将模拟信号分段为多个粒子。
通常,数据源能够通过学习引擎以实时或如果希望的话发送数据到KStore中,该学习引擎能够致使KStore接受静态数据并充当数据仓库。换言之,要使用的数据集能够从持久数据存储系统(例如,磁盘)读取,或能够读取作为实时来自一个或多个源的连续的流。
在实时优选实施例中,软件应用最可能运行于服务器上,各种K视图(GUI)是基于网络的,数据流在其以实时生成时通过因特网(或局域网,如果希望的话)到来,而KStore为动态的。当我们已经创建了我们自己的软件应用产品时,应当认识到系统元素的位置能够轻易地驻留于不同的计算机系统上并且具有不同的连接。
这样,当数据被读取时,“KStore”或知识库数据结构优选在计算机的存储器系统中构建。根据其结构的性质创建的KStore数据结构建模数据集中的各个变量之间的关系。这个KStore能够使用分析GUI或批应用等查询以开发数据集中各个变量之间的关系(即,执行数据开采活动)。当数据被读取时能够查询KStore并且构建KStore。
我们能够举例说明连接KStore到外部世界的一种方式是通过使用学习引擎。学习引擎调用K引擎以完成其支持线程的任务,以在将知识传输到KStore中允许其功能。线程通过建立与数据源的通信而启动。这能够通过GUI或应用软件做到。对于对学习引擎的每次调用,在了解或使用其它协议装置之后,学习引擎发送单个“字符”到K引擎用于处理。K引擎由此构建K以记录事件序列。首先在美国专利申请No.10/385,421中找到了这是如何在“注意点”或“位置指针”定位并且如果其是新的则添加结构的讨论。这通常包括检查以查看来自当前位置指针的序列中跟随的这个“字符”是否早已是结构中的节点的事件,如果是则通过在该节点中增加一个计数器而提高事件的强度,而如果不是的话,则创建新的节点以记录该事件。此外,如果创建了该新的节点以记录该事件,并且这个新节点在多于一级上都是新节点,则可能不得不添加附加的节点以指示这一点。例如句子节点的结尾也可以结束一个字,因此可能添加句子节点的新的结尾和字节点的结尾。
为了通过将KStore连接到一个应用软件而展示我们是什么意思,利用我们在以上所参考的10/759,466专利申请中所述的特定类型的分析、单变量预测、过程我们将描述查询是如何处理的,通过该软件K引擎位于注意点上以定位KStore中的信息。这要求在上下文(也称为约束)和焦点上判定,将其通过API实用程序发送到K引擎,并接收结果。由此,我们还提供基本的GUI,用户可以通过它练习这种查询,并描述组件过程和元素,通过组件过程和元素这些能够在KStore范围内发生。参见以下有关单个变量预测用于进一步解释用于查找K中的信息的优选方法的讨论。还应注意的是,如果K引擎不能找到数据请求的精确匹配,则存在2种可能的响应。目前,我们认为这是一个错误并且不改变位置指针并可能是结果“错误”代码。然而,在一些点上我们可以指出我们没有得到精确匹配,但是返回下一个“最接近”的结果或可能的结果的列表。一个例子是没有找到所要求的字的拼写检查者,但是给你可能的可选答案。
因为基本上有两种适用于KStore数据结构的过程,我们已经创建了两个附加的引擎。一个致使KStore得到构建,即学习,而第二个致使KStore提供到知识的访问。第一个附加的引擎我们称之为学习引擎而第二个引擎我们称之为API实用程序。应当注意的是,API实用程序也可能导致构建和学习,其中该构建和学习是有关KStore所做的查询,类似于某人回想起有关某件事的想法的方式;换言之,通过类推,某人能够记得之前某人已经想过的条目,正如KStore能够“记起”它已经被要求回想的事情。这项功能的细节将在读过本专利的剩余部分后变得更加清晰。然而,API实用程序通常用于应用程序从KStroe中搜寻答案的查询。
API实用程序通常还包含对线程的支持程序。线程根据来自GUI或应用软件的通信而启动,通过该GUI或应用软件展现一个查询。一个用于支持由查询启动的线程的程序是用于调用位于KStore内部的注意点上的K引擎例程的可激活过程。如果对K引擎的该调用没有找到KStore(或在所选择的注意点上没有位置),在此情况下K引擎可以返回一个错误信号(或指示一个错误的“null”调用返回)。否则,假定一个构建的KStore,其返回由K引擎的位置活动所指示的信息,即,所查找的节点或多个节点的地址。放置注意点的细节在美国专利申请系列号No.10/666,382,名为“SYSTEM AND METHOD FORSTORING AND ACCESSING DATA IN AN INTERLOCKINGTREES DATASTORE”中描述,以上所提及内容在此引入作为参考。此项‘382申请还描述了如何通过确定上下文和焦点估计KStore中的数据,换言之,如何对关于有关由KStore的节点表示的数据的概率所构建的查询作出响应。在此描述的估计过程仅仅是K引擎的重复练习,每次找到对应于根据用于查找上下文和焦点的估计过程构建的查询的注意点(节点)。
在优选实施例中,可以是部分API实用程序的解释器使用约束和焦点以它们被应用程序或用户界面要求的格式回答问题。
我们通过“字符”表述任何“粒子化了”(此后为粒子化)的格式,该格式是识别作为传感器或K引擎正在建立的特定KStore的基本根节点。例如,如果这个KStore识别最低级别的信息片是ASCII字符,则粒子实际上是一个字符。KStore可以建立字、或其它字符串的记录,以及最终句子、段落、书等。或者,其能够正在字段/记录域内建立字符串变量的记录。在我们确信只能找到特定变量的字段/记录域内,我们能够使用这些变量(诸如字或其它字符串变量)作为变量或基本根节点。在此情况下K引擎接受任何数据作为粒子,包括句子或类似的输入。
再例如,如果最低级别的信息片是像素、图像中的位置、颜色、以及亮度可以是粒子像素的属性,而基本根节点将具有这种属性作为它们的特征,每个附加的像素由具有所有这些属性但是没有更多属性的K引擎馈送给KStore,并且一旦放入该结构内则每个像素将识别(或被识别)KStore中的一个节点。在这个例子中,用于像素的“传感器”将包括图像位置、颜色和亮度,而学习引擎将不得不将信息的粒子馈送给K引擎作为每个这种属性的单元或传感器。还有其它通过将各种属性与其它属性集合在一起并具有“更重”的粒子的构建这个内容的方式,但是这超出了本讨论的范围且并非优选。如果我们正在建立的系统考虑“属性”为连接到其它“传感器”的它们自己的“传感器”,在优选实施例中这些K结构将创建实际上是“具有某种属性的像素”的最后结果节点。(然而,重要的是要意识到无论相对于本讨论如何的更为通用,如果粒子不与正在学习的K的传感器相匹配,该粒子将被忽略,即不在K结构中产生记录。由此如果对于该K仅有ASCII字符集传感器的话,则比ASCII字符的比特长度更长的一和零的字符串将被忽略。应当注意的是,我们可以在一些实施例中保持奇数粒子,将它们集中或进行回顾并且如果某种条件流行则添加新的传感器。例如,如果发送同一格式的大量粒子,例程可能建立一个新的、非预定的传感器以在KStore中捕捉这些粒子。)
由此,粒子化是试图将数据分解为预定传感器集合的尝试。学习引擎是将其从数据源接收的内容分解为传感器集合,并逐一将该粒子集合馈送到K引擎的功能。传感器可以被看作是能够由K感知的数据的最小单元。如果希望的话,每个K都能够使用其自己唯一的传感器集合进行设计,但是在这样做的过程中,注意力应当放在某人正在创建K以调节的数据。ASCII字符集是将具有实质商业应用作为数据库的公共集合,很可能是KStore使用首先瞄准的市场。倘若KStore用在机器人中,通过执行机构触觉信号可用,且指示这些执行机构的移动的信号可以是更加有用的传感器。如果用于炼油厂内的自动或跟踪活动,KStore可能优选具有拾取或记录经管路的流动、罐内液面、各个位置处的温度等的传感器。
此外,应当提到,由于我们描述了既描述了学习由描述了查询,需要一种机制以关闭或开启一个“开关”,将过程置于学习(构建)模式或保持其处于查询模式。如果处于查询模式,学习模式开关打开,当K引擎定址现有节点时每个查询都可以增加附加的节点,或附加的计数到KStore内的现有节点。这种机制优选处于学习引擎,但也可能通过其它手段解决。学习引擎和API实用程序可能具有不同的过程调用以影响类似开关功能的操作、或也可能使用其它的手段。
此外,在一些实施例中我们允许触发器响应条件或事件并根据KStore生成输出以影响KStore系统外部的活动。这些能够是内部或外部触发器,响应于KStore自身内部的活动或对应于分别考虑条件或事件的周期性查询。优选实施例中的内部触发器通过开关对它们的设置被允许或禁止。对这些触发器开关的设置优选存储在K引擎相关的存储器中,但是普通技术人员能够找到这种存储器的其它存储单元。
具体实施方式
图1A举例说明了优选实施例环境中的KStroe 14a,其中K引擎提供K 14a到范围内剩余部分的唯一连接。(还应注意的是,可能有多于一个的K引擎,类似于图示中的K引擎11a,提供到KStore 14a的访问,正如我们将更加详细讨论的)。反过来,K引擎11a可以由诸如API实用程序5和学习引擎6的软件实体寻址,这些软件实体与它们在其中运行的计算机系统(未示出)的资源共同管理并处理线程。(通常,计算机系统将是服务器,尽管我们在K的一些实现中使用了单个个人计算机。)
在我们的优选方案中,外部世界具有仅通过这些API实用程序和学习引擎到K结构的访问。API实用程序和学习引擎由外部世界通过应用层访问。能够提供数据或请求信息的诸如GUI、数据库、以及任何其它类型程序或接口的软件应用可驻留在这个应用层中。图1A举例说明了这个相同的结构,但是是以避免画出个线程和层的外在描绘绘制的,以给读者指明主机环境在其性质上是固有灵活可变的。
特别地,在图1B中我们已经举例说明了KStore“K”14,将其作为云块,安置于计算机存储系统(未示出)中。这个“K”14是K引擎11可存取的。(可能有多个K引擎。这在以下以某种更详细的提到)。应用软件层15可以为用户包含各种形式的GUI(图形用户接口)接口15c以发送和接收诸如查询和回答的数据。这个层15还可以包含数据源15a,或云块15a的程序(其可以在数据源内或与数据源相关联),云块15a提供数据以建立KStore K 14。同样,这个层15可包含应用程序15b,该应用程序可以进行查询或提供数据以与K相关。在这个框图中未显示这些层15结构,它仅仅以优选的形式标识了本发明的主要特征。此外,应当指出的是,或者是通过应用或者是GUI也可以执行维护和管理功能。这些管理和维护功能(稍后描述)能够用于配置KStore和/或学习引擎、以及API实用程序。层15的组件能够通过因特网传播,如果希望的话部分GUI和应用驻留在各个计算机系统和网络之中,或者其都能够全部位于K和K引擎、以及组件学习引擎和/或API实用程序驻留的同一个计算机系统服务器本地。下面进一步详细讨论图7中的另外一个相关的示例。
在图1B中,层16是包含API实用程序和/或学习引擎21b/21a的至少一个的层。我们仅仅调用接口对象,因为对于在这个框图中所示的特性,它对于两种类型的接口对象功能类似。这个对象包含或者是允许调用信息或数据输入19、18以无论它们处于什么形式而寻址K的程序集合。对这个对象学习引擎21b或API实用程序21a的调用分别启动一个线程,线程19a或线程18a。这个线程可以提供连续或不连续的数据流到学习引擎或包含对API实用程序的查询参数。软件对象21中的程序在存储器中(优选在服务器上,由此在层16中)建立数据存储区域26、27以分别容纳线程19a、18a的处理需求。分别给予各个线程“cookie”或密钥C1和C2,这使得它们能够访问存储区域。这种线程控制的存储区域的访问是利用分别具有例程19d和18d的软件对象21a/21b的可重入代码完成的。当执行线程时,这些例程将允许传递地址、指针或其它粒子相关的数据到线程进入数据存储区域26、27或从中取出。由此,在学习引擎的情况下,指针地址指示这个线程当前的位置指针位于序列中的哪个位置,对相关节点的所有集合的指针列表、以及该性质的信息被存储并在需要出现时从存储区域26或27存取。由于它们帮助K引擎构造一个活动以放置新的事件或找到K内的现有事件,存储区域26和27中的数据由此用于驱动K引擎11的活动。基于K引擎的活动的结果,API实用程序例程可以添加数据(利用可重入代码19e以更新数据存储区域26中的数据29,或改变已经在数据存储区域27中的一些数据(利用可重入代码18e与数据28中的变化))。换言之,我们四处传递数据存储区域的地址,因此我们能够直接更新数据。这不是说某人不能够具有与其单独的工作是管理该存储区域的这种数据传输/修改相关联的独立的代码片。
总之,线程是通过出现了正发送到学习引擎的新的数据或请求来自API实用程序处理这种请求的结果的查询而创建的。在学习引擎21a的情况下,管理这个线程创建要求存储资源26a和密钥或cookieC1的分配或创建,以便该线程将具有到这些所建立的存储资源的访问。在API实用程序21b的情况下,还将建立存储器资源27a和密钥或cookie C2以管理查询线程并在K结构14和K引擎11之间指导其的操作。K引擎将在K 14域内处理事件,生成当前位置指针,它能够被API实用程序使用以遍历KStore并回答该线程正从事的相关查询或部分查询。编程领域内的普通技术人员很熟悉线程的概念以及如何使不同的对象在响应程序生成的信号和/或数据消息等的计算机系统中创建它们,因此不需要进一步讨论有关如何利用线程完成该工作。类似的,编程领域内的普通技术人员很容易理解,这种过程的集合能够毫无困难地以几乎任何现代编程语言创建,并且有很多种这样做的方式。
分别给线程19a和18a分配这些存储器资源26a和27a提供学习引擎和API实用程序能够缓存并管理中间过程的地方。在支持线程的活动过程中可能需要这种中间过程以满足学习引擎和API实用程序的功能。在学习引擎中,当学习引擎起作用以在需要的时候分离和管理每个粒子时存储区域26a将用于保持被粒子化的数据作为缓冲区。存储区域还将提供空间以维护指针列表,用于确定当前哪个粒子正被发送到K引擎,以及到正从数据源输入的数据流的这个事件的关系、结构状态。线19b和19c指示线程的可重入代码段19d和控制粒子化过程的存储区域26a之间的路径,分配进入的数据流的粒子和任何其它所需要的部分(如果有的话)到存储区域。线29促进了学习引擎的粒子数据的进入作为由线程19a在19e部分携带到K引擎的消息的一部分。在此,K引擎11处理事件在K 14中的记录并将当前位置指针返回给学习引擎。(由此,在该图示中,与在以下描述的某些环境中能够不通过K引擎的线程18a不同,线程19a可以不继续进入到K本身)。
API实用程序相关的线程18a将使用其存储区域27a以类似的方式允许相同类型的功能,在作出查询的过程中利用API实用程序21b的资源支持线程18a的活动。同样,将优选为线程提供密钥或cookie(C2)以管理其到存储区域27a的访问。同样,当正在展开线程的处理时,在区域27a中存储有关线程的活动,在此情况下是K的询问,的指针数据和数据。在此,数据以存储器位置指针或沿线28的地址的形式从API实用程序例程运行使用的可重入代码18e的代码片返回。对于复杂查询可以非常复杂的存储区域的管理是通过可重入代码18d和通信路径或消息18b和18c处理的。
也要指出的是,在优选实施例中,为K引擎(区域28a)和KStore(K 14)自身(区域28b)分配附加的存储区域。这种存储区域的使用优先支持某些功能,例如切换以确定K引擎的各种状态和条件以及K结构本身作为API实用程序例程,确定如何响应查询或附加的数据输入、是否学习、以及用于可能是程序控制的各种特征。举一个例子,如果我们有两个K引擎,二者都访问单个K,存储区域28b将用于锁定K以便它能够学习新的事件。对于K被锁定的时间,仅有具有对其(或者其可能被锁住的部分)的访问的K引擎能够改变该K(或K的该区域)。将需要存储区域28a存储有关使用它的特定K引擎的能力或配置的信息。当读者熟悉了K和K引擎的使用时,对于这种存储区域的附加的特定使用可能变得明显,但是基本上,最为有用的是具有专用存储区域以存储每个K的状态和可能在使用中的任何通用特性开关的状态,以及每个K引擎的状态和将由任何线程集使用的任何特性的状态的专用存储区域。
总之,线程将生成来从PI实用程序和学习引擎到K引擎的调用以影响学习或查询。K引擎处理‘粒子’并返回K位置指针的当前位置到调用程序。如果所发送的‘粒子’被识别为传感器,则K引擎将试图通过从K指针的当前位置移动到在这个事件之前已经记录的K上的位置来记录事件。如果没有等价于这个事件的过去的事件记录,则将创建新的K结构以记录该新的事件。如果发送的‘粒子’不匹配传感器则当前K指针停留在同一位置。在优选实施例中,K引擎将忽略该事件为“噪声”,而调用例程将不得不决定如何处理这个事件。然而,在某些点上K引擎可以基于开关设置“决定”以发送错误消息或创建新的传感器,或执行一些其它的任务,无论是到另外一个组件的通信还是发送Email或修改其对于K的活动。开关或修改的K引擎能够实现无止境的这种活动,正如这些领域的普通技术人员能够容易地设想的想象。
应当注意的是,开关能够强烈影响K引擎性能并允许通过其配置控制。我们曾经使用的特定开关包括至少一个用于学习(Y或N)、列数(Y或N)、代替列数使用的元数据字段名称(Y或N)、EOT级别(数量和名称)、EOTCOL(列名称)、EOTVAR(变量)、EOTFLD(字段项)、EOTRCD(记录)。这些领域的普通技术人员将认识到这个列表远非详尽而将针对KStore的不同使用创建不同的开关。例如,可以为存储图像、涉及像素信息的KStore建立主机开关。
调用本身,就是说,来自学习引擎和API实用程序对象的请求能够是非常简单的语句或甚至是指令字。理解这个的最快方式是将它示意为指令字或图2的消息34。照那样(出于教学示意的目的我们使用指令字的概念)指令字将具有指令类型(调用)35,但是在大多数实施例中,并不需要这个,因为K引擎将不考虑调用的目的而返回当前位置指针。消息将优选具有开关组件36,但是在很多实施例中,能够在别处为K引擎设置开关。消息的确要求适合于带入K引擎内部关系的数据粒子37。通过这种适用性我们的意图是该粒子必须是特定KStore能够识别的东西。换言之,如果KStore仅能够理解ACSII文本粒子而示例数据字34的数据粒子部分37内的信息不是ASCII字符,则将不能够在调用处理程序的实例部分上分散以学习这个粒子以完成其任务,并且调用处理程序应当生成一个错误信号并返回到这个实例中的学习引擎。类似的,如果API实用程序发送请求以在所述基于ASCII码的KStore中查找不在ASCII码内的粒子,则对应于这种请求优选发布一个指示类似于“未找到”的错误。(在本文档的其它地方找到作为粒子、字符、像素或其它符号的粒子的进一步讨论)。仍然利用指令字类推,到K引擎的消息还应当具有指示请求的来源的返回地址部分38。这将优选由学习引擎生成以指示应当为其返回知识或错误信号(连同某些类型的跟踪一起从而其知道粒子流中的哪个粒子引发了该错误)。如果调用来自API实用程序,则返回地址部分将用于跟踪API实用程序从何处得到其查询(即,这个调用来自哪个线程和各部分中从哪里到这个线程)以及这个调用解决方案的哪个部分。(我们的部分意思是它可以是要一起使用以解决查询的焦点粒子或约束粒子,或是某些要求几种约束或焦点的较大查询的部分。)最后,我们应当具有指令字34中所包含的指针39。这个指针39传达KStore中的当前位置。任何新的KStore中的第一个粒子都将有一个空指针。这个空指针将由K引擎解释作为调用以初始化,即,设置当前位置计数器到BOT节点。
同样,具有选项以在消息中包括开关区域的有用的,以使得K引擎知道如果这个粒子是新的事件或如果粒子仅仅是“查找”K中某些信息的话它是否能够创建新的节点。有很多方式处理打开或者关闭学习,但这是一种富有成效的方法。某人能够具有总是在学习的K存储结构,以及如果希望的话无需学习的预先建立并仅仅响应查询的结构。
此外,应当注意的是,可能有需要分配附加的存储资源用于处理这些线程18a和19a的活动(在图1B中举例说明)。
这样,描述了用于支持使用KStore的功能系统的基本组件,并且根据这些组件能够完成许多事情。然而,使得它们能够更加有用的API实用程序的细节以及学习引擎的细节还需要进一步描述。
学习引擎。
学习引擎基本上提供接口和转换以及粒子化功能以使得K引擎能够接收粒子化的数据以学习。这样它必须能够处理适当的协议、传输、以及转换能力以接收来自所期望的数据源的输入,无论它们是XML、Oracle、DBMS或其它的什么格式,无论它们是来自静态的或流动的源、或甚至是外部事件触发的实时传感器源。当然,特定的实施例可能适合这种输入的任何子集。其还需要能够将来自这种源的数据转换为适合大小的、能够轻易被粒子化的数据组块以配备所期望的KStore的数据粒子格式,并且它应当具有粒子化程序(particlizer)以将这种粒子发送到K引擎,并在适当的时候可以添加任何的缓存。
现在参考图3,其中举例说明了处理来自数据源301的数据流302的学习引擎300的优选实施例。数据流通过具有相关协议的传输机制接收,大多数情况下可能来自外部源计算机系统(未示出),穿过诸如因特网或局域网的通信媒介(未示出)到其中学习引擎300和K引擎310以及KStore数据结构(未示出)在起作用的计算机系统(同样未示出)。
在组件306中,学习引擎将首先去除任何外部格式和协议痕迹、以及任何标签、定界符、和与正在使用来自数据流302的数据建立的KStore无关的字段名称。
随后,进入的数据将在组件307中服从有关其的存在于该数据流内的所有元数据的回顾。在优选实施例的字段记录数据流的情况下,用户希望保持被识别的字段将在到数据的位置关系中保持其相关的元数据,在这些数据中用户开始希望或者想要这个KStore。如果来自将要在KStore内与这个新的数据流相关联的之前的数据流的字段名称来自具有不同字段名称的不同数据库,则该名称可以在这个级别上在这个组件307内改变。类似的,如果在利用更早的数据流创建KStore中使用了不同种类的数据库,则字段名称可以在例如其它数据库内的数据之后而非之前到来,因此为了规则化数据应当在这个组件中进行模仿这种方案。还有诸如在同一KStore中通过忽略差别创建相关的结构的选择余地,但是看起来在这一点上规则化数据流,或者换言之,清除数据比较有效。将优选通过GUI 304获得对这种数据清除或规则化的控制,其中所希望的设计特性305被传递给组件307。
接下来,学习引擎中最终的组件308仅需要将数据分解为具有指示其是哪一种类型的粒子的适当指针的粒子,并且以调用的形式与K引擎310所需的其它消息特征,即当前位置指针,一起传递这个粒子本身。
正如通过这一点应当变得明显的那样,并且这些努力的领域内的读者应当很好地理解,这些功能和组件的每一个都能够按照希望的跨越计算机系统和网络分布以影响对于用户可能正在建立或使用的、KStore将要被放入的特定应用最有用的格式。
参考图4,通过一般化过程340以流程图的形式举例说明了学习引擎功能。首先使数据源与学习引擎同步341。在这个阶段期间处理各种协议功能:建立传输机制、安全特性等等。正如编程技术领域内的普通技术人员应当理解的那样,某人将愿意具有用于在数据源和学习引擎之间建立通信协议以允许该学习引擎和数据源之间的通信能够平滑发生的机制。这种子组件将具有信令功能,将建立该功能以便数据能够从数据源流到学习引擎中,优选没有中断。一旦建立了用于通信同步的协议,数据就能够在数据流中传送342。在这一点上数据能够通过所建立的传输机制被接收343。正是在这一点上,与建立用于K引擎的适当的数据消息有关的学习引擎的功能在步骤344中发生。在这个阶段344,数据被组织为K将要学习它的格式345,而元数据以及定界符和其它协议或元数据特征将根据需要调整346。在这一点上数据流准备好用于粒子化347。应当注意的是,定界符和诸如字段头部或记录号指示器的其它元数据通常将被粒子化,对于数据流的字段/记录域也是如此。这允许原始数据的结构的知识与数据一起得到学习。这种形式的这种粒子化是优选的但并非必需的。通常应当理解的是,服务器系统的数据存储器将用于保持进入的数据流,因为它是由学习引擎为了粒子化处理和/或重新组织的。
可以指出,为了有效处理新的粒子,尤其是用于建立表,此处存在来自特定节点的分支,当学习引擎正在使用下一个粒子为调用创建下一个消息时,学习引擎可以提交以前到最后位置的位置指针作为最后的位置。为了了解这个,见图8。在标记为Bill Monday的节点处,有两个跟随它的子组件节点,利用Bill Monday作为Case定义。它们附加节点103或100。这被称为分支。如果学习引擎知道它将要有这种分支,它可以保存位置指针到Bill Monday节点并在当其提供第二个节点103或100时重新提供。
为了更加了解粒子化,参考图9。注意在这个K中,其开始于字母级别,并显示字的第二级。如果所有的字母都是“传感器”,就是说,它们能够被识别为粒子,增加每个新字母都允许根据三个顺序为“CATS”“ARE”“FURRY”的字的数据源持续增长K.Submission。这个K接受字母作为粒子。因此,到学习引擎的API实用程序接口必须产生字母作为粒子。第一个粒子(或对该粒子的“节点”)是由它在思考的开始说它是第一个粒子的指针所定位的“C”(即,这作为初始新的思考在被称为BOT的节点处开始,并且其的第一个粒子为C(假设它以BOT粒子或节点开始))。下一个粒子将会是A,而它将伴随着到前述C的指针。(这种粒子也可被称为“子组件节点”,因为它们是由节点组成的互锁树数据仓库的KStore中的“完整思考”“CAT”的子组件)。K引擎将遍历asCase列表并且对asCase列表上的每个子组件节点以及对每个其将在结果节点查看的节点,看它是否匹配并使用该子组件以重置当前位置指针。在这种情况下,其将不会发现匹配,因此K引擎会将这个事件记录为BOT C-A,一个新的子组件节点,并将这个新的子组件节点放置到原始位置计数器的asCase列表之上。新子组件的地址就将设置为新的当前位置。更精确地,K引擎将看到在当前结构中在C之后没有A的发生,并且将要求一个新的节点以记录这个粒子事件为BOT C-A。下一个粒子将是T,而记录将是BOTC-A-T。由此应当清楚的是对于这个特定K,粒子将是字母。
在我们的优选实施例学习引擎中,为了遵照通过初始建立过程对学习引擎可用的预先确定的传感器信息,在去除和增加和/或转换之后,我们通常将减少输入数据流中数据项的大小。应当建立学习引擎具有在其相关存储区域内保留的一组开关,并对建立具有其将与之一同工作的KStore和K引擎的学习引擎的功能的用户或程序员可访问的。这些开关将具有关于来自其将一同工作的数据源期望的数据项大小的数据。这也能够在协议建立步骤中处理。无论如何,这种活动的目的是以与其一同工作的K引擎和KStore将接受的与所述预先确定的传感器信息匹配的粒子大小告终。
API实用程序
API实用程序的功能比学习引擎的功能稍微复杂一些。首先参考图5,其中用于处理查询的一般化了的过程350示意为流程图。应用351(或由用户访问的GUI)提供用公式表示的查询Q以查找结果。这个查询Q可以是SQL格式或任何能够被分析的格式,例如自然语言。一个例子可以是“Bill在PA中售出了什么东西吗?”(该查询假设在我们讯问的K中将请求作为这一时刻)。
参考图8,一个其中能够请求查询的较小的K结构视图。在此我们将看到“售出”元素根节点1008指向节点1026,即在记录中还由基本根节点“Bill”1020指向的节点,(即,节点1002),即在带有节点1036的同一记录中还由PA 1035的基本根节点指向的节点。由此已经找到了查询的所有元素,我们能够响应这种查询返回“Yes”。
如果查询Q没有得到理解或另外出错,可以提供反馈机制以请求应用或用户重新阐明该查询。
由此,我们将在优选实施例中采用的下一步骤将具有图5的应用层软件解释352,并且如果要求的话提供反馈或错误信号。一旦建立了查询,则就需要建立查询的组件。对于刚刚问到的问题“Bill在PA中售出了什么东西吗?”我们需要在图8的K中找出其中有Bill的所有记录,并集中于其中已经售出了同时其中具有PA的记录。如果存在这种记录,则准备肯定的回复,否则准备否定的回复。在图8中,具有三条具有Bill的记录;一条是星期二两条是星期一。由此查询的第一部分将搜索所有其中具有Bill的记录,从来自Bill的基本根节点1020的指针得到地址,并在API实用程序的存储器中建立它们,并且接着通过获得所有到Bill记录的指针完成该上下文。查询的下一部分将从基本根节点售出检查指针,售出还由收集的指针指向,该指针是为所有指向由基本根节点Bill所指向的记录的指针收集的。当然,将检查指向基本根节点PA的指针以察看它们中是否有任何的被指向到前述步骤中已经变窄的记录。这个结果如果非空将指示一个肯定回答。
以上的这些事件包括将查询分解为组件位置和取回调用353。在基本级别该查询被分解为到KStore引擎的调用356,KStore引擎通过当前位置指针找到其进入到K中的道路,或者如果其为空,则被设置到BOT。如果所找到的节点是子组件节点、最后结果(或记录的结尾)节点、或BOT节点,则与定址可能包含指针列表的任何指针一起查找它们出现与否,节点将这个信息返回到API实用程序,API实用程序组织该信息并作附加的查询直到满足查询Q。API实用程序可以直接定址到计算机系统存储器内以在过程355中检索由其它地址或根节点数据组成的信息。API实用程序将该结果应用到被创建354以处理检索的信息的表结构357。当完成响应时,就进行格式化358以便以所使用的查询语言发送作为回答,但是直至其完成,API实用程序持续执行对KStore引擎的调用。当查询完成时,格式化了的响应能够被发送359回到应用。
查询
存在无限大的可用查询范围,但是出于举例的目的我们将以一些基本查询的描述开始,并且为了便于举例说明和理解,使用其数据排列成表格的K。数据集包括15条记录,由5个字段组成。在这个示例中每个字段有2个可能值。这些例子记录为:
Bill  星期二  100  售出  PA
Bill  星期二  100  售出  PA
Bill  星期二  100  售出  PA
Bill  星期二  100  售出  PA
Bill  星期二  100  售出  PA
Bill  星期二  100  售出  PA
Bill  星期一  103  售出  NJ
Bill  星期一  100  跟踪  PA
Bill  星期一  100  跟踪  PA
Bill  星期一  100  跟踪  PA
Tom   星期一  100  售出  PA
Tom   星期一  100  售出  PA
Tom   星期一  103  跟踪  NJ
Tom   星期一  103  跟踪  NJ
Tom   星期一  103  跟踪  NJ
这样第一个字段的两个变量为Tom、Bill;第二个为星期二、星期一,等等。以上数据如果通过学习引擎粒子化并用于建立KStore,则将生成类似于图11中的KStore,而API实用程序将允许它的处理。
将要找到简单的查询或者计算数据集中聚焦变量的概率,并能够通过调用API实用程序的应用完成,首先返回主题变量发生的数量然后是记录的总数量。查询能够由后台应用或GUI应用处理。(如果这个处理将被建立到GUI中,当然能够提供下拉框用于约束变量的选择和从单个下拉框中选择聚焦变量。下拉框是通用术语,是项目列表的显示屏上的视图的描述。图中仅示出了选择了的项目。)查询能够由后台应用或GUI应用处理。
这个操作在图11中可以很容易看到,图中将以上图表中的记录输入到代表KStore的框图中。(真实的KStore将在计算机系统的存储器中,而所有的链接都将是指针,而节点将不包含任何数据或字符串,字符串在节点之上示出以使得KStore对于读者易于理解。)在此计数器数据在每个节点椭圆中示出。这样如果我们被限制查找其中Bill售出的星期一的Bill记录的数量,答案在Bill-星期一记录上的“售出”节点中,即仅有一条这样的记录。如果我们想要知道该事件相对于所有记录的概率,则我们将在EOT基本根节点中找到计数器(或将所有单独的EOT节点中的计数器相加)以发现在这个KStore中Bill在星期一的这条售出记录具有15分之1的概率。再次注意,这无需对任何的表进行参考,不是必须要特征化或重新组织数据,并且不是必须要重新编译任何数据或它们的任何子集以获得这些类型的回答。在诸如这个15条记录、字段/记录域KStore的简单KStore中,成果显得微不足道。用于查找不规则(即,仅发生一次的记录)或知道当前事件是唯一的其它的查询同样可能看起来微不足道。然而,当放到在今天的商业和政府以及医学操作中常见的大得多的数据集的上下文中时,相信蕴含的节省时间和资源使用效率在现在是深不可测的。
在以上数据集的15条记录的中变量“售出”发生了9次。如果应用将变量“售出”指定为主题变量并调用API实用程序以返回变量“售出”的实例数量,则API实用程序会在KStore结构中定位“售出”的节点,并从“售出”的最后结果节点返回计数器值9。(图11没有为这个字段/记录域的变量的最后结果节点之下示出任何内容)。接下来,应用将针对记录的总数调用API实用程序并从EOT节点返回计数器值15。应用接着将计算聚焦变量“售出”在所有记录中的概率,如9/15=0.6=60%。
从这个非常受限的实例中这个是如何运行的已经足够明显,然而,当数据的结构建立到KStore中时更容易看清系统中与生俱来的能力。如果(对于这个级别)对于Bill、Tom、星期一、星期二、和售出(以及以上图表中的集合中的每一个其它变量的一个)的最后结果存在于由这个结构构建的KStore中。在大多数优选实施例中,每个这种最后结果节点都将具有Bill事件的数量、或者Tom事件的数量,等等,为该最后结果节点现存于计数器中。由此,为了回答查询,某人将仅需要查看记录数量(EOT)计数器,该计数器为该15条记录将有值15以得到总数,然后查找焦点、“售出”最后结果节点以得到回答以上所问问题中固有的查询所需要的值。
为了了解基本GUI看起来将是什么样子,参考图10,当GUI显示器2000具有上下文选择区域2001和焦点选择区域2004时。在这个实例中,列变量是上下文或约束,用户已经选择了两个,下拉列表2002中的“Bill”和下拉列表2003中的“星期二”。用户从输出变量2004的下拉框选项中选择的焦点为“售出”。答案在区域2005中示出,而关于所选择变量的其它细节在区域2006中示出。当点击或激活执行按钮2010时,GUI应用将调用API实用程序处理各种约束。API实用程序将遍历K以创建包含“Bill”和“星期二”二者的仅这些记录的列表并返回数量。接下来,GUI应用将调用API实用程序处理焦点。因为已经建立了包含变量“Bill”和“星期二”二者的列表或记录,API实用程序将在K中仅遍历这个记录集合以确定“售出”记录的数量。
趋势分析是利用诸如月份的时间作为约束条件的一系列单个变量预测。由此如果我们将实例数据扩展到包括月份日期字段并且使得数据集包括整个月份,我们能够报告输出该月从头至尾各天的售出数量并报告输出结果趋势。在此情况下,做这种趋势分析的线程的应用存储器将持有中间结果并具有一个在为该分析选择时间约束条件之内由总的结果生成趋势的过程。中间结果将通过例如如上所述的应用中的单个变量预测功能获得。支持趋势分析功能的这整个应用能够通过具有用于时间约束的下拉列表以及以上所述用于单个变量预测的其它下拉列表的GUI来选择。
在优选实施例中,我们对典型的KStore系统具有两种类型的API实用程序组件。一个是管理型API实用程序组件,用于维护、启动和改变功能支持,其使得用户或程序能够例如通过设置开关、状态变量,设计数据源,修改元数据或从管理的性质出发做其它的事情而修改各种各样的系统组件。这些设置可以例如控制响应于可能位于其传感器列表上的粒子的K引擎的功能。一个这样的例子可能是在期望K引擎将响应于数据的字段/记录域时设计某种粒子作为定界符。它们可以使得用户能够启动第二个K引擎用于访问系统内的单个或一个以上的KStore。可以以这种方式处理的另外一个功能是输入数据流中或在来自特定查询源的查询集合中元数据的格式和意义的建立。这个管理型API实用程序类型可被用于命名特定KStore,以将它们保存到长期的存储中,以将其返回到活动系统存储器中,简言之,以根据传递系统或查询解决方案的调用操作的粒子消息实现除了真实粒子之外的任何功能。这种管理型API实用程序的优选实施例一个示例如图6B所示。其它API实用程序类型用于查询,并在图6A中示意。
在图6B中,需要在KStore系统中调整或启动处理的用户或应用将通过接口361B访问感兴趣的状态变量。实际上,我们在此描述的KStore系统的建立者或用户可以在应用层建立他想要的几乎任何类型的接口结构。应用层16中的唯一关键性要求是它通过诸如提供多个例程以访问K引擎、K结构以及相关存储区域的API 372B的接口通信。某人可能希望应用层组件的方案将包括开关处理器,该开关处理器在需要时处理这些请求,为考虑中的系统适当解释它们。例如,如果利用将被设置到对于给定线程集合的K引擎或K引擎与KStore组合的实例内的一些数量的不同默认设置建立系统,则可以使用通过GUI或其它接口的单个指令以便为用户的或应用的需求选择默认最适合的内容。由此,应用将处理这个状态变量集合到API实用程序段327B的通信,其将在K引擎存储器376B或在K中(和/或K的相关状态存储器中,未示出)的状态变量等中做出适当的改变。
此外,应当注意的是,图6B的API实用程序的管理例程也将(优选)被要求以例示K引擎并建立在一个或多个KStore中使用的基本参数,并且将该K引擎示例将被要求建立和/或访问K结构。实用程序段与发送/接收子组件一起将具有联系K引擎示例程序对象需要的地址和其它信息,在此示意为系统组件发生器389。在这个例示过程中,将定义诸如在粒子中有什么数据的元数据并始于定界符,无论学习开关是打开或关闭,并且将要建立每个相关的配置变量。由于存在巨大数量的方法做这件事情,在理解了此处所表达的KStore系统之后,编程领域内的普通技术人员的读者将能够将这种方法付诸实施而无需不当的实验并使用相对较少的编程努力或思考。
图6A举例说明了对用于处理查询等的API实用程序软件对象的访问。同样,应用层中几乎每个项目361A都可以由系统设计者按照意愿配置,只要他们通过由API,在此为API 372A,提供的一组钩子或地址通信。用户或应用将在应用层使用这种组件以通过GUI或其它接口处理查询。将有利地提供解释器以解释查询,并且如果要求理解或领会该查询的话可以发送反馈(未示出)。语法分析器可被用于确定查询相对于API实用程序的这个实例所具有的用于处理查询的算法的性质。其将选择它将使用哪个API实用程序(即,图7的U’s)。查询应当被分解为其组件组分,也许是根据查询部分公式表达器。这些查询部分将在372A中调用相关API实用程序组件例程,它将通过发送/接收子组件367A调用K引擎368A以在K结构中的定位一个位置,直接访问K结构或更新API实用程序空间内的适当存储器。K引擎将注意其自己的相关存储器367A以确定要发送的内容是否在传感器列表上、如何对其响应等等。其它例程运行以协调API实用程序的区域366中的存储器并响应每个查询部分准备分析返回的位置信息。这些其它的例程被分配以子组件存储协调器/分析器366,并运行以在存储器中存储和检索相关数据用于处理查询线程,线程存储器369。API实用程序可以保持由较早的调用生成的先前的位置信息的记录(即,由K引擎响应调用返回的当前位置计数器),它能够利用先前的位置信息与一个新的调用一同返回以处理它需要做的当前调用以能够在上下文中找到诸如主题变量的计数的更高级的信息。协调器/分析器366还能够协调以前从先前的调用中重新获得的其可能已经在其线程存储器中存储的信息,并可能生成响应配置器377所需的最终结果以生成对该查询的应答。
例如参见以上单个变量预测的讨论,与图10的讨论一起,用于建立单个变量预测查询的GUI的一个例示。结合公式化和图6A的查询部分的创建,可能需要创建表和专用于服务由查询Q所启动的线程的空间,从而通过在存储器协调器/分析器366中的进程提供到线程存储器的访问。响应是基于当第一次理解查询时有关该使用了的查询的已知信息配置的。通过参考KStore指针和/或从系统存储器检索到的并由表处理器操纵的数据,API实用程序的子组件377将基于从系统存储器直接检索到的信息准备响应的配置。发送/接收部分367B与K引擎通信。
注意,KStore系统的API实用程序组件管理学习引擎的环境。因此,在优选实施例中我们使用特别配置的API实用程序(如图6B的详细讨论)以修改KStore和K引擎的性能特性、状态、相关触发器等等。最常见的实现这些内容的方法是修改属于KStore或K引擎或者属于任何感兴趣的特定内容的开关状态。在GUI模式下其能够使用众所周知并且任何一个都可以非常适合于该任务的下拉菜单、图标或类似界面元素运行。需要一个应用程序自动建立K引擎状态中的某些更改,也能够通过传统软件技术调用API实用程序组件而完成。
现在参考图7,其中详细的框图描述了KStore能够使用并根据本发明优选实施例建立的许多种潜在方式。KStore 71位于服务器计算机系统73内。服务器能够是任何种类的通用计算系统,我们已经使用的系统是允许多个分区的多处理器系统。数据存储74可以是任何类型的数据存储系统,为了便于访问优选紧紧依赖于计算机系统(或服务器)或其的一部分。其能够被用于保持备份、活动的日志或KStore的特殊使用可能需要的其它功能,或者其能够支持计算机系统73的其它功能。K引擎72提供对KStore所需的访问如以上的详细所述。如上所述,到K引擎本身的访问或者通过学习引擎或者通过API实用程序。在这个示例中我们将API实用程序分解为片,但是学习引擎99不是。通常对于每个数据源将有单个学习引擎,但是每个学习引擎都将充当单个实时访问工具,用于在KStore能够由实用程序98查询的同时将数据从源带入到KStore中。
在此我们举例说明了几种不同的数据源类型,它们的任何一种都能够用于建立KStore。最起码的改变是要求生成用于测试的数据的模拟程序75,因为由于不需要任何格式化,它能够以粒子形式并以任何所希望的速率生成数据。(如果的确生成粒子,它将至少合并学习引擎的大多数特征。使得它生成数据并发送数据到学习引擎以粒子化数据是比较简单的。)数据库76也能够是数据源。可以使用各种诸如查询87的各种通过数据库的查询等获得数据的方法。XML或其它格式化88都可以用于将数据从本地查询格式转换为转发数据流到学习引擎的PUSH引擎89。另一个数据源能够是平面文件77,它通过转换代理(线程)86提供其的数据到学习引擎99。计算机输入终端78允许来自代理(或线程)85的输入。来自能够提供数据源到学习引擎99的传感器的直接输入也是可能的。
查询端要稍微复杂一点。API实用程序是处理到K引擎的调用并提供到跟踪组织单独调用以满足查询可能需要的地址列表的数据仓库的接口的实用程序部分98(U1-Un)。A段97可以是一组提供以根据特定(唯一或固定)查询93选择的分析的应用。这些查询由用户或者通过解析指定屏幕92或者直接通过任何访问手段选择或构建。在API实用程序中有两种类型的U部分。注意U2和U3直接连接到K71。画出这个以便引起对其中API实用程序能够直接访问K的功能的注意。API实用程序调用K引擎,包含粒子和将用于查找最低级别的序列的最后结果节点,即‘Bill’,的当前位置。一旦找到‘Bill’的最后结果的位置计数器,其它API实用程序例程就会使用它来直接遍历K结构并定位处理查询所要求的其它信息,即所有包含‘Bill’的记录的列表,其是当前位置指针的asResult列表中的节点指针集合。
管理服务95提供建立K的各种方法,包括确定传感器集合、定界符和级别等等。管理服务95还提供控制其它开关的方法,以建立GUI的格式、设置触发器、元数据、字段和列名称,简言之,管理和建立使用KStore所需的任何东西。该特定的触发器94涉及预先确定的不变的查询的用户或应用,该查询在指定事件发生时将采取指定行为,诸如发送电子邮件83以通知该触发器的所有者发生了事件。(这些事件可以是任何事件、信号、或执行机构的移动等,仅受读者的使用触发器生成的信号可能做什么事情的想象的约束。)外部触发器优选通过建立单独的线程以指定时间间隔启动指定查询而工作。这些查询的结果则能够与先前定义的限制相比较。如果达到了该限制(或发生了新的事件,或发生了特定类型的事件),则指定动作发生。触发器能够编码为查询应用并由开关利用管理服务设置为开启或关闭。网络服务提供到因特网82的访问,通过因特网82用户84可以寻址应用层81以使用该层中这些工具中的任何一个。
应当注意的是,可以存在提供灵活性和控制的维护组件。这种维护组件可能是诸如API实用程序的一个(或一个以上的)实例的软件对象的形式。在图7中,其采用管理功能和在其和K引擎之间的任何中间部分的形式。可以期望通过诸如这个维护组件的API实用程序访问可能被包含以定义KStore的性质的各种开关,尽管它们能够通过其它API应用而做到可用,但是在这种情况下,应当对与具有到这个特定KStore的学习引擎和其它API实用程序一致加以注意。在图1B的示例中,我们会建议这些开关与K引擎或KStore相关存储区域28a和28b相关联。(“开关”可能是诸如学习(Yes或No),列数(Yes或No),代替列数使用的元数据字段名称(Yes或No),EOT级别(数量和名称);EOTCOL(列名称),EOTVAR(变量),EOTFLD(字段项),EOTRCD(记录)的各选项)。
触发器提供可以以类似于开关的方式处理的它们的设置的附加功能和控制。触发器能够提供有力的方式以使用KStore识别何时其内部的数据达到某些期望的点,或者何时特定类型的数据已经越过了极限值等等。当知识库内的特定条件发生时许多实时分析应用都有监测的需求以在对用户或应用做出决定或推荐中起动一系列的动作。我们的发明系统提供事件触发器功能以促进监视过程,以便应用或用户能够响应触发事件发生。能够充当“事件”的一些条件仅仅是简单的模版匹配或阈值检查。其它的是要求少量编程努力以得出结论的复杂条件。
我们的优选实施例中的事件触发器功能具有在以下段落中所描述的特征。
事件(其可包括条件或发生的事情)能够由KStore开关设置定义。开关设置,即状态变量,能够硬编码到K引擎中,对应于由具有到维护API实用程序或刚才在上面描述的类似的促进结构的用户或应用设置的配置设置。应用或用户能够注册以接收通知并且这个注册的用户或应用可以不同于设置定义事件或感兴趣的条件的开关的用户或应用。例如,当接收变量的新的值时,接收变量(特定变量或任何变量)的新值的条件是这个K引擎的一组触发器,K引擎发送事件通知以通知注册的应用或用户。事件优选由用户定义,正如可以是指定应用的注册。基本的事件操作是注册和通知。应用或用户能够基于一组条件使用注册操作以请求它们感兴趣的接收事件。当它们不再需要的时候注册过程还允许应用取消该请求(或撤销注册)。如果某人希望与许多编程语言无缝集成的话,灵活的事件通知机制是有帮助的。换言之,事件通知机制优选为应用提供以应用的自然语言方式处理的客户事件的方式。类似的,通过使所需要的开关设置易于设置,用户友好的GUI可以用于增强用户对事件和条件的关注能力。
触发器(以及相关开关设置)由此将存储在K引擎的存储区域中,例如图1B中的区域28a,如果触发器应用于K的全局条件,也可能是区域28b。在优选实施例中,K引擎发起一个新的线程指示该事件已经“触发”(发生)。通知将通过这个附加的线程发送(该线程可以看作是来自API实用程序19a的线程,根据其自己的构成,其可以在其存储区域27a内添加或改变数据,和/或仅仅通知其相关联的应用或用户用具体例子说明这个特殊的线程)。
触发器能够以两种方式建立,内部的或外部的。内部触发器依赖于K引擎开关设置并在当其发生时响应于KStore内所发生的活动生成线程。例如,如果没有在传感器列表上发现粒子,则给定的正确开关设置的这种条件将是一个触发器以启动可能是到监视应用的一个通知。外部触发器是根据以(通常)定期的或插入似的时间的方式查询KStore而运行的一个触发器。定期的或插入似的是在建立该触发器的API实用程序中管理的,并且它重新启动查询以确定条件或事件是否在KStore内发生,对K引擎进行这项查询并检查结果。基于该结果其确定在API实用程序中触发器的条件是否被满足并据此动作。
内部触发器开关的部分列表可以是新的变量、新的记录、填充丢失的变量和日志、或确认所选择的字段,但是读者将想到基于KStore中所发生事件的许多内部触发器。
尽管可以找到本发明的无数使用,以及描述了本发明的操作形式和方式上的显著改变并且是这些领域内的技术人员将想到的,本发明在范围上不受如以下权利要求书中所阐明的进一步的限制。

Claims (89)

1.一种用于访问互锁树数据仓库系统中的互锁树数据仓库的系统组件,所述系统组件具有用于接收来自其它系统组件的调用的段,所述其它系统组件包括学习引擎或API实用程序的至少其中之一,所述用于接收调用的段用于为与所述调用中的至少一个相关联的粒子,查找在所述互锁树数据仓库中的位置。
2.根据权利要求1的系统组件,其中所述系统组件被称为K引擎而所述互锁树数据仓库为KStore。
3.根据权利要求1的系统组件,其中所述系统组件仅基于学习开关处于学习状态的条件,建立所述互锁树数据仓库,所述建立由将所述粒子作为事件记录在所述互锁树数据仓库中的所述系统组件完成。
4.根据权利要求1的系统组件,其中所述系统组件适用于在所述调用中从所述其它系统组件接收可以与所述粒子相关联的任何指针,所述指针指示所述互锁树数据仓库系统的互锁树数据仓库中的当前位置。
5.根据权利要求1的系统组件,其中所述系统组件具有维护传感器列表的装置,用于将来自所述列表的传感器与所述粒子相比较,所述列表上的每个所述传感器都与所述互锁树数据仓库中的基本根节点相关联。
6.根据权利要求5的系统组件,其中与所述粒子相关联的所述指针识别所述互锁树数据仓库内的至少一个最后位置,并且所述系统组件具有链接确定装置,其确定所述最后位置是否通过下一个子组件节点链接到所述基本根节点的其中之一,并且在这种情况下,所述链接确定装置建立链接到所述粒子的基本根节点的下一个子组件节点的现有位置,作为所述互锁树数据仓库中的新的当前位置。
7.根据权利要求6的系统组件,其中所述链接到基本根节点的其中之一与匹配于所述粒子的所述传感器列表上的传感器相关联。
8.根据权利要求6的系统组件,其中所述链接确定装置还确定从所述最后位置到所述粒子的基本根节点的所述链接是否是间接的,所述间接性是所述粒子通过除了所述互锁树数据仓库中的所述下一个子组件节点之外的子组件节点被链接的判断。
9.根据权利要求6的系统组件,其中如果所述链接确定装置确定所述最后位置通过子组件节点链接到基本根节点,则建立所述下一个子组件节点的位置作为所述新的当前位置,并且所述链接确定装置使得所述粒子的所述基本根节点中的计数器递增。
10.根据权利要求6的系统组件,其中与所述粒子相关联的所述指针识别所述互锁树数据仓库内的至少一个最后位置,并且如果所述链接确定装置确定所述最后位置将不会通过所述粒子的所述下一个子组件节点链接到基本根节点,则所述系统组件使得为所述互锁树数据仓库内的所述粒子形成新的子组件节点。
11.根据权利要求8的系统组件,其中如果所述链接确定装置确定粒子是思考的结束,则所述系统组件激活最后结果节点例程的形成,以实现所述互锁树数据仓库中的最后结果节点的形成。
12.根据权利要求11的系统组件,其中所述粒子为思考的结束的确定依赖于找到一个定界符。
13.根据权利要求12的系统组件,其中如果所述定界符是用于较高级别的定界符,则为当前级别和所述较高级别之间的每个级别添加思考节点的结束。
14.根据权利要求13的系统组件,其中如果用于所述较高级别的所述定界符适用于最高的现有级别,则在所述最高级别上添加子组件节点。
15.根据权利要求11的系统组件,其中将所述粒子发送到所述系统组件的消息中的定界符将对于所述链接确定装置识别所述粒子为思考的结束。
16.根据权利要求12的系统组件,其中所述传感器列表包括至少一个定界符作为传感器。
17.根据权利要求11的系统组件,其中如果发现所述粒子为思考的结束,则所述系统组件将有关所述最后结果节点的信息作为单子添加到单子列表。
18.根据权利要求4的系统组件,其中所述系统组件提供到在消息中发送粒子的其它系统组件的反馈,所述反馈通过所述粒子的其中之一被提交到所述系统组件之后返回位置指针数据而实现的,其中所述返回的位置指针数据标识所述子组件节点的位置,通过所述子组件节点所述系统组件将在所述互锁树数据仓库中已经建立了到所述粒子的链接。
19.根据权利要求15的系统组件,其中所述粒子可能已经由所述API实用程序系统组件提供,或从所述学习引擎系统组件提供。
20.根据权利要求4的系统组件,其中所述系统组件耦接到用于存储可标识为开关的状态变量的存储段,所述状态变量可应用于所述系统组件的任何行为,其中所述状态变量确定所述系统组件对来自所述其它系统组件的调用是如何反应的。
21.根据权利要求4的系统组件,其中所述系统组件包括用于存储可应用于所述系统组件的任何行为的状态变量的存储段,其中所述状态变量的设置确定所述系统组件对来自所述其它系统组件的调用是如何反应的。
22.根据权利要求17的系统组件,其中在所述存储段中存储的所述状态变量包括来自开关列表的至少一个开关,包括:学习(Y或N),列数(Y或N),代替列数使用的元数据字段名称(Y或N),EOT级别(数量和名称);EOTCOL(列名称),EOTVAR(变量),EOTFLD(字段项),EOTRCD(记录)。
23.根据权利要求17的系统组件,其中在所述存储段中存储的所述附加信息包括至少一个开关设置,用于当触发事件或条件已经发生时,使触发器允许和禁止从所述系统组件启动通知信号,以使得所述系统组件发送所述通知信号。
24.根据权利要求17的系统组件,其中用于允许和禁止所述存储段中存储的触发器的所述开关包括来自触发器列表的至少一个触发器,包括:新的变量,新的记录,填充丢失的变量和日志,或确认所选择的字段。
25.根据权利要求17的系统组件,其中所述系统组件存储器传感器列表由所述系统组件的传感器列表管理器管理,并且所述传感器列表管理器以根据状态设置的配置运行,所述状态用于确定其中如何运行的配置,所述状态可以由至少一个开关配置,以便如果所述传感器列表管理器接收到不在所述传感器列表中的粒子,则所述状态设置所述配置以管理不在所述传感器列表中的所述粒子。
26.根据权利要求25的传感器列表管理器,其中所述可配置的传感器列表管理器状态包括:
其中一旦发生接收到不在所述传感器列表之上的粒子则不采取任何行动的状态。
27.根据权利要求25的传感器列表管理器,其中所述可配置的传感器列表管理器状态包括:
其中一旦发生接收到不在所述传感器列表之上的粒子则发送错误的状态。
28.根据权利要求25的传感器列表管理器,其中所述可配置的传感器列表管理器状态包括:
其中一旦发生所述粒子不在所述传感器列表之上,则添加新的传感器到所述传感器列表的状态。
29.根据权利要求25的传感器列表管理器,其中所述可配置的传感器列表状态包括:
其中维护日志以记录任何所述粒子不在所述传感器列表之上的所述接收的状态。
30.根据权利要求25的传感器列表管理器,其中每个所述传感器列表管理器状态是由单独的开关设置的,以便所述状态能够同时共存。
31.一种在互锁树数据仓库系统中访问互锁树数据仓库的方法,所述方法包括:
生成到K引擎的调用,所述调用要求附加粒子到所述互锁树数据仓库以及根据所述互锁树数据仓库检索指针数据;
在所述K引擎中处理将所述检索的指针数据包含到返回消息之内的响应,以及
返回所述返回消息。
32.根据权利要求31的方法,还包括步骤:
生成下一个调用,所述下一个调用具有新的粒子并且包含所述检索的指针数据。
33.根据权利要求31的方法,其中所述方法还包括:
如果学习开关设置为学习,则还记录所述粒子为所述互锁树数据仓库中的事件。
34.根据权利要求33的方法,其中如果所述互锁树数据仓库节点具有计数器,并且所述开关设置为学习而所述粒子等同于之前记录的粒子事件,则通过递增与所述检索的指针数据相关联的基本根节点中的计数器,记录新的这种粒子。
35.一种在互锁树数据仓库系统中访问互锁树数据仓库的方法,所述方法包括:
准备用于发送粒子到K引擎的消息,其中在所述准备中,确定思考链中准备用于作为调用通过所述消息发送到所述K引擎的下一粒子是否为分支粒子事件,并且如果是分支,则在所述消息中发送先前的当前位置数据到最后一个子组件节点。
36.一种由系统组件使用用于访问互锁树数据仓库系统中的互锁树数据仓库的方法,所述系统组件具有用于接收来自其它系统组件的调用的段,所述其它系统组件包括学习引擎或API实用程序的至少其中之一,所述用于接收调用的段适用于为与所述调用的其中之一相关联的粒子,寻找所述互锁树数据仓库内的位置,其中所述系统组件仅在学习开关处于学习状态的条件下建立所述互锁树数据仓库,所述建立根据以下实现:
所述系统组件将所述粒子记录作为所述互锁树数据仓库中的事件。
37.根据权利要求36的方法,其中在将新的粒子作为事件记录之前,与从所述调用中的所述其它系统组件的其中之一接收所述粒子一致,所述系统组件接收任何指示可能与所述新的粒子相关联的当前位置的指针。
38.根据权利要求37的方法,其中所述当前指针是从一组指针中得出的,这些指针包括:空指针,最后接收的所述系统组件可能已经使用所述粒子返回的当前位置指针,或者在所述较早返回的位置指针对于相对于所述新粒子为所述其它系统组件感兴趣时的所述较早返回的当前位置指针。
39.根据权利要求36的方法,还包括维护用于将来自所述列表的传感器与所述粒子相比较的传感器列表,所述列表上的每一个所述传感器都与所述互锁树数据仓库内的基本根节点相关联,并且将每个所述粒子与所述传感器列表上的传感器相比较,以确定所述粒子是否与所述传感器列表上的任何所述传感器相匹配。
40.根据权利要求38的方法,还包括:
利用与所述粒子相关联的所述指针,识别所述互锁树数据仓库内的至少一个最后位置,
确定所述最后一个位置是否通过下一个子组件节点链接到基本根节点上,然后建立所述互锁树数据仓库中的子组件节点的现有位置作为新的当前位置。
41.根据权利要求39的方法,还包括:
确定从所述最后位置到所述粒子的根节点的所述链接是否为间接的,所述间接性是所述粒子通过除了所述互锁树数据仓库中的下一个子组件节点之外的子组件节点被链接的判断。
42.根据权利要求39的方法,如果所述确定步骤确定所述最后位置通过所述下一个子组件节点链接到所述粒子的基本根节点,则建立所述下一个子组件节点的位置作为所述新的当前位置,并且递增所述粒子的所述基本根节点中的计数器。
43.根据权利要求36的方法,其中如果与所述粒子相关联的所述指针识别出所述互锁树数据仓库中的至少最后一个位置,并且如果确定所述最后一个位置没有链接到所述粒子的基本根节点,则还包括使得为所述互锁树数据仓库内的所述粒子形成新的子组件节点。
44.根据权利要求39的方法,还包括确定粒子是否为思考的结束,并且如果发现所述粒子是思考的结束,则还包括在所述互锁树数据仓库中形成最后结果节点。
45.根据权利要求44的方法,其中如果发现所述粒子是思考的结束,则添加有关所述最后结果节点的信息作为单子到单子列表。
46.根据权利要求39的方法,其中如果发现所述粒子不在所述传感器列表上,则将有关所述最后结果节点的信息作为传感器添加到所述传感器列表。
47.根据权利要求43的方法,其中在确定粒子不在所述传感器列表上之后的步骤包括:
根据所述系统组件的状态,对于不在传感器列表上的粒子采取适当的行动。
48.根据权利要求47的方法,其中所述适当的行动包括以下步骤中的一个或多个:
发送错误消息到不在所述传感器列表上的所述粒子的始发者,
将粒子不在所述传感器列表上的判断作为日志记录,
对于粒子不在所述传感器列表上的所述判断不采取行动,
建立确定不在所述传感器列表上的所述粒子作为新的传感器,和/或
以信号方式发送对触发器的响应,以发送消息到另一个系统组件,或在所述系统外部发送消息指示发现粒子不在所述传感器列表上。
49.根据权利要求48的方法,其中在采取所述适当的行动之前,检查与所述系统组件相关联的开关设置以确定这样的状态,即所述状态将确定要采取所述一个或多个步骤中的哪一个。
50.一种用在互锁树数据仓库系统中的学习引擎系统组件,所述学习引擎用于从数据源接收数据并将所述数据转换为一系列每个都包含数据的单个粒子的调用,并且用于发送所述调用到提供接口到所述互锁树数据存储结构的K引擎组件,所述学习引擎包括:
用于粒子化从来自所述数据源的数据流直接或间接接收的数据的粒子化子组件,以及
构建并发送包含从所述粒子化组件接收的粒子的调用的发送子组件。
51.根据权利要求50的学习引擎系统组件,其中所述粒子化子组件和所述发送子组件响应于根据从应用层到所述学习引擎的调用所建立的线程,所述调用在其内具有有关所述输入数据源的信息。
52.根据权利要求50的学习引擎系统组件,其中所述学习引擎还包括建立通信子组件的协议,用于建立与从所述数据源输出的数据流相匹配的通信协议。
53.根据权利要求50的学习引擎系统组件,其中所述学习引擎系统组件由一组软件信号和编码的指令组成,当它们加载到计算机系统中时,所述计算机系统运行作为所述学习引擎系统组件。
54.根据权利要求50的学习引擎系统组件,还包括:
格式规则化子组件,用于以一种格式从数据源接收数据,并执行确保所述接收的数据具有所述互锁树数据存储结构所期望的预先确定格式所必需的任何步骤。
55.根据权利要求50的学习引擎系统组件,还包括:
元数据规则化组件,用于接收来自数据源的数据输出,并在由所述元数据规则化组件发送到所述粒子化子组件之前,执行确保所述接收的数据中的任何元数据具有所述互锁树数据存储结构所期望的预先确定格式所必需的任何步骤。
56.根据权利要求50的学习引擎系统组件,其中所述学习引擎适用于并被设置成从具有来自数据源类型列表的数据源类型的数据源接收数据,所述数据源类型包括:动态实时传感器数据,静态数据库数据,动态实时事务数据库数据,模拟器植入的数据库数据,动态生成的模拟器生成的数据。
57.根据权利要求50的学习引擎系统组件,还包括用于使得所述学习引擎检查条件的触发器装置。
58.根据权利要求57的学习引擎系统组件,其中所述学习引擎具有信号生成子组件,用于如果所述条件现存于数据中则发送响应于所述触发器的消息,所述数据是为所述互锁树数据仓库中记录的提交接收的。
59.根据权利要求57的学习引擎系统组件,其中所述触发器的所述条件定期得到满足,依赖于计时器或者计数器达到了预先确定的值。
60.根据权利要求50的学习引擎系统组件,还包括用于为了指示满足所述触发器条件的数据,使得所述学习引擎检查与所述学习引擎相关联的存储器区域,所述查询由所述学习引擎在互锁树数据仓库内检查条件而实施。
61.一种在互锁树数据仓库系统中在准备发送到互锁树数据仓库时对输入数据流进行粒子化的方法,当所述输入数据流是来自字段/记录域的数据时,所述方法包括:
从所述输入数据流中剥离无关格式;
增加和/或转换字段名称,以遵守所述粒子将由学习引擎发送到的K引擎的预先确定的字段名称元数据,
在为了遵守预先确定的传感器信息的所述剥离和增加和/或转换步骤之后,减少所述输入数据流中数据项的大小,以便所述数据项的大小匹配于所述预先确定的传感器信息。
62.一组编码到存储器内的软件信号,当其由计算机访问时,配置所述计算机以执行根据权利要求61的各步骤。
63.一种用在互锁树数据仓库系统中的API实用程序系统组件,所述API实用程序系统组件包括:
用于从所述互锁树数据仓库获取信息的多个入口点例程,所述多个入口点可以由查询部分公式化表达装置从应用层调用。
64.根据权利要求63的API实用程序系统组件,还包括:
用于利用并处理线程存储区域,以协调所述调用的处理,以及用于协调响应于所述通信的公式化表达和配置的协调器/分析器装置,以及
响应配置装置。
65.根据权利要求64的API实用程序系统组件,其中所述响应配置装置用于利用所述协调器/分析器装置以公式化和配置,并发送对所述通信的响应回到所述源。
66.一组编码到存储器内的软件信号,当其由计算机访问时,配置所述计算机以提供根据权利要求60的各单元。
67.根据权利要求63的API实用程序系统组件,其中来自所述源的所述通信是设置状态变量的指令。
68.根据权利要求63的API实用程序系统组件,其中来自所述源的所述通信是建立其它系统组件和/或应用的实例的指令。
69.根据权利要求63的API实用程序系统组件,其中来自所述源的所述通信是设置触发器的指令,以及所述状态变量配置触发器行为。
70.根据权利要求69的API实用程序系统组件,其中所述触发器为内部或者外部触发器。
71.一组编码到存储器内的软件信号,当其由计算机访问时,配置所述计算机以提供根据权利要求63的各单元。
72.一种操作根据权利要求71的API实用程序系统组件的方法,包括:
访问互锁树数据仓库。
73.一种操作根据权利要求71的API实用程序系统组件的方法,包括:
访问K引擎。
74.一种操作根据权利要求71的API实用程序的方法,包括:
修改与所述互锁树数据仓库系统内的互锁树数据仓库系统的另一组件相关联的存储器,以便设置所述组件的状态。
75.一种操作权利要求71的API实用程序的方法,包括:
建立系统组件和/或应用,用于在所述互锁树数据仓库系统中使用。
76.一种互锁树数据仓库系统,包括一组协同工作的用于在计算机系统中处理线程的系统组件的实例,所述系统组件实例至少包括:
K引擎系统组件实例,
学习引擎系统组件实例,以及
互锁树数据仓库系统组件实例。
77.根据权利要求76的互锁树数据仓库系统,还包括API实用程序系统组件的实例。
78.根据权利要求77的互锁树数据仓库系统,其中所述API实用程序系统组件实例是管理型的API实用程序系统组件。
79.根据权利要求76的互锁树数据仓库系统,其中每一个所述系统组件的每一个实例都具有相关的存储器。
80.根据权利要求77的互锁树数据仓库系统,其中所述系统组件的所有所述实例都驻留于单个计算机系统中,并且其中到所述学习引擎和所述API实用程序的所述实例的通信通过与所述单个计算机系统的通信实现。
81.根据权利要求80的互锁树数据仓库系统,其中所述实现的通信允许通过GUI的直接用户通信。
82.根据权利要求80的互锁树数据仓库系统,其中所述实现的通信允许通过接口的应用通信。
83.一种互锁树数据仓库系统,包括用于处理计算机系统中的线程的一组协作的系统组件实例,所述系统组件实例至少包括:
K引擎系统组件实例,
API实用程序系统组件实例,以及
互锁树数据仓库系统组件实例。
84.根据权利要求83的互锁树数据仓库系统,还包括学习引擎系统组件的实例。
85.根据权利要求83的互锁树数据仓库系统,其中所述API实用程序系统组件实例是管理型API实用程序系统组件。
86.根据权利要求83的互锁树数据仓库系统,其中每个所述系统组件的每一个所述实例具有相关的存储器。
87.根据权利要求83的互锁树数据仓库系统,其中所述系统组件的所有所述实例都驻留于单个计算机系统中,并且其中到所述API实用程序的所述实例的通信通过与所述单个计算机系统的通信实现。
88.根据权利要求87的互锁树数据仓库系统,其中所述实现的通信允许通过GUI的直接用户通信。
89.根据权利要求87的互锁树数据仓库系统,其中所述实现的通信允许通过接口的应用通信。
CNA2005800260578A 2004-06-29 2005-06-02 用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作 Pending CN101432725A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/879,329 US7593923B1 (en) 2004-06-29 2004-06-29 Functional operations for accessing and/or building interlocking trees datastores to enable their use with applications software
US10/879,329 2004-06-29

Publications (1)

Publication Number Publication Date
CN101432725A true CN101432725A (zh) 2009-05-13

Family

ID=35784305

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800260578A Pending CN101432725A (zh) 2004-06-29 2005-06-02 用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作

Country Status (6)

Country Link
US (1) US7593923B1 (zh)
EP (1) EP1789868A4 (zh)
JP (1) JP2008505390A (zh)
CN (1) CN101432725A (zh)
CA (1) CA2571490A1 (zh)
WO (1) WO2006007272A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8806451B2 (en) * 2011-06-16 2014-08-12 Microsoft Corporation Monad based cloud computing
US9471629B2 (en) * 2013-04-19 2016-10-18 Software AG USA Inc. Method and apparatus for visual dynamic discovery and analytics exploration application on static and/or real-time data using an a priori model-free process
US20210294303A1 (en) * 2020-03-17 2021-09-23 UiPath, Inc. In-process trigger management for robotic process automation (rpa)

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286330A (en) 1976-04-07 1981-08-25 Isaacson Joel D Autonomic string-manipulation system
JPH0484342A (ja) * 1990-07-27 1992-03-17 Nec Corp 木構造データのファイル格納方式
US5592667A (en) 1991-05-29 1997-01-07 Triada, Ltd. Method of storing compressed data for accelerated interrogation
US5245337A (en) 1991-05-29 1993-09-14 Triada, Ltd. Data compression with pipeline processors having separate memories
US5634133A (en) 1992-01-17 1997-05-27 Compaq Computer Corporation Constraint based graphics system
JP2964831B2 (ja) * 1993-03-31 1999-10-18 富士ゼロックス株式会社 構造データ処理装置
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
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
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
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
US5966709A (en) 1997-09-26 1999-10-12 Triada, Ltd. Method of optimizing an N-gram memory structure
US6018734A (en) 1997-09-29 2000-01-25 Triada, Ltd. Multi-dimensional pattern analysis
US5983232A (en) 1997-09-29 1999-11-09 Triada, Ltd. Virtual structured information system
US6029170A (en) 1997-11-25 2000-02-22 International Business Machines Corporation Hybrid tree array data structure and method
US6792432B1 (en) * 1998-03-31 2004-09-14 Sybase, Inc. Database system with methods providing high-concurrency access in B-Tree structures
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
US6826556B1 (en) 1998-10-02 2004-11-30 Ncr Corporation Techniques for deploying analytic models in a parallel
AU3109200A (en) 1998-12-04 2000-06-26 Technology Enabling Company, Llc Systems and methods for organizing data
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
US6920608B1 (en) 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US6470344B1 (en) 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6711585B1 (en) 1999-06-15 2004-03-23 Kanisa Inc. System and method for implementing a knowledge management system
US6505184B1 (en) 1999-07-30 2003-01-07 Unisys Corporation Autognomic decision making system and method
US6470277B1 (en) 1999-07-30 2002-10-22 Agy Therapeutics, Inc. Techniques for facilitating identification of candidate genes
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
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
US6394263B1 (en) 1999-07-30 2002-05-28 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
US6721723B1 (en) * 1999-12-23 2004-04-13 1St Desk Systems, Inc. Streaming metatree data structure for indexing information in a data base
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
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
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
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
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
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
WO2002027551A2 (en) * 2000-08-01 2002-04-04 Nimble Technology, Inc. Nested conditional relations (ncr) model and algebra
US6957230B2 (en) * 2000-11-30 2005-10-18 Microsoft Corporation Dynamically generating multiple hierarchies of inter-object relationships based on object attribute values
US20020103819A1 (en) * 2000-12-12 2002-08-01 Fresher Information Corporation Technique for stabilizing data in a non-log based information storage and retrieval system
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
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
CA2446262A1 (en) 2001-05-04 2002-11-14 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
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 한국과학기술원 영역-합 질의를 위한 동적 업데이트 큐브와 하이브리드질의 검색방법
DK200101619A (da) 2001-11-01 2003-05-02 Syntonetic Aps Automat til skabelon-baseret sekvensproduktion, samt metode for automatisk sekvensproduktion
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
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
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
JP4737914B2 (ja) * 2002-10-02 2011-08-03 ケープレックス・インク 文書改訂支援プログラム及び当該支援プログラムを記録したコンピュータ読み取り可能媒体、並びに文書改訂支援装置。
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文書検索装置
US20040230893A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges
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

Also Published As

Publication number Publication date
EP1789868A2 (en) 2007-05-30
EP1789868A4 (en) 2010-02-17
WO2006007272A2 (en) 2006-01-19
JP2008505390A (ja) 2008-02-21
CA2571490A1 (en) 2006-01-19
US7593923B1 (en) 2009-09-22
WO2006007272A3 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
US20220300499A1 (en) Metadata-based general request translator for distributed computer systems
Ghiani et al. Personalization of context-dependent applications through trigger-action rules
US6567812B1 (en) Management of query result complexity using weighted criteria for hierarchical data structuring
US8219904B2 (en) Meta-document and method of managing
CN1745364B (zh) 用于扩展应用程序首选项类的系统和方法
US20020049689A1 (en) Systems and methods for visual optimal ordered knowledge learning structures
Jeusfeld et al. Metamodeling for method engineering
CN105378721A (zh) 知识捕获和发现系统
EP1644822A2 (en) Machine-readable medium data management system and method f or tracking real-world objects
US7325010B1 (en) Information modeling method and database searching method using the information modeling method
CN101432725A (zh) 用于访问和/或建立互锁树数据仓库以使得它们能够与应用软件一同使用的功能操作
US20110246535A1 (en) Apparatus and Method for Constructing Data Applications in an Unstructured Data Environment
Lane et al. A theory-driven testing methodology for developing scientific software
Bai et al. Intelligent platform for real-time page view statistics using educational big data digital resource sharing
Ciortea et al. Autonomous search in a social and ubiquitous Web
Chang et al. Adlet: an active document abstraction for multimedia information fusion
US8250039B2 (en) Information processing method
Palopoli et al. Experiences using DIKE, a system for supporting cooperative information system and data warehouse design
Gašpar et al. Design and implementation of a client warehouse application over an enterprise resource planning system for mobile devices
CN100429654C (zh) 用于管理来自单个接口的多层次数据的技术
Castellano et al. A flexible mining architecture for providing new e-knowledge services
Lohani et al. Intelligent software agents for library applications
Kaufman et al. Discovery planning: Multistrategy learning in data mining
JP2955289B2 (ja) 関係型データベースの管理における対話型エラー処理装置
DANJUMA DESIGN AND IMPLEMENTATION OF AN ONLINE STUDENT RECORDS SYSTEM

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

Open date: 20090513