CN110727760A - 一种对大规模知识图谱进行分布式正则路径查询的方法 - Google Patents

一种对大规模知识图谱进行分布式正则路径查询的方法 Download PDF

Info

Publication number
CN110727760A
CN110727760A CN201910845254.6A CN201910845254A CN110727760A CN 110727760 A CN110727760 A CN 110727760A CN 201910845254 A CN201910845254 A CN 201910845254A CN 110727760 A CN110727760 A CN 110727760A
Authority
CN
China
Prior art keywords
node
slave
nodes
partial
result
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.)
Granted
Application number
CN201910845254.6A
Other languages
English (en)
Other versions
CN110727760B (zh
Inventor
王鑫
王思邈
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.)
Tianjin University
Original Assignee
Tianjin University
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 Tianjin University filed Critical Tianjin University
Priority to CN201910845254.6A priority Critical patent/CN110727760B/zh
Publication of CN110727760A publication Critical patent/CN110727760A/zh
Application granted granted Critical
Publication of CN110727760B publication Critical patent/CN110727760B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种对大规模知识图谱进行分布式正则路径查询的方法,包括如下步骤:1)、将知识图谱数据随机分布存储在节点集S={S1,S2,...,Sn}上,同时,根据参数k在节点之间构建通用部分求值模型GPE;2)、主节点根据正则路径查询Q建立自动机AQ=(St,∑,δ,q0,F)并将其发送给从节点;3)、从节点集S={S1,S2,...,Sn}中的节点以多线程并发的方式建立通信模块和计算模块,分别负责节点之间的通信和节点上的局部计算;4)、每个从节点将部分结果集发送给主节点;5)、主节点将接收到的所有从节点的部分结果进行合并以形成最终查询结果;6)、统计所有节点上的最终结果即为满足正则路径查询Q的结果;本发明设计提出GPE模型并将其应用到大规模知识图谱上进行正则路径查询处理,以提高分布式正则路径查询处理的性能。

Description

一种对大规模知识图谱进行分布式正则路径查询的方法
技术领域
本发明涉及知识图谱查询领域,具体涉及一种对大规模知识图谱进行分布式正则路径查 询的方法。
背景技术
在大数据和移动互联推动的信息时代背景下,知识图谱(Knowledge Graph)以其强大的 语义处理能力和开放组织能力,为知识化组织和智能应用奠定了基础。与传统关系模型相比, 资源描述框架(Resource Description Framework,RDF)作为影响最大的图模型之一,更清晰 的反映了现实世界中的事物及其联系。随着知识图谱规模的日益增长,规模为百万顶点(106) 和上亿条边(108)的RDF数据集已经常见,采用单机的查询处理方法无法在用户可接受的 时间内完成其上的图查询处理,基于集群的分布式图查询已经成为应对知识图谱大数据挑战 的必然选择。
作为知识图谱上的主要查询类型,正则路径查询(Regular Path Query,RPQ)被广泛应 用到各个领域,很多知识图谱查询语言都支持正则路径查询,比如Cypher和SPARQL1.1。 对于给定的RDF图G=(V,E)和边的标签集合∑,正则路径查询问题是在G中找到一系列顶 点对(v0,vn),使得从起始顶点v0到终止顶点vn的路径ρ上的标签序列λ(ρ)满足正则表达式。 一个RPQQ被定义为ans(x,y)←(x,r,y),其中,x和y是节点变量或常量,r是∑上的正则 表达式。
对于分布式图查询处理,基于部分求值(Partial Evaluation,PE)技术已提出了一系列有 效方法。部分求值的思想为:(i)给定函数f(s,d),其中s是已知的输入数据,d是未知的输 入数据;(ii)在部分求值阶段,只对f中依赖于s的部分进行计算,得到一个部分求值结果, 可知这个部分求值结果依赖于未知输入数据d;(iii)将所有部分求值结果进行合并汇总,获 得最终结果。但是,将部分求值思想应用到大规模图数据的查询上存在一定的问题,一方面 生成很多无效的部分结果,另一方面部分结果过多导致合并汇总阶段遇到瓶颈。
目前将部分求值思想应用到大规模知识图谱上的分布式正则路径查询的工作少之又少。 进一步的,仅采用部分求值技术的正则路径查询研究方法一方面没有考虑部分结果计算代价 和集群中机器的通信开销之间的权衡,另一方面极有可能生成很多无效的部分结果,从而导 致汇总阶段的瓶颈。
目前已有的单机系统上的正则路径查询算法包括如下:
在Goldman等人提出的DataGuides工作中,图数据被转换成确定性有穷自动机(Deterministic FiniteAutomaton,DFA),并在图数据上构建自动机索引进行优化,但该工作 生成的索引规模很大,不适合在大规模图数据上使用。Calvanese等人提出使用视图来解决正 则路径查询问题,将问题转化为检查顶点对是否满足查询,然而这种方法的查询类型受到某 些假设条件的严格限制。面对大规模图数据,一种高效率的索引TraPath被应用在正则路径查 询处理中,该“双层双向”(double-layer bi-directional)的索引结构具有线性空间复杂度。Zhang 等人对查询的正则表达式进行划分,首先处理最长的固定谓词序列,最后再对包含闭包的子 表达式进行处理。Koschmieder等人提出使用“罕见标签”(rare-label)的方法,该方法采取 了分治策略,将正则路径查询划分为很多规模较小的子查询,在自建的图数据索引上进行双 向的广度优先遍历,但是,该方法需要提前确定“罕见标签”,普适性和扩展性不强。
目前已有的分布式系统上的正则路径查询算法包括如下:
Wang等人提出基于部分求值的分布式正则路径查询,这是首次将部分求值的思想应用在 正则路径查询的工作中,查询过程分为局部计算和聚合部分结果两个阶段,局部计算阶段基 于动态规划思想,聚合阶段基于Thompson方法构造自动机整合局部计算的部分结果。 Maurizio等人提出了一种基于Brzozowski导数和Antimirov偏导数的分布式正则路径查询算 法,该方法在Giraph图计算框架上实现,但是仅在合成的ER图和幂律图上进行了测试。 Maryam等人提出了一种基于消息传递的分布式正则路径查询算法,但该工作只分析了算法的 复杂度,缺少在合成数据集和真实数据集上的验证实验。
发明内容
本发明的目的在于克服上述现有技术的缺点,提出一种基于通用部分求值的模型GPE (General Partial Evaluation)。相比于部分求值思想,本发明将部分求值的一次局部计算分解 为多次局部计算,并在局部计算的过程中增加少量的通信,以减少无效的局部计算结果和解 决部分求值聚合阶段的瓶颈问题。进一步的,本发明将GPE模型应用到大规模知识图谱上进 行正则路径查询处理,以分布式SQL引擎HAWQ为实验平台,并且通过引入优化策略,以 最大化提高分布式正则路径查询处理的性能。
为了解决现有技术存在的问题,本发明采用如下技术方案:
1、一种对大规模知识图谱进行分布式正则路径查询的方法,其特征在于,包括如下步骤:
1)、将知识图谱数据随机分布存储在从节点集S={S1,S2,...,Sn}上,同时,根据参数k在 节点集S={S1,S2,...,Sn}之间构建通用部分求值模型GPE;
2)、在主节点S0上对给出的正则路径查询Q建立有穷状态自动机AQ=(St,∑,δ,q0,F),同 时,计算AQ的状态转换集Trans并将其发送给每个从节点;
3)、节点集S={S1,S2,...,Sn}中的节点以多线程并发的方式建立通信模块和计算模块,所 述通信模块为对每个从节点进行k次接收消息和k次发送消息过程,所述计算模块为对每个 从节点进行k+1次局部计算的过程;
4)、每个从节点将部分结果集发送给主节点;
5)、主节点将接收到的所有从节点的部分结果进行合并以形成最终查询结果;
6)、统计所有节点上的最终结果即为满足正则路径查询Q的结果。
2、根据权利要求1所述的一种对大规模知识图谱进行分布式正则路径查询的方法,其特 征在于,所述步骤3)中通信模块对每个从节点进行k次接收消息、发送消息和计算模块对 每个从节点进行k+1次局部计算的过程,所有从节点并行执行,包括如下阶段:
(1)初始化局部匹配阶段。从节点接收到查询Q对应的状态转换集Trans后,匹配过程分 为两种情况:第一种情况为k=0,则将该节点上的每个三元组(s,p,o)∈Fi和Trans集中的任 一状态转换(q,a,q')相匹配,如果当前顶点s的出边标签p与状态q的输入字符a一致,则形 成匹配(s,q,o,q'),将所有匹配不断向前扩展更新,直至不能生成新的匹配。在这个过程中, 基于前缀部分结果集Pre、中缀部分结果集Inf、后缀部分结果集Suf和最终结果集的特征, 将匹配分别保存到部分结果集和最终结果集中;第二种情况为k≥1,则只需将每个三元组 (s,p,o)∈Fi与Trans集中的初始状态转换(q0,a,q')相匹配,并且在匹配更新过程中只会生成 前缀部分结果集Pre和最终结果集。
(2)发送消息阶段(k≥1)。局部计算完成后,将前缀部分结果集Pre发送给其余所有从 节点。
(3)接收消息阶段(k≥1)。接收其余从节点发送的前缀部分结果集Pre,并将其中的每 一个匹配依次放入消息队列Mailbox中,最后放入(v0,0,v0,0)用来标记之前的匹配为一次通信 过程所接收到的匹配。
(4)局部计算阶段(k≥1)。如果消息队列Mailbox不为空,则从中取出一个匹配(s,q0,o,q), 如果该节点上的知识图谱数据中存在一个三元组(o,p,o')且Trans集中存在一个状态转换(q,p,q'),则该匹配可以更新为(s,q0,o',q'),按照这种方法不断向前扩展直至该匹配不能更 新为止。重复执行上述过程直至取出的匹配为(v0,0,v0,0),则上一次通信接收到的所有匹配已 经完成在该节点上的局部计算。
重复执行(2)、(3)和(4)三个阶段k次。
3、根据权利要求1所述的一种对大规模知识图谱进行分布式正则路径查询的方法,其特 征在于,所述步骤5)中主节点对所有从节点的部分结果进行合并的过程分为两种情况:
(1)所有从节点的匹配都已经形成最终结果,即所有从节点的前缀部分结果集Pre都为 空,没有需要发送给其余从节点继续匹配的部分结果,则查询完成;(2)至少有一个从节点 还有要发送给其余从节点待更新的前缀部分结果集Pre,则每个从节点需要计算中缀部分结 果和后缀部分结果并将其发送给主节点,主节点合并部分结果形成最终结果。
有益效果
本发明针对大规模知识图谱数据,设计了一种基于通用部分求值的模型GPE,并基于GPE 模型实现了分布式正则路径查询处理,通过调节GPE模型的参数k,从而使查询达到最佳性 能。在保证算法正确性的同时,提出两种优化策略,分别减少了GPE模型的通信开销和局部 计算代价,提高了分布式正则路径查询算法的性能,使其可以扩展到更大规模的数据。
附图说明
图1是本发明的通用部分求值模型(GPE)的架构图。
图2是本发明的通用部分求值模型(GPE)的局部计算和节点间通信具体实现方案图。
图3是本发明基于GPE的正则路径查询算法主节点的流程图。
图4是本发明基于GPE的正则路径查询基本算法从节点的流程图。
图5是本发明第一种优化方案的流程图(以一次通信过程为例)。
图6是本发明第二种优化方案的流程图(以一次局部计算过程为例)。
图7是本发明中随着GPE模型参数k的变化在合成数据集LUBM上不同查询所得的查询时间。
图8是本发明中随着GPE模型参数k的变化在真实数据集DBpedia上不同查询所得的查 询时间。
图9是本发明中随着GPE模型参数k的变化通信量的变化情况。
具体实施方式
下面结合附图对本发明作进一步详细说明。
参见图1,GPE模型采用主从架构,将查询过程分为局部计算和节点间通信的一个交替 序列,所有从节点并行执行。通信过程基于可扩展性强的UDP协议,由于UDP协议对数据 包的大小有限制,因此需要分别在发送端和接收端对消息进行拆分和重组。直到k次通信结 束,则将各个从节点的部分匹配结果发送给主节点,主节点将所有部分结果进行合并以形成 满足正则路径查询Q的最终结果。遍历所有节点最终结果集,即可获得该查询的全部结果。 所述的k为GPE模型的参数,控制GPE模型中每个节点与其余从节点之间通信的次数,当前 节点完成一次局部计算后将部分结果发送给其余所有从节点,则记为一次通信过程。特别地, 当k=0时,GPE模型等同于部分求值思想。
基于GPE模型的分布式正则路径查询过程分为一系列局部计算和节点间消息传递,所有 从节点并行执行。具体实现步骤分为以下六个阶段:
(1)数据划分阶段。将知识图谱数据随机分布式存储在节点集S={S1,S2,...,Sn}上,同时, 根据参数k在节点集S={S1,S2,...,Sn}之间构建GPE模型;
(2)发送查询阶段。主节点根据给定的正则路径查询Q中的正则表达式r构造自动机 AQ=(St,∑,δ,q0,F)并将Trans集发送给每个从节点,其中(i)St为自动机中状态的集合;(ii) ∑为输入符号字母表;(iii)δ(q,a)为状态之间的转换函数,给定一个状态q∈St和一个输入 符号a∈∑,函数返回q的后继状态q';(iv)q0为自动机的初始状态;(v)F为自动机终止 状态的集合。所述的正则表达式被递归定义为r::=ε|p|r/r|r|r|r*,其中ε为空串,p为字 母表∑中的任意字符,/代表连接、|代表选择、*代表闭包。
(3)匹配计算与通信阶段。每个从节点以多线程并发的方式建立通信模块和计算模块,所 述通信模块为对每个从节点进行k次接收消息和k次发送消息的过程,所述计算模块为对每 个从节点进行k+1次局部匹配的过程。
(4)部分结果汇总阶段。这一阶段分为两种情况,在完成第k次的局部匹配阶段后,(i) 所有从节点的匹配都已经形成最终结果,也就是说所有从节点的前缀部分结果集Pre都为空, 没有需要发送给其余从节点继续匹配的部分结果,则查询完成;(ii)至少有一个从节点还有 要发送给其余从节点待更新的前缀部分结果集Pre,则每个从节点需要计算Inf集和Suf集并 将所有部分结果发送给主节点。
(5)部分结果合并阶段。主节点将接收到的所有从节点的部分结果进行合并以形成最终查 询结果,合并阶段从每个前缀部分结果集Pre中的匹配(s,q0,o,q)开始,如果在后缀部分结果 集Suf中存在匹配(o,q,o',qf),则可将两个匹配连接成最终结果(s,o'),通过不断的与Inf集 和Suf集中的匹配相连接形成所有最终结果。
(6)查询完成阶段。统计所有节点上的最终结果即为满足正则路径查询Q的结果。
参见图2,基于GPE模型的分布式正则路径查询过程的匹配计算与通信阶段,每个从节 点以多线程并发的方式进行局部计算和节点间的通信,具体分为以下过程:
(1)初始化局部匹配。从节点接收到状态转换集Trans后,匹配过程分为两种情况。第一 种情况为k=0,则将该节点上的每个三元组(s,p,o)∈Fi和自动机AQ的Trans集中的任一状态 转换(q,a,q')相匹配,如果当前顶点s的出边标签p与状态q的输入字符a一致,则形成匹配 (s,q,o,q')。将所有匹配不断向前扩展更新,直至不能生成新的匹配。在这个过程中,基于前 缀部分结果集Pre、中缀部分结果集Inf、后缀部分结果集Suf和最终结果集的特征,将匹配 分别保存到部分结果集和最终结果集中。第二种情况为k≥1,则只需将每个三元组 (s,p,o)∈Fi与Trans集中的初始状态转换(q0,a,q')相匹配,并且在匹配更新过程中只会生成 前缀部分结果集Pre和最终结果集。
(2)发送消息(k≥1)。局部计算完成后,将前缀部分结果集Pre发送给其余所有从节点。
(3)接收消息(k≥1)。接收其余从节点发送的前缀部分结果集Pre,并将其中的每一个 匹配依次放入消息队列Mailbox中,最后放入(v0,0,v0,0)用来标记之前的匹配为一次通信过程 所接收到的匹配。
(4)局部计算(k≥1)。如果消息队列Mailbox不为空,则从中取出一个匹配(s,q0,o,q), 如果该节点上的数据中存在一个三元组(o,p,o')且Trans集中存在一个状态转换(q,p,q'),则 该匹配可以更新为(s,q0,o',q'),按照这种方法不断向前扩展直至该匹配不能更新为止。重复 执行上述过程直至取出的匹配为(v0,0,v0,0),则上一次通信接收到的所有匹配已经完成在该节 点上的局部计算。
重复执行(2)、(3)和(4)三个阶段k次。
参见图3,本发明基于GPE模型的分布式正则路径查询主节点算法如下,将根据正则路 径查询Q=(x,r,y)构建的Trans集和GPE模型参数k发送给从节点。对于k≥1的情况,等待接 收所有从节点经过k次局部计算后的匹配状态flag,(i)所有从节点都没有待更新的部分结 果,则查询结束;(ii)至少存在一个从节点还存在待更新的部分结果,则等待所有从节点返 回部分结果并将其通过assemble函数合并成最终结果。合并阶段从每个前缀部分结果集Pre 中的匹配(s,q0,o,q)开始,如果在后缀部分结果集中存在匹配(o,q,o',qf),则可将两个匹配连 接成最终结果(s,o'),通过不断的与Inf集和Suf集中的匹配相连接形成所有最终结果。
算法1:GPERPQ
输入:RDF图T、RPQQ=(x,r,y)和GPE模型参数k
输出:正则路径查询结果集
Figure BDA0002195061550000071
Figure BDA0002195061550000072
Figure BDA0002195061550000081
函数1:
Figure BDA0002195061550000082
输入:正则路径查询部分结果集
输出:正则路径查询最终结果集
Figure BDA0002195061550000083
Figure BDA0002195061550000084
参见图4,本发明基于GPE模型的分布式正则路径查询从节点算法如下,所有从节点并 行执行。接收主节点发送的状态转换集合Trans和GPE模型参数k,通过一系列局部计算和 通信完成或者部分完成正则路径查询。
局部匹配过程分为初始化局部匹配和通用局部匹配。对于初始化局部匹配过程,具体包 括以下步骤:
(1)该节点上存储的知识图谱数据分片Fi中每个三元组(s,p,o)和Trans集进行初始化匹 配,如果Trans集中存在起始状态的转换(q0,p,q),则形成一个中间结果匹配(s,q0,o,q)并将 其放入中间结果集Mid中;
(2)对于中间结果集Mid中的每个匹配,根据匹配到的当前状态和当前顶点的出边标签 不断向前扩展,同时更新匹配,直到匹配到该节点存储的知识图谱数据的边界顶点,则将当 前匹配作为一个部分结果;
(3)在不断向前扩展更新匹配的过程中,如果匹配到的状态q属于终态集合F,则将当 前匹配的顶点对加入到最终结果集中;
其中,步骤(2)中,所述的边界顶点分为入边边界点vin和出边边界点vout。入边边界点 集定义为
Figure BDA0002195061550000091
即在其他节点上存在该节点的入边的点。 同样的,出边边界点集定义为
Figure BDA0002195061550000092
即在其他分片上 存在该节点的出边的点。
其中,步骤(2)中,所述的部分结果又分为前缀部分结果集Pre、中缀部分结果集Inf和 后缀部分结果集Suf。Pre集中的匹配形如(v,q0,vout,q),其起始状态为自动机的初始状态q0并 且匹配的终止顶点为出边边界点vout;Inf集中的匹配形如(vin,q,vout,q'),其起始顶点为入边 边界点vin并且匹配的终止顶点为出边边界点vout;Suf集中的匹配形如(vin,q,v,qf),其起始顶 点为入边边界点vin并且匹配的终止状态qf∈F。
其中,步骤(3)中,所述的最终结果形如(v0,q0,vn,qf),其起始状态为自动机的初始状 态q0且当前匹配到的状态qf∈F,则在节点v0到节点vn之间存在一条路径ρ且路径上的标签 序列λ(ρ)满足给定正则表达式r,因此(v0,vn)为查询最终结果之一。
对于通用局部匹配过程,负责与其余从节点进行k次通信和k次局部计算,具体包括以 下步骤:
(1)将部分结果集发送给其余每个从节点,则该节点完成一次通信;
(2)接收其余从节点发送的前缀部分结果集Pre,并将其中的每一个匹配依次放入消息 队列Mailbox中,最后放入(v0,0,v0,0)用来标记之前的匹配为一次通信过程所接收到的匹配。
(3)循环从Mailbox中取出其余从节点发送的部分结果中的一个匹配,匹配过程重复初 始化局部匹配的步骤(2)和(3),直至取出的匹配为标记匹配,则完成一次局部计算;
重复步骤(1)、(2)和(3),直至完成k次通信和k次局部计算。
算法2:localEvalWithComm
输入:RDF图的一个数据分片Fi,出边边界点集Fi.O和入边边界点集Fi.I 输出:正则路径查询结果集
Figure BDA0002195061550000101
Figure BDA0002195061550000102
函数2:match((s,q,o,q'))
输入:一个匹配(s,q,o,q')
输出:部分结果集
Figure BDA0002195061550000112
和最终结果集
Figure BDA0002195061550000113
Figure BDA0002195061550000121
参见图5,对于第一种优化算法,一方面对要发送的消息进行过滤,筛选掉一部分不能再 继续向前扩展的匹配,另一方面将消息发送到指定从节点而不是所有从节点。对于RDF图T, 在数据划分阶段,采用哈希划分策略T=F1∪F2∪...∪Fn,将数据存储在n个从节点 S={S1,S2,...,Sn}上。在划分数据的同时,记录节点中的每个出边边界点vout的出边信息 vout={(Si,{l1,...,ln})|Si∈S,li∈∑},其中(i)Si为出边所在的从节点;(ii){l1,...,ln}为从节点Si上vout出边标签集合。为每一个从节点Si∈S准备一个待发送消息集Prei,在不断更新匹配的 过程中,如果匹配到出边边界点vout,则判断匹配的当前状态的输入字符与预先构建的索引结 构中vout出边标签是否一致,(i)如果一致,则将该匹配加入到待发送消息集Prei中,i为vout出边所在节点位置;(ii)如果不一致,则过滤掉这个匹配。第一种优化方案在基本方案的基 础上,设计实现分布式消息传递索引结构,通过预先创建该索引结构,在通信过程中提前过 滤掉一部分无用的匹配和将部分结果发送给指定从节点,从而大幅度减少通信开销。
参见图6,对于第二种优化算法,在一定程度上避免了重复的局部匹配。对于k次局部计 算,执行过程为不断取出Mailbox中的匹配向前更新,相比于该节点存储的RDF数据中顶点 的总数,入边边界点vin的个数是很少的。因此,对于同一入边边界点vin,从Mailbox中取出 的匹配(v,q0,vin,q)在很大程度上都匹配到相同状态q,只是匹配的起始顶点v不同。因此,对 于匹配到相同入边边界点和相同状态的匹配,只需进行一次局部计算,并将中间结果保存以 便后面的匹配可以直接连接成最终结果。如果Mailbox不为空,则从中取出一个匹配(s,q0,o,q), 匹配不断扩展更新为一个可以形成最终结果的匹配(s,q0,o',qf),则将(o,q,o',qf)加入到中间 结果集中。在不断的从Mailbox中取出匹配的过程中,如果匹配的当前顶点为o且当前状态为 q,则可直接与中间结果中的(o,q,o',qf)连接形成最终结果。在匹配过程中保存有效的中间 结果,以便后面的匹配可以直接合并成最终结果。通过保留中间结果,避免了重复的局部计 算,大大减少了局部计算代价。
本发明基于合成数据集LUBM和真实数据集DBpedia进行实验,如表1所示。根据正则 路径查询中是否包含闭包操作,设计了简单正则路径查询和复杂正则路径查询共12个查询, 如表2所示。本实验平台为1个主节点和3个从节点的集群,每个节点安装的是64位的CentOS 7.3Linux操作系统,其内存大小为16G,节点间通信使用1000Mbps以太网。
表1数据集
Figure BDA0002195061550000131
表2正则路径查询
Figure BDA0002195061550000132
参见图7,本发明在四个LUBM数据集LUBM3,LUBM10,LUBM20和LUBM50上进 行了正则路径查询实验。从图中可以看出,所有查询的查询时间都随着数据集规模的增大而 增加。进一步地,对于相同规模的数据集,随着GPE模型参数k的增加,查询时间都小于部 分求值(k=0)的查询时间。同时,根据实验结果也观察到如果一个查询通过n次节点间通信 可以完成,也就是说不需要主节点的汇总阶段,则k=n时的查询效率最高。查询Q5、Q6和Q12分别通过一次、两次和三次节点间通信即可完成查询,分别在k=1、k=2和k=3时大大减少了查询时间,相比于部分求值方法性能提高明显,这也验证了GPE模型以较小的通信开销换取大量且无用的中间结果计算代价。
参见图8,本发明在真实数据集DBpedia上进行了正则路经查询实验。由实验结果可知, 所有查询均在三次通信以内即可完成,并且查询效率都高于部分求值方法。其次,所有查询 实验结果中,部分求值方法的查询时间都超过了2600s,而GPE模型中最优的查询时间都在 300s以内,相对于部分求值方法提高率最高达到了99.18%,平均提高率也达到了95.64%。
参见图9,本发明GPE模型随着k值变化通信量的变化情况,以LUBM3、LUBM10和LUBM20为例,并选择了三个有代表性查询Q3、Q10和Q12,这三个查询分别通过两次通信、 一次通信和三次通信即可完成。从图中实验数据可知,相同规模的数据集上,GPE模型相对 于部分求值方法大大减少了通信量,这也验证了GPE模型的第一种优化算法大大降低了节点 间的消息传递数量,一方面将不能在其他节点继续匹配的路径进行提前过滤,另一方面将部分结果直接发给指定节点。其中,Q3的优化效果最好,在LUBM20数据集上的通信量相比 于部分求值上降低了76.82%。进一步的,随着k值的增加,通信量并不是持续递减的,对于 查询Q12在k=2时的通信量明显大于k=1时的通信量,但k=2时的查询时间并不大于后者的查询时间,这正是一种权衡通信开销和计算代价的情况,验证了以少量通信开销换取计算代价 的有效性。
应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可 以做出若干变形和改进,这些都属于本发明的保护范围。因此,本实用新型专利的保护范围 应以所附权利要求为准。

Claims (3)

1.一种对大规模知识图谱进行分布式正则路径查询的方法,其特征在于,包括如下步骤:
1)、将知识图谱数据随机分布存储在从节点集S={S1,S2,...,Sn}上,同时,根据参数k在节点集S={S1,S2,...,Sn}之间构建通用部分求值模型GPE;
2)、在主节点S0上对给出的正则路径查询Q建立有穷状态自动机AQ=(St,∑,δ,q0,F),同时,计算AQ的状态转换集Trans并将其发送给每个从节点;
3)、节点集S={S1,S2,...,Sn}中的节点以多线程并发的方式建立通信模块和计算模块,所述通信模块为对每个从节点进行k次接收消息和k次发送消息过程,所述计算模块为对每个从节点进行k+1次局部计算的过程;
4)、每个从节点将部分结果集发送给主节点;
5)、主节点将接收到的所有从节点的部分结果进行合并以形成最终查询结果;
6)、统计所有节点上的最终结果即为满足正则路径查询Q的结果。
2.根据权利要求1所述的一种对大规模知识图谱进行分布式正则路径查询的方法,其特征在于,所述步骤3)中通信模块对每个从节点进行k次接收消息、发送消息和计算模块对每个从节点进行局部计算的过程,所有从节点并行执行,包括如下阶段:
(1)初始化局部匹配阶段。从节点接收到查询Q对应的状态转换集Trans后,匹配过程分为两种情况:
第一种情况为k=0,则将该节点上的每个三元组(s,p,o)∈Fi和Trans集中的任一状态转换(q,a,q')相匹配,如果当前顶点s的出边标签p与状态q的输入字符a一致,则形成匹配(s,q,o,q'),将所有匹配不断向前扩展更新,直至不能生成新的匹配。在这个过程中,基于前缀部分结果集Pre、中缀部分结果集Inf、后缀部分结果集Suf和最终结果集的特征,将匹配分别保存到部分结果集和最终结果集中。
第二种情况为k≥1,则只需将每个三元组(s,p,o)∈Fi与Trans集中的初始状态转换(q0,a,q')相匹配,并且在匹配更新过程中只会生成前缀部分结果集Pre和最终结果集。
(2)发送消息阶段(k≥1)。局部计算完成后,将前缀部分结果集Pre发送给其余所有从节点。
(3)接收消息阶段(k≥1)。接收其余从节点发送的前缀部分结果集Pre,并将其中的每一个匹配依次放入消息队列Mailbox中,最后放入(v0,0,v0,0)用来标记之前的匹配为一次通信过程所接收到的匹配。
(4)局部计算阶段(k≥1)。如果消息队列Mailbox不为空,则从中取出一个匹配(s,q0,o,q),如果该节点上的知识图谱数据中存在一个三元组(o,p,o')且Trans集中存在一个状态转换(q,p,q'),则该匹配可以更新为(s,q0,o',q'),按照这种方法不断向前扩展直至该匹配不能更新为止。重复执行上述过程直至取出的匹配为(v0,0,v0,0),则上一次通信接收到的所有匹配已经完成在该节点上的局部计算。
重复执行(2)、(3)和(4)三个阶段k次。
3.根据权利要求1所述的一种对大规模知识图谱进行分布式正则路径查询的方法,其特征在于,所述步骤5)中主节点对所有从节点的部分结果进行合并的过程分为两种情况:
(1)所有从节点的匹配都已经形成最终结果,即所有从节点的前缀部分结果集Pre都为空,没有需要发送给其余从节点继续匹配的部分结果,则查询完成;
(2)至少有一个从节点还有要发送给其余从节点待更新的前缀部分结果集Pre,则每个从节点需要计算中缀部分结果和后缀部分结果并将其发送给主节点,主节点合并部分结果形成最终结果。
CN201910845254.6A 2019-09-08 2019-09-08 一种对大规模知识图谱进行分布式正则路径查询的方法 Active CN110727760B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910845254.6A CN110727760B (zh) 2019-09-08 2019-09-08 一种对大规模知识图谱进行分布式正则路径查询的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910845254.6A CN110727760B (zh) 2019-09-08 2019-09-08 一种对大规模知识图谱进行分布式正则路径查询的方法

Publications (2)

Publication Number Publication Date
CN110727760A true CN110727760A (zh) 2020-01-24
CN110727760B CN110727760B (zh) 2023-11-07

Family

ID=69217942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910845254.6A Active CN110727760B (zh) 2019-09-08 2019-09-08 一种对大规模知识图谱进行分布式正则路径查询的方法

Country Status (1)

Country Link
CN (1) CN110727760B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898004A (zh) * 2020-06-20 2020-11-06 中国建设银行股份有限公司 一种数据挖掘方法、装置、电子设备及其可读存储介质
CN113282415A (zh) * 2021-05-25 2021-08-20 之江实验室 分布式环境下的带标签图模式匹配方法
CN113722294A (zh) * 2021-09-01 2021-11-30 达梦数据技术(江苏)有限公司 一种从图数据库到关系数据库的数据迁移方法和系统
CN114817262A (zh) * 2022-04-27 2022-07-29 电子科技大学 一种基于分布式图数据库的图遍历算法
WO2024021808A1 (zh) * 2022-07-27 2024-02-01 腾讯科技(深圳)有限公司 数据查询请求的处理方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076087A (en) * 1997-11-26 2000-06-13 At&T Corp Query evaluation on distributed semi-structured data
CN1853180A (zh) * 2003-02-14 2006-10-25 尼维纳公司 语义知识提取、管理、捕获、共享、发现、交付、表示之系统与方法
US20180081990A1 (en) * 2016-09-16 2018-03-22 At&T Intellectual Property I, L.P. Concept-Based Querying of Graph Databases
CN108520035A (zh) * 2018-03-29 2018-09-11 天津大学 基于星形分解的sparql基本图模式查询处理方法
CN108519994A (zh) * 2018-03-04 2018-09-11 天津大学 基于Pregel的分布式起源保障正则路径查询算法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076087A (en) * 1997-11-26 2000-06-13 At&T Corp Query evaluation on distributed semi-structured data
CN1853180A (zh) * 2003-02-14 2006-10-25 尼维纳公司 语义知识提取、管理、捕获、共享、发现、交付、表示之系统与方法
US20180081990A1 (en) * 2016-09-16 2018-03-22 At&T Intellectual Property I, L.P. Concept-Based Querying of Graph Databases
CN108519994A (zh) * 2018-03-04 2018-09-11 天津大学 基于Pregel的分布式起源保障正则路径查询算法
CN108520035A (zh) * 2018-03-29 2018-09-11 天津大学 基于星形分解的sparql基本图模式查询处理方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PENG PENG等: "《Accelerating Partial Evaluation in Distributed SPARQL Query Evaluation》" *
QIANG XU等: "Distributed Subgraph Matching on Big Knowledge Graphs Using Pregel" *
张雨;曾立;邹磊;: "大规模图数据的正则路径查询" *
陶导;马强;杨;钱卫宁;周傲英;: "CWI中的分布式图数据存储与查询" *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111898004A (zh) * 2020-06-20 2020-11-06 中国建设银行股份有限公司 一种数据挖掘方法、装置、电子设备及其可读存储介质
CN113282415A (zh) * 2021-05-25 2021-08-20 之江实验室 分布式环境下的带标签图模式匹配方法
CN113282415B (zh) * 2021-05-25 2023-10-31 之江实验室 分布式环境下的带标签图模式匹配方法
CN113722294A (zh) * 2021-09-01 2021-11-30 达梦数据技术(江苏)有限公司 一种从图数据库到关系数据库的数据迁移方法和系统
CN113722294B (zh) * 2021-09-01 2024-02-23 达梦数据技术(江苏)有限公司 一种从图数据库到关系数据库的数据迁移方法和系统
CN114817262A (zh) * 2022-04-27 2022-07-29 电子科技大学 一种基于分布式图数据库的图遍历算法
CN114817262B (zh) * 2022-04-27 2023-03-28 电子科技大学 一种基于分布式图数据库的图遍历算法
WO2024021808A1 (zh) * 2022-07-27 2024-02-01 腾讯科技(深圳)有限公司 数据查询请求的处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN110727760B (zh) 2023-11-07

Similar Documents

Publication Publication Date Title
CN110727760A (zh) 一种对大规模知识图谱进行分布式正则路径查询的方法
Zeng et al. A distributed graph engine for web scale RDF data
CN106021457B (zh) 基于关键词的rdf分布式语义搜索方法
WO2021083239A1 (zh) 一种进行图数据查询的方法、装置、设备及存储介质
US10394813B2 (en) Method and apparatus for performing query aware partitioning
CN104462609B (zh) 结合星型图编码的rdf数据存储与查询方法
CN113994350A (zh) 为神经网络生成并行计算方案
CN104915717A (zh) 数据处理方法、知识库推理方法及相关装置
CN111241127B (zh) 基于谓语组合的sparql查询优化方法、系统、存储介质及设备
CN110909111A (zh) 基于知识图谱rdf数据特征的分布式存储与索引方法
CN103593433A (zh) 一种面向海量时序数据的图数据处理方法及系统
CN112182031B (zh) 数据查询方法及装置、存储介质、电子装置
CN104346380B (zh) 基于MapReduce模型的数据排序方法和系统
Wang et al. A parallel execution method for minimizing distributed query response time
CN103049506A (zh) 移动设备的数据缓存方法及其系统
CN106330559B (zh) 基于MapReduce的复杂网络拓扑特征参数计算方法和系统
CN114116785A (zh) 一种基于最小属性割的分布式sparql查询优化方法
Slavov et al. Fast processing of SPARQL queries on RDF quadruples
Urbani On web-scale reasoning
CN104104557A (zh) 面向IPv6安全网关的深度包检测装置
Chen et al. A hybrid multiple-character transition finite-automaton for string matching engine
CN107784032A (zh) 一种数据查询结果的渐进式输出方法、装置及系统
Shi et al. An overlapping community discovery algorithm based on label propagation
CN106383863A (zh) 一种同构子图查询优化方法
US11409746B2 (en) Method and apparatus for processing query using N-ary join operators

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