CN117632947A - 在列存储中存储和查询知识图谱 - Google Patents
在列存储中存储和查询知识图谱 Download PDFInfo
- Publication number
- CN117632947A CN117632947A CN202310744793.7A CN202310744793A CN117632947A CN 117632947 A CN117632947 A CN 117632947A CN 202310744793 A CN202310744793 A CN 202310744793A CN 117632947 A CN117632947 A CN 117632947A
- Authority
- CN
- China
- Prior art keywords
- triples
- column
- triplet
- query
- value
- 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
- 238000000034 method Methods 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 230000010354 integration Effects 0.000 abstract description 8
- 238000005192 partition Methods 0.000 description 66
- 238000012545 processing Methods 0.000 description 30
- 230000015654 memory Effects 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000013519 translation Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000012384 transportation and delivery Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008676 import Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 229930091051 Arenine Natural products 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
这里描述了三元组集成和查询系统的各种实施例。实施例通过以下来操作:识别对应于知识图谱的多个三元组,并生成要将多个三元组导入其中的数据库中的表格。所述表格包括一个主语列、一个谓语列和多个数据类型的宾语列。来自知识图谱的三元组的值被加载到表格中,并执行对表格的查询。
Description
技术领域
本申请涉及在列存储中存储和查询知识图谱。
背景技术
每个计算系统都使用以某种形式存储的数据。通常这些数据被组织和存储在数据库中,SQL(结构化查询语言)被用于访问和查询这些数据。然而,当以不对应于数据库的现有表格结构的形式接收到新的数据时,诸如配置为RDF(资源描述框架)数据模型的数据,则必须使用多个数据系统来维护不同格式的数据。这些系统可以包括用于维护传统数据库数据的第一系统和用于RDF数据的另一个单独的数据系统。可以理解,维护多个数据系统具有许多缺点,包括维护成本增加、可能需要的额外的计算设备、以及如果需要查询来自两个系统的数据则需要单独的查询和额外的处理。
发明内容
根据本发明的一个方面,提供一种方法。该方法包括:识别对应于知识图谱的多个三元组,所述多个三元组中的每一个包括主语、谓语和宾语,并且其中,所述谓语识别主语和宾语之间的关系;在数据库中生成要将多个三元组导入其中的表格,所述生成包括:在表格中生成主语列,所述主语列配置为存储多个三元组中的每一个的主语的值;在表格中生成谓语列,所述谓语列配置为存储多个三元组中的每一个的谓语的值;识别由数据库使用的多个数据类型;并且在表格中生成对应于宾语的多个宾语列,其中,所述多个宾语列中的每一个对应于多个可能的数据类型中不同的一个,并且被配置为存储多个三元组中的每一个的宾语的值;将来自多个三元组的值加载到表格中;接收对表格的查询;执行对表格的查询以生成结果;以及基于查询的执行返回结果。
附图说明
附图被并入这里,并构成说明书的一部分。
图1示出了根据一些示例实施例的三元组集成和查询系统(TQS)的框图。
图2是示出根据一些示例实施例的由三元组集成和查询系统(TQS)使用的示例表格的框图。
图3是示出根据一些示例实施例的由三元组集成和查询系统(TQS)使用的具有词典压缩的示例表格的框图。
图4是示出根据一些示例实施例的针对通过标识符连接(join)不同分区的示例操作的框图。
图5是示出根据一些示例实施例的针对通过值连接不同分区的TQS的示例操作的框图。
图6是示出根据一些示例实施例的针对通过使用替代(surrogate)标识符的值连接不同分区的TQS的示例操作的框图。
图7是示出根据一些实施例的用于将三元组数据集成到数据库中的过程的流程图。
图8是示出根据一些实施例的使用三元组格式化的数据导入数据库中的主(master)词典的过程的流程图。
图9示出了用于实现各种实施例的示例计算机系统。
图10示出了根据一些实施例的使用SPARQL查询的TQS的两个表格的示例。
在附图中,相似的附图标记通常指示相同或相似的元素。另外,一般参考标号最左边的数字标识该参考标号首次出现在其中的附图。
具体实施方式
每个计算系统都使用以某种形式存储的数据。通常这些数据被组织和存储在数据库中,SQL(结构化查询语言)被用于访问和查询这些数据。然而,当以不对应于数据库的现有表格结构的形式接收到新的数据时,诸如配置为RDF(资源描述框架)数据模型的数据,则必须使用多个数据系统来维护不同格式的数据。这些系统可以包括用于维护传统数据库数据的第一系统和用于RDF数据的另一个单独的数据系统。可以理解,维护多个数据系统具有许多缺点,包括维护成本增加、可能需要的额外的计算设备、以及如果需要查询来自两个系统的数据则需要单独的查询和额外的处理。
图1示出了根据一些示例实施例的三元组存储集成和查询系统(TQS)102的框图100。在一些实施例中,TQS 102可以将格式化为多个三元组104的知识图谱110的数据集成到数据库106中。在一些实施例中,该数据集成可以包括创建或使用被设计和/或指定用于存储和查询从三元组104导入的数据的表格108。
TQS 102可以被提供用来将三元组104格式化的数据快速地数据集成到数据库106中。而且相对于维护多个数据存储系统,通过在数据库106中维护所有数据,TQS 102还可以需要更少的数据维护开销。此外,通过将来自三元组104的数据集成到数据库106的表格108中,TQS 102使得单一查询116能够访问导入的三元组数据和传统的数据库数据两者。在一些实施例中,TQS 102可以使用户能够对来自存储在数据库106中的三元组104的数据执行SPARQL查询或功能。SPARQL是用于查询、检索和/或操纵RDF格式化的数据(诸如,三元组104)的RDF查询语言的示例。
在一些实施例中,三元组104可以是以资源描述框架(RDF)数据模型排列(arrange)的数据。三元组104可以包括指示主语(subject)104A与宾语(object)104C的关系的谓语(predicate)104B。例如,三元组104可以包括数据值:美国的纽约市。三元组104可以指示纽约(主语104A)是美国国家(宾语104C)的城市(谓语104B)。
知识图谱110可以包括多个三元组104(如表示三元组104的多个方框所示)。三元组104可以用于以三元组格式或组织方案排列的数据,并且可以包括在三元组的各行存储的一个或多个数据集(set of data),三元组104可以以表格格式排列,并且知识图谱110可以包括其中至少一个子集的条目(entries)彼此相关的任何数据集。例如,在上述示例中,知识图谱110可以包括与不同城市和城市所在的国家相关的三元组104。在一些实施例中,知识图谱110还可以包括其他数据,诸如各个国家的总统或领导人,其可以包括在对应于城市的多个三元组中以及不在其中的国家。在一些实施例中,知识图谱110还可以包括其他看似不相关的数据,诸如不同型号的汽车及其制造商的名称。
知识图谱110可以被TQS 102接收,用于将数据从三元组104集成到数据库106中。在一些实施例中,数据库106可以包括关系数据库,诸如面向列的数据库。在一些实施例中,数据库106可以包括关系表格的集合,传统的数据库数据存储在这些表格中(未示出)。
在一些实施例中,TQS 102可以生成设计成或配置为存储知识图谱110的三元组104的新的表格108。在一些实施例中,表格108可以被特别设计成从知识图谱110的三元组104中捕捉数据,并且可以被称为知识图谱表格。新的表格108可以包括例如用于存储主语104A的值的主语列112A、用于存储谓语104B的值的谓语列112B、以及用于存储宾语104C的值的多个宾语列112C-1、112C-2、112C-3(一般统称为112C)。
在一些实施例中,宾语列112C的数量和类型可以基于数据库106中可用于数据存储和处理的数据类型114的数量。数据类型114可以表示数据库中可用于存储数据的各种不同的数据类型。每个数据类型可以约束或指示什么类型的数据可以被存储在数据库106的每一列中,并且可以具有其自己的特定存储器分配(memory allocation)用于存储该类型的数据。一些示例的数据类型114包括整数、实数、字符串、布尔、浮点和其他专门的或基于对象的数据的类型。这样,每个宾语列112C可以被配置为存储对应于不同的一个数据类型114的数据。
这种由于不同数据类型114的来自特定配置的宾语列112C上的宾语104C的数据的多列(multi-column)存储,使得能够在其被存储在表格108之后对来自宾语104C的数据执行查询处理(例如,而不是简单地将宾语104C的值存储为字符串,这将使得数据处理以及对数据查询116的响应既费时又耗资源,或是在一些情况下甚至不可能)。
在一些实施例中,主语列112A和谓语列112B可以存储字符串值,这使得在这些列上查询信息既困难又耗资源。如下面将更详细描述的,TQS 102可以生成词典120来减少这些列112A和112B的存储器开销。
在一些实施例中,来自宾语104C的数据可以在被存储在宾语列112C之一之前进行转换或修改。例如,来自宾语104C的数据可以包括经度和纬度类型坐标或定位系统中的位置。然而,宾语列112C-3可以被配置为在特定的空间参考系统中存储空间值,这对于在数据库106上查询和执行其他数据计算更有益(这可能不能用坐标信息来执行或有效地执行)。
例如,空间参考系统中可能存储有另一个具有位置信息的数据库表格,因此,将新导入的来自三元组104的位置数据也存储在同一空间参考系统中可能是有益的。这样,在导入处理期间,TQS 102可以将宾语104C中的数据的类型识别为属于宾语列112C-3,并且将宾语104C的数据从经度、纬度转换为数据库106中使用的空间参考系统,并且宾语列112C-3可以被配置为存储其的值。或者,例如,宾语104C可以包括以英镑为单位的货币值,并且宾语列112C-2可以被配置成存储以美元为单位的货币值,因此TQS 102可以执行从英镑到美元的适当的数据转换。
在将数据从知识图谱110的三元组104加载到数据库106之后,可以对存储了导入和格式化的数据的表格108执行查询116。在一些实施例中,查询可以包括SQL、SPARQL查询或具有用于将三元组104存储在表格108中的新功能的SQL查询,这将在下面更详细地讨论。数据库106然后可以返回查询116的结果118,该结果118可以被提供返回给发起查询116的系统、程序或用户。
在一些实施例中,TQS 102或数据库106可以为表格108生成一个或多个词典120。词典120可以包括分配给存储在表格108中的唯一数据值120B的唯一标识符120A。这些唯一标识符120A可以比原始数据值120B消耗更少的空间,并且可以在表格108中替代原始数据值120B使用。
在一些实施例中,表格108的每列可以包括其自己的词典120。例如,TQS 102可以生成用于主语列112A的主语词典120、用于谓语列112B的谓语词典120、以及用于所选择的一个或多个宾语列112C中的每一个的宾语词典120。
在一些实施例中,TQS 102可以为表格108的列的子集或全部生成主词典120。例如,TQS 102确定主语列112A和宾语列112C将共享词典120。然后,例如,TQS 102可以为存储在主语列112A中的值120B生成第一词典120。TQS 102然后可以使用相同的第一词典120用于宾语列112C,其中,先前为主语列112A的特定值120B分配的标识符120A被列112C重用。并且只有宾语列112C中的那些新的值120B被分配了新的标识符120A。
例如,如果“纽约”在主语列112A和宾语列112C-1的数据中均为值120B条目,则TQS102可以使用相同的标识符120A用于两个列112A、112C-1的“纽约”。在一些实施例中,TQS102可以为其中标识符120A在两个词典120中相同的每个列112A、112C-1生成不同的词典120。然后,例如,在主词典120中,“纽约”的标识符120A在表格108的所有列中都是一致的。这种一致性可能有助于压缩和改善处理,因为不同分区之间不需要转换表(translationtable)。在其他实施例中,每个词典120可以独立地给相同的值120B分配标识符120A,“纽约”可以在表格108的不同词典120具有不同的标识符120A。
如下文将更详细讨论的,在一些实施例中,表格108可以划分到数据的各个分区中。在一些实施例中,每个分区TQS 102可以包括其自己的词典120。如下面将更详细讨论的,这些不同的分区可以通过使用哈希图(hash map)121或通过生成转换表122来连接。
图2是示出根据一些示例实施例的由三元组集成和查询系统(TQS)102使用的示例表格208的框图200。表格208可以示出图1的表格108的示例,其可以由TQS 102在将数据从三元组104导入数据库106时被生成或使用。如为表格208示出的列212A、212B和212C可以对应于表格108的列112A-C并且可以是其示例。
表格208可以是已经从知识图谱110的多个三元组104(例如,三元组格式化的数据)加载到数据库106中的数据的示例。在所示示例中,主语列212A可以包括包含通用资源指示符(URI)的数据,其可以被存储为文本或字符串,或者存储为特殊的URI数据类型。谓语列212B也可以包括URI或字符串数据。在其他实施例中,主语列212A和谓语列212B可以各自被配置成存储不同的数据类型。在一些实施例中,TQS 102可以识别具有相同数据类型(例如,URI)的两个列可以共享主词典120。
如图所示,有九个示例的宾语列212C-1至212C-9,可以对应于数据库106的九个可用的数据类型114。在一些实施例中,数据库106可以使用许多不同的数据类型114,并且可以选择这些数据类型114的子集用于配置不同的宾语列212C(这是通常可以用来指代宾语列212C-1至212C-8的数目)。
如表格208所示,TQS 102可以在不具有从三元组104导入的实际数据的各个宾语列212C中提供NULL(空)值。例如,三元组104将仅具有单一值,因此仅填充宾语列212C中的一个(如果对于主语和谓语的一个组合存在更多的宾语值,则可以添加更多的行)。在其中没有从三元组104为该行或该记录导入数据的宾语列212C中,TQS 102可以在该列中提供NULL值。可以使用NULL值,因为它在表格中占用很少的空间,并且在压缩过程中(特别是在列存储数据库中)是非常有用的。
在所示示例中,宾语列212C-8可以存储海德堡市(如主语列212A所示)的空间位置。然而,TQS 102可以执行数据转换来计算所示的空间值,而不是将可能已经从三元组104接收到的海德堡的位置存储为经度和纬度,这可以与使用具有所指示的空间格式或数据类型的位置数据的空间引擎、处理器或程序兼容。
图3是示出根据一些示例实施例的由三元组集成和查询系统(TQS)102使用的具有词典压缩的框图300的示例表格308。
词典320可以示出用于主语列312A和谓语列312B两者的共享或主词典,它们可以是相同的数据类型(例如,字符串)。来自列312A和312B的每个唯一值320B可以被分配其自己的唯一标识符320A。如图所示,唯一标识符320A然后可以在表格308中被用来取代相应的数据值320B(如表格308所示)。相对于使用原始数据值320B,使用这些词典标识符320A释放了表格308中的存储器空间,并且有助于改善表格308的压缩。
在一些实施例中,TQS 102可以扫描各个列312A-C的值,以识别在哪些列上生成共享或主词典320。例如,如果存在共享数据类型(例如,字符串),则TQS 102可以生成共享或主词典320。或者,例如,如果存在超过阈值数量或百分比的重叠(overlapping)值,则TQS102可以为多个列312A-C生成共享或主词典320。因为在主语列312A和宾语列112C(或谓语列312B)中存在超过阈值数量的重叠值320B,所以主词典320可以被生成并用于这两个列。在其他实施例中,如果在宾语列312C之一中存在重叠值,则词典320也可以被生成并用于那些选择的宾语列312C。
如上所述,使用和生成单一主词典或共享词典320可以节省处理时间(相对于生成多个词典320)和存储多个词典320的存储空间。单一词典320也能够实现更有效的压缩。
在一些实施例中,在识别出要生成共享词典320的列之后,TQS 102可为第一列生成词典,然后用来自所有列的第二列和/或剩余列的任何新的值补充词典(例如,同时为先前遇到的唯一值320B重新使用已经生成的标识符320A)。
图4是示出根据一些示例实施例的针对通过标识符120A连接不同分区的TQS 102的示例操作的框图400。如上所述,表格108的行可以被划分为分区403A-403C。在一些实施例中,每个分区403A-403C可以包括唯一行,在其他实施例中,相同的行可以包括在多个不同分区403A-C的每一个中
在一些实施例中,TQS 102可以实现对任何列的直接访问,并且对存储在表格108中的三元组104的数据提供多级分区。当RDF格式化的数据被存储在自己的RDF存储库中时,可能需要数据访问严格地采用谓语和主语的形式。然而,在表格108加载了三元组数据的情况下,TQS 102可以使用户或系统能够直接访问任何列112A-C中的任何数据,而无需遵循谓语-主语的格式。
多级分区可以包括基于列112A-C的任何顺序和组合的分区。例如,在单级分区中,分区可以包括满足基于单一列(诸如主语列112A)的查询的所选择的数据。然而,在多级分区中,TQS 102可以基于宾语列112C-2对表格108的数据进行分区,然后基于主语列112A对数据进行分区,然后甚至基于谓语列112B对数据进行分区。在一些实施例中,TQS 102还可以创建关于任何列112A-C中的索引,这可以帮助改善对加载到表格108中的RDF或三元组格式化的数据的查询处理。
在一些实施例中,当使用分区时,对于给定的查询,如果查询过滤器限制了查询的范围(分区删减),则不需要考虑到所有的分区。此外,在使用分区时,相关的数据可以存储在物理上接近的位置,这可以加快处理速度。从内存消耗的角度来看,分区本身不会增加任何额外的开销;然而,它导致了辅助(auxiliary)数据结构的建立,如下面将要介绍的转换表。另一方面,索引是管理员在处理速度和内存使用之间的直接权衡(trade-off)。假设列存储提供了对任何列创建的索引,那么是存在调整选项的。(RDF的一些专用数据库不同地构建它们的数据而不提供索引。)
在所示示例中,每个分区403A-C包括其自己的词典(例如,词典120)以及其自己的数据表格、集合(set)或值的集合(collection),其可以是来自另一个表格108的连续行或非连续行的子集。如图所示,分区403A-C的每个表格可以包括与该分区403A-C的词典相对应的词典标识符120A(其可能已经由TQS 102在数据分区之后生成),而不是存储原始的值120B。在一些实施例中,不同的分区可以共享主词典。
SPARQL查询的处理通常涉及中间结果与整个知识图谱表格再次连接以产生最终的结果集。这往往会造成很多所谓的自连接(self-join)。因此,这通常是需要有效地构建的最重要的数据库操作之一。
在一些实施例中,如果用不同分区403A-C的唯一词典对不同分区403A-C执行JOIN(连接)操作,则可以基于表格的标识符120A执行JOIN。然而,如图所示,每个词典都是为该分区唯一地生成的(而不是共享词典),因此相同的值在不同的分区中可能具有不同的标识符120A。例如,“纽约”在分区403A中具有ValueID 2(例如,标识符120A),而在分区403B中具有值3。
针对这些相同值在不同分区403A-C中可能具有不同ValueID(例如,标识符120A)的ValueID差异,TQS 102可以生成转换表422A-F(其可以是图1中的转换表122的示例)。如图所示,转换表422A-F可以指示在对应于当前表格或分区403A中的标识符的不同分区403A-C中的其他表格的标识符120A是什么,如词典所指示的。
例如,如转换表422A所示,对应于值“纽约”的ValueID 2在分区403B中被列为标识符3。转换表422A可以是分区403A的词典和分区403B的词典之间的转换表。转换表422B可以是分区403A(的词典)和分区403C(的词典)之间的转换表。
在一些实施例中,TQS 102可以为要连接的每个分区403A-C生成不同的转换表422A-F。在所示示例中,所有三个分区403A-C之间的JOIN可以包括为每个分区403A-C生成两个不同的转换表422A-F。在一些实施例中,TQS102可以在接收或处理JOIN操作之前生成转换表422A-F,这可以使得JOIN非常快并且使用非常少的计算资源来执行,然而,可能需要存储空间来存储所生成的转换表422A-F。在一些实施例中,当要连接的表格或分区的数量少于阈值数量时(例如,在存储转换表422A-F所需的存储容量期间),使用转换表422A-F的JOIN可能是有益的。在一些实施例中,TQS 102可以在JOIN完成之后自动删除转换表422A-F,从而释放存储器或存储空间。随着分区数量的增加,转换表的数量呈指数增长。因此,这种方法通常用于较少数量的分区。
图5是示出根据一些示例实施例的针对通过值120B(而不是ValueID)连接不同分区的TQS 102的示例操作的框图500。如上参考图4所述,各个分区403A-C中的每一个都包括其自己的词典和数据表格。
在所示示例中,可以通过值执行分区403A-C之间的JOIN操作,这可以包括TQS 102生成哈希图521A-C。例如,TQS 102可以为每个分区403A-C的词典中的每个值生成哈希值。在两个不同分区中两个相同值的哈希值(例如,在分区403A和403B中的“纽约”的哈希值)可以相同,即使相应的词典标识符120A不同。
然后,例如,基于生成的哈希值的数量,可以比较这些值的最高有效位,以确定每个分区403A-C中存在哪些值。在所示示例中,可以比较哈希值的两个最高有效位。然而,生成哈希图521A-C和使用哈希值执行连接的一个挑战是,原始的值120B可能仍然在每个分区的词典中占用大量的存储器或存储空间。
图6是示出根据一些示例实施例的针对通过使用替代标识符的值连接不同分区的TQS 102的示例操作框图600。如以上参考图5所述,为每个分区603A-C生成词典的一个问题在于分区词典可能存储原始标识符值,这可能占用大量存储空间。
在图6中,每个分区词典包括与被所有分区603A-C使用的共享或主词典620相对应的值。在所示示例中,仅示出了完整词典620的一部分。此外,在每个词典中的括号内的值可以被忽略,提供这些值只是为了便于理解。每个划分词典可以包括来自主词典620的标识符,而不是包括原始的值。然后该标识符可以被分配其自己的标识符用于每个单独分区603A-C的词典。这可以允许节省存储空间,因为标识符值在主词典620中仅被存储一次,而非在每个单独分区词典中被多次存储。
类似于以上参考图5所描述的,TQS 102可以生成每个分区603A的哈希图621A-C。然而,哈希图621A-C可以使用来自单独分区603A-C的标识符值,而不是原始的数据值。图6示出了将哈希图621A-C与三元组数据的各个分区603A-C一起使用的更有效的方式。
返回图1,在一些实施例中,TQS 102可以向表格108添加另一列,用于识别和移除可能已经从知识图谱110导入表格108中的重复项(duplicate)。重复项可以是在所有的列112A-C中包括相同数据的任意两行。在一些实施例中,TQS 102可以向表格108添加主键(primary key)列,这可以帮助识别和消除重复项(因为每个唯一的值集合将生成新的键,因此两个相同的键将指示两个相同的数据行)。在一些其他实施例中,TQS 102可以在SQL中执行DISTINCT命令,而不是添加新列,这可以用来从表格108中识别和删除重复项。
在一些实施例中,当针对表格108执行时,TQS 102可以对一些SQL命令的操作提供覆盖(override)123。覆盖123可以包括在处理表格108上的数据(例如,查询、检索、加载、修改)时可以用来替代默认SQL处理的特殊标志或处理。然而,数据库106可以对数据库106的其他表格使用默认处理。
覆盖123的一个例子是NULL处理。例如,当表格中的值被识别为NULL时,已知方式的SQL操作通常会返回错误。例如,在要一起添加到SQL的两个值中,其中一个是值3,另一个是NULL,在默认SQL处理中,返回的结果将是NULL或错误。然而,对于覆盖123,如果值3和NULL要一起被添加,NULL值可以被有效地忽略,并且返回的结果将是3。在其他实施例中,覆盖123可以包括在不同类型的处理中的其他用户或系统定义的处理NULL值的方式(例如,诸如用0或1来替代NULL值)。该覆盖123可以帮助防止数据库106在处理表格108上的数据时发出SQL错误,这可以产生更符合SPARQL或定制系统或用户需求的功能。
在一些实施例中,覆盖123可以包括递归(recursion)处理,其可以允许数据库106在执行递归处理时的更短的命令。递归可以指对数据执行的任何重复的查询或处理。例如,识别名为爱丽丝的女孩(subject)的所有长辈(谓语),这将返回宾语集合。
图7是示出根据一些实施例的用于将三元组数据集成到数据库106中的过程700的流程图。方法700可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上执行的指令)或它们的组合的处理逻辑来执行。应当理解,不是所有步骤都需要执行这里提供的公开内容。此外,如本领域普通技术人员将理解的,一些步骤可以同时执行,或者以不同于图7所示的顺序执行。将参考附图描述方法700。
在710中,识别对应于知识图谱的多个三元组。例如,TQS 102可以接收对诸如知识图谱110文件的访问,包括用于导入到数据库106中的多个不同的三元组104。每个三元组104可以包括对应于谓语104B的数据,谓语104B标识了主语104A与宾语104C的关系。
在720中,在数据库中生成要将多个三元组导入其中的表格。例如,TQS102可以生成表格108,该表格108可以被配置为接收三元组104的数据。表格108可以包括相同数据类型(例如,字符串)的主语列112A和谓语列112B,以及多个不同的数据类型114的多个宾语列112C1-112C3。数据类型114可以指示数据库106中使用的数据的类型,或者可以用于从宾语104C导入各种可能的数据。在一些实施例中,每个宾语列112C1-112C3可以被配置成存储不同类型的数据。
在730中,将来自多个三元组的值加载到数据库的生成的表格中。例如,TQS 102可以将来自三元组中的主语104A、谓语104B和宾语104C的数据导入到表格108的对应的列中的各个记录/行中。在一些实施例中,TQS 102可以识别来自宾语104C的数据的数据类型,并将该数据加载到被配置为存储相同数据类型的对应的宾语列112C1-112C3中。
在740中,接收对数据库的生成的表格的查询。例如,TQS 102可以接收查询116,其可以包括要对表格108的数据执行的SQL或SPARQL查询。
在750中,对数据库的生成的表格执行查询,以生成结果。例如,数据库106可以对表格108执行查询116以生成结果118。在一些实施例中,查询116可以包括来自数据库106的多个表格的查询,包括表格108和没有三元组格式化的数据的另一个表格,并且数据库106可以生成组合来自不同表格的数据的结果118。
在760中,基于查询的执行返回结果。例如,TQS 102或数据库106可以向请求系统、进程或用户返回查询116的结果118。
图8是示出根据一些实施例的使用三元组格式化的数据导入数据库106中的主词典120的过程800的流程图。方法800可以由包括硬件(例如,电路、专用逻辑、可编程逻辑、微码等)、软件(例如,在处理设备上执行的指令)或它们的组合的处理逻辑来执行。应当理解,不是所有步骤都需要执行这里提供的公开内容。此外,如本领域普通技术人员将理解的,一些步骤可以同时执行,或者以不同于图8所示的顺序来执行。将参考附图描述方法800。
在810中,识别包括多个行的数据库的表格,每个行对应于知识图谱的多个三元组之一。例如,数据库106或TQS 102可以识别数据库106的表格108,该表格108包括来自加载到各个列112A-C中的知识图谱110的三元组104的数据。
在820中,确定主语列的数据类型与谓语列的数据类型相同。例如,TQS102可以确定主语列112A和谓语列112B两者共享相同的数据类型,诸如字符串。
在830中,基于相同数据类型的确定,确定将为主语列和谓语列两者生成主词典。例如,基于识别出两个列112A、112B共享相同的数据类型,TQS102可以确定它们可以共享主词典120,作为为每一列生成单独的词典的补充或替代。主词典120可以包括用于多个列的词典,其中用于相同值120B的每个唯一标识符120A在不同的列中被重复使用。
在840中,为存储在多个行的主语列中的多个值生成主语数据词典,主语数据词典包括主语列中每个唯一值的唯一标识符。例如,TQS 102可以为主语列112A生成主语词典120。
在850中,为存储在多个行的谓语列中的多个值生成谓语数据词典,其中谓语列中的第一唯一值与主语列中的第二唯一值相同,并且其中第一唯一值在宾语数据词典和主语数据词典两者中被分配与第二唯一值相同的唯一标识符。例如,TQS 102可以为谓语列112B生成谓语词典120,其中出现在谓语列112B中的来自主语列112A的任何值使用与分配给来自主语列112A的值120B相同的标识符120A。
在860中,生成包括来自主语数据词典和谓语数据词典的全部唯一值以及相应的唯一标识符的主词典,其中第一唯一值或第二唯一值中只有一个被包括在具有相同唯一标识符的主词典中。例如,TQS 102可以生成主词典120,其中来自主语词典和谓语词典的唯一值被组合,并且任何重复值被忽略,因此它们在主词典120中仅出现一次。
在870中,基于来自主词典的唯一值替换主语列和谓语列中的值。例如,TQS 102可以用来自主词典120的它们相应的标识符120A替换存储在主语列112A和谓语列中的原始的值120B。
在880中,接收对数据库的生成的表格的查询。例如,TQS 102可以接收查询116,查询116可以包括要针对表格108的数据执行的SQL或SPARQL查询。
在890中,执行对数据库的表格的查询以生成并返回结果。例如,数据库106可以针对表格108执行查询116以生成结果118。在一些实施例中,查询116可以包括来自数据库106的多个表格的查询,包括表格108和没有三元组格式化的数据的另一个表格,并且数据库106可以生成组合了来自不同表格的数据的结果118。然后,TQS 102或数据库106可以将查询116的结果118返回给发出请求的系统、进程或用户。
图10示出了根据一些实施例的用SPARQL查询的TQS 102的两个表格的示例框图1000。图10示出了客户表格1008A和交货(delivery)表格1008B。如从表格中可以看出的,CustomerID中的值包括每个表格中的重叠值,这些重叠值允许识别或查询来自表格1008A-B的记录之间的关系。
代码部分1011示出了从TQS 102内的SQL中的表格1008A-B创建名为“myView”的视图。代码部分1013示出了以可以由TQS 102针对“myView”编写和/或执行的SPARQL查询(替代使用SQL,这将需要相对于SPARQL的更长、更冗长(wordy)的查询)。
作为扩展,这种定义可以跨越知识图谱与常规表格。结果,这两种类型的源都可以用仅仅一个SPARQL查询来查询。作为例子,考虑一个运输或交货应用。销售订单和交货被存储在常规表格中,如1008A和1008B。另一方面,海关和税收规则可以存储在知识图谱中。如果要从德国交货到瑞士,并且货物恰好含有酒精,则适用特殊的税收规则。仅使用一个SPARQL查询,可以查询来自知识图谱和表格1008A、1008B的交货的税收。
例如,可以使用一个或多个计算机系统(诸如图9中所示的计算机系统900)来实现各种实施例和/或其中的组件。计算机系统900可以是能够执行这里所描述的功能的任何计算机或计算设备。例如,一个或多个计算机系统900可以被用来实现任何实施例和/或它们的任何组合或子组合。
计算机系统900包括一个或多个处理器(也称为中央处理单元或CPU),诸如处理器904。处理器904连接到通信基础设施或总线906。计算机系统900可以表示或包括一个或多个片上系统(SOC)。
一个或多个处理器904每一个均可以是图形处理单元(GPU)。在一些实施例中,GPU是作为被设计成处理数学密集型应用的专用电子电路的处理器。GPU可以具有对于大数据块的并行处理有效的并行结构,诸如计算机图形应用、图像、视频等常见的数学密集型数据。
计算机系统900还包括用户输入/输出设备903,如监视器、键盘、定点装置等,通过用户输入/输出接口902与通信基础设施906通信。
计算机系统900还包括主(main or primary)存储器908,诸如随机存取存储器(RAM)。主存储器908可以包括一个或多个级别的缓存。主存储器908已经在其中存储了控制逻辑(即,计算机软件)和/或数据。
计算机系统900还可以包括一个或多个辅(secondary)存储设备或存储器910。辅存储器910可以包括例如硬盘驱动器912和/或可移动存储设备或驱动器914。可移动存储驱动器914可以是软盘驱动器、磁带驱动器、光盘驱动器、光存储设备、磁带备份设备和/或任何其他存储设备/驱动器。
可移动存储驱动器914可以与可移动存储单元918相互作用。可移动存储单元918包括其上存储有计算机软件(控制逻辑)和/或数据的计算机可用或可读存储设备。可移动存储单元918可以是软盘、磁带、光盘、DVD、光存储盘、存储卡和/或任何其他计算机数据存储设备。可移动存储驱动器914以熟知的方式从可移动存储单元918读取和/或向其写入。
根据示例性实施例,辅存储器910可以包括用于允许计算机程序和/或其他指令和/或数据被计算机系统900访问的其他装置、工具或其他方法。这样的装置、工具或其他方法可以包括,例如,可移动存储单元922和接口920。可移动存储单元922和接口920的示例可以包括程序盒式磁带和盒式磁带接口(诸如在视频游戏设备中见到的)、可移动存储芯片(诸如EPROM或PROM)和相关联的插座、记忆棒和USB端口、存储卡和相关联的存储卡插槽、和/或任何其他可移动存储单元和相关联的接口。
计算机系统900还可以包括通信或网络接口924。通信接口924使得计算机系统900能够与远程设备、远程网络、远程实体等(用参考标号928单独和共同表示)的任何组合通信和交互。例如,通信接口924可以允许计算机系统900通过通信路径926与远程设备928通信,通信路径926可以是有线和/或无线的,并且可以包括LAN、WAN、互联网等的任何组合。控制逻辑和/或数据可以经由通信路径926传输到计算机系统900和从计算机系统900接收。
在一些实施例中,包括其上存储有控制逻辑(软件)的有形计算机可用或可读介质的有形装置或制造品在本文中也称为计算机程序产品或程序存储设备。这包括但不限于计算机系统900、主存储器908、辅存储器910和可移动存储单元918和922,以及体现前述任何组合的有形制造品。当由一个或多个数据处理设备(诸如计算机系统900)执行时,这样的控制逻辑使得这样的数据处理设备如这里所述进行操作。
基于本公开中包含的教导,相关领域的技术人员将清楚如何使用除了图9所示之外的数据处理设备、计算机系统和/或计算机体系结构制作并使用本公开的实施例。特别地,实施例可以用了除了这里所述之外的软件、硬件和/或操作系统实施方式来操作。
应理解,具体实施方式部分,而非发明内容和说明书摘要部分,旨在用于解释权利要求。发明内容和说明书摘要部分可以阐述发明人所设想的一个或多个实施例,但不是所有的示例性实施例,因此,不旨在以任何方式限制本公开或所附权利要求。
虽然本公开描述了示例性领域和应用的示例性实施例,但是应理解,本公开不限于此。其他实施例和对其的修改是可能的,并且在本公开的范围和精神内。例如,在不限制本段的一般性的情况下,实施例不限于附图中示出的和/或这里所描述的软件、硬件、固件和/或实体。此外,实施例(无论是否在这里所明确描述的)对于超出这里所描述的示例的领域和应用具有显著的效用。
在示出了特定功能的实施方式及其关系的功能构建块的帮助下,在这里对实施例进行了描述。为了描述的方便,已经在这里任意定义了这些功能构建块的边界。只要适当地执行了指定的功能和关系(或其等同物),就可以定义替换的边界。另外,替换的实施例可以使用不同于这里描述的顺序执行功能块、步骤、操作、方法等。
这里提及的“一个实施例”、“实施例”、“示例实施例”或类似短语表示所述实施例可以包括特定的特征、结构或特性,但并非每个实施例都必须包括特定特征、结构或特性。此外,这些短语不必指代同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,将这样的特征、结构或特性结合到其他实施例中,是在相关领域的技术人员的知识范围内的,无论是否在这里明确提及或描述。另外,一些实施例可以使用“耦合”和“连接”这样的表达以及它们的派生词来描述。这些术语不必是彼此的同义词。例如,一些实施例可以使用术语“连接”和/或“耦合”来描述,以指示两个或更多个元素彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个元素彼此不直接接触,但是仍然彼此合作或交互。
本公开的宽度和范围不应受任何上述示例性实施例的限制,而应当仅根据所附权利要求及其等同物进行限定。
Claims (20)
1.一种用于存储和查询知识图谱的方法,包括:
识别对应于知识图谱的多个三元组,所述多个三元组中的每一个包括主语、谓语和宾语,并且其中,所述谓语识别主语和宾语之间的关系;
在数据库中生成要将多个三元组导入其中的表格,所述生成包括:
在表格中生成主语列,所述主语列配置为存储多个三元组中的每一个的主语的值;
在表格中生成谓语列,所述谓语列配置为存储多个三元组中的每一个的谓语的值;
识别由数据库使用的多个数据类型;并且
在表格中生成对应于宾语的多个宾语列,其中,所述多个宾语列中的每一个对应于多个可能的数据类型中不同的一个,并且被配置为存储多个三元组中的每一个的宾语的值;
将来自多个三元组的值加载到表格中;
接收对表格的查询;
执行对表格的查询以生成结果;以及
基于查询的执行返回结果。
2.根据权利要求1所述的方法,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;以及
将第一三元组的宾语的值加载到第一宾语列中。
3.根据权利要求2所述的方法,还包括:
在除了具有第一三元组的宾语的值的第一宾语列之外的多个宾语列中的每一个中提供NULL指示符。
4.根据权利要求1所述的方法,其中,所述加载包括:
确定多个三元组中的第一三元组的宾语的值包括第一三元组的宾语的多个值;
识别对应于第一三元组的宾语的多个值的多个宾语列;以及
将第一三元组的宾语的多个值加载到所识别的多个宾语列中。
5.根据权利要求1所述的方法,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;
确定该值的宾语数据类型不同于第一宾语列的数据类型;
对第一三元组的宾语的值执行数据转换以生成数据转换值;以及
将第一三元组的宾语的数据转换值加载到第一宾语列中。
6.根据权利要求1所述的方法,其中,所述数据库是列存储数据库。
7.根据权利要求1所述的方法,其中,所述接收包括:
确定所述查询包括资源描述框架(RDF)查询;
将RDF查询转换成结构化查询语言(SQL)查询或SPARQL查询之一;以及
其中,所述执行包括执行对应于RDF查询的SQL查询或SPARQL查询。
8.一种包括至少一个处理器的系统,该至少一个处理器配置为执行以下的操作,包括:
识别对应于知识图谱的多个三元组,所述多个三元组中的每一个包括主语、谓语和宾语,并且其中,所述谓语识别主语和宾语之间的关系;
在数据库中生成要将多个三元组导入其中的表格,所述生成包括:
在表格中生成主语列,所述主语列配置为存储多个三元组中的每一个的主语的值;
在表格中生成谓语列,所述谓语列配置为存储多个三元组中的每一个的谓语的值;
识别数据库由使用的多个数据类型;并且
在表格中生成对应于宾语的多个宾语列,其中,所述多个宾语列中的每一个对应于多个可能的数据类型中不同的一个,并且被配置为存储多个三元组中每一个的宾语的值;
将来自多个三元组的值加载到表格中;
接收对表格的查询;
执行对表格的查询以生成结果;以及
基于查询的执行返回结果。
9.根据权利要求8所述的系统,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;以及
将第一三元组的宾语的值加载到第一宾语列中。
10.根据权利要求9所述的系统,所述操作还包括:
在除了具有第一三元组的宾语的值的第一宾语列之外的多个宾语列中的每一个中提供NULL指示符。
11.根据权利要求8所述的系统,其中,所述加载包括:
确定多个三元组中的第一三元组的宾语的值包括第一三元组的宾语的多个值;
识别对应于第一三元组的宾语的多个值的多个宾语列;以及
将第一三元组的宾语的多个值加载到所识别的多个宾语列中。
12.根据权利要求8所述的系统,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;
确定该值的宾语数据类型不同于第一宾语列的数据类型;
对第一三元组的宾语的值执行数据转换以生成数据转换值;以及
将第一三元组的宾语的数据转换值加载到第一宾语列中。
13.根据权利要求8所述的系统,其中,所述数据库是列存储数据库。
14.根据权利要求8所述的系统,其中,所述接收包括:
确定所述查询包括资源描述框架(RDF)查询;
将RDF查询转换成结构化查询语言(SQL)查询或SPARQL查询之一;以及
其中,所述执行包括执行对应于RDF查询的SQL查询或SPARQL查询。
15.一种其上存储有指令的非暂时性计算机可读介质,当由至少一个计算设备执行时,所述指令使得所述至少一个计算设备执行以下操作,包括:
识别对应于知识图谱的多个三元组,所述多个三元组中的每一个包括主语、谓语和宾语,并且其中,所述谓语识别主语和宾语之间的关系;
在数据库中生成要将多个三元组导入其中的表格,所述生成包括:
在表格中生成主语列,所述主语列配置为存储多个三元组中的每一个的主语的值;
在表格中生成谓语列,所述谓语列配置为存储多个三元组中的每一个的谓语的值;
识别由数据库使用的多个数据类型;并且
在表格中生成对应于宾语的多个宾语列,其中,所述多个宾语列中的每一个对应于多个可能的数据类型中不同的一个,并且被配置为存储多个三元组中每一个的宾语的值;
将来自多个三元组的值加载到表格中;
接收对表格的查询;
执行对表格的查询以生成结果;以及
基于查询的执行返回结果。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;以及
将第一三元组的宾语的值加载到第一宾语列中。
17.根据权利要求16所述的非暂时性计算机可读介质,所述操作还包括:
在除了具有第一三元组的宾语的值的第一宾语列之外的多个宾语列中的每一个中提供NULL指示符。
18.根据权利要求15所述的非暂时性计算机可读介质,其中,所述加载包括:
确定多个三元组中的第一三元组的宾语的值包括第一三元组的宾语的多个值;
识别对应于第一三元组的宾语的多个值的多个宾语列;以及
将第一三元组的宾语的多个值加载到所识别的多个宾语列中。
19.根据权利要求15所述的非暂时性计算机可读介质,其中,所述加载包括:
识别多个三元组中的第一三元组的宾语的值的宾语数据类型;
识别对应于宾语数据类型的多个宾语列中的第一宾语列;
确定该值的宾语数据类型不同于第一宾语列的数据类型;
对第一三元组的宾语的值执行数据转换以生成数据转换值;以及
将第一三元组的宾语的数据转换值加载到第一宾语列中。
20.根据权利要求15所述的非暂时性计算机可读介质,其中,所述数据库是列存储数据库。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/893,592 | 2022-08-23 | ||
US17/893,592 US11947509B2 (en) | 2022-08-23 | 2022-08-23 | Storing and querying knowledge graphs in column stores |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632947A true CN117632947A (zh) | 2024-03-01 |
Family
ID=86942754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310744793.7A Pending CN117632947A (zh) | 2022-08-23 | 2023-06-21 | 在列存储中存储和查询知识图谱 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11947509B2 (zh) |
EP (1) | EP4328759A1 (zh) |
CN (1) | CN117632947A (zh) |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719252B2 (en) * | 2010-10-22 | 2014-05-06 | Daniel Paul Miranker | Accessing relational databases as resource description framework databases |
US8930959B2 (en) * | 2011-05-13 | 2015-01-06 | Orions Digital Systems, Inc. | Generating event definitions based on spatial and relational relationships |
US9639575B2 (en) * | 2012-03-30 | 2017-05-02 | Khalifa University Of Science, Technology And Research | Method and system for processing data queries |
US9229930B2 (en) * | 2012-08-27 | 2016-01-05 | Oracle International Corporation | Normalized ranking of semantic query search results |
US9189509B1 (en) * | 2012-09-21 | 2015-11-17 | Comindware Ltd. | Storing graph data representing workflow management |
IN2013CH01237A (zh) * | 2013-03-21 | 2015-08-14 | Infosys Ltd | |
US9031933B2 (en) * | 2013-04-03 | 2015-05-12 | International Business Machines Corporation | Method and apparatus for optimizing the evaluation of semantic web queries |
US11687527B2 (en) * | 2015-10-28 | 2023-06-27 | Qomplx, Inc. | System and method for analysis of graph databases using intelligent reasoning systems |
US11275894B2 (en) * | 2016-11-21 | 2022-03-15 | Sap Se | Cognitive enterprise system |
US10902012B1 (en) | 2017-11-01 | 2021-01-26 | The Mathworks, Inc. | Methods and systems for using datatypes to represent common properties |
US11036768B2 (en) * | 2018-06-21 | 2021-06-15 | LeapAnalysis Inc. | Scalable capturing, modeling and reasoning over complex types of data for high level analysis applications |
US10742813B2 (en) * | 2018-11-08 | 2020-08-11 | N3, Llc | Semantic artificial intelligence agent |
US11269867B2 (en) * | 2019-08-30 | 2022-03-08 | Microsoft Technology Licensing, Llc | Generating data retrieval queries using a knowledge graph |
US11307541B2 (en) * | 2019-09-06 | 2022-04-19 | Intelligent Fusion Technology, Inc. | Decision support method and apparatus for machinery control |
US11216477B2 (en) * | 2020-01-21 | 2022-01-04 | General Electric Company | System and method for performing semantically-informed federated queries across a polystore |
US11244009B2 (en) * | 2020-02-03 | 2022-02-08 | Intuit Inc. | Automatic keyphrase labeling using search queries |
US20210365817A1 (en) * | 2020-05-13 | 2021-11-25 | International Business Machines Corporation | First-order logical neural networks with bidirectional inference |
US11768869B2 (en) * | 2021-02-08 | 2023-09-26 | Adobe, Inc. | Knowledge-derived search suggestion |
US11706164B2 (en) * | 2021-05-10 | 2023-07-18 | Capital One Services, Llc | Graph-based natural language generation for conversational systems |
WO2023215366A1 (en) * | 2022-05-03 | 2023-11-09 | Kobai, Inc. | Method for implementing data triplestore over a cloud analytical data store |
-
2022
- 2022-08-23 US US17/893,592 patent/US11947509B2/en active Active
-
2023
- 2023-06-21 CN CN202310744793.7A patent/CN117632947A/zh active Pending
- 2023-06-21 EP EP23180503.7A patent/EP4328759A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11947509B2 (en) | 2024-04-02 |
US20240070133A1 (en) | 2024-02-29 |
EP4328759A1 (en) | 2024-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797509B2 (en) | Hash multi-table join implementation method based on grouping vector | |
CN108536705B (zh) | 数据库系统中对象的编码及运算方法与数据库服务器 | |
US9177025B2 (en) | Hash-join in parallel computation environments | |
Kyzirakos et al. | Strabon: A semantic geospatial DBMS | |
US8935232B2 (en) | Query execution systems and methods | |
CN102737033B (zh) | 数据处理设备及其数据处理方法 | |
US20170083573A1 (en) | Multi-query optimization | |
US8359316B2 (en) | Database table look-up | |
US8943059B2 (en) | Systems and methods for merging source records in accordance with survivorship rules | |
US7917512B2 (en) | Method for automated design of range partitioned tables for relational databases | |
Álvarez-García et al. | Compressed k2-triples for full-in-memory RDF engines | |
EP3173947A1 (en) | Paged inverted index | |
Petersohn et al. | Flexible rule-based decomposition and metadata independence in modin: a parallel dataframe system | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
US20140067853A1 (en) | Data search method, information system, and recording medium storing data search program | |
CN107735781B (zh) | 存储查询结果的方法和装置、计算设备 | |
US8805811B2 (en) | Executing user-defined function on a plurality of database tuples | |
CN108804580B (zh) | 一种在联邦型rdf数据库中查询关键字的方法 | |
CN117632947A (zh) | 在列存储中存储和查询知识图谱 | |
US12019608B2 (en) | Storing and querying knowledge graphs in column stores using a global dictionary | |
CN112818010B (zh) | 数据库查询方法及装置 | |
CN111309704B (zh) | 数据库操作方法和数据库操作系统 | |
CN112269797A (zh) | 一种卫星遥感数据在异构计算平台上的多维查询方法 | |
EP2469424B1 (en) | Hash-join in parallel computation environments | |
Chaalal et al. | T-plotter: A new data structure to reconcile OLAP and OLTP models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |