一种xml文档树实例查询方法

文档序号:6339235阅读:182来源:国知局
专利名称:一种xml文档树实例查询方法
技术领域
本发明与数据库管理系统相关,涉及模糊查询领域,是一种与树编辑距离相关的 大规模XML文档树实例近似查询方法。
背景技术
模糊查询是指在不了解XML数据的具体结构或不明确DTD所定义的元素名称下所 进行的查询。对XML数据进行模糊查询的需求驱动表现为内容信息(Tag名或Text)不准 确或用户所知信息不足;以及XML树结构的多样化——同一组元素可能构成不同结构的树 等。因此,在针对大量XML数据时,快速有效地基于用户提交的查询——一个XML树实例, 返回按照相似程度排列的结果集具有重要意义。模糊查询方法一般通过比对树的相似度来实现的,利用树的编辑距离衡量树相似 度是使用较为广泛的方法。树编辑距离,即把一棵树转化为另一棵树所需要的插入、删除和 替换的最少次数。目前与树编辑距离算法相关的成果较多,其中比较经典的有^iang和Dermis Shasha 在文献 “Simple fast algorithms for the editing distance between trees and related problems. SIAM Journal of Computing,18 (6) : 1245-1262,December 1989,, 中提出的算法,其主要特征是用动态规划的方法解决树编辑距离计算问题,时间复杂度 为 0(n4)o Philip N. Klein 在文献"Computing the Edit-Distance Between Unrooted Ordered Trees. G. Bilardi et al. (Eds.) :ESA' 98,LNCS 1461,pp. 91-102,1998” 中改进 了 Siang和Dermis Siasha提出的方法的时间复杂度,为0 (n3logn)。以上文献中提及的树 编辑距离算法均是针对整棵树进行计算,适合数据量较小的情况,且需要较大的计算代价, 导致大容量数据上该算法不可行(运行时间过长)。除了树编辑距离,还有树的近似编辑距离。树的近似编辑距离是只考虑部分 结构和标签信息,并不像树编辑距离算法考虑整体的结构和标签信息。经典是方法是 NikolausAugstent 等人在文献“Approximate Matching of Hierarchical Data Using pq-Grams. Proceedings of the 31 st VLDB Conference, Trondheim, Norway, 2005,,中提 出的基于pq-gram解决树的近似查询问题。pq-grams是一棵树特定形状的所有子树。如果 两棵树有许多相同的pq-grams,那么这两棵树是相似的。pq-gram距离是一种高效率和有 效的近似编辑距离。pq-grams作为一个关系存储在集合中,而一个pq-gram是由固定长度 的字符串表示的,一般长度为P+q。对于树T和树S,其相似度定义为同时在S和T中出现 的pq-gram的数目。但该文献中提及的pq-gram近似编辑距离精确度不足。

发明内容
本发明针对XML文档树近似查询问题,克服上述现有相应技术存在的不足,提出 一种时间复杂度较低、精确度较高的树实例查询方法,以辅助大规模XML数据的近似查询。本发明数据集中的文档是通过XML文档生成工具(Xmark)生成的大量的xml文3档,再通过XML解析器将XML文档解析成XML文档树读入内存,本发明首次提出这种查询方法。本发明的技术方案为一种XML文档树实例查询方法,其步骤为1)利用XML解析器将数据库中的XML文档转化为XML文档树,将输入的待查询XML 文档转化为待查询XML文档树;
2)根据待查询XML文档树的节点数量η和所选取的编辑距离L,在XML文档树数据 库中选取节点数在设定范围内的XML文档树,得到一待计算数据集;其中,n、L为自然数;3)利用XML文档树近似编辑距离过滤法计算待查询XML文档树与待计算数据集中 每一 XML文档树之间的相似度,将相似度大于设定阈值的XML树组成一候选查询结果集;4)利用树编辑距离算法计算待查询XML文档树与候选查询结果集中XML文档树的 编辑距离;5)根据4)计算的编辑距离对候选查询结果集中XML文档树进行排序,得到查询结果ο进一步的,所述XML文档树近似编辑距离过滤法为1)分别计算待查询XML文档树与待计算数据集中每一 XML文档树的后序周游序 列;2)计算待查询XML文档树的后序周游序列与待计算数据集中每一 XML文档树的 后序周游序列的相似度,得到待查询XML文档树与待计算数据集中每一 XML文档树的相似 度;3)将相似度大于设定阈值的XML树组成一候选查询结果集。进一步的,所述XML文档树近似编辑距离过滤法为pq-gram过滤法。进一步的,所述树编辑距离算法为计算待查询XML文档树中某节点标签字符串χ 与候选查询结果集中一 XML文档树的某节点标签字符串y的编辑距离,如果编辑距离超过 设定阈值ε s,则把字符串χ改为字符串y的更改操作代价计为1,否则记为0。
进一步的,所述数据库中的XML文档为通过Xmark生成的XML文档。进一步的,所述设定范围内的XML文档树为节点数在n_2L n+2L范围内的XML 文档树。进一步的,所述待查询XML文档为一 XML文档或一字符串。本发明主要涉及XML文档树的相似度计算,主要内容包括1.节点差值过滤法如果待查询文档树的节点数为n,想选取编辑距离在10以内的文档树,则只需要 选取节点数在n-20 n+20之间的文档树进行编辑距离的计算,只有这些文档树可能存在 跟符合查询要求的更相似的文档树。其它的如果节点数目相差过多,编辑距离只可能更大, 而不可能比这些更小,因此只需要选取节点数在n-20 n+20之间的文档树进行编辑距离 的计算即可。如此,先根据待查询XML文档树的节点数量η和所选取的编辑距离10,在XML文档 树数据库中选取节点数在n-20 n+20之间的XML文档树,得到一待计算数据集以备下一 步的计算操作。
此步骤虽然简单,但在文件大小不一的情况下,可以大大减少待计算数据量。本步骤的关键在于缩小待计算的XML文档树的数据量,将大规模的XML数据集过 滤为小规模的待计算数据集。2. X-gram 过滤法X-gram方法是基于树的近似编辑距离实现的,虽然不能像树的编辑距离方法一样 得到最精确的结果,但是其计算结果仍然能在一定程度上反映出两棵树的相似度。由于第 一阶段按节点数量进行过滤,得到的数据量可能仍然很大,所以还需要进一步过滤,才能用 编辑距离的算法逐一计算,得到最相似的结果,形成候选结果集。本步骤的过滤方法是受字符串的编辑距离算法的启发提出的。X-gram是指能反 映一棵树结构和内容信息的所有长度为X的字符串。计算出两棵树的相同的x-gram数目, 就可以得到相似度了,进而把数据集的按照相似度排序,得到最相似的文档,组成候选结果集。通过此步骤处理,可以使后续匹配计算的时间复杂度低且精确度较高。时间复杂 度为0(n2)。3.精确匹配法这一部分处理的数据集是通过使用X-gram过滤法后得到的候选结果集。候选结 果集中的文档数目已经大大减少,只剩下与查询树相近的一些文档,为了能返回按相似度 排序的结果集,尽量保证精确度,需要采用精确匹配法。本步骤中所采用的精确匹配法中所使用的技术是受文献“Simple fast algorithms for the editing distance between trees and related problems. SIAM Journal of Computing, 18(6) :1245-1262, December 1989,,禾口 文献"Computing the Edit-Distance Between Unrooted Ordered Trees. G. Bilardi et al. (Eds. ) :ESA' 98, LNCS 1461,pp. 91-102,1998”的启发,在比较节点标签时也采用模糊查询,可以在用户把单 词输入错误时,尽量得到最相似的结果,具有一定的容错度。由于实际的XML文档中的标签并不是一个字符,而往往是一个字符串,用户想输 入book/author/Justin进行查询,如果不慎输入book/athor/Justin,用常规的树编辑距 离算法,就得不到想要的结果。针对类似问题,我们在原始算法上进行了如下改进在传统的树编辑距离的基础上,引入字符串编辑距离来增加容错性。传统的树编辑距离算法,基于如下关系式
d(xu, yv) = min(cd(χ) +d(u, yv), Ci (y) +d(Xu, ν), cs(χ, y) +d(u, ν))如上式所示,传统的树编辑距离算法是采用动态规划的方法,先得到两棵树的后 序周游序列,再计算需要多少步可以把一个后序周游序列转化为另一棵树的后序周游序 列,最后得到树的编辑距离。上式中的更改操作,即把χ改为y操作时,我们引入字符串编辑距离,如果χ == y,则操作代价为0,否则,代价为1。实际上,在实际的XML文档树中,每个节点的标签不再只是一个字符,而是一个字 符串,如上文所说例子,在对字符串χ和y进行比较时,引入字符串的编辑距离,比较两个字 符串的编辑距离,设置一个阈值£S,如果超过ε S,则把更改操作计为1,否则,把更改操作计为0,这样即使用户在查询时连标签都输入错,也可以进行查询出最接近的结果。由于本步骤中所采用的技术时间复杂度和空间复杂度太高,故没有在一开始面对 大规模的XML文档时并没有采用该技术,而是先过采用节点差值过滤法和X-gram过滤法过 滤掉相似度低的文档,再用该步骤中所采用技术来计算出相似度最高的文档。与现有技术相比,本发明的积极效果为在所设计的XML树近似查询算法中,首先,在比较节点的标签是否相等时,引入了 阈值,用字符串编辑距离来比较标签的距离,可以在一定程度上容忍目标数据与输入的错 误,尽量得到可能的相似结果;其次提出了大规模XML树近似查询机制和算法,通过先过滤 再计算相似度来完成基于XML树实例的XML数据查询处理。上述方法利用试验验证了其有 效性。综合考察整个研究、设计与实现,分量适中。


图1是本发明树实例查询方法的流程图;图2是获取用户输入的查询并转化为查询树的流程图;图3是从数据库中读取数据文档,并转化为数据树的流程图;图4是利用X-gram过滤法过滤数据文档的流程图;图5是利用精确过滤法过滤数据文档的流程图。
具体实施例方式主要涉及树实例查询方法的主要流程,以下结合附图详细说明本发明的思想。图1是本发明树实例查询方法的流程图。图1程序100给出了树实例查询方法的基本步骤其中102为从用户输入中获取查询,具体实施方法见图2中对步骤200的示意图 及说明。104是将用户输入的查询转化为查询树,具体实施方法见图2中对步骤200的示意 图及说明。106,108是读入数据库中的XML文档,并解析为数据树,具体实施方法见图3中对 步骤300的示意图及说明。110,112,114,116是节点差值过滤法的主要步骤。118,120是X-gram过滤法的主要步骤,具体实施方法见图4中对步骤400的示意 图及说明。122,124,1 是精确过滤法的主要步骤,具体实施方法见图5中对步骤500的示意 图及说明。图2是获取用户输入的查询并转化为查询树。图2程序200是获取用户输入并转化为查询树的基本步骤202是用户从键盘中输入查询,格式如下例为b00k//Xyba0/paper204是将查询转化为查询树。图3是从数据库中读取数据文档,并转化为数据树。图3程序300是从数据库中读取数据文档,并转化为数据树的基本步骤
302是从数据库从读入XML文档。304是将读取的XML文档解析为XML树。图4是利用X-gram过滤法过滤数据文档。
图4程序400利用X-gram过滤法过滤数据文档的基本步骤402分别计算查询树和数据树的后序周游序列。404利用后序周游序列得到每一 XML文档树的后序串(后序周游序列可以反映树 结构和内容信息的长度)。406根据XML文档树的后序串得到x-grams。408根据查询树的x-grams和某数据树的χ-grams,计算查询树和该数据树的 x-grams相似度。图5是利用精确过滤法过滤数据文档。图5程序500利用树编辑距离算法计算最终结果的步骤502 是用文献"Simple fast algorithms for the editing distance between trees and related problems. SIAM Journal ofComputing, 18(6) :1245-1262, December 1989,,或文献"Computing the Edit-Distance Between Unrooted Ordered Trees. G. Bilardi et al. (Eds.) :ESA' 98,LNCS 1461,pp. 91-102,1998” 中介绍树编辑距离算法 计算查询树和数据树的编辑距离。504根据编辑距离排序,得到最终结果。权利要求
1.一种XML文档树实例查询方法,其步骤为1)利用XML解析器将数据库中的XML文档转化为XML文档树,将输入的待查询XML文 档转化为待查询XML文档树;2)根据待查询XML文档树的节点数量η和所选取的编辑距离L,在XML文档树数据库 中选取节点数在设定范围内的XML文档树,得到一待计算数据集;其中,n、L为自然数;3)利用XML文档树近似编辑距离过滤法计算待查询XML文档树与待计算数据集中每一 XML文档树之间的相似度,将相似度大于设定阈值的XML树组成一候选查询结果集;4)利用树编辑距离算法计算待查询XML文档树与候选查询结果集中XML文档树的编辑 距离;5)根据4)计算的编辑距离对候选查询结果集中XML文档树进行排序,得到查询结果。
2.如权利要求1所述的方法,其特征在于所述XML文档树近似编辑距离过滤法为1)分别计算待查询XML文档树与待计算数据集中每一XML文档树的后序周游序列;2)计算待查询XML文档树的后序周游序列与待计算数据集中每一XML文档树的后序周 游序列的相似度,得到待查询XML文档树与待计算数据集中每一 XML文档树的相似度;3)将相似度大于设定阈值的XML树组成一候选查询结果集。
3.如权利要求1所述的方法,其特征在于所述XML文档树近似编辑距离过滤法为 pq-gram过滤法。
4.如权利要求1或2或3所述的方法,其特征在于所述树编辑距离算法为计算待查 询XML文档树中某节点标签字符串χ与候选查询结果集中一 XML文档树的某节点标签字符 串y的编辑距离,如果编辑距离超过设定阈值εs,则把字符串χ改为字符串y的更改操作 代价计为1,否则记为0。
5.如权利要求4所述的方法,其特征在于所述数据库中的XML文档为通过Xmark生成 的XML文档。
6.如权利要求5所述的方法,其特征在于所述设定范围内的XML文档树为节点数在 n-2L n+2L范围内的XML文档树。
7.如权利要求6所述的方法,其特征在于所述待查询XML文档为一XML文档或一字符串ο
全文摘要
本发明公开了一种XML文档树实例查询方法,属于模糊查询领域。本方法为1)将数据库中的XML文档和待查询XML文档分别转化为文档树;2)根据待查询XML文档树在XML文档树数据库中选取节点数在设定范围内的XML文档树,得到一待计算数据集;3)计算待查询XML文档树与待计算数据集中每一XML文档树之间的相似度,得到一候选查询结果集;4)计算待查询XML文档树与候选查询结果集中XML文档树的编辑距离;5)根据4)计算的编辑距离对候选查询结果集中XML文档树进行排序,得到查询结果。与现有技术相比,本方法大大提高了查询效率,同时在一定程度上容忍目标数据与输入的错误。
文档编号G06F17/30GK102043848SQ20101059686
公开日2011年5月4日 申请日期2010年12月20日 优先权日2010年12月20日
发明者包小源, 李树节, 杨冬青, 王腾蛟 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1