一种大规模数据集上的关系查询方法

文档序号:6432338阅读:345来源:国知局
专利名称:一种大规模数据集上的关系查询方法
技术领域
本发明属于数据库技术领域、语义网领域,涉及一种大规模数据集上的带标签限制的关系查询方法。
背景技术
语义数据是一种表示实体的属性信息以及实体之间语义关系的数据,一般以三元组的集合形式来表示,三元组的格式为〈主体,谓词,客体〉。例如〈北京航空航天大学,校长,怀进鹏 >,< 怀进鹏,毕业于,吉林大学 >,......,< 吉林大学,校长,展涛>。语义数据有一种很重要的用途即语义推断,以上面的三元组为例,我们可以推断出北京航空航天大学到展涛的一种关系,在传统的关系查询方法中,往往使用2-hop之类的方法对路径进行索引,不过随着图的规模不断增长,该类方法的索引计算量也随之剧增, 相应的计算时间也急剧加大,可见传统的关系查询方法已经不能满足日益增长的实体关系查询的要求。

发明内容
本发明的目的在于提出了一种大规模数据集上的关系查询方法,用以支持海量数据的关系查询,并且很好地支持了扩展性。本发明的技术方案为一种大规模数据集上的关系查询方法,其步骤为1)提供或建立语义数据图的语义数据有向图;2)针对语义数据有向图中每一种标签,计算只包含同一种标签的连通子图;3)对步骤2、得到的连通子图进行合并,将所述语义数据有向图划分为若干子图;4)计算步骤幻合并后的每一子图中最强连通子图C,并计算其二部图,得到进入 C的边界点集合S1和从C出去的边界点集合& ;5)对于每一最强连通子图C,利用基于标签的最短路径搜索方法计算S1中每个点到&中每个点的最短路径,将所有最强连通子图的所述最短路径存储到一路径集合RS中;6)记录步骤幻划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;7)利用所述标签集合判断语义数据有向图中是否存在符合查询条件的路径;如果有,则返回查询路径结果;否则,在子图之间进行遍历,根据所述路径集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。进一步的,对步骤幻得到的连通子图进行合并的方法为针对每一个连通子图, 首先计算其E(ρ)/C(ρ)的值,其中E(p)代表连通子图中边的数目,C(p)代表连通子图中的连通区域数目;然后选择E(ρ)/C(ρ)值最大的两个连通子图进行合并,其中合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数要小于设定的最大节点数。进一步的,如果查询条件中的路径标签是当前子图的标签集集合,则判定语义数据有向图中存在符合查询条件的路径。进一步的,采用2-hop方法对步骤幻划分的每一子图建立索引,记录每一子图中具有标签非冗余路径的两个点的标签。进一步的,所述语义数据有向图的建立方法为1)将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边;2)将同一种关系对应的边抽象成一个标签;其中,标签代表边的种类,点与点之间的路径长度为该路径上标签的种类数。进一步的,所述基于标签的最短路径搜索方法为dijkstra算法。本发明实施提出了一种基于标签的分图方法,包括禾Ij用标签的数目与图的连通区域数目的比值来确定子图结合的顺序。利用设定的查询子图标签总数和查询子图中点的数目来约束查询子图的大小。本发明实施提出了一种将带有标签的有向图转变成带有标签的二部图的方法,包括确定该图的最强连通分支;找到每个连通分支内的两类边界点,并利用基于标签的最短路径搜索方法确定该二部图。本发明实施提出了一种基于分层的查询方法,包括利用分图方法的特性,采用提前计算加上临时搜索的方法来查询关系。与现有技术相比,本发明的积极效果为本发明首次提出了以标签作为主要考虑因素的分图方法,并且用实验证明了该方法的优越性,而且首次提出了将图分块的想法进行关系查询,并改进了 di jkstra算法以适应于现在的问题,支持海量数据的关系查询,并且很好地支持了扩展性。


图1为该发明的总体方法流程图。图2为抽象出的有向图。图3为划分最强连通子图的示例图。图4为合并子图的示例图。图5为将带有标签的有向图转化为带有标签的二部图的示例图。
具体实施例方式本发明实例是基于实体关系查询的功能。发明的总体方法流程图如图1所示在实例中,抽象有向图的方法包括步骤101 将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边。步骤102 将同一种关系对应的边抽象成一个标签。图2就是一个已经被抽象了的有向图,其中标签代表边的种类,在这里,我们定义点与点之间的路径长度为该路径上标签的种类数。如图2所示,从点1到点5存在两条路径,分别为Pl(l,2,5)、P2(l,2,3,4,5),两条路径的标签集合分别为{a,b}和{a},则根据我
4们以上的定义,P1的长度为2,p2的长度为1。在实施例中,基于标签的分图方法包括步骤201 分别针对每一种标签去计算只包含该标签的连通子图。为了提高查询的性能,我们需要减少IO的次数和在查询阶段所做的遍历,所以我们将语义数据有向图分块,而传统的分图方法基本上都只考虑图的结构,比如说“min-cut” 是一个经常用来衡量分图好坏的标准,而这里的关系查询主要考虑的是标签,所以我们发明了一种以标签作为主要考虑因素的分图方法。以图2为例,我们针对标签a、b、c、d、e、f六种标签都计算一下图2的连通子图, 可得到如图3所示的分块。步骤202 根据规则选择合适的子图进行合并。为了合并子图,我们提出一个启发式的算法,针对每一个子图,首先计算相应的 E(ρ)/C(p),其中E(p)代表子图ρ中边的数目,C(p)代表子图中的连通区域数目,接着我们选择E(p)/C(p)值最大的两个子图进行合并,但是合并后的子图要满足两个要求,即合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数也要小于设定的最大节点数。图4就是合并图3的一个例子我们通过计算,得到每个初始子图的E (ρ) /C (ρ)值,发现含有标签a的子图该值最大并且为7,含有标签b的子图该比值次大并且为2,根据我们的启发式规则,将这两个子图
合并在一起。利用上述的算法可以将一个有向图分为若干个子图。如图2所示,P1, P2和P3就是分成的三个子图。在实施例中,将带有标签的有向图转化为带有标签的二部图的方法包括步骤301 计算有向图中每一子图的最强连通子图。在计算带标签有向图的最强连通子图时,忽略边上的标签,只需考虑连通性。在有向图G中,如果任意两个不同的顶点可达,则称该有向图是强连通的,有向图的极大强连通子图称为G的强连通分支。如图5所示,图5是图2的P1子图,根据定义,虚线框内的子图即C1是一个强连通分支。步骤302 针对步骤301中得到的最强连通子图计算相应的二部图,其中两类端点分别是进入该子图的边界点和离开该子图的边界点。以图5为例,C1是已经被识别出来的强连通分支,针对C1,首先识别出两类端点,一类是进入C1的边界点,如2、3,标记为S1,一类是从C1出去的边界点,如3、4,标记为S2,接着利用基于标签的最短路径搜索方法计算S1中的每个点到&中每个点的最短路径,最短路径搜索方法会在步骤4中进行介绍,如图2所示,点2到点3的最短路径只包含标签{a}。在实施例中,基于标签的最短路径搜索方法包括步骤401 将语义数据有向图中路径的长度定义为组成该路径的标签种数。步骤402 利用dijkstra算法计算二部图中两类点两两之间标签数目最少的路径。根据我们对路径的定义,使用di jkstra算法,我们可以保证,在遇到标签冗余的路径之前已经获得所有标签非冗余的路径,以图1为例,我们计算从点1到点6之间的标签非冗余的路径。根据di jkstra算法(迪克斯特拉算法),我们可以得到如下的结果表 权利要求
1.一种大规模数据集上的关系查询方法,其步骤为1)提供或建立语义数据图的语义数据有向图;2)针对语义数据有向图中每一种标签,计算只包含同一种标签的连通子图;3)对步骤幻得到的连通子图进行合并,将所述语义数据有向图划分为若干子图;4)计算步骤幻合并后的每一子图中最强连通子图C,并计算其二部图,得到进入C的边界点集合S1和从C出去的边界点集合& ;5)对于每一最强连通子图C,利用基于标签的最短路径搜索方法计算S1中每个点到& 中每个点的最短路径,将所有最强连通子图的所述最短路径存储到一路径集合RS中;6)记录步骤幻划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;7)利用所述标签集合判断语义数据有向图中是否存在符合查询条件的路径;如果有, 则返回查询路径结果;否则,在子图之间进行遍历,根据所述路径集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。
2.如权利要求1所述的方法,其特征在于对步骤2)得到的连通子图进行合并的方法为针对每一个连通子图,首先计算其E(p)/C(p)的值,其中E(p)代表连通子图中边的数目,C(p)代表连通子图中的连通区域数目;然后选择E(ρ)/C(ρ)值最大的两个连通子图进行合并,其中合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数要小于设定的最大节点数。
3.如权利要求1或2所述的方法,其特征在于如果查询条件中的路径标签是当前子图的标签集集合,则判定语义数据有向图中存在符合查询条件的路径。
4.如权利要求1或2所述的方法,其特征在于采用2-hop方法对步骤幻划分的每一子图建立索引,记录每一子图中具有标签非冗余路径的两个点的标签。
5.如权利要求1或2所述的方法,其特征在于所述语义数据有向图的建立方法为1)将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边;2)将同一种关系对应的边抽象成一个标签;其中,标签代表边的种类,点与点之间的路径长度为该路径上标签的种类数。
6.如权利要求5所述的方法,其特征在于所述基于标签的最短路径搜索方法为 di jkstra 算法。
全文摘要
本发明公开了一种大规模数据集上的关系查询方法,属于语义网领域。本方法为1)计算语义数据有向图G中只包含同一种标签的连通子图;2)合并连通子图,将有向图G划分为若干子图;3)计算合并后的每一子图中最强连通子图C,并计算其二部图;4)将所有子图C的最短路径存储到一路径集合RS中;5)记录划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;6)利用标签集合判断有向图G中是否存在符合查询条件的路径;如果有,则返回查询路径结果;否则,在子图之间进行遍历,根据集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。本发明支持海量数据的关系查询,并且扩展性强。
文档编号G06F17/30GK102332009SQ20111025912
公开日2012年1月25日 申请日期2011年9月2日 优先权日2011年9月2日
发明者许坤, 贾爱霞, 赵东岩, 邹磊 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1