CN108519994A - 基于Pregel的分布式起源保障正则路径查询算法 - Google Patents
基于Pregel的分布式起源保障正则路径查询算法 Download PDFInfo
- Publication number
- CN108519994A CN108519994A CN201810177109.0A CN201810177109A CN108519994A CN 108519994 A CN108519994 A CN 108519994A CN 201810177109 A CN201810177109 A CN 201810177109A CN 108519994 A CN108519994 A CN 108519994A
- Authority
- CN
- China
- Prior art keywords
- vertex
- message
- matching
- state
- pregel
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Pregel的分布式起源保障正则路径查询算法:1)对于给定的正则路径查询Q=(x,r,y),根据正则表达式r计算first,last,follow集;2)进一步构建正则表达式r所等价的Glushkov自动机A=(St,Σ,δ,q0,F);3)使用Pregel消息传递模型在RDF图数据中匹配正则路径查询,通过消息传递的方式、以顶点为中心的计算之后得到结果路径;4)统计所有满足正则表达式r的结果路径即为查询结果。本发明能够利用Glushkov自动机,对于大规模RDF图数据进行起源保障正则路径查询,并且通过引入的优化策略,以达到减少查询时间,减少中间结果以及提高算法扩展性的目的。
Description
技术领域
本发明涉及分布式图查询领域,具体来说,涉及面向大规模RDF图数据的正则路径查询领域。
背景技术
随着知识图谱的日益普及,越来越多的领域采用资源描述框架(ResourceDescription Framework,RDF)作为数据表示和存储的标准格式。与传统关系模型相比,RDF更自然地刻画和反应现实世界中的事物及其联系。随着图数据的大规模涌现,基于多机集群系统的高效率分布式图查询已成为必然选择。正则路径查询(Regular Path Queries,RPQs)是一种不可或缺的基本图查询操作,旨在以导航的方式找到所有满足正则表达式的路径,一般情况下返回匹配的一系列数据节点对。W3C推荐的RDF图数据标准查询语言SPARQL也在最新版1.1中引入了属性路径(property path)特性来支持RDF图上的RPQs。
传统的正则路径表达式被定义为Q=(x,r,y),在RDF图T上找到一组资源对 (v0,vn),使得在图T中从v0到vn存在路径ρ,其中ρ的标签表示为λ(ρ)且λ(ρ)满足Q 中正则表达式r。但是,从以上RPQ的传统语义来看,我们不能得到从v0到vn的路径的中间信息。为了提供路径ρ的起源信息,辨析从v0到vn的路径ρ是如何满足Q的,即研究起源保障的正则路径查询(provenance-aware regular path queries),其结果返回的是满足Q的路径ρ中的所有点和边,即RDF图的一个子图,能够更好地反应查询结果全貌,方便用户理解。
根据我们的调查,目前尚缺少相关研究工作对现有的分布式正则路径查询算法加以改进调整,适配到Pregel模型下进行算法研究与实验比较。Pregel模型具有“以顶点为中心”计算的特点,因此更适合并行图计算,使用Pregel消息传递模型来进行并行图计算可以进一步提高图计算效率。
目前已有的标准语义下的正则路径查询算法包括如下:
Calvanese等人在不同的假设下解决正则路径查询问题,基于视图和索引来检测一对资源对是否满足正则表达式,这种方法的弊端是对于查询的种类有所限制。Koschmieder等人提出使用“罕见标签”(rare-label)方法对RPQ进行分解,然后进行分段求值。该方法实际上采取了分治策略,但需要通过预处理事先确定“罕见标签”,其性能很大程度上取决于具体的查询分解方法和罕见标签的选择。面对海量的RDF图数据,部分求值的方法也被应用到分布式正则路径查询,查询过程分为本地计算和整合局部答案两个阶段,本地计算基于动态规划方法,整合阶段基于Thompson自动机构造方法来合并上一阶段的局部结果。Sartiani等人提出了Vertigo,一种基于Brzozowski导数的分布式正则路径查询算法。该方法的实验基于Giraph图计算框架,但是仅有ER图和幂律图上的测试,缺少对合成RDF数据集和真实世界数据集的验证实验。
目前已有的起源保障语义下的正则路径查询算法算法包括如下:
Dey等人首次解决了起源保障正则路径查询问题,通过引入辅助结构将 RPQs转换成Datalog查询或基于PostgreSQL关系型数据库将RPQs转换成SQL 查询。从该工作的实验结果中看出该方法难以扩展到大规模RDF图数据上。乘积自动机也被用来计算正则路径查询问题,基于正则表达式r和RDF图数据分别构造NFA,进而构建这两者的乘积自动机,递归地从乘积自动机中提取答案。不过这种方法在处理大规模RDF图数据时,可能会导致通信成本过高。
目前,据我们的调查,还没有高效可扩展的RDF大图数据上分布式起源保障语义下的正则路径查询算法的工作。
发明内容
本发明的目的是克服现有技术中的不足,提供一种基于Pregel的分布式图查询算法,本发明能够利用Glushkov自动机,对于大规模RDF图数据进行起源保障正则路径查询,并且通过引入的优化策略,以达到减少查询时间,减少中间结果以及提高算法扩展性的目的。
本发明所采用的技术方案是:一种基于Pregel的分布式起源保障正则路径查询算法,包括以下步骤:
1)对于给定的正则路径查询Q=(x,r,y),根据正则表达式r计算first,last,follow集;
2)进一步构建正则表达式r所等价的Glushkov自动机A=(St,Σ,δ,q0,F);
3)使用Pregel消息传递模型在RDF图数据中匹配正则路径查询,通过消息传递的方式、以顶点为中心的计算之后得到结果路径;
4)统计所有满足正则表达式r的结果路径即为查询结果。
进一步的,步骤1)中,所述的正则表达式被递归定义为r::=ε|p|r/r|r|r|r*,其中ε为空串,p为字母表Σ中的任意字符,/代表连接、|代表连接、*代表闭包。
进一步的,步骤1)中,所述的first集为正则表达式r所表示的语言L(r)中的任一字符串开头字符所对应的状态集合,所述的last集为L(r)中的任一字符串结尾字符所对应的状态集合,所述的follow集为L(r)中的任一字符串中某个位置字符的接下来字符所对应状态集。
进一步的,步骤2)中,基于正则表达式构建Glushkov自动机时,用 Por(r)={1,...,|r|}表示r中字符位置的集合,其中|r|表示r的长度,i∈Pos(r)是r[i] 的索引。
进一步的,步骤3)中,所述的计算的过程并行在每个顶点进行,在满足自动机转换函数的条件下向前扩展一个状态q∈St来匹配v∈V,直至匹配到结束状态或不再有顶点v能够与自动机中的状态q相匹配,具体包括以下步骤:
3.1)给出判断条件:对于RDF图数据T=(V,E,l)中的每个顶点v∈V,如果每个顶点v的出边属性标签与first集中状态对应的字符一致,则该顶点v与first 集中状态可以相匹配;
3.2)根据步骤3.1)的判断条件,计算与每个顶点v可能匹配的状态q,形成匹配f=(v,q),完成第一步匹配;
3.3)形成的匹配作为消息m发送给其他邻居顶点,其他邻居顶点接收消息集M;
3.4)根据接收到消息集M中已有的匹配f,计算当前匹配的下一个可能的状态q',即通过follow集继续扩展,通过顶点v的出边属性与follow集中状态对应的字符是否一致,判断该顶点v与follow集中状态是否可以匹配,如果可以匹配,向前拓展一个状态以此来满足正则表达式r;
3.5)重复步骤3.3)、3.4)直至当前顶点匹配到的状态属于last集,当前路径为结果集中的路径;
3.6)对于已经完成的路径重复步骤3.5),直至不再有新的结果路径产生。
其中,步骤3.3)中,所述的形成的匹配作为消息m发送给其他邻居顶点,即,数据图T中的当前顶点vs将步骤3.2)中得到的匹配和步骤3.4)中得到的匹配作为消息发送到邻居顶点vd;这一阶段需要判断是否将待发送的消息MS从当前顶点vs沿某条边(vs,vd)发送消息到另一个顶点vd,满足条件时发送MS,不满足条件时发送空集;发送消息的条件是(i)待发送消息不为空;(ii)待发送消息的顶点处于活跃状态;(iii)待发送消息目前匹配状态对应的正则表达式中的字符串与当前边(vs,vd)的标签相同。
其中,步骤3.4)中,在其他邻居顶点接收消息集M的同时,对接收到的消息进行合并;在这一阶段,前一阶段顶点收到的消息将会被合并;每个顶点将比较所接受到的消息,对消息去重后合并。
其中,步骤3.2)包括:只有顶点v∈V的出边属性与first集中状态q∈St所对应的字符一致时,v才能与q相匹配,形成(v,q)的匹配对作为消息发送给邻居顶点。
其中,步骤3.4)包括:基于从其他邻居顶点收到的消息中某条路径ρ',利用follow集计算下一个可能匹配的状态q',如果当前点v∈V的出边属性包含状态q'对应的字符,那么将(v,q')添加到该条路径ρ',这样完成了向前扩展一个自动机的状态匹配到图中的顶点。
进一步的,步骤4)中,对于步骤3)中获得的每条结果路径在该路径中匹配结束状态的顶点中保存,遍历RDF数据图的每个顶点v∈V,即可获取该查询的全部结果路径。
进一步的,步骤4)中,由于从匹配起始状态的顶点及其匹配对(v0,q0),到匹配结束状态的顶点及其匹配对(vn,qn),存在一条从v0到vn路径(v0,v1,...,vn),且 qi+1=δ(qi,(vi,vi+1)),因此,满足正则表达式r的结果路径即为查询结果。
进一步的,为进一步提高起源保障正则路径查询算法的性能,在步骤1)、2) 过程中,利用正则路径查询Q=(x,r,y)的Glushkov自动机A=(St,Σ,δ,q0,F)的字母表Σ,在RDF图T=(V,E,l)上的查询结果路径中所包含的所有边的标签都属于Σ,即l((u,v))∈Σ,对数据图提前进行过滤,筛选掉不可能构成最终结果的边;并且,在步骤3.2)之前,对每个顶点预计算可能匹配的状态,对不可能构成匹配的结果提前过滤;即是对RDF图数据T=(V,E,l)预处理无用边的提前过滤以及通过预计算对步骤3.2)、3.4)计算的优化,这两个阶段的具体操作如下所示:
(1)数据预处理阶段,由于Pregel是将整个输入的数据图存入内存中计算,所以对数据进行预处理,过滤掉一部分不能构成最终结果的边,即只有当边的标签l((u,v))∈Σ时,这条边(v,u)才会被存入内存中参与计算;
(2)预计算优化步骤3.2)、3.4)计算阶段,查询前通过出边属性可以提前计算每个顶点所能匹配的状态,该阶段如果出现了某个状态是下一个需要匹配的,但是该顶点并不能匹配,那么可以提前一个超步过滤掉这条路径,减少中间结果的个数。
进一步的,为了进一步减少匹配过程中产生的中间结果,对数路径问题进行局部优化,减少一部分由于中间结果笛卡尔积导致的数路径问题;主要包括在步骤3.2)之后和步骤3.3)过程中对消息的选择,和在步骤3.4)之后对消息的压缩,具体过程为:
(1)消息选择,在步骤3.2)、3.4)计算过程中,每个顶点会接收到来自其他邻居顶点的信息,如果某个顶点接受到来自同一邻居顶点且通过不同的边发送来的多条消息,当这些消息当前所匹配的状态一致时,在某种程度上,这多条消息对于当前顶点来说是等价的;从这多条消息中随机挑选一条消息作为代表,进行接下来的消息匹配和发送,以减少中间结果的个数;
(2)消息压缩,在步骤3.2)、3.4)计算过程中,当前顶点会基于接收的匹配产生向前扩展一步的匹配,并作为消息在下一阶段发送给邻居顶点;如果能够基于同一个匹配f产生多个扩展后的匹配f',那么就将匹配f进行压缩,减少相同消息的多次发送所造成的不必要的通信代价。
本发明的有益效果是:
本发明针对大规模RDF图数据,提供了一种基于Pregel消息传递模型的分布式起源保障正则路径查询算法,从而通过以传递消息的方式在图中匹配正则表达式,以达到得到查询正确结果的目的。在保证算法正确性的同时,通过优化策略来减少查询响应时间,提高了起源保障正则路径查询算法的性能,使其可以扩展到更大规模数据。
附图说明
图1是本发明基于Pregel的分布式起源保障正则路径查询算法的基本方案的整体流程图。
图2是本发明基本方案步骤3)中基于Pregel消息传递模型在RDF图数据中匹配正则路径查询这一过程的流程图。
图3是本发明第一种优化方案的流程图。
图4是本发明第二种优化方案的流程图。
图5是本发明中测试实验所用的数据集。
图6是本发明中测试实验所用的查询类型。
图7是本发明中基本方法和第一种优化方案在合成数据集LUBM上不同查询所得的查询时间。
图8是本发明基本方法和第一种优化方案在真实数据集DBpedia上进行查询所得的时间结果。
图9是本发明中基本方法、第一种优化方案、第二种方案在合成数据集 WatDiv上进行查询所得的时间结果。
图10是本发明中基本方法和第一种优化方案在不同规模集群上的扩展性实验。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下:
本发明一种基于Pregel的分布式起源保障正则路径查询算法,包括以下步骤:
1)对于给定的正则路径查询Q=(x,r,y),根据正则表达式r计算first,last,follow集。所述的正则表达式被递归定义为r::=ε|p|r/r|r|r|r*,其中ε为空串,p 为字母表Σ中的任意字符,/代表连接、|代表连接、*代表闭包。所述的first集为正则表达式r所表示的语言L(r)中的任一字符串开头字符所对应的状态集合,所述的last集为L(r)中的任一字符串结尾字符所对应的状态集合,所述的follow集为L(r)中的任一字符串中某个位置字符的接下来字符所对应状态集。
2)对于自动机A=(St,Σ,δ,q0,F)计算其first,last,follow集。基于正则表达式构建Glushkov自动机时,用Por(r)={1,...,|r|}表示r中字符位置的集合,其中|r| 表示r的长度,i∈Pos(r)相当于是r[i]的索引。
3)使用Pregel消息传递模型在RDF图数据中匹配正则路径查询,通过消息传递的方式、以顶点为中心的计算之后得到结果路径。
所述的计算的过程并行在每个顶点进行,在满足自动机转换函数的条件下向前扩展一个状态q∈St来匹配v∈V,直至匹配到结束状态或不再有顶点v能够与自动机中的状态q相匹配,具体包括以下步骤:
3.1)给出判断条件:对于RDF图数据T=(V,E,l)中的每个顶点v∈V,如果每个顶点v的出边属性标签与first集中状态对应的字符一致,则该顶点v与first 集中状态可以相匹配;
3.2)根据步骤3.1)的判断条件,计算与每个顶点v可能匹配的状态q,形成匹配f=(v,q),完成第一步匹配;
3.3)形成的匹配作为消息m发送给其他邻居顶点,其他邻居顶点接收消息集M;
3.4)根据接收到消息集M中已有的匹配f,计算当前匹配的下一个可能的状态q',即通过follow集继续扩展,通过顶点v的出边属性与follow集中状态对应的字符是否一致,判断该顶点v与follow集中状态是否可以匹配,如果可以匹配,向前拓展一个状态以此来满足正则表达式r;
3.5)重复步骤3.3)、3.4)直至当前顶点匹配到的状态属于last集,当前路径为结果集中的路径;
3.6)对于已经完成的路径重复步骤3.5),直至不再有新的结果路径产生。
4)统计所有满足正则表达式r的结果路径即为查询结果。对于步骤3)中获得的每条结果路径在该路径中匹配结束状态的顶点中保存,遍历RDF数据图的每个顶点v∈V,即可获取该查询的全部结果路径;由于从匹配起始状态的顶点及其匹配对(v0,q0),到匹配结束状态的顶点及其匹配对(vn,qn),存在一条从v0到vn路径(v0,v1,...,vn),且qi+1=δ(qi,(vi,vi+1)),因此,满足正则表达式r的结果路径即为查询结果。
其中,本发明的核心是使用Pregel模型在RDF数据图上匹配正则表达式,这一过程将基于Glushkov自动机,通过匹配自动机状态一步一步向前扩展,直至不能再向前匹配为止。
基于Pregel的查询匹配过程将分为一系列的超步,每个超步以顶点为中心,初始超步每个顶点都处于活跃状态,后续超步只有当顶点进行本地计算或者接收到消息才会被激活到活跃状态。当所有顶点都处于不活跃状态或者没有消息待发送,计算停止。在本发明中,计算过程并行在每个顶点进行,在满足自动机转换函数的条件下向前扩展一个状态q∈St来匹配v∈V,直至匹配到结束状态或不再有顶点v能够与自动机中的状态q相匹配。此时每条结果路径在该路径中匹配结束状态的顶点中保存,遍历数据图的每个顶点v∈V,即可获取该查询的全部结果路径。具体实现步骤分为三个阶段:
(1)发送消息阶段,即在步骤3.3)中,数据图T中的当前顶点vs将本地计算得到的匹配作为消息发送到邻居顶点vd。这一阶段需要判断是否将待发送的消息MS从当前顶点vs沿某条边(vs,vd)发送消息到另一个顶点vd,满足条件时发送MS,不满足条件时发送空集。这一过程将并行在每条边上执行。发送消息的条件是(i) 待发送消息不为空;(ii)待发送消息的顶点处于活跃状态;(iii)待发送消息目前匹配状态对应的正则表达式中的字符串与当前边(vs,vd)的标签相同。
(2)合并消息阶段。步骤3.4)中,在其他邻居顶点接收消息集M的同时,对接收到的消息进行合并;在这一阶段,前一阶段顶点收到的消息将会被合并。每个顶点将比较所接受到的消息,对消息去重后合并。
(3)本地计算阶段。这一阶段分为两种情况,第一种情况是在第一个超步 (步骤3.2)时,只有顶点v∈V的出边属性与first集中状态q∈St所对应的字符一致时,v才能与q相匹配,形成(v,q)的匹配对作为消息发送给邻居顶点。第二种情况是在其他超步(步骤3.4)时,基于从其他邻居顶点收到的消息中某条路径ρ',利用follow集计算下一个可能匹配的状态q',如果当前点v∈V的出边属性包含状态q'对应的字符,那么将(v,q')添加到该条路径ρ',这样完成了向前扩展一个自动机的状态匹配到图中的顶点。
重复执行上述三个过程,直至不能再向前匹配产生新的路径为止,或者所有顶点都处于不活跃状态或没有消息需要发送。
为了进一步提高起源保障正则路径查询算法的性能和减少匹配过程中产生的中间结果,本发明还设计了两种优化方案。
第一种优化方案为进一步提高起源保障正则路径查询算法的性能,在步骤 1)、2)过程中,利用正则路径查询Q=(x,r,y)的Glushkov自动机A=(St,Σ,δ,q0,F) 的字母表Σ,在RDF图T=(V,E,l)上的查询结果路径中所包含的所有边的标签都属于Σ,即l((u,v))∈Σ,对数据图提前进行过滤,筛选掉不可能构成最终结果的边;并且,在步骤3.2)之前,对每个顶点预计算可能匹配的状态,对不可能构成匹配的结果提前过滤。该方法是对RDF图数据T=(V,E,l)预处理无用边的提前过滤以及通过预计算对本地计算(即步骤3.2)、3.4)计算)的优化,这两个阶段的具体操作如下所示:
(1)数据预处理阶段,由于Pregel是将整个输入的数据图存入内存中计算,所以对数据进行预处理,过滤掉一部分不能构成最终结果的边,即只有当边的标签l((u,v))∈Σ时,这条边(v,u)才会被存入内存中参与计算。
(2)预计算优化本地计算阶段,查询前通过出边属性可以提前计算每个顶点所能匹配的状态,该阶段如果出现了某个状态是下一个需要匹配的,但是该顶点并不能匹配,那么可以提前一个超步过滤掉这条路径,减少中间结果的个数。
第二种优化方案为了进一步减少匹配过程中产生的中间结果,在某种程度上对数路径问题进行了局部的优化,减少了一部分由于中间结果笛卡尔积导致的数路径问题。主要包括在本地计算阶段对接收消息的选择和压缩,即,在步骤3.2) 之后和步骤3.3)过程中对消息的选择,和在步骤3.4)之后对消息的压缩,具体过程为:
(1)消息选择,在本地计算阶段(即步骤3.2)、3.4)计算过程中),每个顶点会接收到来自其他邻居顶点的信息,如果某个顶点接受到来自同一邻居顶点且通过不同的边发送来的多条消息,当这些消息当前所匹配的状态一致时,在某种程度上,这多条消息对于当前顶点来说是等价的;从这多条消息中随机挑选一条消息作为代表,进行接下来的消息匹配和发送,以减少中间结果的个数。
(2)消息压缩,在本地计算阶段(即步骤3.2)、3.4)计算过程中),当前顶点会基于接收的匹配产生向前扩展一步的匹配,并作为消息在下一阶段发送给邻居顶点;如果能够基于同一个匹配f产生多个扩展后的匹配f',那么就将匹配 f进行压缩,减少相同消息的多次发送所造成的不必要的通信代价。
参见图1,本发明基于Pregel的分布式起源保障正则路径查询算法基本方案的整体算法如下,对给定的正则路径查询Q=(x,r,y)计算first集,last集和follow 集,进一步构造Glushkov自动机A=(St,Σ,δ,q0,F),用于数据图的匹配。在Pregel 模型中,通过消息传递的方式、以顶点为中心的计算之后得到结果路径。
算法1:dProvRPQ
输入:RDF图数据T=(V,E,l)和RPQ Q=(x,r,y)
输出:起源保障的正则路径查询结果集Rp
参见图2,本发明中基本方案中,算法1dProvRPQ中的第6行中应用Pregel 模型匹配正则路径查询算法的具体步骤如下:
算法2:Compute
输入:RDF图数据T=(V,E,l),起始消息
输出:T'=(V',E,l)
对于第一种优化方案,如图3流程图所示,在数据预处理阶段,只有当边的标签l((u,v))∈Σ时,这条边(v,u)才会被存入内存中参与计算;在本地计算查询前阶段,通过出边属性提前计算顶点所能匹配的状态,之后作为顶点属性,即候选状态集合Rs,然后开始本地计算。在本地计算阶段中,如果计算得到下一个匹配状态qn,但那么可以提前一个超步过滤掉这个匹配,大大减少中间结果的个数。
对于第二种优化方案,如图4流程图所示,在本地计算阶段,为了防止当前顶点重复匹配同一状态,在匹配前对消息进行选择消息选择。在发送消息时,每个消息通过每条边只发送一次,当同一条消息可能通过不同的边发送多次。每个顶点接收到来自其他邻居顶点的信息,如果当前顶点接收到来自同一邻居顶点的 n条消息,这n条消息通过相同标签a的边发送来,并且这些消息当前所匹配的状态一致,均为qn。那么在某种程度上,这多条消息对于当前顶点来说是等价的,即下一个匹配的状态均为follow(qn)。所以,从这n条消息中随机挑选一消息,进行接下来的消息匹配和发送,以减少重复操作。另一方面,在消息生成后,可能会有k条消息,每条消息ρ长度为|ρ|,其前|ρ|-1个匹配对相同,那么前|ρ|-1个匹配对作为公共部分存储了k次。所以如果能够基于同一个匹配f产生多个扩展后的匹配f',那么就将匹配f进行压缩,减少不必要的通信代价和空间开销。
对于本发明实验所用的数据集和查询,如图5和图6所示。本发明基于合成数据集LUBM,真实数据集DBpedia以及自定义生成的合成数据集WatDiv测试。依据正则路径查询中是否包含闭包操作,RPQ分为两种。一种是不包含闭包操作的简单路径查询,另一种是包含闭包操作的复杂路径查询。
下面简要介绍图7、图8、图9和图10中的实验环境。本实验平台使用的是腾讯云集群,包括10个节点,每个节点安装的是四核处理器,64位的CentOS 7.3 Linux操作系统,其内存大小为16G。节点间通信使用1000Mbps以太网。实验平台所用集群的所有节点均使用Hadoop 2.7.3,Spark 2.1.0,Scala 2.11。
参见图7,本发明在三个LUBM数据集LUBM10,LUBM100,LUBM200 进行了正则路径查询处理实验。由图可以看出,基本算法dProvPRQ和第一种优化算法dProvPRQopt的查询时间都随着数据集规模的增大而增大,大多数情况下与dProvPRQ相比,在相同规模的数据集上dProvPRQopt大大减少了查询时间。对于在LUBM10上的查询Q3,Q11,dProvPRQopt反而会比dProvPRQ花费更多的时间,这是因为Q3,Q11包含更多的字符串,LUBM10数据集较小,过滤无用边和预计算没有真正地发挥作用。同时,我们也观察到在LUBM200这种规模的数据集上,优化算法比基本方案性能提高明显。
参见图8,本发明在真实数据集DBpdedia上进行了查询实验。从图中实验结果可知,在所有情况下,相同规模的数据集上,dProvPRQopt都比dProvPRQ的查询时间少,这说明优化方案是有效的。其次,所有的查询实验中,Q11的优化效果最明显,因为Q11是一个较为复杂的查询,且涉及较多不同的字符串,优化方案可以更好地发挥作用。优化算法相对于基本算法的提高率最高达到了 47.56%,平均提高率为40.62%。
参见图9,本发明在不同规模的合成数据集WatDiv上进行了正则路径查询实验,此实验的数据集中包含潜在的中间结果笛卡尔积。在这种数据集中,第二种优化算法可以很好的发挥作用。dProvPRQ和dProvPRQopt都不能在时间限制 (9999s)内完成,dProvPRQcnt在100万个三元组的RDF图上可以在78.39s内返回结果,在10000万个三元组的RDF图上可以在377.56s内返回结果。
参加图10,在不同数量的集群上测试本发明的扩展性。选择LUBM100和 DBpedia作为数据集,选择了4个代表性查询,集群数量从4变化到10。有图可以看出,随着集群数量的增加,dProvPRQ和dProvPRQopt的查询响应时间也随之减少,这证实了本发明可以有效利用以顶点为中心的并行图计算模型Pregel。而且,dProvPRQ的平均加速比是dProvPRQopt的1.21倍。
尽管上面结合附图对本发明的优选实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,并不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以做出很多形式,这些均属于本发明的保护范围之内。
Claims (13)
1.一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,包括以下步骤:
1)对于给定的正则路径查询Q=(x,r,y),根据正则表达式r计算first,last,follow集;
2)进一步构建正则表达式r所等价的Glushkov自动机A=(St,Σ,δ,q0,F);
3)使用Pregel消息传递模型在RDF图数据中匹配正则路径查询,通过消息传递的方式、以顶点为中心的计算之后得到结果路径;
4)统计所有满足正则表达式r的结果路径即为查询结果。
2.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤1)中,所述的正则表达式被递归定义为r::=ε|p|r/r|r|r|r*,其中ε为空串,p为字母表Σ中的任意字符,/代表连接、|代表连接、*代表闭包。
3.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤2)中,基于正则表达式构建Glushkov自动机时,用Por(r)={1,...,|r|}表示r中字符位置的集合,其中|r|表示r的长度,i∈Pos(r)是r[i]的索引。
4.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤1)中,所述的first集为正则表达式r所表示的语言L(r)中的任一字符串开头字符所对应的状态集合,所述的last集为L(r)中的任一字符串结尾字符所对应的状态集合,所述的follow集为L(r)中的任一字符串中某个位置字符的接下来字符所对应状态集。
5.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤3)中,所述的计算的过程并行在每个顶点进行,在满足自动机转换函数的条件下向前扩展一个状态q∈St来匹配v∈V,直至匹配到结束状态或不再有顶点v能够与自动机中的状态q相匹配,具体包括以下步骤:
3.1)给出判断条件:对于RDF图数据T=(V,E,l)中的每个顶点v∈V,如果每个顶点v的出边属性标签与first集中状态对应的字符一致,则该顶点v与first集中状态可以相匹配;
3.2)根据步骤3.1)的判断条件,计算与每个顶点v可能匹配的状态q,形成匹配f=(v,q),完成第一步匹配;
3.3)形成的匹配作为消息m发送给其他邻居顶点,其他邻居顶点接收消息集M;
3.4)根据接收到消息集M中已有的匹配f,计算当前匹配的下一个可能的状态q',即通过follow集继续扩展,通过顶点v的出边属性与follow集中状态对应的字符是否一致,判断该顶点v与follow集中状态是否可以匹配,如果可以匹配,向前拓展一个状态以此来满足正则表达式r;
3.5)重复步骤3.3)、3.4)直至当前顶点匹配到的状态属于last集,当前路径为结果集中的路径;
3.6)对于已经完成的路径重复步骤3.5),直至不再有新的结果路径产生。
6.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤4)中,对于步骤3)中获得的每条结果路径在该路径中匹配结束状态的顶点中保存,遍历RDF数据图的每个顶点v∈V,即可获取该查询的全部结果路径。
7.根据权利要求1所述的一种基于Pregel的分布式起源保障正则路径查询算法,步骤4)中,由于从匹配起始状态的顶点及其匹配对(v0,q0),到匹配结束状态的顶点及其匹配对(vn,qn),存在一条从v0到vn路径(v0,v1,...,vn),且qi+1=δ(qi,(vi,vi+1)),因此,满足正则表达式r的结果路径即为查询结果。
8.根据权利要求5所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,步骤3.3)中,所述的形成的匹配作为消息m发送给其他邻居顶点,即,数据图T中的当前顶点vs将步骤3.2)中得到的匹配和步骤3.4)中得到的匹配作为消息发送到邻居顶点vd;这一阶段需要判断是否将待发送的消息MS从当前顶点vs沿某条边(vs,vd)发送消息到另一个顶点vd,满足条件时发送MS,不满足条件时发送空集;发送消息的条件是(i)待发送消息不为空;(ii)待发送消息的顶点处于活跃状态;(iii)待发送消息目前匹配状态对应的正则表达式中的字符串与当前边(vs,vd)的标签相同。
9.根据权利要求5所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,步骤3.4)中,在其他邻居顶点接收消息集M的同时,对接收到的消息进行合并;在这一阶段,前一阶段顶点收到的消息将会被合并;每个顶点将比较所接受到的消息,对消息去重后合并。
10.根据权利要求5所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,步骤3.2)包括:只有顶点v∈V的出边属性与first集中状态q∈St所对应的字符一致时,v才能与q相匹配,形成(v,q)的匹配对作为消息发送给邻居顶点。
11.根据权利要求5所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,步骤3.4)包括:基于从其他邻居顶点收到的消息中某条路径ρ',利用follow集计算下一个可能匹配的状态q',如果当前点v∈V的出边属性包含状态q'对应的字符,那么将(v,q')添加到该条路径ρ',这样完成了向前扩展一个自动机的状态匹配到图中的顶点。
12.根据权利要求5所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,为进一步提高起源保障正则路径查询算法的性能,在步骤1)、2)过程中,利用正则路径查询Q=(x,r,y)的Glushkov自动机A=(St,Σ,δ,q0,F)的字母表Σ,在RDF图T=(V,E,l)上的查询结果路径中所包含的所有边的标签都属于Σ,即l((u,v))∈Σ,对数据图提前进行过滤,筛选掉不可能构成最终结果的边;并且,在步骤3.2)之前,对每个顶点预计算可能匹配的状态,对不可能构成匹配的结果提前过滤;即是对RDF图数据T=(V,E,l)预处理无用边的提前过滤以及通过预计算对步骤3.2)、3.4)计算的优化,这两个阶段的具体操作如下所示:
(1)数据预处理阶段,由于Pregel是将整个输入的数据图存入内存中计算,所以对数据进行预处理,过滤掉一部分不能构成最终结果的边,即只有当边的标签l((u,v))∈Σ时,这条边(v,u)才会被存入内存中参与计算;
(2)预计算优化步骤3.2)、3.4)计算阶段,查询前通过出边属性可以提前计算每个顶点所能匹配的状态,该阶段如果出现了某个状态是下一个需要匹配的,但是该顶点并不能匹配,那么可以提前一个超步过滤掉这条路径,减少中间结果的个数。
13.根据权利要求5或12所述的一种基于Pregel的分布式起源保障正则路径查询算法,其特征在于,为了进一步减少匹配过程中产生的中间结果,对数路径问题进行局部优化,减少一部分由于中间结果笛卡尔积导致的数路径问题;主要包括在步骤3.2)之后和步骤3.3)过程中对消息的选择,和在步骤3.4)之后对消息的压缩,具体过程为:
(1)消息选择,在步骤3.2)、3.4)计算过程中,每个顶点会接收到来自其他邻居顶点的信息,如果某个顶点接受到来自同一邻居顶点且通过不同的边发送来的多条消息,当这些消息当前所匹配的状态一致时,在某种程度上,这多条消息对于当前顶点来说是等价的;从这多条消息中随机挑选一条消息作为代表,进行接下来的消息匹配和发送,以减少中间结果的个数;
(2)消息压缩,在步骤3.2)、3.4)计算过程中,当前顶点会基于接收的匹配产生向前扩展一步的匹配,并作为消息在下一阶段发送给邻居顶点;如果能够基于同一个匹配f产生多个扩展后的匹配f',那么就将匹配f进行压缩,减少相同消息的多次发送所造成的不必要的通信代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810177109.0A CN108519994A (zh) | 2018-03-04 | 2018-03-04 | 基于Pregel的分布式起源保障正则路径查询算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810177109.0A CN108519994A (zh) | 2018-03-04 | 2018-03-04 | 基于Pregel的分布式起源保障正则路径查询算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108519994A true CN108519994A (zh) | 2018-09-11 |
Family
ID=63433477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810177109.0A Pending CN108519994A (zh) | 2018-03-04 | 2018-03-04 | 基于Pregel的分布式起源保障正则路径查询算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108519994A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302341A (zh) * | 2018-10-30 | 2019-02-01 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN110727760A (zh) * | 2019-09-08 | 2020-01-24 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN113326284A (zh) * | 2021-08-03 | 2021-08-31 | 国网电商科技有限公司 | 基于正则路径查询的搜索系统 |
CN113938417A (zh) * | 2021-10-12 | 2022-01-14 | 北京航空航天大学 | 基于汤普森采样的内容中心网络多路径选择方法 |
-
2018
- 2018-03-04 CN CN201810177109.0A patent/CN108519994A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109302341A (zh) * | 2018-10-30 | 2019-02-01 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN109302341B (zh) * | 2018-10-30 | 2021-02-02 | 北京达佳互联信息技术有限公司 | 即时通信方法、装置、电子设备及存储介质 |
CN110727760A (zh) * | 2019-09-08 | 2020-01-24 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN110727760B (zh) * | 2019-09-08 | 2023-11-07 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN113326284A (zh) * | 2021-08-03 | 2021-08-31 | 国网电商科技有限公司 | 基于正则路径查询的搜索系统 |
CN113938417A (zh) * | 2021-10-12 | 2022-01-14 | 北京航空航天大学 | 基于汤普森采样的内容中心网络多路径选择方法 |
CN113938417B (zh) * | 2021-10-12 | 2023-03-14 | 北京航空航天大学 | 基于汤普森采样的内容中心网络多路径选择方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108519994A (zh) | 基于Pregel的分布式起源保障正则路径查询算法 | |
CN106980692B (zh) | 一种基于微博特定事件的影响力计算方法 | |
JP4865925B2 (ja) | 知識ベースシステム、論理演算方法、プログラム、及び記録媒体 | |
CN110502509B (zh) | 一种基于Hadoop与Spark框架的交通大数据清洗方法及相关装置 | |
CN106685716A (zh) | 网络拓扑自适应的数据可视化方法及装置 | |
US20160217189A1 (en) | Augmenting queries when searching a semantic database | |
CN109753589A (zh) | 一种基于图卷积网络的图可视化方法 | |
CN108717408A (zh) | 一种敏感词实时监控方法、电子设备、存储介质及系统 | |
Gong et al. | Novel heuristic density-based method for community detection in networks | |
Nohuddin et al. | Finding “interesting” trends in social networks using frequent pattern mining and self organizing maps | |
CN106127260A (zh) | 一种新颖的多源数据模糊聚类算法 | |
CN104133891B (zh) | 一种基于关系型数据库的海量结构化数据的存储方法 | |
Nguyen et al. | Centrality clustering-based sampling for big data visualization | |
CN113361279A (zh) | 一种基于双邻域图神经网络的医疗实体对齐方法及系统 | |
Lili et al. | Public opinion analysis of complex network information of local similarity clustering based on intelligent fuzzy system | |
CN111274232A (zh) | 一种基于多元数据制造过程的数字孪生处理系统及方法 | |
CN103678432B (zh) | 一种基于网页主体特征和中介真值的网页主体提取方法 | |
CN112417317B (zh) | 一种基于知识图谱表示学习的相似人物推荐方法 | |
CN114579733A (zh) | 一种主题脉落的生成方法和系统 | |
Zhang et al. | Dsslp: A distributed framework for semi-supervised link prediction | |
CN111368069A (zh) | 一种图谱推理规则的自动提取方法 | |
Di Bona et al. | The decentralized evolution of decentralization across fields: from Governance to Blockchain | |
CN110109985A (zh) | 一种实时警情信息可视化统计方法 | |
CN116049734A (zh) | 深度学习预训练模型调优方法、装置、电子设备及介质 | |
US20210326514A1 (en) | Method for generating interpretation text, electronic device and storage medium |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180911 |