改进RDF的互联网大数据关键字词搜索方法与流程

文档序号:32004562发布日期:2022-11-02 12:35阅读:41来源:国知局
改进RDF的互联网大数据关键字词搜索方法与流程
改进rdf的互联网大数据关键字词搜索方法
技术领域
1.本技术涉及一种网络大数据关键字词检索方法,特别涉及一种改进rdf的互联网大数据关键字词搜索方法,属于网络信息语义检索技术领域。


背景技术:

2.当前互联网规模越来越大,伴之而来的就是信息量急剧增加的问题,大量的信息让管理人员组织起来毫无头绪,根本原因就是网上的信息基本都呈现在html网页上,而这些网页组织松散、结构简单,并没有形成统一的结构化网页。这能够使得网站创建者更加容易的创建网站,设计网页,但同时在web上的查询和精确定位的工作很难进行。为解决信息的结构化问题,推出了xml,并提出了辅助语言xsl用来展示xml,这使得网上的信息结构化并且可以多样化的显示出来。仅仅是为了将网页信息结构化,xml只包含了相关结构信息,并没有对语义的陈述,这对于计算机在网上的查询工作并没有作用。计算机能够通过xml分析网页信息结构,但并不能够自行理解具体的语义,所以让互联网自动化分析网页信息是很容易出错误的。如果网页信息除了采用xml带来的结构化之外还拥有让计算机读懂的语义信息,这种语义属性就能够让计算机有所依据,将能够搜索到的符合查询关键字词语义的网页信息整理在一起,那么返回的查询结果就更能匹配用户输入的关键字词需求。
3.语义网的最终目的就是让计算机领会web上的信息语义,就要给计算机提供用来表述web 数据的元数据,而rdf作为通用的元数据模型正好符合要求。当今计算机产物中语义网领域极速发展,随之而来的就是语义数据数量的极度扩张。目前对于所有的用本体语言表述,用主语、谓语、宾语结合体构成的数据,统称为rdf数据。
4.rdf能够给互联网上的一切应用定义相应的信息表述标准,对互联网中信息实行全方位表示的框架。rdf采用统一的主谓宾形式来表述网络上的资源信息,主语大都用统一资源标识符来代表互联网上的资源实体,用谓语来表示资源具备的一切属性,而用宾语来表示资源实体指向当前属性的属性值。这种标准下的表现方式能够让rdf描述互联网上所有带有统一资源标识符的资源信息,而且能够赋予rdf数据信息能够在互联网上各种应用之间交流但是并不失去其储存的语义的特性。由于上述原因,rdf就被列为该领域的规范,非结构化的数据数量成倍增加,对互联网上信息的语义要求增高,很多领域对于rdf的大量采用导致互联网上的rdf数据极速增多,相应的就衍生出许多数据量过大的rdf数据集。如此大规模的rdf 数据自然而然就会衍生出处理和查询的重要问题,而未来的数据量只会越来越大,这两个问题就会越来越显现出来。
5.随着rdf数据的涉及领域也不断扩张,越来越多的用户可能需要对网络文件进行查询,然而这些人并没有进行过查询语言和结构的相关学习,甚至一些相对简单的专门为非专业人员设计的查询语言对于这些用户来说都过于复杂,对于半结构化、xml、rdf数据的查询语言就更加复杂,那么怎样为非专业用户提供基于关键字词查询的方法是当下计算机相关领域学者急需解决的重大问题。所以改变专业人士采用过于复杂的查询语言来对rdf数据进行查询的传统方式,这样用户就没有必要为了完成网页查询而专门去学习并掌握查
询语言的语法规则和rdf数据的结构信息,用户只需要向计算机传达自己想要查询的关键字词就可以得到查询想要的结果,目前万维网的搜索引擎中采用关键字词进行查询的方法得到用户的青睐证明了用户更喜欢用简单易操作的查询方式。所以,对于越来越多的普通用户,基于关键字词的 rdf数据查询方法是万维网查询的必然趋势。
6.目前,在rdf数据中进行关键字查询获取信息的方法分为两类,一类由关键字查询构造形式化查询语句再得到查询结果,称为查询转换方法;另一类由关键字词查询直接从rdf数据中构造查询结果,称为直接查询方法。查询转换方法关注将关键字查询转换为形式化查询的过程。这类方法不需要建立大规模的结构索引而是依赖rdf模式信息确定查询关键字词之间的关联,但目前万维网上rdf数据大部分没有或者缺少模式信息。iqtqa抽取结构信息的时间开销大,并且,由于其响应时间等于查询转换时间加查询结果生成时间,实时响应速度并不理想。blinks不支持对边标签的图进行关键字词查询,无法处理用户将属性或者关系名作为关键字词进行查询的情况。
7.综上,网络大数据关键字词检索具有广泛的应用前景,但当前的网络信息语义检索方法,同时存在着亟待解决的技术难点,包括:
8.(1)当前非结构化的数据数量成倍增加,对互联网上信息的语义要求增高,现有技术 rdf的大量使用导致互联网上的rdf数据极速增多,相应衍生出许多数据量过大的rdf数据集,如此大规模的rdf数据就会衍生出处理和查询的重要问题,而未来的数据量只会越来越大,这个问题就会越来越显现出来,现有技术缺少一种能够高效准确的应对大规模的rdf数据衍生出的处理和查询方法,现有技术复杂的查询语言对rdf数据关键字词检索带来较高困难,非专业人士几乎无法操作,造成rdf的互联网大数据关键字词搜索实用性很低。
9.(2)rdf数据的涉及领域也不断扩张,越来越多的用户需要对网络文件进行查询,然而这些人并没有进行过查询语言和结构的学习,甚至专门为非专业人员设计的查询语言对于这些用户来说都过于复杂,对于半结构化、xml、rdf数据的查询语言就更加复杂,现有技术无法为非专业用户提供基于关键字词查询,需要采用过于复杂的查询语言来对rdf数据进行查询,用户需要为了完成网页查询而专门去学习并掌握查询语言的语法规则和rdf数据的结构信息,当前亟需一种用户只需要向计算机传达自己想要查询的关键字词就可以得到查询想要的结果,采用关键字词进行简单易操作的查询方式。
10.(3)现有技术查询转换方法关注将关键字查询转换为形式化查询的过程,但目前万维网上rdf数据大部分没有或者缺少模式信息。现有技术iqtqa抽取结构信息的时间开销大,并且其响应时间等于查询转换时间加查询结果生成时间,实时响应速度并不理想。现有技术 blinks不支持对边标签的图进行关键字词查询,无法处理用户将属性或者关系名作为关键字词进行查询的情况,应用范围受限。现有技术缺少对rdf数据的规则、元素、容器等进行分析,rdf数据的结构特征不方便解决rdf数据三元组的提取问题;针对向后拓展算法可能会访问大量没必要访问的图结点的缺点,缺少对应的改进方案。在数据图中缺少索引造成最佳向后拓展搜索策略的运行花费大,针对大图的图分割策略效果较差,速度很慢。
11.(4)现有技术缺少二级索引的关键字词搜索,无法一个对于在带有标签结点的有向图中的实现排名的关键字词搜索的索引和查询处理,搜索策略落后,缺少融合簇间花费平衡拓展策略和向后拓展搜索策略,向后拓展搜索策略存在问题。搜索未结合索引,实现最佳向后拓展搜索策略的运行花费大,双向拓展效率低。缺少基于图分割的索引,无法将一个
数据图分割为多个子图(块),不能利用增加索引和图分割在rdf图数据上的关键字词搜索,缺少对图搜索策略、索引和算法进行分析,网络信息语义检索效果差,操作复杂,普通用户很难掌握,失去了实际利用价值。


技术实现要素:

12.本技术创造性的提出基于rdf图数据的关键字词查询搜索的步骤及每个步骤的算法流程,首先是对rdf数据的三元组提取,然后是对向后拓展算法的优缺点进行分析并在缺点上进行改进,用双向拓展算法来实现在rdf图数据上的关键字词搜索,并对算法中的数据结构和特有的活力值以及算法流程进行分析和解释;最后对向后拓展算法和双向拓展算法共有的缺点进行分析并在此基础上利用增加索引和图分割在rdf图数据上的关键字词搜索,并对图搜索策略、索引和算法进行分析。通过大数据关键字词搜索定义、最佳图rdf搜索策略、单级索引关键字词探索、二级索引大数据探索关键步骤和算法的改进,满足rdf海量数据关键字词搜索需求,查询检索高效准确。
13.为实现以上技术特征和效果,本技术所采用的技术方案以下:
14.改进rdf的互联网大数据关键字词搜索方法,首先对rdf数据的三元组提取,并通过提取出来的资源、属性、属性值建立图数据;然后基于向后拓展算法进行改进,用双向拓展算法来实现在rdf图数据上的关键字词搜索,并解析数据结构和特有活力值;最后对向后拓展算法和双向拓展算法进行分析融合并在此基础上利用增加索引和图分割在rdf图数据上的关键字词搜索,并实现图搜索策略、索引和算法,包括:一是大数据关键字词搜索定义,二是最佳图rdf搜索策略,三是单级索引关键字词探索,四是二级索引大数据探索,具体包括:块内关键字词索引、大数据块索引、rdf图分割、二级索引搜索算法;
15.1)基于rdf文件实例修改rdf数据的规则、元素、容器,定义rdf数据的结构特征以方便解决rdf数据三元组提取问题;采用提取出来的三元组中的主语、宾语建点,谓语建边,实现rdf数据三元组的提取和建图;
16.2)针对向后拓展算法会访问大量不必要访问图结点的缺点,提出双向拓展算法,在查询模型上采用入迭代器、出迭代器,生成结果集,并采用扩散活力值的方式将搜索优先处理;
17.3)改进融合向后拓展搜索和双向拓展搜索策略,提出最佳向后拓展搜索策略的簇间花费平衡拓展策略,在数据图中加索引以达到显著减少实现最佳向后拓展搜索策略的运行花费的目的;最后针对大图提出图分割策略,采用二级索引搜索算法,并实现块内关键字词搜索和块间关键字词搜索。
18.优选地,大数据关键字词搜索定义:
19.网络大数据查询:把查询放在一个有向图g=(v,e)上进行,每个属于v的结点v带有一些文本标记,一次关键字词查询q包含一系列查询关键字词(w1,w2,

,wm),定义一个q的答案如下:
20.定义1:给定一个查询q=(w1,w2,

,wm)和一个有向图g,q的一个答案是一对 《r,(n1,n2,

,nm)》,i和ni是图g中满足下列特征的结点:
21.1)覆盖范围:对于每一个i,结点n包含关键字词wi;
22.2)连通性:对于每一个i,在图g中存在一条有向路径从i到ni;
23.r为这个答案的根,ni是答案的匹配项,连通性答案是一个根结点能够到达所有关键字词的子树;
24.top-k查询:改进后的算法考虑到对于一个查询,找到排名靠前的答案,答案的好坏通过得分模型衡量,得分模型给每个答案匹配一个数字分数,得到的分数越高表明这个答案更好;
25.定义2:给定一个查询和一个得分模型s,一个结点r的得分是所有以r为根结点的所有答案t中的最高得分s(t),把r当作根结点的拥有最高得分的答案是做把r当作根结点的一个最优答案,一个top-k查询返回图中最高得分的k个结点并且对于每个被返回的结点,都对应一个最高得分和一个最优答案树,k个最优答案有不同的根结点;
26.得分模型:形式上定义查询q=(w1,w2,

,wm)的一个答案t=《r,(n1,n2,

,nm)》的得分s(t) 是由三部分决定,分别是答案根结点r、匹配项ni、从根结点r到每一个匹配关键字词结点 ni的最短路径距离,得分模型采用匹配-分布式语义论,对s(t)的定义中由匹配项和根结点到匹配项路径对于最后得分的净贡献通过所有匹配项求和的分布式方式计算,所有根结点到匹配项路径对于最后得分的贡献独立;得分模型基于图-距离语义论,在s(t)的定义中,根结点到匹配项路径的得分贡献在数据图中从根结点到匹配项的最短路径。
27.优选地,最佳图rdf搜索策略:首先分析向后拓展算法和双向拓展算法的特征并考虑在此基础上进行改进,目的是找到趋向最佳图rdf搜索策略;
28.向后搜索:图的连通性信息只能提供一段单跳,完成查询通过从包含至少一个查询关键字词的结点开始探索这个图,这样的结点很容易通过结点信息列表被找到,形成向后搜索拓展算法;
29.双向搜索:在向后拓展的基础上新增了沿着前进边探索图的选择,算法被允许从结点u 向前拓展到k2,更快地确定结点u就是一个答案的根结点,通过探索的活力因素给结点赋予优先次序,评估一个结点有多大的可能是根结点;
30.最佳图搜索改进两个方面:一是改进簇间的拓展策略,为最坏情况性能提供可证明边界的策略,即花费平衡策略;然后采用预计算提供的索引为查询中的向前拓展提供支持,基于直接得出一个结点能否扩展到某个关键字词而且得到相应的最短距离,消除一步一步向前拓展的不确定性和低效率;二是簇间花费平衡拓展,尝试平衡每个簇访问结点的数量,下一个要扩展的簇ei是基数最小的簇,这个策略用来与簇中等距离拓展结合采用,一旦选择要拓展的最小的簇,就在这个簇中选择距离簇最短距离的结点进行拓展。
31.优选地,单级索引关键字词探索:对于每一个关键字词,对数据图中每一个结点到关键字词的最短距离进行预计算,结果是一组关键字词-结点列表,针对用户列举出来的所有关键字词w,l
kn
(w)归纳出达到关键字词w的结点列表,并且所有结点是按照到达w的距离排序,列表中的每一项都有距离、结点、邻接结点、关键字词结点四个字段,其中距离是该结点到一个包含w的结点的最短距离;关键字词结点是包含w的结点;邻接结点从结点到关键字词结点路径上经过的第一个结点。为了更快更有效的向前拓展,对于每一个结点u,预计算从u 到每一个关键字词的最短距离,并且将这些信息总结在一个哈希表m
kn
中,给定一个结点u和一个关键字词w,m
kn
(u,w)返回从结点u到关键字词w的最短距离,如果u不能到达任何包含w 的关键字词结点,那么返回无穷大。
32.优选地,单级索引关键字词探索算法流程:给定一个查询q=(w1,w2,

,wm),采用
一个游标来横穿每个关键字词-结点列表l
kn
(wi),游标ci在列表l
kn
(wi)上通过调用next函数前进, next函数返回列表中下一个列表中保存的最短距离,该结构列表满足簇中等距离拓展,在簇间采用游标以轮询调度的方式实现了簇间花费平衡拓展,另外,采用m
kn
以一种直接方式来执行向前拓展的部分,当一到达某个结点就查找它到所有除了当前关键字词的距离,用这种方式立即确定是否发现答案的根结点,对于每个在访问的结点构造一个结构体 (root,dist1,dist2,

,distm),其中root是在访问的结点,disti是这个结点到关键字词wi的距离,如果有disti无穷大,那么这个结点就不是答案根结点,它不能到达wi,如果所有距离都不是无穷大,那么就已找到答案根结点,通过一个临界值t
prune
来实现找到top-k结果,临界值t
prune
是当前所有得到的结果树距离和中第k小的值,对于每一个新的答案,必须小于这个临界值,同时对于每个簇内的扩展,如果现有的距离和已经大于这个临界值,不再继续拓展。
33.优选地,二级索引大数据探索:采用分而治之的方法创建一个二级索引结构,首先将一张数据图划分为多个子图,一个二级索引包含一个上层大数据块索引和对应每一个块的块内索引,分别用来储存关键字词和结点对块的映射,和用来储存块内的具体信息;
34.通过引流结点分割图:保存分隔符集来解决一个答案跨越很多块的情况,在基于结点方式分割的图中,把结点分隔符叫做引流结点,每个块包含块内的所有结点和与之邻接的一切引流结点,对于一个块,引流结点是入引流结点和出引流结点或既是入引流结点又是出引流结点;
35.优选地,块内关键字词索引:块内索引记录块内信息,对于图中所有的块b,块内索引包含以下几个数据结构:
36.1)块内关键字词-结点列表:针对每一个关键字词w,l
kn
(b,w)列举出在不离开b的情况下直通关键字词w的b内所有结点的列表,它们的排序依据是从该结点到关键字词w的最短距离;
37.2)块内结点-关键字词映射:在这个哈希映射中通过输入块b的一个结点u和一个关键字词w查找可以返回m
kn
(b,u,w),它是从结点u到关键字词w的块内最短距离;
38.3)块内引流结点-结点列表:对于块b的每一个出引流结点p,l
pn
(b,p)表示在不离开b 的情况下到达p的b内所有结点的列表,根据它们到p的最短距离排序;
39.4)块内结点-引流结点距离映射:在这个哈希映射中通过输入块b的一个结点u查找返回d
np
(b,u),它是从结点u到最近的b的出引流结点的块内最短距离。
40.优选地,大数据块索引包含两个数据结构:
41.1)关键字词-块列表:对于每一个关键字词w,l
kb
(w)表示块中拥有关键字词w的所有块集合成的列表,块bz中不包含关键字词a,记l
kb
(a)={b1},关键字词d在这两个块里都呈现,l
kb
(d)={b1,b2}:引流结点v3是块b1和b2之间的引流,它包含关键字词b,l
kb
(b)={b1,b2};
42.2)引流结点-块列表:对于每一个引流结点p,l
pb
(p)表示以p为出引流结点的块的列表, v3是块b1和b2的出引流结点,那么l
pb
(v3)={b1,b2},v5只是块b1的出引流结点,那么l
pb
(v5)={b1}。
43.关键字词-块列表用来在有关块内开始向后搜索拓展,引流结点-块列表用来引导块间的向后搜索拓展。
44.优选地,rdf图分割:创建索引前首先把图分割成块,假设一个拥有n个结点的图被分割b个块,让nb代表块b的大小,并且假设块b中的关键字词数量为o(nb),那么这个图的二级索引的整体规模是o(∑bn
b2
+bp),当nb的大小都相等时,项∑bn
b2
最小;
45.采用边分隔符分割一张图,进而将边分隔符转化为结点分隔符的方法,基于宽度优先搜索快速分割方法,为确定一个新的块,从一个未分配的结点开始并进行宽度优先搜索,将访问但之前没有分配到任何块中的所有结点加入到这个块中,直到这个块的大小达到设定的块大小为止,如果从一个结点开始的宽度优先搜索结束,但未分配的结点并重复上述步骤,最后得到一个基于边分隔符的分割图,为将这个图转化为基于结点分隔符的分割图,对于每一条当前连接两个不同块b1和b2的边分隔符(u1,u2),改变块边界以至于结点u1和结点u2的其中一个在边界上,并且设置这个结点为引流结点,引流结点的选择策略如下:让s1和s2分别是指向结点u1和结点u2的边分隔符的数量,选择si+δ|bi|的值较大的结点u;,作为引流结点,其中δ是一个可调常量,选择策略力图平衡块的大小,将引流结点的数量最小化,一旦设定某个结点为引流节点,那么它将属于它所有邻接结点所在的块,选择一个关联更多边分隔符的节点减少之后需要选定的引流结点,与此同时,更倾向于选择规模较大的块中的结点作为引流结点,让较小的块有结点数量的增加,相对平衡块的大小,参数δ用来平衡这两种有时会造成冲突的目标。
46.优选地,二级索引搜索算法:
47.游标队列引导向后拓展:在利用块内关键字词-结点列表的基础上支持多个块的向后拓展,对每一个关键字词wi采用关键字-块列表找到所有包含关键字词wi的块,每一个块都用一个游标扫描块内关键字词-字词列表,并将这些游标放进队列qi,在当前块中到达一个入引流结点u,在所有以u为它们出引流结点的块中继续进行向后拓展,通过引流结点-块列表找到这些块,对于每一个这样的块b,用一个新的游标从节点u继续拓展,遍历以u为引流结点的块b的引流结点-结点列表,初始化游标的距离为结点u到wi的最短距离,游标在返回距离时自动加上这段起始距离,游标返回的距离是结点到关键字词的距离;
48.实现最优的向后搜索策略:通过函数pickkeyword实现簇间的花费平衡拓展,选择拓展过结点数量最小的关键字词,对于每一个关键字词,游标队列采用的优先级反映最佳的簇中等距离拓展策略,队列中优先级最高的游标是距离最小的游标;
49.向前拓展:查阅块内结点-引流结点距离映射得到从结点u到块的任何出引流结点的最短距离,如果这个距离比块内从u到关键字词wi的距离长,便断定从u到关键字词wi的最短路径确实位于块内;
50.剪枝和停止:描述剪枝和停止条件前,首先规定一个结点到所有关键字词的总距离的下界,对于一个已经被访问过但没有确足是省是一个合案的根结点的结点u,计算结点u到每一个关键字词距离的下界的和作为结点u总距离的下界sumlbdist(u),对于每一个访问过的结点u建造一个结构体r[u]=《u,dist1,dist2,

,distm》,disti表示从结点u到关键字词wi的距离,b是包含结点u的块,lbdistj(u)=max{d1,d2},其中d1=qj.top().peekdist(),基于簇中等距离拓展策略,如果还没有从关键字词wj访问到结点u,那么图中从u到关键字词wj的距离至少与簇中下一个将要拓展到的结点到该关键字词的路径距离一样大; d2=min{m
nk
(b,u,wj),d
np
(b,u)},其中m
nk
(b,u,wj)是从结点u到关键字词wj的块内最短距离, d
np
(b,u)是从结点u到最近的b的出引流结点的块内最短距离,如果从结点u到关键字词wj的最
短路径在块内,那么距离就是m
nk
(b,u,wj),如果路径要经过出引流结点,那么距离至少是 d
np
(b,u);建造一个与单级索引一样的临界值t
prune
,如果一个结点的组合距离的下界已经大于临界值t
prune
,那么这个结点就不可能是top-k的结果,如果每个未访问结点有比临界值t
prune
更大的总距离并且每一个访问过的非答案结点被剪枝,则停止搜索。
[0051]
与现有技术相比,本技术的创新点和优势在于:
[0052]
(1)本技术基于rdf应用数量急剧增长导致互联网上出现以千亿级单位计算的rdf数据,设计并实现了改进rdf的非结构化大数据关键字词搜索查询和管理方法,基于rdf文件实例修改了rdf数据的规则、元素、容器,定义rdf数据的结构特征以方便解决rdf数据三元组提取问题;采用提取出来的三元组中的主语、宾语建点,谓语建边,实现rdf数据三元组的提取和建图;针对向后拓展算法会访问大量不必要访问图结点的缺点,提出双向拓展算法,在查询模型上采用入迭代器、出迭代器,生成结果集,并采用扩散活力值的方式将搜索优先处理;改进融合向后拓展搜索和双向拓展搜索策略,提出了最佳向后拓展搜索策略的簇间花费平衡拓展策略,在数据图中加索引以达到显著减少实现最佳向后拓展搜索策略的运行花费的目的;针对大图提出图分割策略,采用二级索引搜索算法,并实现块内关键字词搜索和块间关键字词搜索,不仅满足了rdf数据急剧增长背景下大数据关键字词搜索需求,而且查询检索高效准确,非专业人士操作方便,具有巨大的实用价值。
[0053]
(2)本技术提出了最佳图搜索改进方法,一是改进簇间的拓展策略,为最坏情况性能提供可证明边界的策略,即花费平衡策略;然后采用预计算提供的索引为查询中的向前拓展提供支持,基于直接得出一个结点能否扩展到某个关键字词而且得到相应的最短距离,消除一步一步向前拓展的不确定性和低效率;二是簇间花费平衡拓展,尝试平衡每个簇访问结点的数量,下一个要扩展的簇ei是基数最小的簇,这个策略用来与簇中等距离拓展结合采用,一旦选择要拓展的最小的簇,就在这个簇中选择距离簇最短距离的结点进行拓展,有利于提高找到趋向最佳图rdf搜索的效率和质量。
[0054]
(3)本技术创造性的提出二级索引搜索改进,二级索引的关键字词搜索是一个对于在带有标签结点的有向图中的实现排名的关键字词搜索的索引和查询处理方法,创新点包括:一是改进搜索策略,融合簇间花费平衡拓展策略和向后拓展搜索策略,只与查询的关键字词数量有关,用最少的花费获取top-k答案,缓解向后拓展搜索策略的问题。二是搜索结合索引,二级索引搜索算法增加索引的使用,选择性地预计算并且存储最短路径信息,这些索引显著减少实现最佳向后拓展搜索策略的运行花费;同时,这些索引也用来向前拓展搜索,提高双向拓展效率。与双向拓展搜索算法启发式的优先级策略相比,二级索引搜索算法能够在搜索过程中完成更直接、更长的向前跳跃搜索。三是基于图分割的索引,二级索引算法将一个数据图分割为多个子图(块),上层索引记录块层次的摘要信息发起和引导各个块之间的搜索,下层索引记录每个块内更多的具体信息来加速块内搜索。二级索引搜索改进大幅提高了rdf 大数据关键字词搜索的精度和速度。
[0055]
(4)本技术创造性的提出基于rdf图数据的关键字词查询搜索的步骤及每个步骤的算法流程,首先是对rdf数据的三元组提取,接下来是最基础的向后拓展算法来实现在rdf图数据上的关键字词搜索,解释了查询模型和算法流程;然后是对向后拓展算法的优缺点进行分析并在缺点上进行改进,用双向拓展算法来实现在rdf图数据上的关键字词搜索,并对算法中的数据结构和特有的活力值以及算法流程进行分析和解释;最后对向后拓展算
法和双向拓展算法共有的缺点进行分析并在此基础上利用增加索引和图分割在rdf图数据上的关键字词搜索,并对图搜索策略、索引和算法进行分析。通过大数据关键字词搜索定义、最佳图rdf 搜索策略、单级索引关键字词探索、二级索引大数据探索关键步骤和算法的改进,满足rdf 海量数据关键字词搜索需求,查询检索高效准确,操作方便易上手。
附图说明
[0056][0057]
图1是簇间平衡距离扩展缺陷示意图。
[0058]
图2是二级索引大数据探索的引流结点和块示意图。
[0059]
图3是本技术二级索引搜索算法流程图。
具体实施方式
[0060]
下面结合附图,对本技术改进rdf的互联网大数据关键字词搜索方法的具体实施方式做详细表明,使本领域技术人员能够更好的理解本技术并能够予以实施。本领域技术人员可以在不违背本技术内涵时做类似推广,因此本技术不受下面公开的具体实施方式的限制。
[0061]
rdf是当前互联网上主流的资源描述框架,采用它的应用数量也是急剧增长导致互联网上出现以千亿级单位计算的rdf数据,尤其非结构化大数据成为当前趋势,rdf数据集的查询和管理也越发重要。所以在rdf数据急剧增长的背景下和基于关键字词的rdf数据查询方法的优势,开发基于关键字词的rdf数据查询系统有着重要的意义和作用。
[0062]
(1)通过一些rdf文件实例对rdf数据的规则、元素、容器等进行分析,解读rdf数据的结构特征以方便解决rdf数据三元组的提取问题;采用提取出来的三元组中的主语、宾语建点,谓语建边,通过java开发工具包jena实现rdf数据三元组的提取和建图。
[0063]
(2)分析向后拓展搜索算法的优缺点,针对向后拓展算法可能会访问大量没必要访问的图结点的缺点,我们提出双向拓展算法。在查询模型上表明了双向拓展算法的原理和实现方式,重点表明了入迭代器、出迭代器这两个数据结构的工作方式和原理,结果集的生成方式进行表明,并对这个算法新提出来的采用扩散活力值的方式将搜索优先化处理的方法进行表明。
[0064]
(3)整合分析向后拓展搜索算法和双向拓展搜索算法的搜索策略,对几种策略进行分析并提出最佳向后拓展搜索策略“簇间花费平衡拓展策略”;针对二者共有的缺点,在数据图中加索引以达到显著减少实现最佳向后拓展搜索策略的运行花费的目的;最后针对大图提出图分割策略,采用二级索引搜索算法,并对块内关键字词搜索和块间关键字词搜索的算法原理进行了说明。
[0065]
一、大数据关键字词搜索定义
[0066]
网络大数据查询:把查询放在一个有向图g=(v,e)上进行,每个属于v的结点v带有一些文本标记,一次关键字词查询q包含一系列查询关键字词(w1,w2,

,wm),定义一个q的答案如下:
[0067]
定义1:给定一个查询q=(w1,w2,

,wm)和一个有向图g,q的一个答案是一对 《r,(n1,n2,

,nm)》,i和ni是图g中满足下列特征的结点:
[0068]
1)覆盖范围:对于每一个i,结点n包含关键字词wi;
[0069]
2)连通性:对于每一个i,在图g中存在一条有向路径从i到ni;
[0070]
r为这个答案的根,ni是答案的匹配项,连通性答案是一个根结点能够到达所有关键字词的子树;
[0071]
top-k查询:改进后的算法考虑到对于一个查询,找到排名靠前的答案,答案的好坏通过得分模型衡量,得分模型给每个答案匹配一个数字分数,得到的分数越高表明这个答案更好。
[0072]
定义2:给定一个查询和一个得分模型s,一个结点r的得分(最优的)是所有以r为根结点的所有答案t中的最高得分s(t)(如果没有这样的答案就为0),把r当作根结点的拥有最高得分的答案是做把r当作根结点的一个最优答案,一个top-k查询返回图中最高得分的 k个结点并且对于每个被返回的结点,都对应一个最高得分和一个最优答案树,k个最优答案有不同的根结点。
[0073]
得分模型:考虑到图结构和图内容,形式上定义查询q=(w1,w2,

,wm)的一个答案 t=《r,(n1,n2,

,nm)》的得分s(t)是由三部分决定,分别是答案根结点r、匹配项ni、从根结点r到每一个匹配关键字词结点ni的最短路径距离,得分模型采用匹配-分布式语义论,对 s(t)的定义中由匹配项和根结点到匹配项路径对于最后得分的净贡献通过所有匹配项求和的分布式方式计算,所有根结点到匹配项路径对于最后得分的贡献独立;得分模型基于图-距离语义论,在s(t)的定义中,根结点到匹配项路径的得分贡献在数据图(图里边有非负距离) 中从根结点到匹配项的最短路径。
[0074]
二、最佳图rdf搜索策略
[0075]
首先分析向后拓展算法和双向拓展算法的特征并考虑在此基础上进行改进,目的是找到趋向最佳图rdf搜索策略。
[0076]
向后搜索:由于缺乏索引,图的连通性信息只能提供一段单跳,可以完成查询通过从包含至少一个查询关键字词的结点开始探索这个图,这样的结点很容易通过结点信息列表被找到,这种方法很自然的就形成了向后搜索拓展算法。
[0077]
双向搜索:为了解决上述问题提出双向搜索拓展算法,在向后拓展的基础上新增了沿着前进边探索图的选择,如图1所示,如果算法被允许从结点u向前拓展到k2,就可以更快地确定结点u就是一个答案的根结点,为了管理拓展的顺序,通过探索的活力因素给结点赋予优先次序,评估一个结点有多大的可能是根结点。尽管这种策略表现的好一些,它还是很难给最坏情况的性能提供保证,原因就是活力因素是从一般图拓扑和已经访问过的部分图导出的探索式的测量结果,它们不会精确的计算出在图的合理距离内的一个未知区域的结点能否到达关键字词结点的可能性,在没有其它连通性信息的情况下,向前拓展可能跟向后拓展一样毫无目的。
[0078]
最佳图搜索改进两个方面:一是改进簇间的拓展策略,为最坏情况性能提供可证明边界的策略,即花费平衡策略;然后采用预计算提供的索引为查询中的向前拓展提供支持,基于直接得出一个结点能否扩展到某个关键字词而且得到相应的最短距离,消除一步一步向前拓展的不确定性和低效率;二是簇间花费平衡拓展,尝试平衡每个簇访问结点的数量,下一个要扩展的簇ei是基数最小的簇,这个策略用来与簇中等距离拓展结合采用,一旦选择要拓展的最小的簇,就在这个簇中选择距离簇最短距离的结点进行拓展。
[0079]
三、单级索引关键字词探索
[0080]
每个簇ei等距离向后拓展按照结点到关键字词ki的距离将结点组成一个优先级队列,但是这样就会出现时间复杂度太高的问题,本技术目标是减少搜索的时间和减小采用的空间,采用部分脱机计算增强在线效果,对于每一个关键字词,对数据图中每一个结点到关键字词的最短距离进行预计算,结果是一组关键字词-结点列表,针对用户列举出来的所有关键字词 w,l
kn
(w)归纳出达到关键字词w的结点列表,并且所有结点是按照到达w的距离排序,列表中的每一项都有四个字段(距离、结点、邻接结点、关键字词结点),其中距离是该结点到一个包含w的结点的最短距离;关键字词结点是包含w的结点;邻接结点从结点到关键字词结点路径上经过的第一个结点。为了更快更有效的向前拓展,对于每一个结点u,预计算从u到每一个关键字词的最短距离,并且将这些信息总结在一个哈希表m
kn
中,给定一个结点u和一个关键字词w,m
kn
(u,w)返回从结点u到关键字词w的最短距离,如果u不能到达任何包含w 的关键字词结点,那么返回无穷大。
[0081]
算法流程:给定一个查询q=(w1,w2,

,wm),采用一个游标来横穿每个关键字词-结点列表 l
kn
(wi),游标ci在列表l
kn
(wi)上通过调用next函数前进,next函数返回列表中下一个列表中保存的最短距离,该结构列表满足簇中等距离拓展,在簇间采用游标以轮询调度的方式实现了簇间花费平衡拓展,另外,采用m
kn
以一种直接方式来执行向前拓展的部分,当一到达某个结点就查找它到所有除了当前关键字词的距离,用这种方式立即确定是否发现答案的根结点,对于每个在访问的结点构造一个结构体(root,dist1,dist2,

,distm),其中root是在访问的结点,disti是这个结点到关键字词wi的距离,如果有disti无穷大,那么这个结点就不是答案根结点,它不能到达wi,如果所有距离都不是无穷大,那么就已找到答案根结点,通过一个临界值t
prune
来实现找到top-k结果,临界值t
prune
是当前所有得到的结果树距离和中第k小的值,对于每一个新的答案,必须小于这个临界值,同时对于每个簇内的扩展,如果现有的距离和已经大于这个临界值,就不再继续拓展。
[0082]
四、二级索引大数据探索
[0083]
在上一部分,通过关键字词-结点列表和结点-关键字词映射实现了单级索引,但这种方式对于大图来讲难以实现,因为这个索引需要的储存空间巨大,建造的花费巨大。为解决这个问题,本技术采用分而治之的方法创建一个二级索引结构,首先将一张数据图划分为多个子图(块),一个二级索引包含一个上层大数据块索引和对应每一个块的块内索引,分别用来储存关键字词和结点对块的映射,和用来储存块内的具体信息。
[0084]
通过引流结点分割图:保存分隔符集来解决一个答案跨越很多块的情况,在基于结点方式分割的图中,把结点分隔符叫做引流结点,每个块包含块内的所有结点和与之邻接的一切引流结点,对于一个块,引流结点是入引流结点(它有至少一条来自其它块的入边和至少一条通往块内的出边)和出引流结点(它有至少一条通往其它块的出边和至少一条来自块内的入边) 或既是入引流结点又是出引流结点。
[0085]
通过图2来解释引流结点的定义。图中虚线代表块的边界,结点v3,v5,v
10
就是引流结点,它们出现在包含它们的所有块的块内索引中,对于块b1,v5是出引流结点,正在做块间的向后搜索拓展时,通过v5只能从其它块向后拓展到块b1,而v3对于块b1和b2都既是入引流结点又是出引流结点,拓展可双向进行。
[0086]
(一)块内关键字词索引
[0087]
块内索引记录块内信息,对于图中所有的块b,块内索引包含以下几个数据结构:
[0088]
1)块内关键字词-结点列表:针对每一个关键字词w,l
kn
(b,w)列举出在不离开b的情况下直通关键字词w的b内所有结点的列表,它们的排序依据是从该结点到关键字词w的最短距离;
[0089]
2)块内结点-关键字词映射:在这个哈希映射中通过输入块b的一个结点u和一个关键字词w查找可以返回m
kn
(b,u,w),它是从结点u到关键字词w的块内最短距离(如果块内u 不能到w则返回无穷大);
[0090]
3)块内引流结点-结点列表:对于块b的每一个出引流结点p,l
pn
(b,p)表示在不离开b 的情况下到达p的b内所有结点的列表,根据它们到p的最短距离排序;
[0091]
4)块内结点-引流结点距离映射:在这个哈希映射中通过输入块b的一个结点u查找返回d
np
(b,u),它是从结点u到最近的b的出引流结点的块内最短距离(如果u不能到达任何b 的出引流结点则返回无穷大)。
[0092]
(二)大数据块索引
[0093]
大数据块索引包含两个数据结构:
[0094]
1)关键字词-块列表:对于每一个关键字词w,l
kb
(w)表示块中拥有关键字词w的所有块集合成的列表。在图2的例子中,块bz中不包含关键字词a,记l
kb
(a)={b1},关键字词d 在这两个块里都呈现,l
kb
(d)={b1,b2}:引流结点v3是块b1和b2之间的引流,它包含关键字词 b,l
kb
(b)={b1,b2};
[0095]
2)引流结点-块列表:对于每一个引流结点p,l
pb
(p)表示以p为出引流结点的块的列表,在图2的例子中,v3是块b1和b2的出引流结点,那么l
pb
(v3)={b1,b2},v5只是块b1的出引流结点,那么l
pb
(v5)={b1}。
[0096]
关键字词-块列表用来在有关块内开始向后搜索拓展,引流结点-块列表用来引导块间的向后搜索拓展。
[0097]
(三)rdf图分割
[0098]
创建索引前首先把图分割成块,假设一个拥有n个结点的图被分割b个块,让nb代表块 b的大小,并且假设块b中的关键字词数量为o(nb),那么这个图的二级索引的整体规模是 o(∑bn
b2
+bp),当nb的大小都相等时,项∑bn
b2
最小。
[0099]
采用边分隔符分割一张图,进而将边分隔符转化为结点分隔符的方法,基于宽度优先搜索快速分割方法,为确定一个新的块,从一个未分配的结点开始并进行宽度优先搜索,将访问但之前没有分配到任何块中的所有结点加入到这个块中,直到这个块的大小达到设定的块大小为止,如果从一个结点开始的宽度优先搜索结束,但未分配的结点并重复上述步骤,最后得到一个基于边分隔符的分割图,为将这个图转化为基于结点分隔符的分割图,对于每一条当前连接两个不同块b1和b2的边分隔符(u1,u2),改变块边界以至于结点u1和结点u2的其中一个在边界上,并且设置这个结点为引流结点,引流结点的选择策略如下:让s1和s2分别是指向结点u1和结点u2的边分隔符的数量,选择si+δ|bi|的值较大的结点u;,作为引流结点,其中δ是一个可调常量,选择策略力图平衡块的大小,将引流结点的数量最小化,一旦设定某个结点为引流节点,那么它将属于它所有邻接结点所在的块,选择一个关联更多边分隔符的节点减少之后需要选定的引流结点,与此同时,更倾向于选择规模较大的块中的结点作为引流结点,让较小的块有结点数量的增加,相对平衡块的大小,参数δ用
来平衡这两种有时会造成冲突的目标。
[0100]
(四)二级索引搜索算法
[0101]
因为图已被分割成块,不再拥有图的总体距离信息。导致在一个关键字簇中采用一个单一的游标不再能够实现向后拓展,因为不同的块中可能包含同一个关键字,不同块的向后拓展也要同时进行,如果访问到入引流结点,向后拓展需要在块边界继续进行,可能向后指向许多块,块内结点-关键字映射返回的距离信息不再能被看作实际的结点-关键字词距离,因为可能跨越块间产生的路径距离更短。
[0102]
游标队列引导向后拓展:为在利用块内关键字词-结点列表的基础上支持多个块的向后拓展,对每一个关键字词wi采用关键字-块列表找到所有包含关键字词wi的块,每一个块都用一个游标扫描块内关键字词-字词列表,并将这些游标放进队列qi,在当前块中到达一个入引流结点u,在所有以u为它们出引流结点的块中继续进行向后拓展,通过引流结点-块列表找到这些块,对于每一个这样的块b,用一个新的游标从节点u继续拓展,遍历以u为引流结点的块b的引流结点-结点列表,初始化游标的距离为结点u到wi的最短距离,游标在返回距离时自动加上这段起始距离,游标返回的距离是真正的结点到关键字词的距离,而不是引流结点-结点列表里的结点到引流结点的距离。
[0103]
该过程可能多次访问同一个门户节点u,情况1是结点u被不同块中包含相同关键字的结点向后拓展到达;情况2是结点u被包含不同关键字词的结点向后拓展到达,情况1时只需要在结点u第一次被访问时进行拓展,后面的从同一个关键字词拓展到结点u的访问忽略,基于最优的等距离拓展:第一次从关键字词wi到u的访问产生整个图上从u到关键字词wi的最短距离,任何随后的从关键字词wi到结点u的拓展总会有更长的起始距离,通过采用位图 crossed记录结点u是否曾经从一个查询关键字词开始向后拓展被访问过来实现这种最佳,最佳结果是对于每一个查询关键字词打开的游标数是o(p),p是数据图分割成块后产生的引流结点的数量。即使算法不再对每个关键字词采用一个游标,它只需要对每个关键字词采用一个o(|p|)个游标的优先级队列,仍然比不用索引的算法效率高得多。
[0104]
实现最优的向后搜索策略:通过函数pickkeyword实现簇间的花费平衡拓展,选择拓展过结点数量最小的关键字词,对于每一个关键字词,游标队列采用的优先级反映最佳的簇中等距离拓展策略,队列中优先级最高的游标是距离最小的游标。
[0105]
向前拓展:查阅块内结点-引流结点距离映射得到从结点u到块的任何出引流结点的最短距离,如果这个距离比块内从u到关键字词wi的距离长,便断定从u到关键字词wi的最短路径确实位于块内。
[0106]
剪枝和停止:描述剪枝和停止条件前,首先规定一个结点到所有关键字词的总距离的下界,对于一个已经被访问过但没有确足是省是一个合案的根结点的结点u,计算结点u到每一个关键字词距离的下界的和作为结点u总距离的下界sumlbdist(u),对于每一个访问过的结点u建造一个结构体r[u]=《u,dist1,dist2,

,distm》,disti表示从结点u到关键字词wi的距离,b是包含结点u的块,lbdistj(u)=max{d1,d2},其中d1=qj.top().peekdist(),(如果 qj是空的d1是无穷大)。基于簇中等距离拓展策略,如果还没有从关键字词wj访问到结点u,那么图中从u到关键字词wj的距离至少与簇中下一个将要拓展到的结点到该关键字词的路径距离一样大;d2=min{m
nk
(b,u,wj),d
np
(b,u)},其中m
nk
(b,u,wj)是从结点u到关键字词wj的块内最短距离(如果块内u不能到w,则为无穷大),d
np
(b,u)是从结点u到最近
的b的出引流结点的块内最短距离(如果u不能到达任何b的出引流结点则为无穷大),如果从结点u到关键字词wj的最短路径在块内,那么距离就是m
nk
(b,u,wj),如果路径要经过出引流结点,那么距离至少是d
np
(b,u);建造一个与单级索引一样的临界值t
prune
,如果一个结点的组合距离的下界已经大于临界值t
prune
,那么这个结点就不可能是top-k的结果,如果每个未访问结点有比临界值t
prune
更大的总距离并且每一个访问过的非答案结点被剪枝,则停止搜索。
[0107]
改进总结:如图3所示,二级索引的关键字词搜索是一个对于在带有标签结点的有向图中的实现排名的关键字词搜索的索引和查询处理方法,改进点包括:
[0108]
改进一:改进搜索策略,融合簇间花费平衡拓展策略和向后拓展搜索策略(从包含查询关键字词的结点开始探索数据图),只与查询的关键字词数量有关,用最少的花费获取top-k 答案,缓解向后拓展搜索策略的问题。
[0109]
改进二:搜索结合索引,二级索引搜索算法增加索引的使用,选择性地预计算并且存储最短路径信息,这些索引显著减少实现最佳向后拓展搜索策略的运行花费;同时,这些索引也用来向前拓展搜索,提高双向拓展效率。与双向拓展搜索算法启发式的优先级策略相比,二级索引搜索算法能够在搜索过程中完成更直接、更长的向前跳跃搜索。
[0110]
改进三:基于图分割的索引,二级索引算法将一个数据图分割为多个子图(块),上层索引记录块层次的摘要信息发起和引导各个块之间的搜索,下层索引记录每个块内更多的具体信息来加速块内搜索。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1