CN102332009B - 一种大规模数据集上的关系查询方法 - Google Patents
一种大规模数据集上的关系查询方法 Download PDFInfo
- Publication number
- CN102332009B CN102332009B CN 201110259125 CN201110259125A CN102332009B CN 102332009 B CN102332009 B CN 102332009B CN 201110259125 CN201110259125 CN 201110259125 CN 201110259125 A CN201110259125 A CN 201110259125A CN 102332009 B CN102332009 B CN 102332009B
- Authority
- CN
- China
- Prior art keywords
- subgraph
- path
- label
- subgraphs
- digraph
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种大规模数据集上的关系查询方法,属于语义网领域。本方法为:1)计算语义数据有向图G中只包含同一种标签的连通子图;2)合并连通子图,将有向图G划分为若干子图;3)计算合并后的每一子图中最强连通子图C,并计算其二部图;4)将所有子图C的最短路径存储到一路径集合RS中;5)记录划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;6)利用标签集合判断有向图G中是否存在符合查询条件的路径;如果有,则返回查询路径结果;否则,在子图之间进行遍历,根据集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。本发明支持海量数据的关系查询,并且扩展性强。
Description
技术领域
本发明属于数据库技术领域、语义网领域,涉及一种大规模数据集上的带标签限制的关系查询方法。
背景技术
语义数据是一种表示实体的属性信息以及实体之间语义关系的数据,一般以三元组的集合形式来表示,三元组的格式为<主体,谓词,客体>。例如:<北京航空航天大学,校长,怀进鹏>,<怀进鹏,毕业于,吉林大学>,......,<吉林大学,校长,展涛>。
语义数据有一种很重要的用途即语义推断,以上面的三元组为例,我们可以推断出北京航空航天大学到展涛的一种关系,在传统的关系查询方法中,往往使用2-hop之类的方法对路径进行索引,不过随着图的规模不断增长,该类方法的索引计算量也随之剧增,相应的计算时间也急剧加大,可见传统的关系查询方法已经不能满足日益增长的实体关系查询的要求。
发明内容
本发明的目的在于提出了一种大规模数据集上的关系查询方法,用以支持海量数据的关系查询,并且很好地支持了扩展性。
本发明的技术方案为:
一种大规模数据集上的关系查询方法,其步骤为:
1)提供或建立语义数据图的语义数据有向图;
2)针对语义数据有向图中每一种标签,计算只包含同一种标签的连通子图;
3)对步骤2)得到的连通子图进行合并,将所述语义数据有向图划分为若干子图;
4)计算步骤3)合并后的每一子图中最强连通子图C,并计算其二部图,得到进入C的边界点集合S1和从C出去的边界点集合S2;
5)对于每一最强连通子图C,利用基于标签的最短路径搜索方法计算S1中每个点到S2中每个点的最短路径,将所有最强连通子图的所述最短路径存储到一路径集合RS中;
6)记录步骤3)划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;
7)利用所述标签集合判断语义数据有向图中是否存在符合查询条件的路径;如果有,则返回查询路径结果;否则,在子图之间进行遍历,根据所述路径集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。
进一步的,对步骤2)得到的连通子图进行合并的方法为:针对每一个连通子图,首先计算其E(p)/C(p)的值,其中E(p)代表连通子图中边的数目,C(p)代表连通子图中的连通区域数目;然后选择E(p)/C(p)值最大的两个连通子图进行合并,其中合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数要小于设定的最大节点数。
进一步的,如果查询条件中的路径标签是当前子图的标签集集合,则判定语义数据有向图中存在符合查询条件的路径。
进一步的,采用2-hop方法对步骤3)划分的每一子图建立索引,记录每一子图中具有标签非冗余路径的两个点的标签。
进一步的,所述语义数据有向图的建立方法为:
1)将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边;
2)将同一种关系对应的边抽象成一个标签;其中,标签代表边的种类,点与点之间的路径长度为该路径上标签的种类数。
进一步的,所述基于标签的最短路径搜索方法为dijkstra算法。
本发明实施提出了一种基于标签的分图方法,包括:
利用标签的数目与图的连通区域数目的比值来确定子图结合的顺序。
利用设定的查询子图标签总数和查询子图中点的数目来约束查询子图的大小。
本发明实施提出了一种将带有标签的有向图转变成带有标签的二部图的方法,包括:
确定该图的最强连通分支;
找到每个连通分支内的两类边界点,并利用基于标签的最短路径搜索方法确定该二部图。
本发明实施提出了一种基于分层的查询方法,包括:
利用分图方法的特性,采用提前计算加上临时搜索的方法来查询关系。
与现有技术相比,本发明的积极效果为:
本发明首次提出了以标签作为主要考虑因素的分图方法,并且用实验证明了该方法的优越性,而且首次提出了将图分块的想法进行关系查询,并改进了dijkstra算法以适应于现在的问题,支持海量数据的关系查询,并且很好地支持了扩展性。
附图说明
图1为该发明的总体方法流程图。
图2为抽象出的有向图。
图3为划分最强连通子图的示例图。
图4为合并子图的示例图。
图5为将带有标签的有向图转化为带有标签的二部图的示例图。
具体实施方式
本发明实例是基于实体关系查询的功能。
发明的总体方法流程图如图1所示:
在实例中,抽象有向图的方法包括:
步骤101:将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边。
步骤102:将同一种关系对应的边抽象成一个标签。
图2就是一个已经被抽象了的有向图,其中标签代表边的种类,在这里,我们定义点与点之间的路径长度为该路径上标签的种类数。如图2所示,从点1到点5存在两条路径,分别为p1(1,2,5)、p2(1,2,3,4,5),两条路径的标签集合分别为{a,b}和{a},则根据我们以上的定义,p1的长度为2,p2的长度为1。
在实施例中,基于标签的分图方法包括:
步骤201:分别针对每一种标签去计算只包含该标签的连通子图。
为了提高查询的性能,我们需要减少IO的次数和在查询阶段所做的遍历,所以我们将语义数据有向图分块,而传统的分图方法基本上都只考虑图的结构,比如说“min-cut”是一个经常用来衡量分图好坏的标准,而这里的关系查询主要考虑的是标签,所以我们发明了一种以标签作为主要考虑因素的分图方法。
以图2为例,我们针对标签a、b、c、d、e、f六种标签都计算一下图2的连通子图,可得到如图3所示的分块。
步骤202:根据规则选择合适的子图进行合并。
为了合并子图,我们提出一个启发式的算法,针对每一个子图,首先计算相应的E(p)/C(p),其中E(p)代表子图p中边的数目,C(p)代表子图中的连通区域数目,接着我们选择E(p)/C(p)值最大的两个子图进行合并,但是合并后的子图要满足两个要求,即合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数也要小于设定的最大节点数。
图4就是合并图3的一个例子:
我们通过计算,得到每个初始子图的E(p)/C(p)值,发现含有标签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中的每个点到S2中每个点的最短路径,最短路径搜索方法会在步骤4中进行介绍,如图2所示,点2到点3的最短路径只包含标签{a}。
在实施例中,基于标签的最短路径搜索方法包括:
步骤401:将语义数据有向图中路径的长度定义为组成该路径的标签种数。
步骤402:利用dijkstra算法计算二部图中两类点两两之间标签数目最少的路径。
根据我们对路径的定义,使用dijkstra算法,我们可以保证,在遇到标签冗余的路径之前已经获得所有标签非冗余的路径,以图1为例,我们计算从点1到点6之间的标签非冗余的路径。
根据dijkstra算法(迪克斯特拉算法),我们可以得到如下的结果:
表1
Heap H | Path Set RS |
Step1[{a},(1,2),2] | [{a},(1,2),2] |
Step2[{a},(1,2,3),3];[{ac},(1,2,5),5] | [{a},(1,2,3),3] |
Step3[{a},(1,2,3,4),4];[{ac},(1,2,5),5] | [{a},(1,2,3,4),4] |
Step4[{a},(1,2,3,4,5),5];[{ac},(1,2,3,4,5),5] | [{a},(1,2,3,4,5),5] |
Step5[{a},(1,2,3,4,5,6),6] | [{a},(1,2,3,4,5,6),6] |
在dijkstra算法里,有两个变量,第一个是算法过程当中的一个优先级队列H,一个是用来存储最后结果的路径集合RS。在后期搜索过程中需要遍历图,所以如果我们提前计算出穿越这个图所需要满足的标签,就可以确定是否可以穿越该子图。
在算法执行的第一步,我们首先设置源点为点1,然后我们将点1的邻居节点放入优先级队列,但由于这个图是有向图,所以我们只将点2放入优先级队列,这里存放边信息的结构为一个三元组,形式为[L(p),p,d],其中L(p)代表路径的标签,p代表路径,d代表当前节点,所以第一步以后,队列中只有[{a},(1,2),2]一个三元组,在算法的第二步,我们从优先级队列中提取出队首元素,并判断已经有的结果集里面,是否存在从源点s到当前节点d的一条路径,该路径已经将队首元素的标签覆盖,如果能找到就继续提取队首元素,否则,就将队首元素放入结果集,并考虑结果集里面还没有被访问过的节点。所以在算法的第四步里,并没有将[{ac},(1,2,3,4,5),5]放入最后的结果集里。
在实施例中,使用2-hop方法建立索引的方法包括:
步骤501:根据E Cohen的论文“Reachability and distance queries via 2-hop labels”中所提到的2-hop方法建立索引,记录划分后的每一连通子图中具有标签非冗余路径的两个点的标签;最终得到每一子图的标签集合,用于后续查询。
在实施例中,基于分层的查询方法包括:
步骤601:根据分图结果确定查询点所在的子图。
以图2为例,给定一个关系查询的实例LCR(1,18,’ac’,G),该查询的意思是,在有向图G中,点1到点18是否存在一条路径,该路径的标签是{ac}的子集。
分层算法首先利用分图结果确定点1和点18分别所在的子图,如果是同一个子图,就利用已经建立的2-hop索引判断是否存在一条符合要求的路径,如果存在符合要求的路径,则返回答案,即判断路径标签是否是给定标签集的子集,如果是则符合要求,反之则不然。如果在同一个子图但是找不到满足要求的路径或者不在同一个子图,则进入步骤602。
步骤602:在子图之间进行遍历,如果遍历到了目标节点所在的子图,就判断可以在该子图中到达目标节点。
以图3为例,点1在子图P1中,点18在子图P2中,由于点1和点18在不同的子图,首先判断点1是否可以在{ac}的约束下到达P1的边界点,在这里P1的边界点是点5、8、9,经过判断,发现点5和点8均可以到达,由于点5和点18在同一个子图,于是利用子图P2的索引判断,发现可以找到这样一条路径,于是返回答案。
Claims (5)
1.一种大规模数据集上的实体数据语义关系查询方法,其步骤为:
1)提供或建立语义数据图的语义数据有向图;建立所述语义数据有向图的方法为:首先将语义数据图中的实体抽象成点,将实体之间的关系抽象成有向边;然后将同一种关系对应的边抽象成一个标签;其中,标签代表边的种类,点与点之间的路径长度为该路径上标签的种类数;语义数据是一种表示实体的属性信息以及实体之间语义关系的数据,采用三元组<主体,谓词,客体>的形式表示;
2)针对语义数据有向图中每一种标签,计算只包含同一种标签的连通子图;
3)对步骤2)得到的连通子图进行合并,将所述语义数据有向图划分为若干子图;
4)计算步骤3)合并后的每一子图中最强连通子图C,并计算其二部图,得到进入C的边界点集合S1和从C出去的边界点集合S2;
5)对于每一最强连通子图C,利用基于标签的最短路径搜索方法计算S1中每个点到S2中每个点的最短路径,将所有最强连通子图的所述最短路径存储到一路径集合RS中;
6)记录步骤3)划分的每一子图中具有标签非冗余路径的两个点的标签,得到每一子图的标签集合;
7)利用所述标签集合判断语义数据有向图中是否存在符合查询条件的路径;如果有,则返回查询路径结果;否则,在子图之间进行遍历,根据所述路径集合RS确定可到达目标节点的子图,然后利用该子图的标签集合返回查询路径结果。
2.如权利要求1所述的方法,其特征在于对步骤2)得到的连通子图进行合并的方法为:针对每一个连通子图,首先计算其E(p)/C(p)的值,其中E(p)代表连通子图中边的数目,C(p)代表连通子图中的连通区域数目;然后选择E(p)/C(p)值最大的两个连通子图进行合并,其中合并后的子图中包含的标签数要小于设定的最大标签数,子图中的节点数要小于设定的最大节点数。
3.如权利要求1或2所述的方法,其特征在于如果查询条件中的路径标签是当前子图的标签集集合,则判定语义数据有向图中存在符合查询条件的路径。
4.如权利要求1或2所述的方法,其特征在于采用2-hop方法对步骤3)划分的每一子图建立索引,记录每一子图中具有标签非冗余路径的两个点的标签。
5.如权利要求1所述的方法,其特征在于所述基于标签的最短路径搜索方法为dijkstra算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110259125 CN102332009B (zh) | 2011-09-02 | 2011-09-02 | 一种大规模数据集上的关系查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110259125 CN102332009B (zh) | 2011-09-02 | 2011-09-02 | 一种大规模数据集上的关系查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102332009A CN102332009A (zh) | 2012-01-25 |
CN102332009B true CN102332009B (zh) | 2013-09-04 |
Family
ID=45483785
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110259125 Active CN102332009B (zh) | 2011-09-02 | 2011-09-02 | 一种大规模数据集上的关系查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102332009B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649441A (zh) * | 2016-09-13 | 2017-05-10 | 深圳市华傲数据技术有限公司 | 图数据的重划分方法及系统 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105706078B (zh) * | 2013-10-09 | 2021-08-03 | 谷歌有限责任公司 | 实体集合的自动定义 |
CN105530011A (zh) * | 2014-09-30 | 2016-04-27 | 华东师范大学 | 一种基于三角形统计的图数据压缩方法和查询方法 |
CN104504003B (zh) * | 2014-12-09 | 2018-03-13 | 北京航空航天大学 | 图数据的搜索方法和装置 |
CN107402927A (zh) * | 2016-05-19 | 2017-11-28 | 上海斯睿德信息技术有限公司 | 一种基于图模型的企业关联关系拓扑建立方法及查询方法 |
CN108319600B (zh) * | 2017-01-16 | 2021-01-08 | 华为技术有限公司 | 一种数据挖掘方法及装置 |
CN107391533B (zh) * | 2017-04-18 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 生成图形数据库查询结果的方法及装置 |
CN107193942A (zh) * | 2017-05-19 | 2017-09-22 | 西安邮电大学 | 一种有向图中所有连通子图的快速生成方法 |
CN109117429B (zh) * | 2017-06-22 | 2020-09-22 | 北京嘀嘀无限科技发展有限公司 | 数据库查询方法、装置和电子设备 |
CN109903105B (zh) * | 2017-12-08 | 2021-11-30 | 北京京东尚科信息技术有限公司 | 一种完善目标商品属性的方法和装置 |
CN108153883B (zh) * | 2017-12-26 | 2022-02-18 | 北京百度网讯科技有限公司 | 搜索方法和装置、计算机设备、程序产品以及存储介质 |
CN108809833A (zh) * | 2018-06-15 | 2018-11-13 | 烽火通信科技股份有限公司 | 一种自动配置同步网络时钟跟踪路径的方法 |
CN109492111B (zh) * | 2018-09-19 | 2023-05-30 | 平安科技(深圳)有限公司 | 最短路径查询方法、系统、计算机设备和存储介质 |
CN110020788B (zh) * | 2019-03-15 | 2023-12-29 | 创新先进技术有限公司 | 目标实体资源分布的确定方法和装置 |
CN110413989B (zh) * | 2019-06-19 | 2020-11-20 | 北京邮电大学 | 一种基于领域语义关系图的文本领域确定方法与系统 |
CN110765235B (zh) * | 2019-09-09 | 2023-09-05 | 深圳市人马互动科技有限公司 | 训练数据的生成方法、装置、终端及可读介质 |
CN111222159B (zh) * | 2019-12-30 | 2022-07-05 | 中国电子科技集团公司第三十研究所 | 基于图计算技术的云平台数据泄漏路径识别方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129457A (zh) * | 2011-03-09 | 2011-07-20 | 浙江大学 | 大规模语义数据路径查询的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402018B2 (en) * | 2010-02-12 | 2013-03-19 | Korea Advanced Institute Of Science And Technology | Semantic search system using semantic ranking scheme |
-
2011
- 2011-09-02 CN CN 201110259125 patent/CN102332009B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102129457A (zh) * | 2011-03-09 | 2011-07-20 | 浙江大学 | 大规模语义数据路径查询的方法 |
Non-Patent Citations (4)
Title |
---|
Semantic-based query processing for relational data integration;Zhuang Miao et al.;《东南大学学报(英文版)》;20110331;第27卷(第1期);22-25 * |
Zhuang Miao et al..Semantic-based query processing for relational data integration.《东南大学学报(英文版)》.2011,第27卷(第1期),22-25. |
一种基于语义关联的查询优化方法;梅翔 等;《北京邮电大学学报》;20061231;第29卷(第6期);107-110 * |
梅翔 等.一种基于语义关联的查询优化方法.《北京邮电大学学报》.2006,第29卷(第6期),107-110. |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106649441A (zh) * | 2016-09-13 | 2017-05-10 | 深圳市华傲数据技术有限公司 | 图数据的重划分方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102332009A (zh) | 2012-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102332009B (zh) | 一种大规模数据集上的关系查询方法 | |
Bouros et al. | Spatio-textual similarity joins | |
Shang et al. | User oriented trajectory search for trip recommendation | |
CN109992786B (zh) | 一种语义敏感的rdf知识图谱近似查询方法 | |
Mouratidis et al. | Preference queries in large multi-cost transportation networks | |
CN107798346A (zh) | 一种基于Fréchet距离阈值的轨迹相似性快速匹配方法 | |
Bonchi et al. | Distance oracles in edge-labeled graphs. | |
CN106528648B (zh) | 结合Redis内存数据库的分布式RDF关键词近似搜索方法 | |
CN103049521A (zh) | 一种支持多属性复合条件查询的虚拟表索引机制及方法 | |
CN104462582A (zh) | 一种基于结构和内容二级过滤的Web数据相似性检测方法 | |
CN103761251A (zh) | 大数据量客户信息的存储与查找方法 | |
Ali et al. | The maximum trajectory coverage query in spatial databases | |
CN104102699A (zh) | 一种聚簇图集合中的子图检索方法 | |
Nutanong et al. | Memory-efficient algorithms for spatial network queries | |
CN104794175B (zh) | 基于度量k最近对的景点和酒店最佳配对方法 | |
US8965935B2 (en) | Sequence matching algorithm | |
Jin et al. | Making RDBMSs efficient on graph workloads through predefined joins | |
Yang et al. | Recommending profitable taxi travel routes based on big taxi trajectories data | |
CN103186674A (zh) | 一种基于XML的Web数据快速查询方法 | |
Zheng et al. | Efficient subgraph skyline search over large graphs | |
Xu et al. | Continuous k nearest neighbor queries over large multi-attribute trajectories: a systematic approach | |
US20140101173A1 (en) | Method of providing information of main knowledge stream and apparatus for providing information of main knowledge stream | |
CN103345509A (zh) | 获取路网上复反向最远邻居的层次分区树方法及系统 | |
Li et al. | Optimal sequenced route query with poi preferences | |
Liu et al. | Significant-attributed Community Search in Heterogeneous Information Networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |