CN108520035A - 基于星形分解的sparql基本图模式查询处理方法 - Google Patents
基于星形分解的sparql基本图模式查询处理方法 Download PDFInfo
- Publication number
- CN108520035A CN108520035A CN201810273245.XA CN201810273245A CN108520035A CN 108520035 A CN108520035 A CN 108520035A CN 201810273245 A CN201810273245 A CN 201810273245A CN 108520035 A CN108520035 A CN 108520035A
- Authority
- CN
- China
- Prior art keywords
- star
- vertex
- star structure
- matching
- sparql
- 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
本发明公开了一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于:1)根据RDF图G中的三元组(s,p,o)得到所有谓语p的频率,由函数fre(p)表示;2)给定BGP查询Q(也称为查询图),对查询Q中的每个顶点u,生成一个属性集合P(u);3)根据1)中的谓语频率函数fre(p)和2)中查询图顶点属性集合P(u),对查询Q中顶点u定义启发式信息h值;4)采用STARDECOMPOSE算法将给定的BGP查询Q分解为星形结构,并给出匹配顺序;5)利用MapReduce计算框架按照匹配顺序匹配所有的星形结构,得到查询Q的匹配结果。本发明能够充分利用RDF图特性和谓语信息将BGP查询分解为星形子查询的集合,并在MapReduce分布式计算框架下进行处理;同时利用RDF属性和RDF模式信息过滤MapReduce迭代中的输入数据和计算,提高查询效率。
Description
技术领域
本发明涉及RDF图数据查询,特别涉及面向大规模RDF图数据的基于星形分解的SPARQL基本图模式查询处理方法。
背景技术
随着知识图谱的不断发展,大量的资源描述框架(简称RDF)三元组数据被发布。RDF是用于描述网络资源的W3C标准,其格式为(主语,谓语,宾语)。一个三元组中的宾语可作为另一个三元组中的主语,于是RDF语义数据形成了一种有向图结构。也就是说RDF是一个基于图的数据模型,通常用来表示和组织知识图谱中的资源。由于RDF数据的灵活性,它们被广泛的应用在多个领域,包括科学,生物信息,商业智能和社交网络等。在现实世界中,RDF数据往往达到数亿条。SPARQL是W3C组织推荐的RDF数据上的标准查询语言,其中基本图模式(BGP)查询是SPARQL中最常见的查询模式。与传统的关系型数据库中进行的查询不同,RDF图上的SPARQL查询语义对应于图同态,是一个NP- 完全问题。即,对SPARQL查询的求值可以转化为子图匹配问题。因此,如何在大规模RDF图数据上有效回答SPARQL查询是一个富有挑战性的问题。
全球范围的RDF图数据库正在形成,使用分布式方法存储和查询海量RDF 图数据已势在必行。作为SPARQL查询的核心部分,基本图模式(BGP)查询处理对RDF数据的管理意义重大。大规模RDF图上的子图查询代价往往很昂贵,图算法设计不合理,会导致中间结果激增,降低查询处理性能。目前有一些研究工作分布式地处理RDF数据上的SARQL查询。一类方法基于关系模式,如 SHARD,HadoopRDF,Virtuoso和S2RDF。这类方法将RDF数据模型化为三元组的集合并存储在关系表或变种的关系模式,没有考虑RDF数据内嵌的类图结构。处理复杂的SPARQL查询时,需要在关系表上执行大量的连接操作,代价昂贵。另一类方法,如Trinity.RDF,S2X和分布式gStore系统等。这类方法以原始图的格式管理RDF数据,并且将SPARQL查询转化为查询图;通常采用邻接链表存储RDF数据。在这类方法中,如何减少巨大的中间结果是关键性问题。目前的查询处理方法主要存在如下问题:
1)将RDF数据模型化为三元组的集合,并将SPARQL查询分解成边的集合进行处理,没有考虑RDF数据的图结构;
2)没有充分利用RDF数据的语义信息,如RDF属性,RDF模式信息优化 SPARQL查询处理;
3)MapReduce框架下的查询处理方法,在每个迭代过程中输入输出的数据量过大。
针对以上问题,有必要在分解SPARQL查询时考虑RDF本身的图特性,并且充分利用RDF属性和RDF三元组中谓语为rdf:type的模式信息,提高查询及处理的性能。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种基于星形分解的SPARQL基本图模式查询方法,本发明能够充分利用RDF图特性和谓语信息将 BGP查询分解为星形子查询的集合,并在MapReduce分布式计算框架下进行处理;同时利用RDF属性和RDF模式信息过滤MapReduce迭代中的输入数据和计算,提高查询效率。
本发明所采用的技术方案是:一种基于星形分解的SPARQL基本图模式查询处理方法,包括以下步骤:
1)根据RDF图G中的三元组(s,p,o)得到所有谓语p的频率,由函数fre(p) 表示;
2)给定BGP查询Q(也称为查询图),对查询Q中的每个顶点u,生成一个属性集合P(u),属性集合P(u)由所有以u为主语的三元组中的谓语组成;
3)根据1)中的谓语频率函数fre(p)和2)中查询图顶点属性集合P(u),对查询Q中顶点u定义启发式信息h值;
4)采用STARDECOMPOSE算法将给定的BGP查询Q分解为星形结构,并给出匹配顺序;
5)利用MapReduce计算框架按照匹配顺序匹配所有的星形结构,得到查询Q的匹配结果。
其中,步骤1)中,所述的RDF图G是三元组(s,p,o)的有限集合,所述的函数fre(p)具体定义如下:fre(p)=|{(si,p,oi)|(si,p,oi)∈G}|。
其中,步骤2)中,所述的查询Q是三元组模式的集合,查询Q中每个顶点u的属性集合为P(u)={pi|(u,pi,u'i)∈Q}。
其中,步骤3)中,所述的h值由2个因子决定:顶点u出度越大,当匹配根节点在u的星形结构时越多的变量可以被绑定;顶点u的属性集合P(u)包含的元素越少,该顶点u的选择度越高;
h值定义为:其中,|outDeg|表示顶点u的出度, fre(p)为谓语p的频率函数值,P(u)为顶点u的属性集合;
如果查询Q中存在某一顶点u它的所有属性都是变量,那么该顶点u的h 值定义为h(u)=0。
进一步的,步骤4)中,所述的STARDECOMPOSE算法具体包括以下步骤:
4.1)统计查询Q中所有的主语得到集合Sub(Q),进一步统计所有常量主语,得到集合Qc;
4.2)如果集合Qc不是空集,选择Qc中h值最大的顶点r作为第一个星形结构T1的根节点,反之,选择Sub(Q)中h值最大的顶点r作为第一个星形结构T1的根节点;
4.3)将查询Q的三元组模式集合中主语r的所有宾语li作为根节点r的叶子节点,由此生成星形结构Ti并将该星形结构Ti加入队列K中,然后删掉查询 Q中以r为主语的三元组模式,其中,初始时队列K为空;
4.4)计算根节点候选集合Mv;
4.5)在集合Mv中选择h值最大的顶点r为新的根节点,重复过程4.3)生成新的星形结构Ti;
4.6)重复步骤4.4)和步骤4.5)直到查询Q中的三元组模式被删除完为止,得到一个星形结构的队列K=T1,T2...,Tm。
其中,步骤4.1)中,首先定义查询Q的主语集合为Sub(Q)={s|(s,p,o)∈Q},用Var表示查询中的变量集合,由此得到查询Q中常量顶点集合为:
其中,步骤4.2)中,使用贪心策略,选择启发式信息h值最大的顶点r作为第一个星形结构T1的根节点。
其中,步骤4.3)根据步骤4.2)中确定的根节点r生成一个星形结构,星形结构定义如下:星形结构是一个高度为1的树,用T=(r,L)表示,其中r是星形结构T的根节点,L是一个二元组(pi,li)的集合,li是星形结构T的叶子节;用 V(T),E(T)分别表示星形结构T的节点和边的集合。
其中,步骤4.4)中,Mv根据{s|s∈Sub(Q)∧s∈V(K)}∪{s|(s,p,o)∈Q∧o∈V(K)}计算得到。
进一步的,步骤5)建立在星形分解策略的基础上,得到星形结构的匹配顺序后,从队列K里依次取出星形结构开始匹配,在第一个MapReduce迭代中,星形结构T1被匹配,之后的每次迭代,按照顺序通过Map函数匹配一个新的星形结构,通过Reduce函数将已匹配过的局部查询图结果与新匹配的星形查询结果进行连接操作,直到所有的星形结构被匹配完,具体包括以下步骤:
5.1)从队列K中取出一个星形结构Tt,通过Map函数匹配Tt并将匹配结果集Ω(Tt)中的每个结果μ以键值对(μkey,μ)的形式输出;
5.2)通过Reduce函数把星形结构Tt和上一个局部查询图Pt-1的匹配结果进行连接操作得到局部查询图Pt的匹配结果;
5.3)重复步骤5.1)和步骤5.2)直到队列K为空,最终得到完整的查询图Pm的匹配结果,也就查询Q的匹配结果。
其中,步骤5.1)通过Map函数匹配给定的星形结构,V(G)和E(G)表示 RDF图G的顶点和边的集合,使用邻接链表存储RDF图G,对RDF图G中的每一个顶点v,使用N(v)表示该顶点v的邻居信息,具体定义为 N(v)={(pi,vi')|(v,pi,vi')∈G};
当匹配星形结构Tt时函数并行执行时,采用STARMATCH算法在邻居信息N(v)上匹配星形结构Tt,所述的STARMATCH算法具体为:在邻居信息 N(v)上匹配星形结构T时,如果星形结构T的根节点T.r为变量或者根节点T.r 的标签与定点v的标签相同,遍历该星形结构T的叶子节点得到每个叶子节点li的匹配集合S(li);然后枚举S(li)中各叶子节点的匹配结果得到星形结构T的匹配集合Ωv(T)。
其中,上述步骤5.2)在STARDECOMPOSE算法的基础上得到BGP查询Q的一个星形分解并且确定匹配顺序K=T1,T2...,Tm,由此引出局部查询图的概念,定义如下:局部查询图Pj,1≤j≤m是BGP查询图GQ的一个子图,其中(a) V(Pj)=∪1≤i≤jV(Ti);(b)E(Pj)=∪1≤i≤jE(Ti);可见,P1=T1并且,Pm=GQ;用Ω(Ti)和Ω(Pi)分别表示星形结构Ti和局部查询图Pi的匹配结果。
本发明的有益效果是:本发明针对大规模的RDF图上的SPARQL查询,依据自定义的启发式信息使用贪心策略设计了一种新的星形分解方法,进而依据该分解方法设计出基于MapReduce分布式框架的基本图模式(BGP)查询匹配方法,提高大规模RDF数据上SPARQL查询的效率。
附图说明
图1是本发明基于星形分解的SPARQL基本图模式查询处理方法的整体流程图。
图2是本发明步骤4)中STARDECOMPOSE算法的流程图。
图3是本发明中在RDF图的邻接链表上匹配星形结构的流程图。
图4是发明基于星形分解的SPARQL基本图模式查询算法(StarMR算法) 的流程图。
图5是利用本发明StarMR方法和目前SPARQL查询处理器S2X方法在标准合成数据集WatDiv100M上进行SPARQL基本图模式查询的结果。
图6是利用本发明StarMR方法和S2X方法在不同规模的WatDiv数据集上进行BGP查询的测试结果;
图6a是线性查询的测试结果;
图6b是星形查询的测试结果;
图6c是雪花形查询的测试结果;
图6d是复杂查询的测试结果。
图7是利用本发明StarMR方法和S2X方法在不同规模的集群上进行BGP 查询的测试结果;
图7a是进行L4查询的测试结果;
图7b是进行S4查询的测试结果;
图7c是进行F2查询的测试结果;
图7d是进行C3查询的测试结果。
图8是利用本发明StarMR方法和目前SPARQL查询处理器S2X方法在真实世界数据集DBpedia上进行SPARQL基本图模式查询的结果;
图8a是查询效率的测试结果;
图8b是可扩展性的测试结果。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹例举以下实施例,并配合附图详细说明如下:
如附图1所示,一种基于星形分解的SPARQL基本图模式查询处理方法,包括以下步骤:
1)根据RDF图G中的三元组(s,p,o)得到所有谓语p的频率,由函数fre(p) 表示;
2)给定BGP查询Q(也称为查询图),也就是一个三元组模式的集合,对查询Q中的每个顶点u,生成一个属性(谓语)集合P(u),属性集合P(u)由所有以u为主语的三元组中的谓语组成;
3)根据1)中的谓语频率函数fre(p)和2)中查询图顶点属性集合P(u),对查询Q中顶点u定义启发式信息h值,该h值由2个因子决定:顶点u出度越大,当匹配根节点在u的星形结构时越多的变量可以被绑定;顶点u的属性集合 P(u)包含的元素越少,该顶点u的选择度越高;
4)本步骤为查询分解策略,本发明设计了STARDECOMPOSE算法将给定的BGP 查询Q分解为星形结构,并给出匹配顺序,该查询分解算法使用h值作为启发信息的贪心策略对初始查询进行分解,目的是在后续查询匹配过程中使得先匹配的星形结构可以绑定更多的变量,同时匹配结果较少,以减少查询匹配中的中间结果的数目;具体包括以下步骤:
4.1)统计查询Q中所有的主语得到集合Sub(Q),进一步统计所有常量主语,得到集合Qc;
4.2)如果集合Qc不是空集,选择Qc中h值最大的顶点r作为第一个星形结构T1的根节点,反之,选择Sub(Q)中h值最大的顶点r作为第一个星形结构T1的根节点;
4.3)将查询Q的三元组模式集合中主语r的所有宾语li作为根节点r的叶子节点,由此生成星形结构Ti并将该星形结构Ti加入队列K中,然后删掉查询 Q中以r为主语的三元组模式,其中,初始时队列K为空;
4.4)计算根节点候选集合Mv,这些候选的根节点保证新生成的星形结构与已经生成的星形结构的顶点交集不为空集;
4.5)在集合Mv中选择h值最大的顶点r为新的根节点,重复过程4.3)生成新的星形结构Ti;
4.6)重复步骤4.4)和步骤4.5)直到查询Q中的三元组模式被删除完为止,得到一个星形结构的队列K=T1,T2...,Tm;
5)利用MapReduce计算框架按照匹配顺序匹配所有的星形结构,得到查询 Q的匹配结果。本步骤5)为本发明的关键,是星形结构匹配阶段。该步骤建立在星形分解策略的基础上,得到星形结构的匹配顺序后,从队列K里依次取出星形结构开始匹配,在第一个MapReduce迭代中,星形结构T1被匹配,之后的每次迭代,按照顺序通过Map函数匹配一个新的星形结构,通过Reduce函数将已匹配过的局部查询图结果与新匹配的星形查询结果进行连接操作,直到所有的星形结构被匹配完。具体包括以下步骤:
5.1)从队列K中取出一个星形结构Tt,通过Map函数匹配Tt并将匹配结果集Ω(Tt)中的每个结果μ以键值对(μ key,μ)的形式输出;
5.2)通过Reduce函数把星形结构Tt和上一个局部查询图Pt-1的匹配结果进行连接操作得到局部查询图Pt的匹配结果;
5.3)重复步骤5.1)和步骤5.2)直到队列K为空,最终得到完整的查询图Pm的匹配结果,也就查询Q的匹配结果。
上述的步骤1)的RDF图G是三元组(s,p,o)的有限集合,其中谓语频率函数fre(p)具体定义如下:fre(p)=|{(si,p,oi)|(si,p,oi)∈G}|。
上述的步骤2)的查询Q是三元组模式的集合,其中三元组模式就是包含变量的三元组,查询Q中每个顶点u的属性集合为P(u)={pi|(u,pi,u'i)∈Q}。
上述步骤3)中查询Q中每个顶点u的h值定义为:其中,|outDeg|表示顶点u的出度,谓语p的频率函数值fre(p)和顶点u的属性集合P(u)定义如步骤1)和2)所示。如果查询Q中存在某一顶点u它的所有属性都是变量,那么该该顶点u的h值定义为h(u)=0。
上述的步骤4.1)中首先定义查询Q的主语集合为Sub(Q)={s|(s,p,o)∈Q},用Var表示查询中的变量集合,由此得到查询Q中常量顶点集合为:
上述步骤4.2)使用贪心策略,选择启发式信息h值最大的顶点r作为第一个星形结构T1的根节点。
上述步骤4.3)根据步骤4.2)中确定的根节点r生成一个星形结构,本发明中星形结构定义如下:星形结构是一个高度为1的树,用T=(r,L)表示,其中r 是星形结构T的根节点,L是一个二元组(pi,li)的集合,li是星形结构T的叶子节点。用V(T),E(T)分别表示T的节点和边的集合。
上述步骤4.4)Mv计算 {s|s∈Sub(Q)∧s∈V(K)}∪{s|(s,p,o)∈Q∧o∈V(K)}得到。
参见图2,本发明设计了STARDECOMPOSE算法将BGP查询图分解成星形结构并且给出确定的匹配顺序,具体如下:
算法1:STARDECOMPOSE(Q)
输入:基本图模式查询Q:{tp1,tp2,...,tpn}
输出:星形结构的队列K:{T1,T2,...,Tm}
上述步骤5.1)通过Map函数匹配给定的星形结构,V(G)和E(G)表示RDF 图G的顶点和边的集合,本发明中使用邻接链表存储RDF图G,对RDF图G 中的每一个顶点v,使用N(v)表示该顶点的邻居信息,具体定义为 N(v)={(pi,vi')|(v,pi,vi')∈G}。
当匹配星形结构Tt时函数并行执行时,参见图3,本发明设计了STARMATCH算法在邻居信息N(v)上匹配星形结构Tt,如算法2所示,在邻居信息N(v)上匹配星形结构T时,如果星形结构T的根节点T.r为变量或者根节点T.r的标签与定点v的标签相同,也就是说T.r可以匹配顶点v,遍历该星形结构T的叶子节点得到每个叶子节点li的匹配集合S(li);然后枚举S(li)中各叶子节点的匹配结果得到星形结构T的匹配集合Ωv(T)。STARMATCH算法具体如下:算法2:STARMATCH(T,N(v))
输入:星形结构:T=(r,L),N(v),v∈V(G)
输出:星形结构T在N(v)的匹配结果:Ωv(T)={μ1,μ2,...,μn}
上述步骤5.2)在STARDECOMPOSE算法的基础上得到BGP查询Q的一个星形分解并且确定匹配顺序K=T1,T2...,Tm,由此更进一步引出局部查询图的概念,定义如下:局部查询图Pj,1≤j≤m是BGP查询图GQ的一个子图,其中(a) V(P j)=∪1≤i≤jV(Ti);(b)E(P j)=∪1≤i≤jE(T i)。很明显P 1=T1,并且Pm=GQ。用Ω(Ti)和Ω(Pi)分别表示星形结构Ti和局部查询图Pi的匹配结果;
参见图4,本发明设计的基于星形分解的分布式SPARQL基本图模式查询算法(称为StarMR算法)如下:
算法3:StarMR
输入:RDF图G,BGP查询Q:{tp1,tp2,...,tpn}
输出:答案集:Ω(Q)
简要介绍图5到图8中的实验环境。硬件配置;8个计算节点的集群,每个计算节点4核CPU,频率为3.60GHz,内存16GB,磁盘容量500GB。软件配置,操作系统为64位CentOS,本发明实现语言为Scala,使用Hadoop 2.7.4和Spark 2.2.0。本发明使用标准合成数据集WatDiv和现实世界真实数据集DBpedia,具体数据规模如表1所示。关于SPARQL查询,本发明依据查询形状分为线性查询(L),星形查询(S),雪花形查询(F)和复杂查询(C)。本发明中使用WatDiv 上的20个查询模板,对DBpedia数据,设计8个查询覆盖4个查询类型,具体分类如表2所示。
表1数据集
表2SPARQL查询
参见图5,本发明对标准合成数据集WatDiv100M数据上的20个查询进行测试验证StarMR算法的有效性同时与目前已有的SPARQL查询处理器S2X进行比较。如图5所示,对20个给定的模板查询,StarMR方法的查询处理时间远比比S2X少。特别是对雪花形查询F3和复杂查询C2,S2X不能在限制时间(104s) 内运行完,而本发明的StarMR方法可以在65s和94s内完成。原因是相比S2X 方法将查询分解为三元组模式的集合,本发明的StarMR方法将查询分解为星形结构可以保持较完整的图结构信息,减少匹配过程中的中间结果数量。
参见图6,本发明在WatDiv的不同规模的数据集上通过测试除雪花形查询 F3和复杂查询C2外的18个查询验证StarMR的扩展性。如图6所见,随着数据规模从WatDiv1M到WatDiv100M,两个方法的查询时间都增加,但是我们可以观察到S2X方法的时间增长率远远超过StarMR方法,并且随着数据规模增大性能严重下降。
参见图7,本发明改变集群节点数目在WatDiv100M上测试L4,S4,F2和C3验证StarMR的扩展性。如图7所见,实验结果验证了我们的直觉,两个方法的查询时间随着集群节点数目增加而减少。这是随着节点数目增加,并行度也增加。
参见图8,本发明在真实数据集DBpedia上验证StarMR的效率和扩展性,并与S2X方法比较。如图8所示,S2X不能有效评估涉及大量中间结果的复杂查询,随着节点数目从4到8,StarMR的加速度是S2X的1.1倍。
尽管上面结合附图对本发明的优选实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,并不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可以做出很多形式,这些均属于本发明的保护范围之内。
Claims (12)
1.一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,包括以下步骤:
1)根据RDF图G中的三元组(s,p,o)得到所有谓语p的频率,由函数fre(p)表示;
2)给定BGP查询Q,对查询Q中的每个顶点u,生成一个属性集合P(u),属性集合P(u)由所有以u为主语的三元组中的谓语组成;
3)根据1)中的谓语频率函数fre(p)和2)中查询图顶点属性集合P(u),对查询Q中顶点u定义启发式信息h值;
4)采用STARDECOMPOSE算法将给定的BGP查询Q分解为星形结构,并给出匹配顺序;
5)利用MapReduce计算框架按照匹配顺序匹配所有的星形结构,得到查询Q的匹配结果。
2.根据权利要求1所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤1)中,所述的RDF图G是三元组(s,p,o)的有限集合,所述的函数fre(p)具体定义如下:fre(p)=|{(si,p,oi)|(si,p,oi)∈G}|。
3.根据权利要求1所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤2)中,所述的查询Q是三元组模式的集合,查询Q中每个顶点u的属性集合为P(u)={pi|(u,pi,u'i)∈Q}。
4.根据权利要求1所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤3)中,所述的h值由2个因子决定:顶点u出度越大,当匹配根节点在u的星形结构时越多的变量可以被绑定;顶点u的属性集合P(u)包含的元素越少,该顶点u的选择度越高;
h值定义为:其中,|outDeg|表示顶点u的出度,fre(p)为谓语p的频率函数值,P(u)为顶点u的属性集合;
如果查询Q中存在某一顶点u它的所有属性都是变量,那么该顶点u的h值定义为h(u)=0。
5.根据权利要求1所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤4)中,所述的STARDECOMPOSE算法具体包括以下步骤:
4.1)统计查询Q中所有的主语得到集合Sub(Q),进一步统计所有常量主语,得到集合Qc;
4.2)如果集合Qc不是空集,选择Qc中h值最大的顶点r作为第一个星形结构T1的根节点,反之,选择Sub(Q)中h值最大的顶点r作为第一个星形结构T1的根节点;
4.3)将查询Q的三元组模式集合中主语r的所有宾语li作为根节点r的叶子节点,由此生成星形结构Ti并将该星形结构Ti加入队列K中,然后删掉查询Q中以r为主语的三元组模式,其中,初始时队列K为空;
4.4)计算根节点候选集合Mv;
4.5)在集合Mv中选择h值最大的顶点r为新的根节点,重复过程4.3)生成新的星形结构Ti;
4.6)重复步骤4.4)和步骤4.5)直到查询Q中的三元组模式被删除完为止,得到一个星形结构的队列K=T1,T2...,Tm。
6.根据权利要求5所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤4.1)中,首先定义查询Q的主语集合为Sub(Q)={s|(s,p,o)∈Q},用Var表示查询中的变量集合,由此得到查询Q中常量顶点集合为:
7.根据权利要求5所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤4.2)中,使用贪心策略,选择启发式信息h值最大的顶点r作为第一个星形结构T1的根节点。
8.根据权利要求5所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤4.3)根据步骤4.2)中确定的根节点r生成一个星形结构,星形结构定义如下:星形结构是一个高度为1的树,用T=(r,L)表示,其中r是星形结构T的根节点,L是一个二元组(pi,li)的集合,li是星形结构T的叶子节;用V(T),E(T)分别表示星形结构T的节点和边的集合。
9.根据权利要求5所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤4.4)中,Mv根据{s|s∈Sub(Q)∧s∈V(K)}∪{s|(s,p,o)∈Q∧o∈V(K)}计算得到。
10.根据权利要求1所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤5)建立在星形分解策略的基础上,得到星形结构的匹配顺序后,从队列K里依次取出星形结构开始匹配,在第一个MapReduce迭代中,星形结构T1被匹配,之后的每次迭代,按照顺序通过Map函数匹配一个新的星形结构,通过Reduce函数将已匹配过的局部查询图结果与新匹配的星形查询结果进行连接操作,直到所有的星形结构被匹配完,具体包括以下步骤:
5.1)从队列K中取出一个星形结构Tt,通过Map函数匹配Tt并将匹配结果集Ω(Tt)中的每个结果μ以键值对(μkey,μ)的形式输出;
5.2)通过Reduce函数把星形结构Tt和上一个局部查询图Pt-1的匹配结果进行连接操作得到局部查询图Pt的匹配结果;
5.3)重复步骤5.1)和步骤5.2)直到队列K为空,最终得到完整的查询图Pm的匹配结果,也就查询Q的匹配结果。
11.根据权利要求10所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,步骤5.1)通过Map函数匹配给定的星形结构,V(G)和E(G)表示RDF图G的顶点和边的集合,使用邻接链表存储RDF图G,对RDF图G中的每一个顶点v,使用N(v)表示该顶点v的邻居信息,具体定义为N(v)={(pi,vi')|(v,pi,vi')∈G};
当匹配星形结构Tt时函数并行执行时,采用STARMATCH算法在邻居信息N(v)上匹配星形结构Tt,所述的STARMATCH算法具体为:在邻居信息N(v)上匹配星形结构T时,如果星形结构T的根节点T.r为变量或者根节点T.r的标签与定点v的标签相同,遍历该星形结构T的叶子节点得到每个叶子节点li的匹配集合S(li);然后枚举S(li)中各叶子节点的匹配结果得到星形结构T的匹配集合Ωv(T)。
12.根据权利要求10所述的一种基于星形分解的SPARQL基本图模式查询处理方法,其特征在于,上述步骤5.2)在STARDECOMPOSE算法的基础上得到BGP查询Q的一个星形分解并且确定匹配顺序K=T1,T2...,Tm,由此引出局部查询图的概念,定义如下:局部查询图Pj,1≤j≤m是BGP查询图GQ的一个子图,其中(a)V(Pj)=∪1≤i≤jV(Ti);(b)E(Pj)=∪1≤i≤jE(Ti);可见,P1=T1并且,Pm=GQ;用Ω(Ti)和Ω(Pi)分别表示星形结构Ti和局部查询图Pi的匹配结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810273245.XA CN108520035A (zh) | 2018-03-29 | 2018-03-29 | 基于星形分解的sparql基本图模式查询处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810273245.XA CN108520035A (zh) | 2018-03-29 | 2018-03-29 | 基于星形分解的sparql基本图模式查询处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108520035A true CN108520035A (zh) | 2018-09-11 |
Family
ID=63430841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810273245.XA Pending CN108520035A (zh) | 2018-03-29 | 2018-03-29 | 基于星形分解的sparql基本图模式查询处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108520035A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347846A (zh) * | 2019-07-15 | 2019-10-18 | 苏州工业职业技术学院 | 有时间约束的非连通知识图谱查询方法 |
CN110727760A (zh) * | 2019-09-08 | 2020-01-24 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN110909111A (zh) * | 2019-10-16 | 2020-03-24 | 天津大学 | 基于知识图谱rdf数据特征的分布式存储与索引方法 |
CN111241127A (zh) * | 2020-01-16 | 2020-06-05 | 华南师范大学 | 基于谓语组合的sparql查询优化方法、系统、存储介质及设备 |
CN114625811A (zh) * | 2022-05-16 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种提高子图匹配效率的方法和系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
CN104462610A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合本体的分布式rdf存储与查询优化方法 |
CN104462609A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合星型图编码的rdf数据存储与查询方法 |
CN105431839A (zh) * | 2013-03-15 | 2016-03-23 | 罗伯特·哈多克 | 具有提供对知识的一步访问的自适应用户接口的智能互联网系统 |
CN106294655A (zh) * | 2016-08-04 | 2017-01-04 | 华东师范大学 | 一种起点确定的rdf有向无环图查询的数据清理方法 |
CN107358654A (zh) * | 2017-06-19 | 2017-11-17 | 中国地质大学(武汉) | 基于多边形变形技术的剖面重构三维表面建模方法及系统 |
-
2018
- 2018-03-29 CN CN201810273245.XA patent/CN108520035A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105431839A (zh) * | 2013-03-15 | 2016-03-23 | 罗伯特·哈多克 | 具有提供对知识的一步访问的自适应用户接口的智能互联网系统 |
CN103778251A (zh) * | 2014-02-19 | 2014-05-07 | 天津大学 | 面向大规模rdf图数据的sparql并行查询方法 |
CN104462610A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合本体的分布式rdf存储与查询优化方法 |
CN104462609A (zh) * | 2015-01-06 | 2015-03-25 | 福州大学 | 结合星型图编码的rdf数据存储与查询方法 |
CN106294655A (zh) * | 2016-08-04 | 2017-01-04 | 华东师范大学 | 一种起点确定的rdf有向无环图查询的数据清理方法 |
CN107358654A (zh) * | 2017-06-19 | 2017-11-17 | 中国地质大学(武汉) | 基于多边形变形技术的剖面重构三维表面建模方法及系统 |
Non-Patent Citations (1)
Title |
---|
吕雪栋: "大规模RDF图数据的子图匹配查询研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347846A (zh) * | 2019-07-15 | 2019-10-18 | 苏州工业职业技术学院 | 有时间约束的非连通知识图谱查询方法 |
CN110347846B (zh) * | 2019-07-15 | 2023-05-26 | 苏州工业职业技术学院 | 有时间约束的非连通知识图谱查询方法 |
CN110727760A (zh) * | 2019-09-08 | 2020-01-24 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN110727760B (zh) * | 2019-09-08 | 2023-11-07 | 天津大学 | 一种对大规模知识图谱进行分布式正则路径查询的方法 |
CN110909111A (zh) * | 2019-10-16 | 2020-03-24 | 天津大学 | 基于知识图谱rdf数据特征的分布式存储与索引方法 |
CN110909111B (zh) * | 2019-10-16 | 2023-07-14 | 天津大学 | 基于知识图谱rdf数据特征的分布式存储与索引方法 |
CN111241127A (zh) * | 2020-01-16 | 2020-06-05 | 华南师范大学 | 基于谓语组合的sparql查询优化方法、系统、存储介质及设备 |
CN111241127B (zh) * | 2020-01-16 | 2023-01-31 | 华南师范大学 | 基于谓语组合的sparql查询优化方法、系统、存储介质及设备 |
CN114625811A (zh) * | 2022-05-16 | 2022-06-14 | 支付宝(杭州)信息技术有限公司 | 一种提高子图匹配效率的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Skyline community search in multi-valued networks | |
Lan et al. | A survey on advancing the dbms query optimizer: Cardinality estimation, cost model, and plan enumeration | |
CN108520035A (zh) | 基于星形分解的sparql基本图模式查询处理方法 | |
Kim et al. | Taming subgraph isomorphism for RDF query processing | |
Nishimura et al. | Restreaming graph partitioning: simple versatile algorithms for advanced balancing | |
Zhang et al. | EAGRE: Towards scalable I/O efficient SPARQL query evaluation on the cloud | |
Yang et al. | Fast top-k search in knowledge graphs | |
Bortner et al. | Progressive clustering of networks using structure-connected order of traversal | |
US20230139783A1 (en) | Schema-adaptable data enrichment and retrieval | |
De Virgilio et al. | A similarity measure for approximate querying over RDF data | |
Chen et al. | Efficient and incremental clustering algorithms on star-schema heterogeneous graphs | |
Gao et al. | Real-time social media retrieval with spatial, temporal and social constraints | |
Zheng et al. | Efficient simrank-based similarity join | |
US11113348B2 (en) | Device, system, and method for determining content relevance through ranked indexes | |
Zhu et al. | Cohesive subgraph search using keywords in large networks | |
Katsimpras et al. | Class-aware tensor factorization for multi-relational classification | |
Fatemi et al. | CL-MAX: a clustering-based approximation algorithm for mining maximal frequent itemsets | |
Kesavan et al. | Graph based indexing techniques for big data analytics: a systematic survey | |
Chen | Managing massive graphs in relational DBMS | |
Spiegel et al. | TuG synopses for approximate query answering | |
Zheng et al. | User preference-based data partitioning top-k skyline query processing algorithm | |
Huang et al. | Crowdsourced collective entity resolution with relational match propagation | |
CN109086373B (zh) | 一种构建公平的链接预测评估系统的方法 | |
Panda et al. | The model-summary problem and a solution for trees | |
Li et al. | Research on storage method for fuzzy RDF graph based on Neo4j |
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 |
Application publication date: 20180911 |
|
WD01 | Invention patent application deemed withdrawn after publication |