一种xml关键字查询方法

文档序号:6550643阅读:176来源:国知局
一种xml关键字查询方法
【专利摘要】本发明公开了一种XML关键字查询方法,属于信息检索领域。方法公开了查询语义BLCEA及其求解算法和对该语义返回结果排序的方法,BLCEA查询语义基于XML文档中的节点分类,将包含所有查询关键字的实体子孙去掉之后,仍然满足查询条件的实体节点定义为一个有意义的BLCEA语义实体,保证了查全率以及查询结果的语义完整性。对返回结果排序的方法结合关键字在结果节点为根的子树中的匹配度和紧密度这两个因素设计,降低了XML关键字查询的时间复杂度,保证在关键字模糊性存在时的查准率。
【专利说明】一种XML关键字查询方法

【技术领域】
[0001]本发明涉及XML关键字查询方法,属于信息检索领域。

【背景技术】
[0002]由于具备可扩展性、灵活性和自描述性,XML逐渐成为互联网上数据定义,存储以及交换的标准,因此如何对XML数据进行有效的存储管理和检索成为研究热点。现有的XML查询方法主要分为结构化查询和关键字查询两种,前者需要用户了解结构化查询语言的语法机制以及XML文档的模式信息,对普通用户并不适用,而后者只需要用户输入简单的查询关键字即可对XML文档进行检索,成为XML检索的主要手段。
[0003]目前关键字查询方法主要分为两类:不支持结果排序以及支持结果排序。其中不支持结果排序的方法主要以LCA(Lowest Common Ancestor)语义为基础。LCA语义是返回所有关键字的最低公共祖先集合。SLCA(Smallest Lowest Common Ancestor)语义是对LCA语义进行的改进,认为结果节点为根的子树中,关键字之间越紧密,对用户越重要,故该语义去掉了 LCA集合中是其他节点祖先的结果节点。此外,对LCA语义改进的语义还有MLCA、ELCA以及VLCA等。
[0004]支持结果排序的关键字查询方法主要是基于Google的PageRank以及信息检索中的TF/IDF这两个思想进行扩展的,主要有XRANK和XReal等。XRANK是Connel大学的研究者提出的基于LCA语义的XML搜索引擎,指出XML关键字检索与HTML关键字检索的区别,借鉴了 PageRank算法的思想提出了用于计算元素重要性的ElemRank算法,该算法计算元素ElemRank时,不仅考虑到了元素间的引用,还考虑了元素的父母以及孩子对该元素重要性的影响,即元素包含边的正向传播、反向传播以及引用边的影响。XReal把信息检索中的TF/IDF(词频/逆文频)的概念引入到XML数据库检索中,主张利用XML文档中节点的TF/IDF相似度来对结果节点进行排序。作者将搜索用户意图转换为寻找目标节点类型T,找到目标节点类型T后,对类型T的每个实例节点通过TF/IDF计算出与查询的相关度,对那些相关度比较接近的节点,通过计算引用边对元素的影响,进一步确定相关度。
[0005]这些语义大多都会存在返回结果语义不完整、返回很多无意义的结果、丢失有意义的结果或不支持结果排序等问题,导致查询质量不高。


【发明内容】

[0006]本发明针对现有不足,提出一种XML关键字查询方法。基于XML文档中的节点分类,将包含所有查询关键字的实体子孙去掉之后,仍然满足查询条件的实体节点定义为一个有意义的BLCEA (Beside Lowest Common Entity Ancestor)语义实体。该查询语义使得用户能够得到语义完整的结果,同时在查准率和查全率方面比已有的经典查询语义有明显的优势。本发明设计了一种结果排序方法,对BLCEA节点集合进行排序,保证在关键字模糊性存在时的检索效率。
[0007]本发明为实现上述发明目的采用如下技术方案:
[0008]一种XML关键字查询方法,包括如下步骤:
[0009]步骤I,确定XML文档关键字序列的BLCEA节点集合,
[0010]所述BLCEA节点为实体节点,去掉BLCEA节点的子孙中包含所有查询关键字的实体节点之后,剩余的子孙中仍然包含所有查询关键字,
[0011]实体的定义是通过对XML文档中的节点进行分类得到,XML文档中的节点分类及定义如下:
[0012]值节点:在XML文档中,是叶子节点的节点。
[0013]属性节点:在XML文档中,只有一个值节点作为孩子节点的那些节点。
[0014]实体节点:若XML文档的模式信息可以获得,即DTD或XML Schema存在,那么实体就是DTD中带*号或者+号并且不是属性结点的结点;否则分析XML文档,若节点与其父节点存在一对多关系,则该节点为实体节点。
[0015]连接节点:在XML文档中,若节点不是值节点、属性节点或实体节点,那么它就是连接节点,连接节点的孩子是实体节点、属性节点或者其他的连接节点:
[0016]步骤1-1,初始化BLCEA节点集合为空;
[0017]步骤1-2,获得所有关键字匹配节点的有序LDewey编码集合,所述LDewey编码包括:关键字匹配节点所处层次信息level、关键字匹配节点的祖先节点在各自所处层次中的位置信息ancestor、关键字匹配节点在所处层次中的位置信息locat1n, LDewey编码结构如下:
[0018]
level ancestor locat1n
[0019]步骤1-3,由出现关键字匹配节点的最高层次开始逐层寻找BLCEA节点:对每一层中的各节点,当有实体节点是该层中所有关键字匹配节点的公共祖先时,将该实体节点加入BLCEA节点集合中,并在LDewey编码集合中删去以该实体节点为祖先的关键字匹配节点编码;
[0020]步骤2,利用结果排序算法对以BLCEA节点集合各节点为根的子树进行排序,返回用户最理想的结果:
[0021]步骤2-1,在以每个BLCEA节点为根的子树中计算关键字匹配度,按匹配度大小对BLCEA节点集合中的节点排序。并把以BLCEA节点集合中所有节点为根的子树都返回给用户,在关键字匹配度相等时进入步骤2-2 ;
[0022]步骤2-2,求出关键字在匹配度相等的BLCEA节点为根的子树中的最短距离,按照最短距离递增的顺序排列各BLCEA节点。
[0023]作为所述XML关键字查询方法的进一步优化方案,步骤2-1中关键字匹配度的计算方法如下:前一个关键字的文本值h等于后一个关键字文本值k2时,在待排序的子树中满足前一个关键字的h的文本值为k2,记匹配度为1,否则,记匹配度为O。
[0024]作为所述XML关键字查询方法的进一步优化方案,对于V为根的子树,子树中含有的关键字序列Q = (k1; k2,..., kn), minDistance为v, k1; k2,..., kn之间的最短距离,minDistance越小表示关键字序列Q在v为根的子树中越紧密,步骤2_2中的最短距离计算如下:
[0025]前一个关键字匹配节点Ii1、后一个关键字匹配节点k2在同一条路径上,则最短距离:
[0026]dist (k1; k2) = LDewey (k^.1evel-LDewey (k2).level | ,
[0027]前一个关键字匹配节点Ic1、后一个关键字匹配节点k2不在同一条路径上,则最短距离:
[0028]dist (k1; k2) = LDewey(Ii1).level+LDewey (k2).level-2LDewey (v).level
[0029]其中,LDewey (kl).level为前一关键字匹配节点Ii1所处层次信息,LDewey (k2).level为后一关键字匹配节点1^2所处层次信息,LDewey (v).level为子树根节点所处层次信息。
[0030]本发明采用上述技术方案,具有以下有益效果:
[0031](I)通过对XML文档中的节点分类,定义语义实体,限制查询返回结果为具有丰富语义信息的实体节点,保证了查询结果的语义完整性;
[0032](2)提出一种新的关键字查询语义 BLCEA (Beside Lowest Common EntityAncestor),将包含所有查询关键字的实体子孙为根的子树去掉之后,剩余的子孙仍然满足查询条件的实体节点定义为一个有意义的BLCEA语义实体,保证查询的查全率;
[0033](3)设计了一种可通过节点所在层次上的位置唯一确定一个节点的编码方式,有效的减少了判断节点之间关系所需的时间,基于该编码设计BLCEA语义实现算法,降低了XML关键字查询的时间复杂度;
[0034](4)综合考虑关键字在结果节点为根的子树中结合的紧密度以及匹配度,对检索结果进行排序,保证在关键字模糊性存在时的查准率。

【专利附图】

【附图说明】
[0035]图1为所述方法中外显子识别的流程图。
[0036]图2为XML文档的LDewey编码示例。
[0037]图3为查询关键字序列Q匹配节点的有序的LDewey编码集合。
[0038]图4 (a)、图4(b)、图4(c)、图4(d)、图4(e)分别为在第5、4、3、2、I层查找查询关键字序列Q的BLCEA节点示意图。
[0039]图5 (a)、图 5 (b)为 LCA、SLCA 以及 BLCEA 在 Reed 和 Sigmod Record 数据集上的查准率对比图。
[0040]图6为LCA、SLCA以及BLCEA在Reed和Sigmod Record数据集上的查全率对比图。
[0041 ]图 7 (a)、图 7 (b)为 LCA、SLCA 以及 BLCEA 在 Reed 和 Sigmod Record 数据集上进行高频查询的时间效率对比图。
[0042]图8 (a)、图 8 (b)为 Close 和 Match_Close 排序方法在 Sigmod Record 数据集上的前10个和前20个结果中正确结果所占比例的对比图。

【具体实施方式】
[0043]下面结合附图对发明的技术方案进行详细说明。
[0044]本发明提出的XML关键字查询方法如图1所示分为以下步骤:
[0045]步骤I,根据BLCEA查询语义找到查询关键字序列Q = (k1; k2,...,kn)的BLCEA节点集合,η为自然数:
[0046]步骤1-1,初始化BLCEA节点集合为空;
[0047]步骤1-2,获得所有关键字的匹配节点的有序LDewey编码集合L图2中的XML文档以及查询关键字序列Q = {title, XML, 2013},获取的关键字的匹配节点的有序的LDewey编码集合',W如图3所示;
[0048]步骤1-3,首先求出查询关键字序列Q的BLCEA节点可能出现的最高层次,关键字title的倒排索引表中匹配节点出现的最高层次为5,关键字XML倒排索引表中匹配节点出现的最高层次为6,关键字2013倒排索引表中匹配节点出现的最高层次为6,取这三个值中的最小值为5,即BLCEA节点可能出现的最大层次为5,故从第五层开始寻找BLCEA节点,
[0049]首先判断所有关键字的倒排索引中的所有匹配节点的LDewey编码在第五层中的值,如图3、图4(a)所示:title倒排索引中的所有匹配节点的LDewey编码在第五层中的值分别为0、2、4,XML为0、2,2013则为1,故没有共同的数值,即第五层没有BLCEA节点,不作处理,
[0050]继而观察各关键字的倒排索引中的所有匹配节点的LDewey编码在第四层中的值,如图3、图4(b)所示:title倒排索引中的所有匹配节点的LDewey编码在第四层中的值分别为2、5、6,XML为2、5,2013为1、2,可以看出有公共的数值2,故获取第四层第二个位置上的节点paper,判断得出paper为实体节点,故paper符合BLCEA查询语义,属于BLCEA节点,加入BLCEA节点集合中,之后删除祖先为paper的那些关键字在各自倒排索引中的匹配节点,
[0051]第四层计算结束之后计算第三层的BLCEA节点集合,各关键字的倒排索引中的所有匹配节点的LDewey编码在第三层中的值,如图3、图4(c)所示:title倒排索引中的所有匹配节点的LDewey编码在第四层中的值分别为0、3、5、5,XML为0、5,2013为1,没有共同数值,故第三层中没有BLCEA节点,不作处理,
[0052]继续查找第二层中有无BLCEA节点,各关键字的倒排索引中的所有匹配节点的LDewey编码在第二层中的值,如图3、图4(d)所示:title倒排索引中的所有匹配节点的LDewey编码在第四层中的值分别为0、1、1、1,XML为0、1,2013为0,可以看出有公共的数值0,故获取第二层第零个位置上的节点book,判断得出book为实体节点,故book符合BLCEA查询语义,属于BLCEA节点,加入BLCEA节点集合中,最后删除祖先为book的那些关键字在各自倒排索引中的匹配节点,
[0053]最后找出最后一层即第一层的BLCEA节点集合。观察得出各关键字的倒排索引中的所有匹配节点的LDewey编码在第二层中的值,如图3、图4 (e)所示:title倒排索引中的所有匹配节点的LDewey编码在第四层中的值分别为0,XML为O、1,2013为空,没有公共数值,故在第一层没有BLCEA节点,
[0054]综上对于查询关键字序列Q,对应的BLCEA节点集合中的节点为book (2.0.0)以及paper (4.0.0.2.2)。
[0055]步骤2,根据结果排序算法对BLCEA节点集合中的所有节点为根的子树进行排序,返回用户最理想的结果:
[0056]步骤2-1,计算匹配度:book (2.0.0)以及paper (4.0.0.2.2)为根的子树中,都仅存在匹配title:XML,故匹配度都为I。
[0057]步骤2-2,排序:book(2.0.0)以及paper (4.0.0.2.2)为根的子树中关键字匹配度相同都为I,故比较关键字在子树中的紧密度,得出book (2.0.0)以及paper (4.0.0.2.2)为根的子树中关键字之间的最短距离都为4,故得出这两个子树对用户的重要性一样,观察这两个子树,同样符合用户需要,由此可证明该结果排序方法有效。
[0058]若查询为{IR,year, 2010},得出BLCEA节点分别为book(2.0.2)以及book (2.0.3),前者为根的子树匹配度为1,而后者为根的子树匹配度为0,排序方法认为前者排名比后者排名靠前,观察这两个子树,可以得出book(2.0.2)比book(2.0.3)更符合用户意图,同样可以证明该结果排序方法的有效性。
[0059]为了验证BLCEA语义以及结果排序方法的有效性,本发明将BLCEA语义及结果排序方法运行在真实的XML数据集Reed和SigmodRecord上,并与经典的XMl关键字查询语义LCA以及SLCA进行比较,比较重点为查准率、查全率以及查询所需的执行时间这三个方面。
[0060]1、实验所用的部分查询表I所示:
[0061]表I部分查询
[0062]
查询β查询表达式数据集
O IΛΝ--Rccd
O 2 room 302Reed
O 3instructor BriglitmanRccd
0 4 siibj B1LTHRccd
0 5 HUM crsc 210Reed
06siibj GRE building EL1TRecd
01instructor Schiff subj MUSRccd
0 S title CHEM building VOLLIJM place Reed
Q 9 optimizat1nSiGMOD Rccord
0 10 author BlakeleySIGMOD Rccorcl
Q 11 title recoverySIGMOD Record
0 12 author Richard titleSIGMOD Rccord
0 13 issue volume 15SiGMOD Rccord

Q 14 article title mcmoiy-rcsidcnt author SlGMOD Rccord
Q 15 title hypertext author FrassonSlGMOD Rccord
Q 16 articlc title database author HananSIGMOD Rccord
[0063]2、实验结果分析如下:
[0064](I)查准率
[0065]以上三种查询语义在Reed和SigmodRecord数据集上运行的查准率如图5 (a)以及图5(b)所示:横坐标为关键字数目,纵坐标是查准率,由图可知,关键字个数不同的情况下,BLCEA的查准率均比LCA以及SLCA两种查询语义高,主要原因在于BLCEA语义的返回结果为实体节点。LCA和SLCA均没有对Reed数据集中节点的类型进行判断,没有限制返回结果的类型,故返回结果可能只是语义不完整的属性节点、值节点或不具有任何意义的连接节点,用户不能从中获取丰富的语义信息;而BLCEA语义限制返回结果为具有实际意义的实体节点,使得返回结果更符合用户需求。
[0066](2)查全率
[0067]以上三种查询语义在Reed和SigmodRecord数据集上运行的查全率如图6 (a)以及图6 (b)所示:横坐标为关键字数目,纵坐标为查全率,由图可知,在关键字个数不同的情况下,BLCEA的查全率比LCA以及SLCA两种查询语义都高,主要原因是在求解BLCEA节点时,需要判断在删除其他BLCEA子孙后,其他子孙是否还满足查询条件。保证了不丢失有意义的结果,即保证查询的查全率。
[0068](3)查询时间
[0069]根据关键字在XML文档中出现频率的不同,将关键字分为低频关键字(1-50)、中频关键字(50-500)、高频关键字(500以上)。为了更好验证BLCEA的时间上的有效性,本实验选取高频关键字对Reed和Sigmod Record数据集进行查询。
[0070]以上三种查询语义在Reed和SigmodRecord数据集上运行查询所需的时间如图7(a)以及图7(b)所示:横坐标为关键字数目,纵坐标为查询时间,由图可知,在查询中只含有一个关键字时,LCA以及BLCA的查询时间比BLCEA低,原因是LCA在XML中找到包含该关键字的节点时就直接返回,而BLCEA语义则需要逐层中查找BLCEA节点集合,消耗的时间比LCA及SLCA多。
[0071]随着查询关键字个数逐渐增多,BLCEA的优势就显著体现了,主要原因如下:
[0072](a)随着关键字个数的增加,BLCEA语义算法求解的层次数目趋于稳定,查询时间也趋于稳定;而LCA语义执行时间会随着关键字个数增加而增加,SLCA语义是基于LCA语义的,但由于其自身特点,在求解时可以采用一些优化策略,使得效率比LCA高,但还是比BLCEA的效率低;
[0073](b) BLCEA语义实现算法是基于LDewey编码设计,而LCA和SLCA语义实现算法是基于Dewey编码设计,这两种编码方式在比较两个节点关系时,前者的时间复杂度明显低于后者,也是BLCEA执行效率明显高于LCA以及SLCA的关键因素。
[0074]由于XML关键字查询存在模糊性问题,导致查询会返回很多结果,而LCA和SLCA不支持结果排序,使得用户需在大量结果中找到最符合需求的结果,这就导致了查询质量的降低。本发明设计结果排序算法对BLCEA节点进行排序,将最符合用户需求的节点排在前面,保证用户快速在大量返回结果中找到期望的结果,提高查询的时间效率。
[0075]本发明在设计结果排序算法时,不仅考虑了经典排序方法中涉及的关键字之间的紧密度,同时考虑了关键字之间可能存在的匹配关系,而这种匹配关系,能在某种程度上体现用户的需求。为了验证关键字之间存在的匹配关系在推断用户意图上的重要性,本发明通过实验对比两种排序方法:Close方法和Match_Close方法。Close方法只根据关键字之间紧密度对结果节点为根的子树进行排序,Match_Close方法结合关键字之间紧密度和关键字之间匹配度这两个因素对结果节点为根的子树进行排序。
[0076]本发明在Sigmod Record数据集上进行该实验,由于Sigmod Record数据集的结构嵌套多,关键字模糊性较强,所以Close方法和Match_Cl0Se方法的区别会比结构简单的数据集Reed明显。
[0077]在Sigmod Record数据集中,我们邀请20位测试者提交他们的查询,对每个查询,使用BLCEA求解算法求出查询关键字的BLCEA节点集合,让测试者在这些节点集合中,标出他们最想要的K个结果。本文使用Close方法和Match_CloSe方法分别对关键字的BLCEA节点集合进行排序,比较这两种方法的前K个结果在测试者最想要的K个结果中所占的比例W。
[0078]每个查询用例中包含关键字的个数为1-5个,当K = 10和K = 20时,Close和Match_Close的对比结果如图8(a)以及图8(b)所示:横坐标为关键字数目,纵坐标为关键字之间的紧密度,由图可知,在关键字个数为I时,关键字之间不存在匹配问题,关键字之间越紧密就越符合用户需求,Close方法和Match_Cl0Se方法都能使用户很快的找到所需结果,当关键字个数大于I时,仅考虑关键字之间紧密度,不足以推断用户搜索意图,故当关键字个数为2或3时,Match_CloSe方法考虑的关键字之间匹配度可使用户更快得到搜索结果,效果明显比Close方法要好,图中所示当关键字个数为4或5时,使用Close方法和Match_Close方法得到的前K个结果的准确率都很高,原因是关键字个数越多,条件限制就越多,越能体现出用户的查询目的。Sigmod Record数据集的结构嵌套还不够复杂,关键字模糊性还不够强,若在结构更复杂的数据集中比较,Match_CloSe方法的优势会更突出。综上表明,Match_Close方法考虑的关键字匹配度问题在结果排序上起着至关重要的作用,是用户快速找到期望结果的关键因素。
[0079]通过对LCA、SLCA以及BLCEA的查准率、查全率和查询效率三方面的比较可知BLCEA语义是一种有效的XML关键字查询语义,同时证明了关键字之间匹配度在结果排序中起着不可或缺的作用。
【权利要求】
1.一种XML关键字查询方法,其特征在于,包括如下步骤: 步骤1,确定XML文档关键字序列的BLCEA节点集合, 所述BLCEA节点为实体节点,去掉BLCEA节点的子孙中包含所有查询关键字的实体节点之后,剩余的子孙中仍然包含所有查询关键字: 步骤1-1,初始化BLCEA节点集合为空; 步骤1-2,获得所有关键字匹配节点的有序LDewey编码集合,所述LDewey编码包括:关键字匹配节点所处层次信息、关键字匹配节点的祖先节点在各自所处层次中的位置信息、关键字匹配节点在所处层次中的位置信息; 步骤1-3,由出现关键字匹配节点的最高层次开始逐层寻找BLCEA节点:对每一层中的各节点,当有实体节点是该层中所有关键字匹配节点的公共祖先时,将该实体节点加入BLCEA节点集合中,并在LDewey编码集合中删去以该实体节点为祖先的关键字匹配节点编码; 步骤2,利用结果排序算法对以BLCEA节点集合各节点为根的子树进行排序,返回用户最理想的结果: 步骤2-1,在以每个BLCEA节点为根的子树中计算关键字匹配度,按匹配度大小对BLCEA节点集合中的节点排序。并把以BLCEA节点集合中所有节点为根的子树都返回给用户,在关键字匹配度相等时进入步骤2-2 ; 步骤2-2,求出关键字在匹配度相等的BLCEA节点为根的子树中的最短距离,按照最短距离递增的顺序排列各BLCEA节点。
2.根据权利要求1所述的XML关键字查询方法,其特征在于,步骤2-1中关键字匹配度的计算方法如下:前一个关键字的文本值等于后一个关键字文本值时,记匹配度为1,否贝U,记匹配度为O。
3.根据权利要求2所述的XML关键字查询方法,其特征在于,步骤2-2中的最短距离由以下表达式求得, 前一个关键字匹配节点h、后一个关键字匹配节点k2在同一条路径上,则最短距离: dist (k1; k2) = I LDewey (Ii1).1evel-LDewey (k2).level |, 前一个关键字匹配节点h、后一个关键字匹配节点k2不在同一条路径上,则最短距离:dist (k1; k2) = LDewey (kj).level+LDewey (k2).level-2LDewey (v).level其中,LDewey (kl).level为前一关键字匹配节点Ii1所处层次信息,LDewey (k2).level为后一关键字匹配节点k2所处层次信息,LDewey(v).level为子树根节点所处层次信息。
【文档编号】G06F17/30GK104166672SQ201410284885
【公开日】2014年11月26日 申请日期:2014年6月23日 优先权日:2014年6月23日
【发明者】冯钧, 朱祖会, 唐志贤, 许潇, 杜丙帅, 査显月, 王纯, 李宗祥, 魏童童, 朱跃龙, 李士进, 万定生 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1