CN113094449B - 基于分布式键值库的大规模知识图谱存储方法 - Google Patents
基于分布式键值库的大规模知识图谱存储方法 Download PDFInfo
- Publication number
- CN113094449B CN113094449B CN202110383862.7A CN202110383862A CN113094449B CN 113094449 B CN113094449 B CN 113094449B CN 202110383862 A CN202110383862 A CN 202110383862A CN 113094449 B CN113094449 B CN 113094449B
- Authority
- CN
- China
- Prior art keywords
- graph
- nodes
- data
- index
- node
- 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.)
- Active
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/288—Entity relationship models
-
- 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/2272—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/242—Query formulation
- G06F16/2433—Query languages
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于分布式键值库的大规模知识图谱存储方案,采用“KG over SQL”统一存储方案或“KG over KV”统一存储方案;“KG over SQL”统一存储方案:读取知识图谱数据;提取知识图谱中的元数据,并生成相应SQL语句;提取知识图谱中的数据存储在数据结构中,并生成相应SQL语句;通过CockroachDB数据库对外SQL接口,执行SQL语句,建立关系表;利用CockroachDB数据库中原有的数据编码映射方案将上述关系表中的数据映射为键值对的形式,存储在CockroachDB底层;“KG over KV”统一存储方案:读取知识图谱数据,将知识图谱转化为含有索引节点的图,将索引节点图数据存储在数据结构中,利用优化的数据编码映射方案将数据映射为键值对的形式,存储在CockroachDB底层。本发明能实现兼容RDF图模型和属性图模型的高效数据存储。
Description
技术领域
本发明涉及知识图谱存储方案领域,更具体的说,是涉及一种基于分布式键值库的大规模知识图谱存储方法。
背景技术
知识图谱(Knowledge Graph)已经成为新一代认知型人工智能的基石。随着人工智能的广泛应用,越来越多的领域开始以知识图谱的形式组织发布其领域知识。知识图谱不仅可以描述现实世界中的实体和概念,还可以描述这些实体和概念之间的联系。
目前有两种主流的知识图谱数据模型:RDF图模型和属性图模型。RDF的全称为资源描述框架(Resource Description Framework),是万维网联盟制定的在语义网上表示和交换机器可理解信息的标准数据模型。资源描述框架通过资源、属性、值三个对象类型来描述网络资源的特性以及资源与资源之间的关系。所有可以用RDF来描述的事物都可以被称为资源,例如一个网页、文件、抽象概念或字符串,该术语与RDF语义规范中使用的“实体”同义。属性用于描述资源的特定特征或资源与资源之间的关系。RDF陈述可以采用三元组的形式,其中分别代表语义数据中的主语(subject)、谓语(predicate)和宾语(object),主语表示资源,谓语表示资源属性或者表示主语和宾语之间的一个关系,宾语表示与该资源的属性值或相连资源,即宾语可以是一个字符串或者是一个资源。RDF图是三元组的有限集合。另一种主流的知识图谱数据模型是属性图模型。属性图由一组顶点和有向边组成,每个节点和边都有自己的标签以声明其类型。每个顶点或边还可以另外分配多个表示属性的键值对,因此属性图模型对于顶点属性和边属性具备内置的支持。目前属性图模型已经被图数据库业界广泛采用。
现阶段,由各个领域的学者建立或从大型文本语料库中提取的可用知识已经达到了空前的规模。链接开放数据于2018年8月发布的LOD云图中很多知识图谱数据集的规模超过10亿个三元组。例如,地理信息知识图谱LinkedGeoData含有30亿个三元组,维基百科知识图谱DBpedia含有130亿个三元组等等。与此同时,业界涌现出一批图数据库,包括Neo4j、TigerGraph、OrientDB等,用于大规模属性图数据的管理。知识图谱数据规模的急剧增长,使得集中式的数据存储已经不能满足当前需求。适用于大规模知识图谱的分布式存储方案已经成为一个迫切需要深入研究的课题。
目前,国内外已经提出了多种分布式存储方案。H2RDF是一个分布式RDF存储系统,它基于HBase和Hadoop框架构建多重索引。H2RDF在HBase存储上创建三个RDF索引,包括SPO、POS和OSP。H2RDF+在H2RDF原有框架的基础下实现六重索引架构,从而支持对关联索引进行一次索引扫描就能有效地处理所有SPARQL查询。
除此之外,涌现了基于Spark项目的分布式知识图谱数据管理系统,S2RDF(SPARQLon Spark for RDF)引入了一种名为ExtVP的基于关系划分的方案用于存储RDF数据,这种存储方案实际上是在垂直划分(Vertical Partitioning)的存储方案上进行扩展,通过考虑RDF数据的基础编码表与连接索引之间可能存在的连接相关性,使用基于半连接的预处理有效地最小化查询输入大小。
另一种分布式知识图谱数据管理系统是基于内存存储的系统。Gurajada等人于2014年提出了TriAD系统,它在RDF存储模式上采用了六重索引。这些索引被维护在一个分布式内存数据结构中,其中每个索引首先根据其连接键进行哈希分区,然后按照字典顺序进行本地排序。
最后一类是基于键值库的分布式知识图谱数据管理系统。Shi等人在2016年提出了基于键值库的分布式存储系统Wukong,基于SPARQL查询通常是给定谓语的查询的前提,Wukong将三元组中的主语和谓语部分共同作为键,大大提高了查询的效率。2017年He等人提出了Stylus,它是一种利用强类型信息构建优化存储方案的分布式RDF三元组库,其底层是分布式键值库Microsoft Trinity Graph Engine。
然而,知识图谱分布式存储方案的研究仍是一项严峻挑战,现有的方案只能存储单一模型的知识图谱数据,因此亟需提出一种统一的分布式存储方案,使其能实现兼容RDF图模型和属性图模型的高效存储。
发明内容
本发明的目的是为了克服现有技术中的不足,提出一种基于分布式键值库的大规模知识图谱存储方法,能够实现兼容RDF图模型和属性图模型的高效数据存储。
本发明的目的是通过以下技术方案实现的。
本发明基于分布式键值库的大规模知识图谱存储方法,采用“KG over SQL”统一存储方案或“KG over KV”统一存储方案;
其中,“KG over SQL”统一存储方案的具体过程:
(1)读取知识图谱数据;
(2)提取知识图谱中的元数据,并生成相应SQL语句;
(3)提取知识图谱中的数据存储在数据结构中,并生成相应SQL语句;
(4)通过CockroachDB数据库对外SQL接口,执行SQL语句,建立关系表;
(5)利用CockroachDB数据库中原有的数据编码映射方案将上述关系表中的数据映射为键值对的形式,存储在CockroachDB底层;
其中,“KG over KV”统一存储方案的具体过程:读取知识图谱数据,将知识图谱转化为含有索引节点的图,将索引节点图数据存储在数据结构中,利用优化的数据编码映射方案将数据映射为键值对的形式,存储在CockroachDB底层。
“KG over SQL”统一存储方案中步骤(4)所述关系表用于保存知识图谱中的节点信息和边信息;将所有节点信息存储在节点类型表中,即VERTEX表中,VERTEX表存储节点的编码、节点的属性以及相应的属性值;将所有边信息存储在边类型表中,即EDGE表中,EDGE表存储边编码、头节点编码、尾节点编码、边属性以及相应的属性值;同时VERTEX表和EDGE表会根据节点类型和边类型被划分为节点类型分表和边类型分表。
“KG over SQL”统一存储方案中所述知识图谱为RDF图或属性图;对于RDF图和属性图,分别应用各自的规则将图中数据映射到“KG over SQL”统一存储方案的关系表中,规则如下:
1)RDF图存储
规则1.对于任意RDF三元组(s,p,o),若该三元组表达实体s的类型为o,则该三元组会被映射为VERTEX表以及表名为o的节点类型分表中的一条记录;
规则2.对于任意三元组(s,p,o),若该三元组表达s实体的p属性属性值为o,则将(p,o)以键值对的形式插入到VERTEX表以及相应节点类型分表中实体s对应的vproperties列中;
规则3.对于任意三元组(s,p,o),若该三元组为表达实体s和实体o之间的联系,则在EDGE表以及表名为p的边类型分表中插入一条记录;
2)属性图存储
规则1.对于属性图中的实体,为其赋予一个唯一的编码并插入到VERTEX表以及对应节点类型分表的vid列,同时将其属性和属性值以键值对的形式插入到vproperties列中;
规则2.对于属性图中的关系,为其赋予一个唯一的编码并插入到EDGE表以及对应边类型分表的eid列,同时将其属性和属性值以键值对的形式插入到eproperties列中,将起始顶点的vid插入到第二列中,将终结顶点的vid插入到第三列中。
“KG over KV”统一存储方案中所述知识图谱为RDF图或属性图,将其转化为含有索引节点的图,图中有三种节点,分别为字面量节点、索引节点和普通节点,所述字面量节点用于存储RDF图中的字面量信息或属性图中的属性值,所述索引节点包括关系索引节点和类型索引节点,其余均为普通节点;其中,关系索引节点用于维护知识图谱中实体与实体的某种特定关系或实体与属性值的某种特定关系,类型索引节点用于维护知识图谱中实体与类型的特定关系;
“KG over KV”统一存储方案中所述优化的数据编码映射方案具体为:
1)对所有普通节点进行编码,存储在vid列表中,注意vid列表中的编号0被预留给索引节点;
2)对所有索引节点进行编码,存储在r/tid列表中,注意r/tid列表中的编号0被预留给关系索引节点,编号1被预留给类型索引节点;
3)对所有的字面量节点进行编码,存储在lid列表中;
4)当存储RDF图时,抽取RDF图中所蕴含的本体层次关系,使用ORDPATH编码技术对本体进行编码,本体编码被存储在oid列表中;对于属性图,其不存在本体信息,所有节点的oid都会被设置为0;
5)d列表中0表示入边,1表示出边;
在优化的数据编码映射方案中,Key由三部分组成,包括oid:vid、r/tid和d,Value为oid:vid或r/tid或lid;
1)对于普通节点,oid:vid部分记录了它的本体编码以及节点编码,r/tid部分表示节点的关系或类型,当r/tid值为特殊值0或1时,Value信息存储在r/tid列表中,其余情况下Value信息存储在oid:vid或lid列表中;
2)对于索引节点,oid:vid部分为特殊值0,r/tid部分表示索引的关系或类型,Value中保存着相应的实体信息。
与现有技术相比,本发明的技术方案所带来的有益效果是:
知识图谱目前有两种主流模型,即RDF图和属性图。RDF模型随着语义网的发展而产生,它用于表示语义网上的资源以及资源与资源之间的联系。RDF模型同时定义了RDF模式语言和本体语言,形成了一套高级语义表示和推理机制。另一方面,属性图兴起于图数据库领域,它对顶点和边属性的内置支持弥补了RDF模型的不足,两种不同的模型阻碍了知识图谱数据的可交互性。本发明针对大规模知识图谱数据,设计了基于键值库的统一存储方案,即“KG over SQL”与“KG over KV”,两种方案均能实现兼容RDF图模型和属性图模型的高效数据存储。
同时随着基于语义的人工智能的发展,越来越多的领域以知识图谱的形式来表示它们的数据,包括百科知识库、生物医学、社交网络、政府机构和地理信息等等。大规模知识图谱的数据管理必将在各个领域被广泛应用。本发明提出的分布式知识图谱数据存储方案可以从根本上提高各个领域图数据管理系统的存储能力,对科学研究和工业发展都有非凡的意义。
附图说明
图1是本发明“KG over SQL”统一存储方案的总体架构图;
图2是本发明“KG over SQL”统一存储方案的流程图;
图3是本发明“KG over SQL”统一存储方案设计图;
图4是本发明“KG over SQL”统一存储方案示意图,
其中,(a)RDF图,(b)属性图,(c)“KG over SQL”统一存储方案;
图5是本发明“KG over KV”统一存储方案的总体架构图;
图6是本发明“KG over KV”统一存储方案的流程图
图7是本发明“KG over KV”统一存储方案的索引节点示意图,
其中,(a)RDF图,(b)属性图,(c)关系索引节点,(d)类型索引节点;
图8是本发明“KG over KV”统一存储方案示意图。
具体实施方式
下面结合附图对本发明作进一步的描述。
本发明选用CockroachDB作为数据库后端,CockroachDB作为Google Spanner的开源实现,采用“SQL on Distributed KV”的架构。CockroachDB对外提供标准的SQL接口,集群任意节点都可以作为接入节点处理用户的SQL请求,接入节点把SQL请求转换为底层的KV操作,并且在必要时将该操作发送至其它节点进行处理,完成后将结果返回给客户端。数据在底层被组织成有序的键值对并由本地KV存储引擎RocksDB进行存储。同时这些键值对会形成一个KV映射,KV映射在逻辑上按照范围被切分成大量的键空间,每一个键空间被称为一个Range,每个Range被复制多份分布到多个CockroachDB节点上。
本发明的关键技术问题在于:1)设计基于分布式键值库的统一存储方案,实现兼容RDF图模型和属性图模型的高效数据存储;2)将RDF图中蕴含的本体层次信息进行编码并反映在存储方案中,使得所开发的系统支持本体的有效管理并保证知识图谱更新时本体编码更新的代价最小化。
本发明基于分布式键值库的大规模知识图谱存储方法,基于CockroachDB自身的架构,可采用“KG over SQL”统一存储方案或“KG over KV”统一存储方案。
参见图1和图2,“KG over SQL”统一存储方案的具体过程:(1)读取知识图谱数据,并存储;(2)提取知识图谱中的元数据,并生成相应SQL语句;(3)提取知识图谱中的数据存储在数据结构中,并生成相应SQL语句;(4)通过CockroachDB数据库对外SQL接口,执行SQL语句,建立关系表;(5)利用CockroachDB数据库中原有的数据编码映射方案将上述关系表中的数据映射为键值对的形式,存储在CockroachDB底层。
其中,关系表用于保存知识图谱中的节点信息和边信息。参见图3,将所有节点信息存储在节点类型表中,即VERTEX表中,VERTEX表存储节点的编码、节点的属性以及相应的属性值;将所有边信息存储在边类型表中,即EDGE表中,EDGE表存储边编码、头节点编码、尾节点编码、边属性以及相应的属性值。具体地,将节点信息存储在VERTEX表中,vid存储节点的编码,vproperties以键值对的形式存储节点的属性以及相应的属性值;边信息存储在EDGE表中,第一列eid存储边的编码,第二三列分别存储头节点编码值和尾节点编码值,第四列eproperties以键值对的形式存储边的属性以及相应的属性值。同时VERTEX表和EDGE表会根据节点类型和边类型被划分为节点类型分表和边类型分表。VERTEX表按照节点类型被划分为以下节点类型分表VTYPE1,VTYPE2,…,VTYPEn,EDGE表按照边类型被划分为以下边类型分表ETYPE1,ETYPE2,…,ETYPEm。
其中,知识图谱为RDF图或属性图。对于RDF图和属性图,分别应用各自的规则将图中数据映射到“KG over SQL”统一存储方案的关系表中,规则如下:
1)RDF图存储
对于RDF三元组(s,p,o),根据三元组的不同形式,使用以下三条规则将三元组中信息映射到“KG over SQL”统一存储方案的节点类型表和边类型表中。
规则1.对于任意RDF三元组(s,p,o),若该三元组表达实体s的类型为o,则该三元组会被映射为VERTEX表以及表名为o的节点类型分表中的一条记录。
规则2.对于任意三元组(s,p,o),若该三元组表达s实体的p属性属性值为o,则将(p,o)以键值对的形式插入到VERTEX表以及相应节点类型分表中实体s对应的vproperties列中。
规则3.对于任意三元组(s,p,o),若该三元组为表达实体s和实体o之间的联系,则在EDGE表以及表名为p的边类型分表中插入一条记录。
2)属性图存储
属性图对节点和边属性提供内置的支持,在将其映射到统一存储模型时相对容易,使用以下两条规则将属性图中信息映射到“KG over SQL”统一存储方案的节点类型表和边类型表中。
规则1.对于属性图中的实体,为其赋予一个唯一的编码并插入到VERTEX表以及对应节点类型分表的vid列,同时将其属性和属性值以键值对的形式插入到vproperties列中。
规则2.对于属性图中的关系,为其赋予一个唯一的编码并插入到EDGE表以及对应边类型分表的eid列,同时将其属性和属性值以键值对的形式插入到eproperties列中,将起始顶点的vid插入到第二列中,将终结顶点的vid插入到第三列中。
参见图4,例如对于两种不同模型的音乐知识图谱,即图4(a)的RDF图和图4(b)的属性图,均可以在图4(c)的“KG over SQL”统一存储方案中进行存储。VERTEX表存储所有节点的信息,EDGE表存储所有边的信息。同时知识图谱中的节点按照类型(Composer、Music、Pianist)存储到节点类型分表中,边按照类型(composes、plays)存储到边类型分表中。边表中eproperties字段可以解决RDF图具体化的问题以及属性图中边属性存储的问题。
参见图5和图6,“KG over KV”统一存储方案的具体过程:读取知识图谱数据,将知识图谱转化为含有索引节点的图,将索引节点图数据存储在数据结构中,摒弃CockroachDB中原有的数据编码映射方案,利用优化的数据编码映射方案将数据映射为键值对的形式,存储在CockroachDB底层。其中,知识图谱为RDF图或属性图。
这里为了加速后续查询速度,我们引入了关系索引节点和类型索引节点的概念,关系索引节点用于维护知识图谱中实体与实体(或实体与属性值)的某种特定关系,类型索引节点用于维护知识图谱中实体与类型的特定关系。参见图7,对于表达相同意义的图7中(a)的RDF图和图7中(b)的属性图,图7中(c)给出了一个关系索引节点gender的例子(关系索引节点用加粗椭圆表示),将图中的Irene节点以入边、Female字面量节点以出边的形式和关系索引节点gender联系起来,同时因为Jack也含有gender这个属性,故将Jack节点以入边、Male字面量节点以出边的形式和同一个gender节点联系起来。图7中(d)是类型索引节点的例子(类型索引节点用虚线椭圆表示),对于Irene实体,将其与Student类型索引节点联系起来,对于Jack实体,将其与Actor类型索引节点联系起来
通过引入关系索引节点和类型索引节点,知识图谱已经被转化为索引节点图,索引节点图中共有三种节点,分别为索引节点、字面量节点(长方形表示)、和普通节点(细线椭圆表示)。所述索引节点包括关系索引节点和类型索引节点,所述字面量节点用于存储RDF图中的字面量信息或属性图中的属性值,其余节点均为普通节点。接下来进行索引节点图的编码。
参见图8,优化的数据编码映射方案具体为:
1)对所有普通节点进行编码,存储在vid列表中,注意vid列表中的编号0被预留给索引节点;
2)对所有索引节点进行编码,存储在r/tid列表中,注意r/tid列表中的编号0被预留给关系索引节点,编号1被预留给类型索引节点;
3)对所有的字面量节点进行编码,存储在lid列表中;
4)当存储RDF图时,抽取RDF图中所蕴含的本体层次关系,使用ORDPATH编码技术对本体进行编码,本体编码被存储在oid列表中;对于属性图,其不存在本体信息,所有节点的oid都会被设置为0;
5)d列表中0表示入边,1表示出边。
在优化的数据编码映射方案中,Key由三部分组成,包括oid:vid、r/tid和d,Value为oid:vid或r/tid或lid。
1)对于普通节点,oid:vid部分记录了它的本体编码以及节点编码,r/tid部分表示节点的关系或类型,当r/tid值为特殊值0或1时,Value信息存储在r/tid列表中,其余情况下Value信息存储在oid:vid或lid列表中;
2)对于索引节点,oid:vid部分为特殊值0,r/tid部分表示索引的关系或类型,Value中保存着相应的实体信息。
图8的键值对列表中,以普通节点Irene为例,键为1.1.1:1|0|1表示Irene节点的所有出边,因此值为1(type),2(knows)以及3(gender),键为1.1.1:1|1|1表示Irene节点的类型,因此值为4(Student),键为1.1.1:1|2|1表示Irene节点所认识的实体,因此值为1.1.2:2;对于类型索引节点Student,键为0|4|0,值为所有类型为Student的实体编码;对于关系索引节点gender,键为0|3|0,值为所有含有gender属性的实体编码。
在“KG over KV”方案中,受到基于键值库的分布式存储系统Wukong的启发,将知识图谱中的实体和关系部分共同作为键,大大提高了查询的效率。同时注意到知识图谱中的大多数查询都是给定实体之间的关系或实体的某个属性,查询实体本身或实体属性值的集合,我们引入索引节点的概念,通过关系索引节点(Relation Index)和类型索引节点(Type Index)加速后续的查询。与以往的分布式键值存储方案,例如Wukong、Stylus等不同的是,本发明提出的存储方案考虑RDF图中的字面量(属性图中的属性值),为字面量进行单独编码;同时将RDF图中蕴含的本体信息抽取出来,对本体进行ORDPATH编码,并将实体与其对应的本体关联起来,使所开发的系统支持本体的有效管理。ORDPATH编码有一些突出的优点:(1)ORDPATH编码允许在本体树中的任意位置插入新节点,而无需重新编码任何旧节点,因此采用ORDPATH编码的更新成本较低;(2)ORDPATH编码方式使得比较ORDPATH值很容易,可以通过比较它们的编码特征识别出两个节点是父子关系还是兄弟关系。
尽管上面结合附图对本发明的功能及工作过程进行了描述,但本发明并不局限于上述的具体功能和工作过程,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以做出很多形式,这些均属于本发明的保护之内。
Claims (1)
1.一种基于分布式键值库的大规模知识图谱存储方法,其特征在于,采用“KG overKV”统一存储方案,具体过程:读取知识图谱数据,将知识图谱转化为含有索引节点的图,将索引节点图数据存储在数据结构中,利用优化的数据编码映射方案将数据映射为键值对的形式,存储在CockroachDB底层;
其中,所述知识图谱为RDF图或属性图,将其转化为含有索引节点的图,图中有三种节点,分别为字面量节点、索引节点和普通节点,所述字面量节点用于存储RDF图中的字面量信息或属性图中的属性值,所述索引节点包括关系索引节点和类型索引节点,其余均为普通节点;其中,关系索引节点用于维护知识图谱中实体与实体的某种特定关系或实体与属性值的某种特定关系,类型索引节点用于维护知识图谱中实体与类型的特定关系;
其中,所述优化的数据编码映射方案具体为:
1)对所有普通节点进行编码,存储在vid列表中,注意vid列表中的编号0被预留给索引节点;
2)对所有索引节点进行编码,存储在r/tid列表中,注意r/tid列表中的编号0被预留给关系索引节点,编号1被预留给类型索引节点;
3)对所有的字面量节点进行编码,存储在lid列表中;
4)当存储RDF图时,抽取RDF图中所蕴含的本体层次关系,使用ORDPATH编码技术对本体进行编码,本体编码被存储在oid列表中;对于属性图,其不存在本体信息,所有节点的oid都会被设置为0;
5)d列表中0表示入边,1表示出边;
在优化的数据编码映射方案中,Key由三部分组成,包括oid:vid、r/tid和d,Value为oid:vid或r/tid或lid;
对于普通节点,oid:vid部分记录了它的本体编码以及节点编码,r/tid部分表示节点的关系或类型,当r/tid值为特殊值0或1时,Value信息存储在r/tid列表中,其余情况下Value信息存储在oid:vid或lid列表中;
对于索引节点,oid:vid部分为特殊值0,r/tid部分表示索引的关系或类型,Value中保存着相应的实体信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110383862.7A CN113094449B (zh) | 2021-04-09 | 2021-04-09 | 基于分布式键值库的大规模知识图谱存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110383862.7A CN113094449B (zh) | 2021-04-09 | 2021-04-09 | 基于分布式键值库的大规模知识图谱存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113094449A CN113094449A (zh) | 2021-07-09 |
CN113094449B true CN113094449B (zh) | 2023-04-18 |
Family
ID=76675926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110383862.7A Active CN113094449B (zh) | 2021-04-09 | 2021-04-09 | 基于分布式键值库的大规模知识图谱存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113094449B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704487A (zh) * | 2021-07-29 | 2021-11-26 | 湖南五凌电力科技有限公司 | 知识图谱的生成方法、装置、计算机设备及存储介质 |
CN114936296B (zh) * | 2022-07-25 | 2022-11-08 | 达而观数据(成都)有限公司 | 超大规模知识图谱存储的索引方法、系统及计算机设备 |
CN116701661B (zh) * | 2023-08-07 | 2023-10-13 | 中国建筑西南设计研究院有限公司 | 一种基于编码的建筑工程bim设计算量方法 |
CN117150090A (zh) * | 2023-10-30 | 2023-12-01 | 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) | 自动驾驶数据的属性图模型建立和数据管理方法、装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037108B1 (en) * | 2009-07-22 | 2011-10-11 | Adobe Systems Incorporated | Conversion of relational databases into triplestores |
CN109033314A (zh) * | 2018-07-18 | 2018-12-18 | 哈尔滨工业大学 | 内存受限情况下的大规模知识图谱的实时查询方法和系统 |
CN109710775A (zh) * | 2018-12-29 | 2019-05-03 | 北京航天云路有限公司 | 一种基于多规则的知识图谱动态生成方法 |
CN110543585A (zh) * | 2019-08-14 | 2019-12-06 | 天津大学 | 一种基于关系模型的rdf图和属性图统一存储方法 |
CN110909111A (zh) * | 2019-10-16 | 2020-03-24 | 天津大学 | 基于知识图谱rdf数据特征的分布式存储与索引方法 |
CN111427695A (zh) * | 2020-04-01 | 2020-07-17 | 山东汇贸电子口岸有限公司 | 一种分布式数据库中存储过程的并发调度装置 |
CN111752996A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种CockroachDB支持多存储引擎的实现方法 |
CN112148891A (zh) * | 2020-09-25 | 2020-12-29 | 天津大学 | 一种基于图感知张量分解的知识图谱补全方法 |
CN112269786A (zh) * | 2020-11-02 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种内存数据库kv存储引擎索引的创建方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8719250B2 (en) * | 2005-04-18 | 2014-05-06 | Oracle International Corporation | Integrating RDF data into a relational database system |
US11494665B2 (en) * | 2015-10-28 | 2022-11-08 | Qomplx, Inc. | Multi-tenant knowledge graph databases with dynamic specification and enforcement of ontological data models |
CN112364278A (zh) * | 2020-11-23 | 2021-02-12 | 浪潮云信息技术股份公司 | 一种基于CockroachDB底层键值数据分类优化方法 |
-
2021
- 2021-04-09 CN CN202110383862.7A patent/CN113094449B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8037108B1 (en) * | 2009-07-22 | 2011-10-11 | Adobe Systems Incorporated | Conversion of relational databases into triplestores |
CN109033314A (zh) * | 2018-07-18 | 2018-12-18 | 哈尔滨工业大学 | 内存受限情况下的大规模知识图谱的实时查询方法和系统 |
CN109710775A (zh) * | 2018-12-29 | 2019-05-03 | 北京航天云路有限公司 | 一种基于多规则的知识图谱动态生成方法 |
CN110543585A (zh) * | 2019-08-14 | 2019-12-06 | 天津大学 | 一种基于关系模型的rdf图和属性图统一存储方法 |
CN110909111A (zh) * | 2019-10-16 | 2020-03-24 | 天津大学 | 基于知识图谱rdf数据特征的分布式存储与索引方法 |
CN111427695A (zh) * | 2020-04-01 | 2020-07-17 | 山东汇贸电子口岸有限公司 | 一种分布式数据库中存储过程的并发调度装置 |
CN111752996A (zh) * | 2020-07-01 | 2020-10-09 | 浪潮云信息技术股份公司 | 一种CockroachDB支持多存储引擎的实现方法 |
CN112148891A (zh) * | 2020-09-25 | 2020-12-29 | 天津大学 | 一种基于图感知张量分解的知识图谱补全方法 |
CN112269786A (zh) * | 2020-11-02 | 2021-01-26 | 浪潮云信息技术股份公司 | 一种内存数据库kv存储引擎索引的创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113094449A (zh) | 2021-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113094449B (zh) | 基于分布式键值库的大规模知识图谱存储方法 | |
CN107491561B (zh) | 一种基于本体的城市交通异构数据集成系统及方法 | |
CN110837492B (zh) | 一种多源数据统一sql提供数据服务的方法 | |
CN112000725B (zh) | 一种面向多源异构资源的本体融合前处理方法 | |
CN104809190B (zh) | 一种树形结构数据的数据库存取方法 | |
Sakr et al. | Linked data: Storing, querying, and reasoning | |
Comyn-Wattiau et al. | Model driven reverse engineering of NoSQL property graph databases: The case of Neo4j | |
Slepicka et al. | KR2RML: An Alternative Interpretation of R2RML for Heterogenous Sources. | |
CN114218472A (zh) | 基于知识图谱的智能搜索系统 | |
Natarajan et al. | [Retracted] Schema‐Based Mapping Approach for Data Transformation to Enrich Semantic Web | |
Yan et al. | Indexing temporal RDF graph | |
Drakopoulos et al. | A semantically annotated JSON metadata structure for open linked cultural data in Neo4j | |
Khelil et al. | Combining graph exploration and fragmentation for scalable RDF query processing | |
CN108595588B (zh) | 一种科学数据存储关联方法 | |
Futia et al. | Training neural language models with sparql queries for semi-automatic semantic mapping | |
RU2605387C2 (ru) | Способ и система для хранения данных графов | |
Hauswirth et al. | Linked data management | |
CN114880483A (zh) | 一种元数据知识图谱构建方法、存储介质及系统 | |
Ren et al. | Rules and implementation for generating Ontology from relational database | |
Yan et al. | Temporal RDF (S) data storage and query with HBase | |
Russo et al. | VEBO: Validation of ER diagrams through ontologies and WordNet | |
Alaoui et al. | Semantic Oriented Data Modeling for Enterprise Application Engineering Using Semantic Web Languages | |
Naz et al. | Fully automatic OWL generator from RDB schema | |
Sheng et al. | Fast Access and Retrieval of Big Data Based on Unique Identification. | |
Xu | A Temporal RDF (S) Construction Method Based on Temporal Relational Database |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |