CN101535946A - 素数网数据管理*** - Google Patents
素数网数据管理*** Download PDFInfo
- Publication number
- CN101535946A CN101535946A CNA200780034364XA CN200780034364A CN101535946A CN 101535946 A CN101535946 A CN 101535946A CN A200780034364X A CNA200780034364X A CN A200780034364XA CN 200780034364 A CN200780034364 A CN 200780034364A CN 101535946 A CN101535946 A CN 101535946A
- Authority
- CN
- China
- Prior art keywords
- node
- link
- identifier
- data structure
- father
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据结构包含映射到素数网结构(100)的节点的多个记录,其中每一节点唯一地由整数节点识别符识别。在所述素数网结构(100)中,每一节点与整数节点识别符和信息项目相关联。具有节点识别符N的每一特定节点与一个或一个以上其它节点有关,所述其它节点具有第N个素数为一因子的节点识别符。任何复杂问题域中的信息项目均可存储在这种类型的数据结构中,且接着可使用管理算法(110)来披露所述数据结构中的所述项目之间的关系。
Description
技术领域
本发明大体上涉及信息技术,且明确地说,涉及将来自复杂问题域的信息模型化为数据表示,且使用所述数据表示来获得关于所述问题域的知识。
背景技术
信息技术的技术现状的基本问题之一是要求将复杂的知识硬塞进过于简单的数据结构(例如,表、列表、图表或树)中。但当问题被迫进入简单的数据表示中时,问题的固有复杂性并未消除;其只不过是溢出到用于操纵所述数据表示的算法中。举例来说,将来自复杂域的数据存储到关系表结构中通常需要多个表,所述表中的重复条目,以及维持数据的一致性、完整性和关系的大量规则。因此,降低数据表示本身的复杂性仅仅导致用于管理所述数据表示的算法的复杂性增加。因为现有数据结构中的关系模型中的单位元素(identity)之间不存在***关系,所以必须存在用于参照完整性的一组非常复杂的规则,以及用于对数据结构的查询、接合和其它操作的复杂规则。
为了简化用于处理数据结构的算法,需要一种完全捕获数据表示中的真实问题域的复杂性的方式。以此方式,可简化用于处理数据的算法,从而使所存储的信息更适用于解决特定域中的复杂问题。
发明内容
为了解决此复杂性问题,描述一种数据管理***,其能够捕获数据表示本身中的问题域的完整复杂性。所述数据管理***简化了用于存取和操纵保存在所述***中的数据的算法。简化数据管理和存取算法使在任何给定问题域中实施问题求解更容易,且在许多情况下是可行的,在所述情况下,使用常规数据表示来实施求解以前是不可行的。
所述数据表示应用素数网的概念,素数网是存储个别记录且通过维持与每一记录相关联的素数与整数之间的特定关系而使那些记录相关的一种复杂的数据表示。在素数网中,结构的每一节点与数据的特定项目相关联,且由整数N(被称为节点识别符)唯一地识别。每一节点可包含到达某些其它节点的一个或一个以上定向链路。对于由节点识别符N识别的节点,发源于所述节点的链路由第N个素数P唯一地识别;因此,还可将节点识别符理解为素数索引,因为任何给定N均指示第N个素数P。可将值P用作从节点N开始的其链路的链路识别符。将任何节点识别符N的值计算为指向所述节点中的所有定向链路的链路识别符P1到Px的乘积。所述结构中的链路识别符可具有值1或至多达某一指定最大值的任何素数,且节点识别符可具有值0或用于导向所述节点识别符的节点处的链路识别符的素数的集合的任何整数乘积。
为了进一步阐述,素数网数据表示的一个实施例包含多个记录,所述记录与信息项目相关联,且由素数集合唯一地界定,所述素数的乘积是联合所述记录而存储的唯一整数。(为了简单起见,可以说识别符存储在记录“中”,将其理解为包含将所述识别符物理上存储在所述记录中,以及联合所述记录但物理上与所述记录分离或以任何其它适当的存储关系而存储所述识别符)。因为所述记录中的每一者与素数集合的唯一整数乘积相关联,所以所述记录可根据素数网结构而直接与一个或一个以上其它记录相关。以此方式,素数网充当空白模板,问题域中的信息项目可根据数据中根据问题域的模型而实际存在的任何关系而映射到所述空白模板上。因为每一节点可具有较大数目的入站和出站链路,所以节点之间的关系的数目和复杂性可超出常规数据结构的能力许多而按比例缩放。这允许素数网数据表示将问题域中的几乎任何一组复杂的关系模型化,且捕获数据中可能存在的复杂关系和关联。接着可使用素数网数据结构来提取额外信息,且识别所述数据结构中的项目的其它固有关系,即无需事先知道的关系。
在一个实施例中,素数网数据表示包含多个记录,其每一者与一项目相关联,所述项目可为(不限于)任何问题域中的任何种类的对象、事物或概念。一个简单的实例是项目可以是人,且某一数目的记录可与所述人相关联,例如姓名、生日等等。所述数据表示中的每一记录还通过唯一整数节点识别符(存储在所述记录中的N)而与素数网结构中的唯一节点相关联。如果问题域中的项目与所述域中的一个或一个以上其它项目具有定向关系,那么所述记录还将与一个或一个以上出站链路相关联。特定节点的所有出站链路均具有共同唯一链路识别符P,其中P为第N个素数(或1,如果节点识别符为0的话)。对于每一记录,节点识别符N是入站链路识别符的乘积;入站链路识别符即从其它节点指向所述节点中的定向链路的链路识别符。这些入站和出站链路表示问题域中的项目之间的定向关系。
提供许多数据结构管理模块,以用于管理素数网数据结构以及披露所述数据结构中的项目之间的关系。在本发明的各个实施例中,所述管理模块包含:用于添加或删除素数网中的特定位置中的信息项目的模块;用于添加或删除数据结构中的项目之间的关系的模块;用于搜索数据结构中的项目的祖代或子代关系的模块;以及用于识别所述结构中的任何两个项目之间的关系的模块。仅存在可与素数网数据结构一起使用的管理模块的几个实例,因为所述结构基于其问题域的模型而启用许多有用的过程。
因此,此素数网数据结构在其许多链路和节点之间具有所有必要丰富度和多样性,以形成严格意义上界限分明的结构,其与大多数问题域的数据同构,不管所述问题域的复杂性如何。不同于先前所使用的数据结构和模型,素数网数据结构并非固有地为规则且重复的。素数网数据结构含有无线种类的子结构,所述子结构中的一者可与问题域的自然结构匹配。甚至可使用素数网结构的子结构来模仿常规数据结构,例如表和树结构,或所述子结构可形成适合特定问题域的全新结构。
此发明内容和以下具体实施方式中所描述的特征和优势并非包括一切。所属领域的一般技术人员鉴于本发明的图式、说明书和权利要求书将明白许多额外特征和优势。
附图说明
图1是展示基本素数网结构的关系的图。
图2A和图2B是实例素数网结构的若干部分的替代表示。
图3A是根据本发明实施例的数据结构的简单实例,且图3B是图3A的数据结构的实施方案的实例,其展示数据结构中的信息项目之间的关系。
图4A是应用于特定问题域(实例金融机构)的素数网数据结构的图解表示,且图4B说明根据本发明实施例图4A的数据结构中的信息项目之间的关系。
图5是根据本发明实施例用于使用数据结构的结构的示意图。
图6是根据本发明实施例数据结构的示意图。
各图仅出于说明的目的而描绘本发明的各个实施例。所属领域的技术人员从以下论述中将容易认识到,可在不脱离本文所描述的本发明的原理的情况下使用本文所说明的结构和方法的替代实施例。
具体实施方式
素数网数学
本文所描述的数据结构对应于素数网结构的各种范例。素数网是复杂的计算机实施的数据结构,类似于部分通过使用整数与素数之间的某些关系来链接所述结构的节点而形成的定向图表。素数网中的每一节点与一节点识别符相关联,所述节点识别符是唯一地识别所述节点的整数。每一节点可包含从所述节点到另一节点的一个或一个以上出站链接;也就是说,节点可以是朝其它节点导向的许多链路的源头。从具有节点识别符N的节点开始的出站链路每一者由链路识别符PN识别,其中PN是第N个素数(其中数2为第1个素数)。接着链接素数网中的节点,使得在具有节点识别符N的节点以具有链路识别符PN的链路链接到具有节点识别符M的另一节点的情况下,于是PN为M的素数因子,其中PN为第N个素数。因此,一些节点可不具有出站链路。举例来说,在所允许的最大链路识别符为第N个素数的***中,具有大于N的节点识别符的任何节点都将不具有传出链路。另外,素数网结构还可包含具有节点识别符0以及链路识别符1的节点。
如本文所使用,节点与其出站链路相关联,使得具有节点识别符N的节点也具有链路识别符PN,其中PN是第N个素数。为了简单起见,使用以下术语:
·与节点识别符N相关联的节点可被称为“节点N”。
·与链路识别符P相关联的链路可被称为“链路P”。(另外,具有节点识别符0的节点具有链路识别符1。)
·第N个素数可被称为PN,其为节点N的素数识别符。
以此方式,节点可由素数识别符唯一地识别,所述素数识别符与从所述节点开始的出站链路的每一者的链路识别符相同。节点的节点识别符与链路识别符因此相关,且由于其唯一性,所以可依据任一者确定另一者。节点和链路的识别符之间的这种关系是使素数网能够完全捕获问题域的数据中的任何任意关系同时对数据强制实施一致性和完整性的特征之一。
图1是说明根据素数网结构的节点的一部分的关系的概念图。为了避免混乱,从图1省略共同链路识别符1和与其相关联的链路的大多数出现。尽管图1是在概念上呈现的,但素数网数据表示在计算机***中的实际实施可在给定计算机存储器的物理结构的情况下具有不同的物理表示。另外,未展示与各个节点相关联的数据记录,以避免混淆基本结构。素数网结构理论上可无界限地向外延伸,但在实际计算环境下,通常将存在P的上限或对结构的某一其它大小约束(例如,对节点、链路的数目;总数据大小或某一其它适当量度的限制)。在素数网的大小受限的情况下,一些节点可能不具有出站定向链路。
因此根据节点识别符与链路识别符之间的关系来界定节点之间的关系。此识别符指配模型可能与常规数据结构(例如表)形成对比,在常规数据结构中,使用唯一数字识别符,但相关数据元素的识别符不具有可用于操纵所述数据元素的特定逻辑或数学关系。每一节点具有从任何其它节点开始的入站链路,所述链路的链路识别符是所述节点的节点识别符的素数因子中的一者。举例来说,具有节点识别符15的节点(“节点15”)具有从节点2和节点3开始的入站链路,因为其节点识别符15的素数因子为3(其为第2个素数)和5(其为第3个素数)。
给定节点还可具有到达节点识别符为所述给定节点的链路识别符的倍数的其它节点的每一者的出站链路。举例来说,节点3具有到达节点5、10和15的出站链路。这是因为第3个素数为5,所以来自节点3的链路识别符为5,其为节点5、10和15的节点识别符的因子。
本文引入术语“素数排序(primordination)”来描述素数网中的节点之间的链路的定向关系。素数排序是整数N与另一整数M之间的关系,其中第N个素数P(PN)为M的因子。根据此识别符指配规则,节点N被说成对节点M进行“素数排序”。对给定节点进行素数排序的节点的集合中的节点因此被称为给定节点的“素数坐标(primordinate)”。举例来说,如果存在与节点N、M和O相关的节点S,那么S等于第N个、第M个和第O个素数的乘积(即,S=PNPMPO)。因此,出站链路识别符为另一节点的节点识别符的素数因子的任何节点因此对所述另一节点进行素数排序。
可参看图2A进一步阐释素数排序的过程,图2A说明素数网的一部分。对于此说明且在本文献的其余部分中,具有节点识别符N的节点将被称为节点N。在素数网的此部分中,节点2具有从节点1开始的入站链路,且节点6具有从节点1和节点2开始的入站链路。此关系是基于素数排序的规则的。举例来说,2是第1个素数,其表示节点1具有链路识别符2,2是节点2的素数因子(在此情况下,是唯一素数因子)。因此,节点1对节点2进行素数排序。此外,由于3是第2个素数,且因为2和3是6的素数因子,于是节点1和节点2是节点6的素数坐标。因此,素数网数据结构中的物理记录可相应地与其它记录相关。
素数网中的链路可表示问题域中的任何种类的定向关系。一种定向关系是因果关系,其中节点由对应于其素数坐标的节点导致或是对应于其素数坐标的节点的结果。另一种关系是从属关系,其中与素数相关联的节点是由与其素数坐标相关联的节点界定的每一类中的一员。因果关系和从属关系仅仅是可使用素数网中的链路来模型化的关系的类型的两个实例。素数与其素数坐标之间的定向关系可表示问题域中的两个项目可彼此相关的任何定向方式。此外,单个素数网中的不同链路可表示不同类型的关系,从而创建混合链接结构。不存在每一链路指示两个节点之间的同一类型的关系的基本要求;关系的语义由将素数网用于给定应用程序的应用程序开发人员确定。
图2B说明图2A中所展示的素数网的部分的替代表示,其中将节点之间的关系说明为维恩图格式(Venn diagram format)的改编版中的群组的从属关系。这种表示在链路表示一个节点是另一节点的元素的情况下可能是适当的。可了解,逻辑上,图2A和图2B的结构就素数网结构和素数排序之后的规则来说是相同的。举例来说,图2A的表示可用于指示节点6由节点1和节点2组合导致,且节点2由节点1单独导致。相应地,图2B可指示节点6仅是节点1和节点2的成员,而节点2是节点1的成员。图2A和图2B中表示的关系的具体实例是日、月和年之间的关系。给定日是月和年的成员,而月是年的成员。
不管怎样表示,使用素数网结构模型化的关系均可基于特定数据结构的设计者创建的模型而具有任何所需重要性。此外,素数网内的不同链路可具有不同的重要性。举例来说,图2A和图2B中所示的模型可指示节点6由节点1导致以及节点6由节点2导致,节点2为节点1的成员。
将问题域映射到素数网表示
为问题域创建模型是通过映射所述域中的实体或信息项目连同其关系来实现的。域中的每一概念、实体或事物(被称为信息项目)均被指配有唯一整数节点识别符,其对应于素数网结构中的节点。以素数网中的节点之间的链路对应于问题域中的信息项目之间的关系(例如,因果关系、从属关系、继承关系(is-a)、聚合关系(has-a)、父子关系、类/子类关系等)的方式来指配节点识别符。
如果域中的实体之间的基本关系是从属关系,那么信息项目A为信息项目B的元素所借助的从属函数由指配给A的节点由指配给B的节点进行素数排序所借助的数据管理操作来实施。类似地,如果基本关系是因果关系,那么信息项目A由项目B导致所借助的因果关系同样由指配给A的节点由指配给B的节点进行素数排序所借助的数据管理操作来实施。无论对于给定问题域中的两个项目来说信息项目之间的基本关系如何,均可将所述关系映射到素数排序的逻辑关系,其又经由素数排序指配规则在计算机***中实施。将素数排序本身用作问题域中的基本关系也是可能的,其中素数排序成为任何两个项目之间的一般关系。
图3A和图3B说明其中信息项目A到E已根据素数网结构存储在计算机存储器中的素数网数据表示的图解。图3B说明使此实例域中的项目互相关联的素数排序关系。素数网结构中的每一节点具有与节点识别符相关联的信息项目。如图3A中所示,项目C由项目A和B进行素数排序,且项目D和E每一者由项目C进行素数排序。如图3B中所示,项目C由项目A和B进行素数排序,因为项目C的节点识别符77因子分解为7和11(其分别为项目A和项目B的链路识别符)。此外,项目C对项目D和E进行素数排序,因为项目C的链路识别符389是项目D和项目E的节点识别符(分别为778和1167)的每一者的因子。注意,与项目C的这些直接关系创建了项目D和E与项目A和B之间的间接关系。
素数网中的概念管理
在素数网数据表示中,不具有入站链路的节点被称为根节点。素数网子结构中的根节点可被理解为等效于理论中的公理,因为它们不取决于其它节点或从其它节点导出关系。因此,根节点表示从中建立所有其它概念的预定义或先验概念。举例来说,在表式数据结构中,每一行和列是未界定的,且表中的单元是根据所述行和列来界定的。在简单的素数网(例如图1中所说明)中,仅存在一个未界定的节点,即节点身份为0的节点。但在真实世界问题域中,通常将存在许多根概念。因此,通常将需要在素数网中创建额外的根节点。在一个实施例中,这是通过在素数网中人工创建一个或一个以上“空白”来完成的。
空白是素数网结构中的空链路。可通过宣布节点识别符的链路识别符(即,素数因子)中的每一者为空白来实施根节点。一旦素数链路识别符已被宣布为空白,就不允许关系穿过由所述素数识别的链路。本质上,不允许根节点向上由素数网中的任何其它节点联系。表达此情形的另一种方式是说根节点不具有对其它节点的相依关系(例如,从属关系、因果关系等)。
素数网结构中的每个节点具有不同的入站链路集合。除用于创建根节点之外,空白可用于创建有效地具有重复入站链路的节点的集合。使链路识别符空白创建了具有同一非空白有效链路集合的两个或两个以上节点。这些节点保留其唯一节点身份,因为空白链路的链路识别符仍被用作确定节点识别符的过程中的因子。图4A和图4B中所展示的实例数据结构中说明将空白用于模型化其中多个节点具有同一有效入站链路集合的问题域。
图4A是金融机构问题域中的信息项目可如何映射到素数网结构的实例,其中图4B中展示相应的节点和链路识别符。在此数据结构中,已将素数2和3宣布为空白链路识别符。所述空白允许多个项目直接且完全由相同项目进行素数排序,这是不具有空白的原本素数网中决不会发生的情形。图4B中未说明与空白链路2和3相关联的根节点,因为它们在图4A中所模型化的问题域中不具有独立意义,除非允许多个项目具有同一定义。
举例来说,图4A中的信息项目“顾客”和“雇员”每一者与项目“人”相关联,因为“顾客”和“雇员”两者都是金融领域中“人”的类型。在图4B中,可看到“顾客”和“雇员”两者通过链路识别符5与“人”相关;因此“顾客”和“雇员”的节点识别符的素数因子应为5。但“顾客”和“雇员”的节点识别符不能相同,因为数据结构中的节点表示不同的事物。
在此实例中,“顾客”具有节点识别符5和链路识别符11(因为11是第5个素数),且“雇员”具有节点识别符10(或5·2)和链路识别符29(因为29是第10个素数)。链路识别符2的空白因此允许具有相同有效非空白入站链路的两个信息项目(“顾客”和“雇员”)之间的区分。或者,空白链路识别符2可被视为不定链路,因为已知“雇员”与“顾客”不同,但不存在区分上述两者的特定链路。
在实际应用中,如果特定记录下没有其它记录相关,那么无需将链路识别符物理上指配给所述特定记录。这是因为记录的链路识别符由于与在其下方相关的其它记录的节点识别符的数学关系而有用。但如果所述记录下方没有记录相关,那么所述记录的链路识别符不能为任何其它目的服务。由于唯一素数链路识别符的值可能非常快地增长,所以对于计算机来说,避免计算和存储所述记录的链路识别符可能是有利的。然而,即使计算机并不物理上存储记录的唯一素数链路识别符,所述记录仍可被视为具有与之相关联的此素数识别符。
在一个实施例中,如果单个节点识别符将使节点的链路识别符过大(例如,由于节点具有较大数目的入站链路,所以具有大于***宣布的链路识别符最大值的值的链路识别符),那么可将一节点分成两个节点,每个节点具有其自身的节点识别符。当上述情况发生时,***可增加对最大素数的上限,这消极地影响性能,或***可将所述节点分成两个或两个以上单独节点,且尝试使用适当的算法来使它们保持同步。这呈现性能与算法复杂性之间的折衷。
为了分割节点群组(即,如由同一组非空白链路界定),应用程序工程师可创建单独的数据结构来跟踪所分割群组之间的关系,其使用所述新的数据结构来使所分割节点中的项目保持同步。一种管理所分割群组的途径是创建新的素数网结构,其中每个节点都是根节点。为了这样做,有必要创建足够的空白以确保每一节点仅具有空白入站链路。如果小于或等于N的每个素数是空白的,那么当P等于第N个素数时,N与P之间(包含N和P)的每个素数都将为根节点。如果素数网结构中的每个节点都是根节点,那么任何节点的变化对任何其它节点不具有影响。因此节点识别符是只要链路识别符不超过P就决不会改变的绝对识别符。一旦针对节点建立了绝对识别符,就有可能在其它素数网结构中设置两个(或两个以上)相对身份,且经由决不会改变的绝对识别符来跟踪所述相对身份。此技术可允许素数网***适度地按比例缩放。
软件结构
图5说明用于设计和使用本文所描述的数据结构的实施例的软件结构的一个实施例。所述结构包括素数网数据结构100,如本文所描述。还包含一组数据结构管理模块110,以用于设计数据结构100和对数据结构100作出任何所需改变,以及一旦数据结构100被构造,就用于从数据结构100提取信息。管理模块110可包括实施相应的管理算法中的一者或一者以上的计算机代码,如本文所描述。所述软件可优选地使用直观图形用户界面来接收来自用户的输入。所述输入可用于修改数据结构100或用于从数据结构100获得信息。所述软件接着提供输出,所述输出可以是对改变已作出的确认或所请求的信息。
数据结构100中的数据可以许多方式存储,其视实施方案和可用的***资源而定。图6说明根据本发明一个实施例的数据结构100;然而,可应用各种其它技术来基于待由软件模块110和120执行的素数计算而优化数据结构100。在所展示的实施例中,数据结构100包括节点的列表135、所使用的链路识别符的列表140、所使用的链路识别符的位图145、空白链路识别符的列表150,以及待用于***中的链路识别符的最大素数的宣称值155。
使用信息项目的列表135来使已映射到素数网结构的项目与它们所映射到的特定节点识别符相关联。这有效地提供从真实世界问题域到素数网结构中的映射。在所展示的实施例中,项目的列表135存储在素数网结构中与项目的节点识别符相关联的每一项目的标签;所述标签可以是任何类型的数据,例如文本、数字、图形、音频/视频等。另外,列表135中的项目可由指针、索引或其它间接方法指定,而不是使每一项目的标签相关联。这将进一步减小存储器中的列表135的大小。如果节点具有出站链路,那么列表135还含有与所述节点相关联的链路识别符。尽管可从节点识别符计算此值,但所述值存储在这里,以避免在每次需要所述值时计算的额外开销。
数据结构100还存储与节点识别符相关联的素数的列表140以及所使用的素数的位图145。此列表140和位图145并非固有必要的,因为所使用的素数可从项目的列表135获得,但它们可促进所使用的算法处理数据结构100。所使用的素数的列表140仅存储已与信息项目相关联的素数识别符的每一者的有序列表。此列表140可用于更高效地计算第N个素数。所使用的素数的位图145是在特定节点与所使用的素数链路识别符相关联的情况下存储1且否则存储0的有序位图。此位图145可用于对素数网中的特定节点是否具有相关联的信息项目的快速识别。
数据结构100还含有优选经定序的空白链路识别符的列表150。这允许算法确定素数网中的特定链路是否已宣布为空白。通过咨询此列表,算法可快速确定特定节点识别符的哪些素数因子是空白(且因此不对应于有效入站链路),以及哪些素数因子不是空白(且因此对应于有效入站链路)。
在一个实施例中,数据结构100进一步包含标签/节点识别符索引160,其用于使项目标签与其一个或一个以上相关联的节点识别符相关联,且许可对与每一标签相关联的节点识别符的直接查找。索引160可以字母数字混合编制的方式对项目标签进行分类,以允许从特定项目标签中快速查找节点识别符。在一个实施例中,索引160使每一标签与第一节点识别符相关联,且如果所述标签对于其它节点识别符是共同的,那么进一步使所述标签与额外节点识别符相关联。如图6中所说明,索引160可通过包含对所链接列表的参考或指针来使任何特定标签与额外识别符(例如,N2到Nx)相关联。
标签/节点识别符索引160允许以标签表达的查询转译为基本素数网表示的特定节点。尽管节点对于问题域中的实体是唯一的,但在数据结构100的实施例的某些应用中,同一项目标签可用于问题域中的若干不同实体。举例来说,问题域中可能存在“乔治·史密斯(George Smith)”的多个范例。标签/节点识别符索引160因此促进与数据结构100中的单个标签相关的多个节点识别符的使用,使得***可经由与用户的互动来解决这种情况引起的任何含糊性。举例来说,所述***可基于标签而接受来自用户的输入或查询。所述***接着将尝试使用此索引160将所述标签转译为特定节点识别符。如果特定实体(例如由唯一节点识别符识别)无法以其它方式从上下文或某一其它信息中清楚地确定,那么所述***可询问用户哪一“乔治·史密斯”是所要参考的。
在另一实施例中,链路识别符/节点识别符索引数据集165将链路识别符与其所指向的节点识别符中的每一者相关。以此方式,数据集165允许从相应的链路识别符中直接查找节点识别符。当有必要确定给定链路识别符所指向的所有节点时,可将链路识别符/节点识别符索引数据集165用作搜索的替代物。由于链路识别符所指向的节点识别符的数目并非预定的,所以数据集165可在所链接列表中的第一节点识别符之后存储额外的节点识别符。可(例如)使用具有链路识别符作为密钥字段的节点数据集135来创建链路识别符/节点识别符索引数据集165。
尽管使用链路识别符/节点识别符索引数据集165可大大加快发现一个或一个以上链路识别符所指向的节点识别符的过程,但其也可能添加相当大的维护额外开销。由于此维护额外开销的缘故,所以在各种实施方案中,可依据具体情况评估数据集165的使用。举例来说,其可能用于静态问题域,而不用于高度易失性的问题域。
图6是数据结构100的实施例的逻辑说明,且所属领域的技术人员将理解,无需将数据结构100实施为保存所有此信息的整体式数据结构。实际上,实施方案可以是共同形成数据结构100的许多离散结构。数据结构100因此可作为多个不连续单元物理上存储在存储器中,且可在操作期间当检索时作为一个或一个以上个别实体加载到存储器中。
软件管理模块
如上文所阐释,素数网数据结构允许问题域的复杂性映射到数据结构本身,而不是以用于处理所述数据结构的算法编码所述复杂性。这允许管理模块110大大简化。下文更详细地描述可能的管理模块110中的一些;然而,可了解,可视所需的结果而定,使用许多其它算法和技术来修改素数网数据结构,且/或从素数网数据结构提取信息。
可与素数网数据结构一起使用的一种类型的管理模块包含用于修改数据结构的算法。这种类型的模块可包含用于添加节点或从素数网结构删除节点或者添加或移除所述结构中的节点之间的链路的过程。使用这些基本工具,可构造任何所需的数据结构,以将特定问题域中的一组信息项目映射到素数网结构的所需部分。这些工具还允许现有数据结构被修改,(例如)以将记录添加到数据结构,作为正被模型化的问题域变化中的真实世界事件。
在一个实施例中,管理模块110包含用于添加信息项目作为新节点的过程,其中所添加的节点可作为子节点链接到一个或一个以上其它父节点。对所述过程的输入因此包含将在何处添加信息项目,即哪些节点将是所添加节点的父节点。在一个实施例中,管理模块110使用以下步骤将新的信息项目添加到数据结构:
1.接受正被添加的信息项目将从其相关的一个或一个以上父节点作为输入。
2.计算与所识别的父节点相关联的链路识别符的乘积。
3.为了避免与现有节点冲突,使用(例如)所指配节点识别符的列表135来检查所得乘积是否已经用作节点识别符。如果所述乘积已经被指配,那么使所述乘积乘以来自空白列表150的一个或一个以上空白的每一可能组合,直到所得乘积不用作节点识别符为止。如果没有现有空白的组合得出未使用的节点识别符,那么宣布新的空白,且接着将其用于计算新的乘积。所述***可要求用户检验项目确实是新的,而不是现有项目的副本。
4.使用上文获得的乘积作为新节点的节点识别符来添加新的节点,且使所述新节点与正被添加的信息项目相关联。
在另一实施例中,管理模块110包含用于从数据结构删除信息项目的过程。可使用以下步骤来执行从数据结构删除信息项目:
1.接受将移除的信息项目作为输入。
2.从数据结构移除对应于节点的记录。
3.如果所述节点具有链路识别符,那么找出具有是所述链路识别符的倍数的节点识别符的所有节点。可通过使每一节点识别符除以所述链路识别符以确定所述节点识别符是否是所述链路识别符的精确倍数,或通过在链路识别符/节点识别符索引数据集165中查找所述链路识别符以确定所述链路所指向的所有节点,来找出这些节点。
4.对于在步骤3中找到的每一节点,移除从删除的节点到找到的节点的链路,如下文所描述。
如本文所阐释,与根节点相关联的信息项目是预定义的,且不与数据结构中的任何其它信息项目相关。这些根节点是问题域中的其它项目经界定所依据的节点。在一个实施例中,在数据结构中创建新的根节点包括以下步骤:
1.选择未使用的节点并获得其节点识别符。未使用的节点是不包含在所指配的节点识别符的列表135上的节点。如果所述节点有可能将用于对其它节点进行素数排序,那么其可有助于选择具有较小整数值的节点识别符,以避免其它节点识别符对计算机***的资源来说变得过大。
2.对所述节点识别符进行因子分解以确定其素数因子。
3.通过将所述素数因子添加到空白列表150来宣布节点识别符的素数因子中的每一者将为空白(如果不是已经空白的话)。
以此方式,不允许入站链路进入公理节点中,这防止了与所述节点相关联的信息项目与域中的其它信息项目链接。
在另一实施例中,管理模块110包含用于添加和移除从父节点到子节点的链路的过程,作为界定经模型化的问题域中的项目之间的关系的基本方式。在一个实施例中,管理模块110通过使用以下步骤来添加从父节点到子节点的新链路:
1.获得所述父节点的节点身份。
2.计算或存取所述父节点的链路身份。
3.使子节点的节点身份乘以父节点的链路身份。
4.为了避免与现有节点冲突,(例如)使用节点列表135来检查所得乘积是否已经用作节点识别符。如果所述乘积已经被指配,那么使所述乘积乘以来自空白列表150的一个或一个以上空白的每一可能组合,直到所得乘积不用作节点识别符为止。如果没有现有空白的组合得出未使用的节点识别符,那么宣布新的空白,且接着将其用于计算新的乘积。所述***可要求用户检验项目确实是唯一的,而不是现有项目的副本。
5.用从上文得出的乘积来代替子节点的节点身份。
6.通过搜索具有等于子节点的旧链路识别符的素数因子的节点的数据结构(即,搜索经修改的子节点的子代)来传播所述改变。在一个实施例中,这是通过搜索节点数据集135中的子节点的旧链路识别符的倍数来执行的。在另一实施例中,这是通过在链路识别符/节点识别符索引数据集165中查找所述链路识别符以确定所述链路所指向的所有节点来执行的。
7.具有是子节点的旧链路识别符的倍数的节点识别符的节点是“孙”节点。
8.对于这些孙节点中的每一者,从节点识别符约去旧的链路识别符且乘以子节点的新的链路识别符。
9.针对经改变的节点的任何子代,递归地重复步骤6、7和8,直到将原始改变的影响传播到其所有子代(即,没有其余节点需要修改以反映原始改变的影响)为止。
相反,可移除现有链路。在另一实施例中,管理模块110包含用于移除从父节点到子节点的链路的过程,所述过程包括以下步骤:
1.获得所述父节点的节点身份。
2.计算或存取所述父节点的链路身份。
3.使子节点的节点身份除以父节点的链路身份。
4.为了避免与现有节点冲突,检查所得产物是否已经用作节点识别符。如果所述产物已经被指配,那么使所述产物乘以来自空白列表150的一个或一个以上空白的每一可能组合,直到所得乘积不用作节点识别符为止。如果没有现有空白的组合得出未使用的节点识别符,那么宣布新的空白,且接着将其用于计算新的乘积。所述***可要求用户检验项目确实是唯一的,而不是现有项目的副本。
5.用从上文得出的结果来代替子节点的节点身份。
6.通过搜索具有等于子节点的旧链路识别符的素数因子的节点的数据结构(即,搜索经修改的子节点的子代)来传播所述改变。在一个实施例中,这是通过搜索节点数据集中的子节点的旧链路识别符的倍数来执行的。在另一实施例中,这是通过在链路识别符/节点识别符索引数据集165中查找所述链路识别符以确定所述链路所指向的所有节点来执行的。
7.具有是子节点的旧链路识别符的倍数的节点识别符的节点是“孙”节点。
8.对于这些孙节点中的每一者,从节点识别符约去旧的链路识别符且乘以子节点的新的链路识别符。
9.针对经改变的节点的任何子代,递归地重复步骤6、7和8,直到将原始改变的影响传播到其所有子代为止(即,没有其余节点需要修改以反映原始改变的影响)。
可与素数网数据结构一起使用的另一类型的管理模块110包含用于从所述数据结构提取信息的算法。这包含用于确定特定节点的关系(例如,父与子的关系)以及与所述链中的其它祖代或子代的额外关系的技术。其还可包含确定两个或两个以上特定节点之间的关系。这些工具允许用户揭开将问题域模型化的数据结构所暗示或以其它方式包含在所述数据结构内的关系。
数据提取模块110可包含基本数据提取过程,以识别特定信息项目的节点的所有子代或所有父代。识别特定父节点的所有子代可视父代与其子代之间的链路的意义而定用于回答各种查询。举例来说,所述查询可提供作为由父代界定的群组的成员的所有项目、由父代引起的所有项目和/或以其它方式与父代相关的所有项目。在一个实施例中,数据提取模块110通过使用以下步骤来识别父节点的子代。
1.接受需要子代的父节点作为输入。
2.计算或存取所述父节点的链路身份。
3.找出具有素数因子包括父节点的链路身份的节点识别符的任何节点。在此步骤中,优选地忽略已被宣布为空白的素数因子。
4.输出发现是父节点的子代的节点。
此过程可针对所识别的子代中的每一者而重复,以识别孙代,且依此类推,在素数网中向下持续所需要的那么多层。
相反,识别特定子节点的所有父代也视父代与其子代之间的链路的意义而定可用于回答各种查询。举例来说,查询可提供界定所述子代为其一员的群组的所有项目、引起所述子代的所有项目和/或以其它方式与所述子代相关的所有项目。在一个实施例中,识别子节点的父代包括以下步聚:
1.接受需要父代的子节点作为输入。
2.计算所述子节点的节点身份的素数因子。
3.找出具有与所述子节点的节点身份的素数因子的一者匹配的链路识别符的任何节点。在节点数据集135中,通过节点的节点识别符而不是其链路识别符来对节点进行分类和编索引。为了找出给出子节点的父节点,将指向子节点中的链路识别符转译为父节点的节点识别符。所述链路识别符将为第N个素数,且所述节点识别符将为N。
4.输出发现是子节点的父代的节点。
此过程可针对所识别的父代中的每一者而重复,以识别祖父代,且依此类推,在素数网中向上持续所需要的那么多层。
可使用各种技术来将链路识别符转译为节点识别符,如上述过程中所使用。在一个实施例中,在给定第N个素数P的情况下,所述过程使用例如埃拉托斯特尼筛法(Sieveof Eratosthenes)或用于确定N的确切值的许多其它技术中的任何一者的技术来计算N的确切值。在另一实施例中,在给定第N个素数P的情况下,所述过程估计N,且接着搜索节点数据集135以找出具有接近所述估计值的节点识别符的节点。对于被发现接近所述估计值的每一节点识别符,检查其链路识别符以找到匹配。有许多等式可用于估计N,例如N近似等于P/ln(P)。可使用用于在给定P的情况下估计N的许多其它方法中的任何一者来实施此能力。哪种技术最高效的确定可依据具体情况变化。
对上文所描述的用于将链路识别符转译为节点识别符的技术的替代方案是建立将每一子节点的父节点列成表的索引。接着使用此索引来执行任何子节点的父节点的直接查找。虽然没有什么会防止使用索引来补充素数网结构,但在大多数情况下,消除对此类索引的需要是素数网结构的实施例的一个益处。维护索引的过程中的延迟导致对查询的错误肯定和否定。尝试使数据集135及其索引之间和内部的数据冗余同步大大增加了算法复杂性。消除对素数网数据集135中的索引的需要减少了数据冗余且降低了算法复杂性,同时增加了及时性和准确性。在一个实施例中,素数网结构所使用的仅有索引是将问题域中的信息项目映射到素数网结构中的节点的一个索引。
数据提取模块110可包含数据提取过程以识别多个节点的交叉。此工具识别由多个其它节点进行素数排序的节点。这可能是有用的,例如在用户希望识别数据结构中作为两个或两个以上其它项目的成员或以其它方式与两个或两个以上其它项目相关联的信息项目时。或者,其可能对识别由两个或两个以上项目产生的任何节点有用。在一个实施例中,识别多个节点的交叉包括以下步骤:
1.确定需要子节点的交叉的两个或两个以上节点的链路识别符。
2.计算步骤1中所找到的链路识别符的乘积。
3.找出素数网数据集135中具有是步骤2中所计算出的乘积的倍数的节点身份的任何节点。在一个实施例中,这是通过在节点数据集135中搜索所述子节点的旧链路识别符的倍数来执行的。在另一实施例中,这是通过在链路识别符/节点识别符索引数据集165中查找所述链路识别符以确定步骤1中所找到的链路识别符的每一者所指向的节点的列表且接着进行这些列表的交叉来执行的。
4.输出发现是交叉节点的节点。
在一些应用中,用户可能希望依据数据结构中的公理根节点来界定特定节点。所述公理节点是未依据任何其它节点界定的节点,本质上,是被模型化到数据结构中的问题域中的“真相”。因此,依据公理节点来理解特定节点的定义可对总体问题域中的节点给出有用的上下文。此技术(例如)在追踪从效果返回到原始原因的因果关系链、展示原始原因与最终结果之间的所有中间效果与原因关系的过程中将是有用的。在一个实施例中,数据提取模块110包含通过使用以下步骤来找出从特定节点到所有公理节点的后向链的数据提取过程。
1.获得选定节点的节点身份。
2.计算所述选定节点的节点身份的素数因子,忽略任何空白。
3.找出具有与所述选定节点的节点身份的素数因子的一者匹配的链路识别符的任何节点。在节点数据集135中,通过节点的节点识别符而不是其链路识别符来对节点进行分类和编索引。为了找出给出子节点的父节点,将指向子节点中的链路识别符转译为父节点的节点识别符。所述链路识别符将为第N个素数,且所述节点识别符将为N。
4.保存找到的节点及其到达选定节点的链路的列表。
5.对于所保存的列表中的每一节点,递归地重复步骤1到4,直到找到公理节点为止。
6.输出找到的所有节点连同其互连链路的映射图。
素数网结构因此使用户能够仅基于节点的节点识别符而准确地计算所述节点的完整祖代。替代方案是使用索引和/或常规搜索技术。使用计算与搜索的组合来确定节点的祖代是素数网结构所实现的进一步改进。
用户还可能希望理解从数据结构中的特定节点得出什么节点。在问题域中,本质上,这是以前提(特定信息项目)开始和确定从所述前提得出什么(即,“在给定节点的情况下,则得出什么?”)。在一个实施例中,数据提取模块110包含通过使用以下步骤来找出从特定节点到其所有子代节点的前向链的数据提取过程。
1.确定被指定为链中的第一节点的节点的链路识别符。
2.找出具有是步骤1中所确定的链路识别符的倍数的节点识别符的所有节点。
3.针对步骤2中所找出的每一节点,递归地重复步骤1和2,直到找不到更多满足步骤2中所指定的条件的节点为止。
4.输出找到的所有节点连同其互连链路。
另一工具提供数据结构中的两个特定节点之间的关系。在给定祖代节点和子代节点的情况下,此工具显示连接所述祖代节点与子代节点的一组节点和链路。这可能对回答经模型化的问题域中的两个信息项目之间的关系是什么的问题有用。在一个实施例中,确定祖代节点与子代节点之间的关系包括以下步骤:
1.如上文所描述,找出从子代节点开始的后向链,但当在所述链中找到对应于祖代的节点时,或当所述链中被追踪的所有节点识别符均小于目标祖代的节点识别符时,停止后向成链过程。后一条件(如果为真)将指示两个节点之间不存在祖代-子代关系。
2.如上文所描述,找出从祖代节点开始的前向链,但当找到对应于子代的节点时停止。为了增加效率,前向成链过程可局限于步骤1中所创建的后向链中所找到的节点组。
3.对出现在后向和前向链两者中的所有节点进行标记。
4.显示祖代节点、子代节点和所有经标记节点的映射图,从而展示所显示节点的每一者之间的任何链路。
为了将问题域的某些方面(例如直接数学关系)模型化,素数网结构与针对同一任务使用基本算法相比可能是不够的或效率较低。举例来说,将较大数目的乘法问题及其乘积存储在素数网结构中将是可能的,但在需要所述乘积时使用算法来计算所述乘积更加高效。因此,所述结构中还可包含一组助手模块(helper module)120,以将问题域的使用素数网来模型化效率将较低的方面模型化。可将助手模块120实施为结合数据结构100而使用的一组软件工具。优选地,问题域的大部分将包含在数据结构100内,其中使用助手模块120将一受限组的特征模型化。这避免了与将更多算法添加到所述结构相关联的额外算法复杂性和固有缺点。
总结
已出于说明的目的呈现了对本发明实施例的以上描述内容;不希望所述描述内容是详尽的,或将本发明限于所揭示的精确形式。相关领域的技术人员可了解,根据上文的教示,许多修改和变化是可能的。因此,希望本发明的范围不受此详细描述内容限制,而是受所附权利要求书限制。
已相对于各种实施例而特别详细地描述了本发明,且所属领域的技术人员将了解,可在其它实施例中实践本发明。另外,所属领域的技术人员将了解本发明的以下方面。首先,组件的特定命名、术语的大写、属性、数据结构或任何其它编程或结构方面并不是强制性或重要的,且实施本发明的机制或其特征可具有不同的名称、格式或规约。第二,***可经由硬件与软件的组合(如所描述)来实施,或完全在硬件元件中实施。第三,本文所描述的各种***组件之间的功能性的特定划分仅仅是示范性的,而不是强制性的;单个***组件所执行的功能可改为由多个组件执行,且多个组件所执行的功能可改为由单个组件执行。
以上描述内容的一些部分依据算法和对信息的操作的符号表示来描述本发明。这些算法描述和表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作的本质的工具。虽然在功能上、计算上或逻辑上描述了这些操作,但应将这些操作理解为由计算机程序或等效电路、微码或类似物来实施。此外,还已证实在不丧失一般性的情况下将这些操作的布置称为模块有时是方便的。所描述的操作及其相关联的模块可在软件、固件或硬件中实施。
另外,用于描述各种量、数据值和计算结果的术语应被理解为与适当的物理量相关联,且仅仅是应用于这些量的便利的标签。如从以下论述内容明白,除非另外明确陈述,否则将了解,贯穿整个描述内容中,利用例如“处理”或“计算”或“确定”等术语的论述指代计算机***或类似的电子计算装置的动作和过程,所述计算机***或类似的电子计算装置操纵并变换计算机***存储器或寄存器或其它此类信息存储、传输或显示装置内表示为物理(电子)量的数据。
本发明还涉及一种用于执行本文的操作的设备。此设备可为所需目的而特殊构造,或所述设备可包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如是(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM、磁性-光学盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁性或光学卡、专用集成电路(ASIC)或任何类型的适合存储电子指令的媒体,且其每一者均耦合到计算机***总线。此外,本说明书中所引用的计算机可包含单个处理器,或可以是使用多个处理器设计以获得增加的计算能力的结构。
本文所呈现的算法和显示并非固有地与任何特定计算机或其它设备相关。各种通用***也可根据本文的教示与程序一起使用,或可证实构造更专用的设备以执行所需的方法步骤是方便的。将从上文的描述内容看出多种这些***所需的结构。另外,并非参考任何特定编程语言而描述本发明。将了解,可使用多种编程语言来实施如本文所描述的本发明的教示,且任何对特定语言的参考均是为了揭示本发明的实现和最佳模式而提供的。
本发明非常适合于大量拓扑上的许多种计算机网络***。在此领域内,大型网络的配置和管理包括经由网络(例如因特网)通信地耦合到不同计算机和存储装置的存储装置和计算机。
最后,应注意,本说明书中所使用的语言原则上已针对可读性和教学目的而进行选择,且不可能已被选择为描绘或限定发明性主题。因此,希望本发明的揭示内容说明而非限制所附权利要求书中陈述的本发明的范围。
Claims (51)
1.一种数据管理***,其包括:
数据结构,其包括:
多个记录,每一记录使信息项目与所述数据结构中的节点相关联,每一节点由唯一整数节点识别符识别,以及
一组定向链路,每一定向链路将父节点链接到子节点,且由素数链路识别符识别,其中对于每一链路,相应的链路识别符为第N个素数,其中N是所述父节点的节点识别符,且所述链路识别符是所述子节点的链路识别符的素数因子;以及
计算机可读媒体,其含有计算机程序代码,所述计算机程序代码包括多个管理模块,每一管理模块适合于对所述数据结构执行一个或一个以上操作。
2.根据权利要求1所述的***,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目同与所述父节点相关联的所述信息项目之间的从属关系,其中与所述子节点相关联的所述信息项目是由与所述父节点相关联的所述信息项目界定的一组中的一员。
3.根据权利要求1所述的***,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目同与所述父节点相关联的所述信息项目之间的因果关系。
4.根据权利要求1所述的***,其中所述数据结构进一步包括一个或一个以上空白链路识别符,通过所述空白链路识别符来禁止从父节点到子节点的链路。
5.根据权利要求4所述的***,其中所述记录中的一者或一者以上与公理节点相关联,其中每一公理节点具有一节点识别符,对于所述节点识别符,每个素数因子对应于一空白链路识别符,借此所述公理节点不具有父节点。
6.根据权利要求1所述的***,其中所述数据结构进一步包括具有节点识别符0的全局节点,其中所述全局节点链接到所述数据结构中的所有其它节点。
7.根据权利要求1所述的***,其中所述记录存储在计算机可读媒体上,作为信息项目和相应的节点识别符的数据集,且所述链路存储在计算机可读媒体上,作为链路识别符的数据集。
8.根据权利要求4所述的***,其中所述记录存储在计算机可读媒体上,作为信息项目和相应的节点识别符的数据集,且所述链路存储在计算机可读媒体上,作为链路识别符的数据集,且所述空白链路识别符存储在计算机可读媒体上,作为空白链路识别符的数据集。
9.根据权利要求7所述的***,其中所述链路进一步存储在计算机可读媒体上,作为所使用链路识别符的位图数据集。
10.根据权利要求1所述的***,其中所述管理模块包含适合于修改所述数据结构的第一组模块,以及适合于响应于查询而从所述数据结构获得信息的第二组模块。
11.根据权利要求1所述的***,其中所述管理模块包含用于将记录添加到所述数据结构的模块。
12.根据权利要求11所述的***,其中所述用于将记录添加到所述数据结构的管理模块适合于使将添加的所述记录与具有未使用节点识别符的节点相关联。
13.根据权利要求1所述的***,其中所述管理模块包含用于将记录从所述数据结构删除的模块。
14.根据权利要求1所述的***,其中所述管理模块包含用于在所述数据结构中添加从第一节点到第二节点的定向链路的模块。
15.根据权利要求14所述的***,其中所述用于添加定向链路的管理模块适合于通过使所述第二节点的节点身份乘以所述第一节点的链路身份来添加所述定向链路。
16.根据权利要求15所述的***,其中所述用于添加定向链路的管理模块进一步适合于传播直接或间接链接到所述第二节点或从所述第二节点直接或间接链接的任何节点的改变,以维持所述数据结构中的其它定向链路。
17.根据权利要求1所述的***,其中所述管理模块包含用于移除所述数据结构中从第一节点到第二节点的定向链路的模块。
18.根据权利要求17所述的***,其中所述用于移除定向链路的管理模块适合于通过使所述第二节点的所述节点身份除以所述第一节点的所述链路身份来移除所述定向链路。
19.根据权利要求1所述的***,其中所述管理模块包含用于识别父节点的所有子节点的模块。
20.根据权利要求1所述的***,其中所述管理模块包含用于识别子节点的所有父节点的模块。
21.根据权利要求20所述的***,其中所述用于识别子节点的所有父节点的管理模块适合于通过对所述子节点的所述节点识别符进行因子分解来确定每一父节点的所述链路识别符,且接着将所述父节点的所述链路识别符转译成所述父节点的相应节点识别符。
22.根据权利要求21所述的***,其中所述父节点的所述链路识别符使用数学计算而转译成相应的节点识别符。
23.根据权利要求21所述的***,其中所述父节点的所述链路识别符使用数学计算辅助的搜索而转译成相应的节点识别符。
24.根据权利要求1所述的***,其中所述管理模块包含用于识别多个父节点的所述子节点的交叉的模块。
25.根据权利要求24所述的***,其中所述用于识别所述交叉的管理模块适合于确定与所述父节点相关联的所述链路识别符的乘积,且将所述交叉识别为具有是所述乘积的倍数的节点识别符的任何节点。
26.根据权利要求1所述的***,其中所述管理模块包含用于确定从选定节点开始的后向链的模块,其中所述后向链包含链接到所述选定节点中的所述节点以及递归地链接到所述后向链中的节点中的任何节点。
27.根据权利要求1所述的***,其中所述管理模块包含用于确定从选定节点开始的前向链的模块,其中所述前向链包含从所述选定节点链接的所述节点以及递归地从所述前向链中的节点链接的任何节点。
28.根据权利要求1所述的***,其中所述管理模块包含用于确定从祖代节点到子代节点的关系的模块。
29.根据权利要求28所述的***,其中所述用于确定从祖代节点到子代节点的关系的管理模块:适合于确定从所述子代节点开始的后向链,其中所述后向链包含链接到所述子代节点中的所述节点以及递归地链接到所述后向链中的节点的任何节点;且进一步适合于确定从所述祖代节点开始的前向链,其中所述前向链包含从所述祖代节点链接的所述节点以及递归地从所述前向链中的节点链接的任何节点,其中所述祖代节点与所述子代节点之间的所述关系是包含位于所述后向链和前向链两者中的任何节点的映射图。
30.一种数据结构,其包括:
多个记录,每一记录使信息项目与所述数据结构中的节点相关联,每一节点由唯一整数节点识别符识别;
一组定向链路,每一定向链路将父节点链接到子节点,且由素数链路识别符识别,其中对于每一链路:
相应的链路识别符为第N个素数,其中N是所述父节点的节点识别符,且
所述链路识别符是所述子节点的节点识别符的素数因子;以及
一个或一个以上空白链路识别符,通过所述空白链路识别符来禁止从父节点到子节点的链路。
31.根据权利要求30所述的数据结构,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目是由与所述父节点相关联的所述信息项目界定的一组中的一员。
32.根据权利要求30所述的数据结构,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目同与所述父节点相关联的所述信息项目之间的因果关系。
33.根据权利要求30所述的数据结构,其中所述记录中的一者或一者以上与公理节点相关联,其中对于每个公理节点,每一素数因子对应于一空白链路识别符,使得所述公理节点不具有父节点。
34.根据权利要求30所述的数据结构,其中所述记录存储在计算机可读媒体上,作为信息项目和相应的节点识别符的数据集,所述链路存储在计算机可读媒体上,作为链路识别符的数据集,且所述空白链路识别符存储在计算机可读媒体上,作为空白链路识别符的数据集。
35.根据权利要求34所述的数据结构,其中所述链路识别符数据集包含与每一链路识别符相关联的相应关系标签。
36.根据权利要求34所述的数据结构,其中所述链路进一步存储在计算机可读媒体上,作为所使用链路识别符的位图数据集。
37.一种用于管理问题域中的多个信息项目的计算机程序产品,所述计算机程序产品包括含有计算机程序代码的计算机可读媒体,其包括:
数据结构,其包括多个节点,每一节点与整数节点识别符和信息项目相关联,其中具有节点识别符N的每一节点是具有第N个素数为其因子的节点识别符的任何子节点的父代;
多个记录,每一记录与信息项目和所述数据结构中的节点相关联;以及
多个管理模块,每一管理模块适合于对所述数据结构执行一个或一个以上功能。
38.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于将记录添加到所述数据结构的步骤;以及
用于从所述数据结构删除记录的步骤。
39.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于在所述数据结构中添加从第一节点到第二节点的定向链路的步骤;以及
用于移除所述数据结构中从第一节点到第二节点的定向链路的步骤。
40.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于识别父节点的所有子节点的步骤;以及
用于识别了节点的所有父节点的步骤。
41.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于识别多个父节点的所述子节点的交叉的步骤。
42.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于确定从选定节点开始的后向链的步骤,其中所述后向链包含链接到所述选定节点中的所述节点以及递归地链接到所述后向链中的节点的任何节点;以及
用于确定从选定节点开始的前向链的步骤,其中所述前向链包含从所述选定节点链接的所述节点以及递归地从所述前向链中的节点链接的任何节点。
43.根据权利要求37所述的计算机程序产品,其中所述由所述管理模块中的一者或一者以上执行的功能包含:
用于确定从祖代节点到子代节点的关系的步骤。
44.一种用于使用通过定向链路相关联的多个信息项目将问题域模型化的计算机程序产品,所述计算机程序产品包括含有用于执行以下方法的计算机程序代码的计算机可读媒体,所述方法包括:
将所述多个信息项目中的每一者指配给由唯一整数节点识别符识别的节点;
直接链接节点对,其中从父节点到子节点的每一所得定向链路与素数链路识别符相关联,
其中对于每一链路:
相应的链路识别符为第N个素数,其中N是所述父节点的节点识别符,且
所述链路识别符是所述子节点的节点识别符的素数因子;以及
宣布一个或一个以上链路识别符为空白,其中如果从父节点到子节点的链路的链路识别符为空白,那么禁止所述链路。
45.根据权利要求44所述的计算机程序产品,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目是由与所述父节点相关联的所述信息项目界定的所述问题域中的一组中的一员。
46.根据权利要求44所述的计算机程序产品,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目同与所述父节点相关联的所述信息项目之间的所述问题域中的因果关系。
47.根据权利要求44所述的计算机程序产品,其中所述计算机可读媒体进一步含有用于以下功能的计算机程序代码:
通过将对应于待界定的每个公理节点的素数因子的每一链路识别符宣布为空白来界定一个或一个以上公理节点。
48.一种用于使用通过定向链路相关联的多个信息项目将问题域模型化的计算机实施的方法,所述方法包括:
将所述多个信息项目中的每一者指配给由唯一整数节点识别符识别的节点;
直接链接节点对,其中从父节点到子节点的每一所得定向链路与素数链路识别符相关联,
其中对于每一链路:
相应的链路识别符为第N个素数,其中N是所述父节点的节点识别符,且
所述链路识别符是所述子节点的节点识别符的素数因子;以及
宣布一个或一个以上链路识别符为空白,其中如果从父节点到子节点的链路的链路识别符为空白,那么禁止所述链路。
49.根据权利要求48所述的方法,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目是由与所述父节点相关联的所述信息项目界定的所述问题域中的一组中的一员。
50.根据权利要求48所述的方法,其中所述定向链路中的至少一者指示与所述子节点相关联的所述信息项目同与所述父节点相关联的所述信息项目之间的所述问题域中的因果关系。
51.根据权利要求48所述的方法,其进一步包括:
通过将对应于待界定的每个公理节点的素数因子的每一链路识别符宣布为空白来界定一个或一个以上公理节点。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/461,981 US7606817B2 (en) | 2006-08-02 | 2006-08-02 | Primenet data management system |
US11/461,981 | 2006-08-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101535946A true CN101535946A (zh) | 2009-09-16 |
Family
ID=38997773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200780034364XA Pending CN101535946A (zh) | 2006-08-02 | 2007-07-26 | 素数网数据管理*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US7606817B2 (zh) |
EP (1) | EP2049984A2 (zh) |
CN (1) | CN101535946A (zh) |
CA (1) | CA2659743A1 (zh) |
WO (1) | WO2008016822A2 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9767216B2 (en) * | 2007-09-10 | 2017-09-19 | International Business Machines Corporation | Method and system for capturing and applying changes to a data structure |
US8176084B2 (en) | 2007-11-26 | 2012-05-08 | International Business Machines Corporation | Structure based storage, query, update and transfer of tree-based documents |
KR100971881B1 (ko) | 2008-07-02 | 2010-07-22 | 팅크웨어(주) | 소수를 사용한 검색 방법 및 장치 |
US8266136B1 (en) * | 2009-04-13 | 2012-09-11 | Netapp, Inc. | Mechanism for performing fast directory lookup in a server system |
DE102010007967A1 (de) * | 2010-02-15 | 2011-08-18 | DB Systel GmbH, 60326 | Verfahren, Computerprogramm-Produkt sowie computerlesbares Speichermedium zur generischen Erstellung eines Strukturbaums zur Beschreibung eines IT-Verfahrens |
US8935129B1 (en) * | 2010-06-04 | 2015-01-13 | Bentley Systems, Incorporated | System and method for simplifying a graph'S topology and persevering the graph'S semantics |
EP2560108A4 (en) * | 2010-07-02 | 2013-12-11 | Takatoshi Yanase | SYSTEM FOR LOGICAL OPERATIONS |
EP3182304A1 (en) * | 2013-03-29 | 2017-06-21 | Pilab S.A. | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems |
CN103200108B (zh) * | 2013-04-19 | 2016-03-02 | 电子科技大学 | 一种素数路由网络生成方法 |
EP3159815A1 (en) | 2013-06-30 | 2017-04-26 | Pilab S.A. | Database hierarchy-independent data drilling |
EP2843568A1 (en) | 2013-08-30 | 2015-03-04 | Pilab S.A. | Computer implemented method for creating database structures without knowledge on functioning of relational database system |
ES2636758T3 (es) | 2013-08-30 | 2017-10-09 | Pilab S.A. | Procedimiento implementado por ordenador para mejorar la ejecución de consulta en bases de datos relacionales normalizadas en el nivel 4 y superior |
KR20160074154A (ko) * | 2014-12-18 | 2016-06-28 | 삼성전자주식회사 | 컴파일러 |
SE541032C2 (en) * | 2015-02-27 | 2019-03-12 | Ningbo Geely Automobile Res & Development Co Ltd | Methods and systems for detecting faults in vehicle control systems |
WO2017186774A1 (en) | 2016-04-26 | 2017-11-02 | Pilab S.A. | Systems and methods for querying databases |
CN109992803B (zh) * | 2017-12-29 | 2022-10-18 | 北京金风科创风电设备有限公司 | 风力发电机组信息模型的建立方法、装置、设备及介质 |
WO2020040755A1 (en) * | 2018-08-22 | 2020-02-27 | Bae Systems Information And Electronic Systems Integration Inc. | Wireless resilient routing reconfiguration linear program |
WO2022043675A2 (en) | 2020-08-24 | 2022-03-03 | Unlikely Artificial Intelligence Limited | A computer implemented method for the automated analysis or use of data |
US11989527B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11989507B2 (en) | 2021-08-24 | 2024-05-21 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
US11977854B2 (en) | 2021-08-24 | 2024-05-07 | Unlikely Artificial Intelligence Limited | Computer implemented methods for the automated analysis or use of data, including use of a large language model |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454101A (en) * | 1992-09-15 | 1995-09-26 | Universal Firmware Industries, Ltd. | Data storage system with set lists which contain elements associated with parents for defining a logical hierarchy and general record pointers identifying specific data sets |
GB9417314D0 (en) * | 1994-08-27 | 1994-10-19 | Int Computers Ltd | Method for performing joins in a database system |
US6055537A (en) | 1995-06-07 | 2000-04-25 | Prime Arithmetics, Inc. | Computer structure for storing and manipulating information |
EP0990209A4 (en) * | 1997-06-04 | 2004-09-15 | Gary L Sharp | DATABASE STRUCTURE AND ASSOCIATED MANAGEMENT |
US6947946B2 (en) * | 1999-12-28 | 2005-09-20 | International Business Machines Corporation | Database system including hierarchical link table |
US7016910B2 (en) * | 1999-12-30 | 2006-03-21 | Decode Genetics Ehf. | Indexing, rewriting and efficient querying of relations referencing semistructured data |
US7719533B2 (en) * | 2004-11-24 | 2010-05-18 | General Electric Company | Graph extraction labelling and visualization |
US7487143B2 (en) * | 2005-11-17 | 2009-02-03 | International Business Machines Corporation | Method for nested categorization using factorization |
US7926043B2 (en) * | 2006-06-20 | 2011-04-12 | Microsoft Corporation | Data structure path profiling |
-
2006
- 2006-08-02 US US11/461,981 patent/US7606817B2/en active Active
-
2007
- 2007-07-26 CN CNA200780034364XA patent/CN101535946A/zh active Pending
- 2007-07-26 WO PCT/US2007/074431 patent/WO2008016822A2/en active Application Filing
- 2007-07-26 EP EP07813395A patent/EP2049984A2/en not_active Withdrawn
- 2007-07-26 CA CA002659743A patent/CA2659743A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2008016822A3 (en) | 2008-09-25 |
US20080033987A1 (en) | 2008-02-07 |
US7606817B2 (en) | 2009-10-20 |
WO2008016822A2 (en) | 2008-02-07 |
CA2659743A1 (en) | 2008-02-07 |
EP2049984A2 (en) | 2009-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101535946A (zh) | 素数网数据管理*** | |
Liu et al. | Storyflow: Tracking the evolution of stories | |
JP4473893B2 (ja) | 作業項目抽出装置、作業項目抽出方法、および、作業項目抽出プログラム | |
CN101084494B (zh) | 用于管理计算机环境中的工作流的方法和设备 | |
CN102239468A (zh) | 可视化数据元素之间的关系以及数据元数据属性的图形表示 | |
WO2001067291A2 (en) | Method, process and system for optimized outcome driven workflow synthesis and reduction | |
US20120047100A1 (en) | Method for producing at least one application description | |
JP2006172446A (ja) | 複合データアクセス | |
US11336668B2 (en) | Method and apparatus for detecting abnormal behavior of groupware user | |
KR20060121864A (ko) | 데이터의 트리 구조 뷰들 제공 방법 | |
Martínez et al. | Efficient plagiarism detection for software modeling assignments | |
KR20080084567A (ko) | 특허 검색 결과에 대한 신뢰도 검증방법 | |
Paramonov et al. | Tacle: Learning constraints in tabular data | |
Garza et al. | Using parameter dependency network to represent design rationale | |
JP2005259164A (ja) | 関係付け情報管理システム | |
US20140055482A1 (en) | Method for Displaying and Manipulating Genealogical Data Using a Full Family Graph | |
WO2022018899A1 (ja) | Kpiツリーから部分ツリーを抽出するシステム | |
Roith et al. | Supporting the building design process with graph-based methods using centrally coordinated federated databases | |
Loeb et al. | Design, development and implementation of a global information warehouse: a case study at IBM | |
US9904697B2 (en) | Managing versions of cases | |
US20050198077A1 (en) | Method, computer system, computer program and computer program product for storage and retrieval of data files in a data storage means | |
EP4124984A1 (en) | Machine learning model generating system, machine learning model generating method | |
Jukic et al. | Process and data logic integration: Logical links between uml use case narratives and er diagrams | |
US20070050383A1 (en) | Completeness in Dependency Networks | |
JP7331404B2 (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 |
Open date: 20090916 |