一种基于多样性xml文档近似查询方法

文档序号:6571680阅读:191来源:国知局
专利名称:一种基于多样性xml文档近似查询方法
技术领域
本发明属于计算机设计与应用技术领域,涉及计算机软件、信息检索技术、半结构化数据处理技术、人工智能技术以及XML描述语言,特别涉及一种基于多样性XML文档的近似查询方法。

背景技术
近年来,随着XML(Extensible Markup Language)的出现,针对XML文档半结构化数据的查询算法的研究逐渐引起了国内外信息检索领域人们的关注。XML文档具有灵活的表达能力,而这种灵活的表达能力使得不同组织和个人建立的XML文档,难以遵照一个统一的数据模式,即使内容完全相同的文档,不同的组织和个人也很难按照统一的标准来建立结构和标识内容完全相同的XML文档,从而造成了XML文档数据的多样性。如何针对WEB上的大量的多样性的XML数据进行有效的信息提取成为了XML数据管理研究的重要课题。
目前,已有的XML查询方法的研究主要关注单DTD下XML文档集的精确查询和近似查询,解决方法主要采用了以树模型匹配作为理论基础的结构化连接算法等相关技术,并取得了较好的查询效果。而当针对多样性XML文档集时,则效果并不理想。
针对基于多样性XML文档的近似查询方法,申请人经过查新,检索到与本发明紧密相关的专利1个,国内文献1篇,国外相关文献1篇 (一)相关专利(名称、申请人或发明者)1个 1.专利名称XML流数据的复杂小枝模式查询匹配方法 专利申请人复旦大学 (二)国内相关文献(标题、作者或机构、出处)1篇 1.标题XML查询中DTD的排序技术 刊名计算机研究与发展,2003,40(11)1579~1585. (三)国外相关文献(标题、作者或机构、出处)1篇 1.TitleSchema-Driven Evaluation of Approximate Tree-Pattern Queries Author(s)Torsten Schlieder. Source8th International Conference on Extending Database Technology, Prague,Czech Republic,March 25-27,2002514-532. 对上述文献分析如下 在专利1中,发明人提出了一种XML流数据的复杂小枝模式查询匹配方法。通过定义的紧凑小枝模式查询树,将复杂的AND/OR谓词作为单独的抽象语法树来处理,同时,将所有小枝模式查询组合成单个可共享公共前缀的查询树,利用提出的基于运行栈的算法,结合自顶向下和自顶向上过程,单遍、高效处理基于XML流的任何复杂小枝查询。
国内文献[1]中,对“候选DTD定位”,“候选DTD与用户查询结构的距离排序”等技术进行了研究。在对候选DTD与用户查询结构的距离进行接近线性时间复杂性的排序运算时,提出了以“树间亚距离排序”代替“树间距离排序”的观点,即以查询结构与查询在候选DTD中的上下文之间的距离,代替查询结构与候选DTD之间的距离参与排序,提高了候选DTD排序的准确性。但文中没有进一步给出排序后的DTD对用户的查询结构进行重构的方法以及结合该DTD排序技术的XML近似查询算法框架。
国外文献[1]中,提出了一种XML近似查询语言-ApproXQL以及基于该语言的近似查询算法。为了获得和查询最近似的K个结果文档,该文从树编辑距离的角度出发,通过对查询表达式进行基于代价的查询变异来评估用户查询和XML文档之间的近似度,最后按XML文档所对应的查询变异代价总和来决定最好的K个查询结果文档。但查询的实现,需要人工设定查询结构中各结点的插入、重命名等变异操作的代价,并且在变异查询数量很多的情况下,求解最优的K个结果文档的效率并不高,另外,该文并没有考虑多DTD下XML文档查询的多样性问题。


发明内容
为了克服上述现有技术存在的缺陷或不足,本发明提供了一种基于多样性XML文档的近似查询方法,能够对多DTD下的XML文档集按照一种统一的方式提出查询,并通过两次查询重写准确地查询出满足用户查询需求XML文档序列,并按近似度高低进行排序。
本发明的技术方案是这样实现的 XML文档多样性处理模块采用基于PTO模型的映射规则自动生成算法将用户在全局查询模式下提出的原始查询重写为不同DTD下的重写查询树;单DTD下XML文档近似查询模块利用重写查询树,结合基本变异操作,通过对变异查询树的多次精确嵌入实现了单DTD下XML文档集的近似查询;查询代价评估模块采用基于XML样本数据分布统计的方法,计算了每一个查询结果的查询代价;Top-K问题求解模块通过对结点进行区间编码,并借助最优变异查询树的预先估计,最终实现了对多样性XML文档查询的Top-K求解。
XML文档多样性处理模块的实现步骤如下 1)依据基于本体的全局查询模式,按照面向对象查询语言提出原始查询; 2)依据PTO模型(v1,v2)->c1.role,c2.inverse(role)|c3.attribute,按如下步骤建立DTD和全局查询模式之间的映射规则集 (1)广度优先遍历DTD树TDTD,抽取TDTD中每条有向边对应的结点v1和v2,若已遍历结束,转步(4);否则,转步(2); (2)查找v1和v2在全局查询模式图G中对应的概念结点v1和v2或属性attribute,若找到,转步(3);否则,把二元组(v1,v2)加入集合Set1中,转步(1); (3)如果找到的是两个概念结点c1和c2,则生成规则(v1,v2)->c’1.role,c’2.inverse(role),转步(1);如果找到的是一个概念结点c1和属性attribute,则生成规则(v1,v2)->c1.attribute,转步(1); (4)对Set1集合中的二元组使用规则(x,y),(y,z)|-(x,z)进行扩展,将新生成的扩展二元组放入集合Set2; (5)遍历集合Set2,抽取其中每一个元组中的结点v1和v2;若已遍历结束,则终止算法;否则,转步(6); (6)查找v1和v2在全局查询模式图G中对应的概念结点c1和c2或属性attribute,若找到,转步(7);否则,转步(5); (7)如果找到的是两个概念结点c1和c2,生成规则(v1,v2)->c’1.role,c’2.inverse(role)转步(5);如果找到的是一个概念结点c1和属性attribute,生成规则(v1,v2)->c1.attribute转步(5); 3)利用生成的映射规则集按模式路径,概念和角色逐一映射的方式将原始查询改写为不同DTD下的结构谓词集,并由结构谓词集进一步构成为重写查询树形式。
单DTD下XML文档近似查询模块按如下步骤进行实现 1)用重命名结点,删除结点和插入结点这几种基本变异操作组成可能的基本变异操作序列。
2)应用基本变异操作序列对重写查询树进行变异,生成变异查询树。
3)将变异后得到的所有变异查询树根据其对应的嵌入代价构成查询闭包Q*; 4)从查询闭包中取出当前嵌入代价最小的变异查询树对XML文档集中的XML文档树依次进行精确嵌入; 5)如果满足精确嵌入条件的结果个数大于或等于用户指定的K个,则K个最优解已形成,查询终止;否则,若查询结果集的个数小于K个,就按嵌入代价由低到高从查询闭包中选取新的变异查询树,接着继续进行精确嵌入,直到符合精确嵌入的结果个数大于等于K个为止。
在查询代价评估模块中,按如下步骤对查询代价进行计算 1)按公式o(p)=tf(sp)*idf(sp)计算模式路径p的罚分,其中,tf(sp)为模式路径谓词频,idf(sp)为模式路径逆文档频; 2)按公式计算语词间的相似度sim(v,c),其中,MinLen(v,c)代表语词间的最短路径长度,Depth()代表语词在WordNet中的深度; 3)按公式d(r)=[2-sim(v1,c1)-sim(v2,c2)]*tf(sp)计算映射规则r的罚分,其中,v1,v2和c1,c2分别代表规则r两端不同的语词; 4)按公式计算重写查询树Qs的重写代价Cr(Qs),其中,P代表在得到重写查询树Qs的查询语句到DTD的映射过程中丢掉的模式路径集; 5)按公式计算重命名结点操作代价,其中,w(vi)代表结点vi的权重,α为平衡因子,βnaming为重命名因子; 6)按公式Cdel(vi)=α*βdel*(wmax-w(vi))计算删除结点操作代价; 7)按公式Cinse(vi)=α*βinse*w(vi)计算插入结点操作代价; 8)按公式计算变异查询树Q’的嵌入代价Ce(Q’),其中,c(zi)代表应用某种基本变异操作zi的代价; 9)按公式CQ=Cr(Qs)+Ce(Q’)对查询代价CQ进行计算。
Top-K问题求解模块按如下步骤实现了对多样性XML近似查询过程中Top-K个查询答案的顺序求解 1)对XML文档树中的结点按如下方式进行编码regionCode=(begin,end,pathcost,Cinse),式中,begin代表对文档树进行前序遍历时结点的序号,end是遍历完该结点的所有子孙结点后再一次访问该结点时的序号,pathcost是该结点所有祖先结点的插入代价的总和,Cinse是该结点的插入代价; 2)利用公式Cinse(v1,v2)=pathcost(v2)-pathcost(v1)-Cinse(v1)计算在变异查询树的精确嵌入过程中它所包含的AD关系的结构谓词(v1 ,v2)嵌入到文档树中所需插入到v1和v2之间的结点代价之和,其中,v1是v2的祖先结点; 3)对精确嵌入所需满足的条件扩展为在查询树中指定为PC关系的结构谓词在文档树中进行嵌入时,可以扩展为祖先后代关系进行完全匹配; 4)从查询闭包Q*中按如下条件Min(|Answer(Qi’)-K|)=|Answer(Qb’)-K|(1<i<n),选取最优变异查询树Qb’,其中,Qi’代表Q*中的任意变异查询树; 5)对Q*中的所有的Q’按CQ从低到高排序,并从Q*中弹出Qb’作为当前变异查询树。
6)对当前变异查询树和文档集Ds执行精确嵌入。在精确嵌入过程中,扩展为AD关系的结构谓词(在变异查询树中被指定为PC关系)所在的文档树也将被保留,同时计算在PC关系的结构谓词嵌入过程中所需的插入代价Cinse。如果有满足精确嵌入的四个条件的查询结果,就将其放入查询结果集中,并用Cinse和CQ之和来衡量当前查询结果的匹配近似度; 7)如果Q*为空,则返回步4),否则转一下步; 8)如果当前查询结果集中的结果个数小于K,则从Q*中的当前位置顺序弹出下一棵变异查询树Q’作为当前变异查询树,并转步7);否则转下一步; 9)从查询闭包中按查询代价从小到大顺序弹出Qb’之前的变异查询树,并对步7)中累积得到的结果文档集逐次进行精确嵌入,同时用这些变异查询树的Cinse和CQ的代价之和来进一步确认每次精确嵌入后返回的查询结果和查询Q的近似程度,并按其近似度值插入到查询结果集的适当位置中去,最后返回K个按近似度由高到低排列的结果文档序列给用户。
采用本发明,可实现一种基于多样性XML文档的结构化查询系统。该系统可广泛应用于各种领域中基于XML文档格式描述的信息内容的结构化查询。在利用该系统进行查询时,基于全局查询模式,用户能够以统一的方式提出查询,最后返回给用户按查询近似度由高到低排列的查询结果序列。并且,通过使用基于样本数据分布统计的代价计算方法,从而将专家的先验知识和后台样本的统计信息的后验知识结合在了一起,使得系统针对多样性XML文档集进行查询时具有较高的查准率,查询结果的近似度更加接近用户的语义要求;通过采用TRAXQ算法的两阶段查询方式,使得系统针对多样性XML文档集进行查询时具有较高的查全率;通过采用Top-K问题求解的优化方法使得系统在理想情况下只对后台XML文档集扫描一次就能完成一次查询,从而具有较高的查询效率。



图1为本发明组成结构图; 图2为本发明用户全局查询模式图; 图3为本发明全局查询模式和DTD之间的映射规则集示意图; 图3(a)表示数据源S1下的DTD及其映射规则集; 图3(b)表示数据源S2下的DTD及其映射规则集; 图4为本发明基于PTO模型的映射规则集示意图; 图5为本发明重写查询树示意图; 图6为本发明带有区间编码的XML文档树示意图; 下面结合附图对本发明的内容作进一步详细说明。

具体实施例方式 图1中XML文档多样性处理模块采用基于PTO模型的映射规则自动生成算法将用户在全局查询模式下提出的原始查询重写为不同DTD下的重写查询树;单DTD下XML文档近似查询模块利用重写查询树,结合基本变异操作,通过对变异查询树的多次精确嵌入实现了单DTD下XML文档集的近似查询;查询代价评估模块采用基于XML样本数据分布统计的方法,计算了每一个查询结果的查询代价;Top-K问题求解模块通过对结点进行区间编码,并借助最优变异查询树的预先估计,最终实现了对多样性XML文档近似查询的Top-K求解。
图2显示了一个关于书籍出版领域XML数据集成系统的全局查询模式。它用一个标记图来描述。其中方框表示概念,实线箭头表示角色或属性,虚线箭头表示继承关系,String则是属性的类型。每一个角色同时给出其逆角色,用圆括号加以标注。
图3显示了书籍出版领域的两种不同的DTD及其和图2所示的全局查询模式之间的映射规则集。其左边部分是数据源S1下的DTD及其映射规则集,右边部分是数据源S2下的DTD及其映射规则集。数据源S1下的映射规则共有7条,每条的左边部分是XPath路径,右边部分是全局查询模式图中的概念或角色。数据源S2下的映射规则共有7条,每条的左边部分是XPath路径,右边部分是全局查询模式图中的概念或角色。
图3(a)显示了数据源S1下的DTD及其和图2所示的全局查询模式之间的映射规则集。图中上半部分表示数据源S1下的一种DTD,下半部分表示该DTD和全局查询模式图之间的映射规则集。映射规则共有7条,每条的左边部分是XPath路径,右边部分是全局查询模式图中的概念或角色。
图3(b)显示了数据源S2下的DTD及其和图2所示的全局查询模式之间的映射规则集。图中上半部分表示数据源S2下的一种DTD,下半部分表示该DTD和全局查询模式图之间的映射规则集。映射规则共有7条,每条的左边部分是XPath路径,右边部分是全局查询模式图中的概念或角色。
图4显示了数据源S1下的DTD与全局查询模式之间的,基于PTO模型的映射规则集。其中,映射规则共有7条,每条的左边是结构谓词,右边是一条或多条模式路径。
图5显示了查询Q经图4中的映射规则集转化后得到的结构谓词集{(book,title),(book,publisher),(publisher,location),(book,author)}构成的一棵重写查询树,树中包含5个查询结点,查询结点book代表根结点,单线箭头代表查询结点之间的父子关系,根结点指明了当前所要查询的范围,叶子结点描述了所要查询的具体信息,内部结点指明了具体信息所在的上下文。
图6显示了一棵带有区间编码regionCode=(begin,end,pathcost,Cinse)的汽车外形XML文档树,其中,实心结点代表XML文档中的关键词,空心结点代表XML文档中的元素或属性,空心结点的区间编码带有全部的四个元素项,而实心结点没有end和Cinse元素项。
基于多样性XML文档的近似查询方法的组成与工作原理 如图1所示,基于多样性XML文档的近似查询方法包括XML文档多样性处理,单DTD下XML文档近似查询,查询代价评估和Top-K问题求解四个部分。
XML文档多样性处理 PTO映射模型 图2是一个关于书籍出版领域XML数据集成系统的全局查询模式,它用一个标记图来描述。其中方框表示概念,实线箭头表示角色或属性,虚线箭头表示继承关系,String则是属性的类型。每一个角色同时给出其逆角色,用圆括号加以标注。
假设有2个XML数据源S1和S2,它们的DTD及映射规则集Rs如图3所示。
若一位汽车外形设计人员要查询“作者JK.Rose的《现代汽车外形设计》的出版地”,在全局查询模式下基于对象查询语言,查询语句Q可表示如下 select cfrom book a,a.has_titleb, a.published_by.located_in c, a.written_by.has_name d whereb=“现代汽车外形设计”and d=“JK.Rose” 具体到数据源S1,利用S1下的映射规则Rs,Q将被转化为查询Q(S1),即 selectcfrom url1/booka, a./titleb,a./publisher./location c,a./info./author./@name d Whereb=“现代汽车外形设计”and d=“JK.Rose” 图3中映射规则的左端是一条XPath路径,右端是全局查询模式中相关的概念及角色。本发明构造的适用于多样性XML近似查询的映射模型PTO,其结构为 (v1,v2)->c1.role,c2.inverse(role)|c3.attribute(1) 式中(v1,v2)是DTD蕴涵的结构谓词,它表示父子关系或祖先后代关系;c1.role是一条包含单一角色的模式路径;c2.inverse(role)是另一条模式路径,其中c2是c1.role代表的概念,inverse(role)表示role的逆角色;c3.attribute由概念c3和单一属性组成;“|”符号是或者的意思,表示对于每一条规则,角色和属性只能出现一种。
具体到数据源S1的DTD,构造的基于PTO模型的Rs如图4所示。例如对于上文提出的查询Q,使用图4中的PTO映射规则集进行转化,将得到针对数据源S1下查询Q(S1)的结构谓词集{(book,title),(book,publisher),(publisher,location),(book,author)}。该结构谓词集可进一步重构为数据源S1下的重写查询树形式,如图5所示。
单DTD下XML文档的近似查询方法 查询变异 对重写查询树的查询变异相当于对查询树的查询条件进行松弛,它是通过运用基本变异操作来实现的,其定义如下 定义1(重写查询树)给定一条全局查询模式下的用户查询Q和一个特定的DTD,若在全局查询模式和特定DTD之间存在一个基于PTO模型的映射规则集Rs,那么根据Rs对Q重写后生成的查询树称为面向该DTD的重写查询树,记为Qs。
定义2(基本变异操作)给定一棵重写查询树Qs,若存在某种树编辑操作对Qs作出修改后,使得原有的查询语义得到扩展,那么将该树编辑操作称为基本变异操作,记为z。
本发明中所使用到的几种基本变异操作包括插入结点操作,删除结点操作和重命名结点操作。
定义3(变异操作序)由一组任意的基本变异操作构成的序列称为变异操作序,记为Z=(z1,z2,...,zn),其中zi代表一个基本变异操作。
定义4(变异查询树)将一个指定的变异操作序Z应用到重写查询树Qs之后得到的查询树称为变异查询树,记为Q’。
近似嵌入 变异查询树扩大了重写查询树的查询范围,使得基于变异查询树的查询结果和原有的查询语义之间有一定的距离,这种距离可以看作是查询结果的近似度,它可以通过变异过程中的代价计算来进行度量。
定义5(基本变异操作代价)对重写查询树执行基本变异操作后造成的查询语义损失称为基本变异操作代价,它是大于0的实数。
定义6(嵌入代价)给定一棵重写查询树Qs和一组基本变异操作z1,....,zn,若Q’是应用z1,...,zn到Qs得到的一棵变异查询树,那么变异查询树Q’的嵌入代价可表示为 式中,Ce(Q’)代表关于Q’的嵌入代价,c(zi)代表基本变异操作zi的代价。
嵌入代价可以用来衡量基于变异查询树的精确查询结果和重写查询树所表示的查询条件之间的近似程度。
定义7(查询代价)给定一棵重写查询树Qs和其对应的一棵变异查询树Q’,若存在和Q’满足精确嵌入条件的结果文档D,那么将Qs的重写代价Cr与Q’的嵌入代价Ce之和称为对该结果文档D的查询代价,记为CQ=Cr+Ce。
查询代价可用来衡量基于变异查询树的精确查询结果和原始查询所表示的查询条件之间的近似程度。
定义8(查询闭包)给定一棵重写查询树Qs,若Q’(Zi)是将一个变异操作序Zi应用到Qs之后得到一个变异查询树,那么查询闭包可被定义为 式中,当Zi=φ时,Q’(Zi)=Qs,并且有Ce(Q’(Zi+1))>Ce(Q’(Zi))。
定义9(近似嵌入)给定一个文档集Ds和一棵重写查询树Qs,若用Q*代表Qs的查询闭包,用二元组(TD,CQ)来代表Q*中的一棵变异查询树的查询结果,其中,TD代表与该变异查询树满足精确嵌入条件的文档树,CQ代表TD对应的查询代价,那么对Q*所对应的所有的二元组(TD,CQ)的求解被称为Qs的近似嵌入。
从定义9可以看出,针对重写查询树Qs的近似查询问题可以被转化为针对查询闭包的多次精确查询的问题来求解,解决XML近似查询的算法必须能够发现查询闭包中所有变异查询树的精确嵌入结果。
查询代价评估方法 查询代价是衡量查询结果近似度的重要依据,其主要包括两个部分基于重写查询树的重写代价和基于变异查询树的嵌入代价。
重写代价 定义10(重写代价)给定一个全局查询模式G和用户查询Q,若存在G到某一特定DTD的映射规则集R,那么在利用R将Q重写为Qs的过程中所产生的模式路径罚分和映射规则罚分之和称为重写代价,记为 式中,Cr(Qs)表示关于重写查询树Qs的重写代价,P为用户查询语句映射到该DTD后丢掉的模式路径集,o(p)代表模式路径p的罚分,d(r)代表映射规则r的罚分。
下面结合XML样本数据分布统计的方法来定义模式路径罚分的计算公式。
给定一条包含单一角色的模式路径c1.role,与其互补的逆角色模式路径为c2.inverse(role),它们对应相同的模式路径谓词频tf(sp),其计算形式如下 tf(sp)=#sp/(#c1*#c2)(5) 式中,sp是模式路径对应的结构谓词实例,#i代表元素i在整个XML文档集中出现的次数。
给定一条包含单一角色的模式路径c1.role,与其互补的逆角色模式路径为c2.inverse(role),它们对应相同的模式路径逆文档频idf(sp),其计算形式如下 idf(sp)=lg(|Ds|/|{D∈Dsmatch(sp,D)}|)(6) 式中|Ds|为文档集Ds包含的文档数;D为XML文档集Ds中的一个文档;match(sp,D)表示文档D包含结构谓词sp;|{D∈Dsmatch(sp,D)}|为文档集Ds中包含结构谓词sp的文档数。
给定一条包含单一角色的模式路径c1.role,与其互补的逆角色模式路径为c2.inverse(role),它们对应相同的模式路径罚分o(),其计算形式如下 o(c1.role)=o(c2.inverse(role))=tf(sp)*idf(sp)(7) 对包含属性的模式路径罚分的计算方法类似,唯一不同的是包含属性的模式路径没有互补的逆角色模式路径,其对应的结构谓词的一个结点需要从属性中提取。
根据定义10,映射规则本身也要定义罚分,因为映射规则两端的概念在语义上并非总是等价的,有时它只是一个近似的转换。本发明采用in-depth语义方法来处理这个问题。通过比较两个语词在词汇网络WordNet的超类层次中的深度和连接两个语词的最短路径长度来计算它们之间的相似度。例如,针对(book,article)的语义相似度可按下式计算 式中,sim()代表语词间的相似度函数,MinLen()函数给出语词间的最短路径长度;Depth()函数给出语词在WordNet中的深度。
那么,对于映射规则r(v1,v2) c1.role,c2.inverse(role),其罚分d(r)的计算形式如下 d(r)=[2-sim(v1,c1)-sim(v2,c2)]*tf(sp)(10) 式中tf(sp)是结构谓词(v1,v2)的谓词频。若映射规则右端为包含属性的模式路径,其罚分的计算方法类似,唯一不同的是对应的结构谓词sp的一个结点需要从属性中提取。
嵌入代价 根据定义6,嵌入代价是应用到重写查询树上的所有基本变异操作的代价总和,那么计算嵌入代价的问题就转化为计算基本变异操作代价的问题。下面结合样本数据分布统计的方法,通过衡量基本变异操作造成的查询语义损失来对代价进行求解。
1)重命名代价 重命名代价指的是将一个结点的标记更新为该结点的父结点或者兄弟结点的标记所需要的代价。例如,将结点vs更新为它的祖先结点ve所需重命名代价的计算步骤如下 (1)根据DTD树,求出结点vs和结点ve之间的最短路径; (2)统计该最短路径所经过的结点; (3)累加这些结点的权重作为重命名结点vs所需的代价,记为Cnaming(vs), 其计算公式如下 式中,Vse代表最短路径所包含的结点集,n代表结点集的大小,w(vi)代表结点vi∈Vse的权重,α为平衡因子,可以用来调整结点和该结点构成的结构谓词之间的频度差异,βnaming为重命名因子,可以用来调整因为环境上下文引起的权重和重命名代价之间转换的等价度。
如何定义XML文档树中每个结点的权重w(vi)是接下来需解决的关键问题。一个结点的权重和两个因素有关(1)所处的位置;(2)出现的频率。在XML文档树中所处的位置越高,出现的频率越大,则该结点的权重也越大。因此,w(vi)的计算公式可定义如下 式中,N代表结点vi在XML文档集中出现的次数,Nnormal是标准频数,即预先统计得出的所有结点出现的平均次数。(N/Nnormal)表示结点vi出现的相对频倍,它的值越高,说明结点vi出现的频率越大,从而导致它的权重也越大。Hj(vi)是一个度量结点vi在第j次出现时所在位置重要性的函数,它的计算公式如下 Hj(vi)=Lvi/Ltree(13) 式中,Lvi代表结点vi在当前所在的XML文档树中所在的层数,根结点位于最高层,Ltree代表XML文档树的总层数。
2)删除代价 由于一个结点的权重和该结点在文档集中出现的频率成正比,因此该结点的权重越大,那么删除该结点所需要的代价就越小。设结点权重的上限值为wmax;那么删除一个结点vi的代价为 Cdel(vi)=α*βdel*(wmax-w(vi))(14) 式中,w(vi)为结点vi的权重,βdel为删除因子,可以用来调整因为环境环境上下文引起的权重和删除代价之间转换的等价度。特殊地,当结点权重取上限值时,它的删除代价就为0。
3)插入代价 插入结点就相当于在查询树中增加新的结点。和删除一个结点的代价的计算方法相反,插入结点的代价和新增加的该结点权重的大小成正比,也就是说该结点在数据集中出现的频率越大则插入它的代价也越大,因此插入一个结点vi的代价为 Cinse(vi)=α*βinse*w(vi)(15) 式中,w(vi)为结点vi的权重,βinse为插入因子,可以用来调整因为环境上下文引起的权重和插入代价之间转换的等价度。
Top-K问题求解的优化方法 查询闭包的有效和有序性 在单DTD下XML文档近似查询模块中需要依据查询代价对查询闭包中所有的变异查询树从低到高进行排序,查询闭包的有效性和有序性是顺序求解Top-K个查询结果文档的重要因素。要确保查询闭包的有效性和有序性,有两个问题需要关注1)求解有效地变异查询树;2)求解变异查询树的嵌入代价。本发明利用以下三个方法来解决以上两个问题 a)利用基本变异操作的限制规则精简出切实有效地变异查询树,构成变异查询树的最小闭包集; b)对XML文档树中的结点进行编码,生成带有如下区间编码的文档树来解决盲目的结点插入操作带来复杂性问题 regionCode=(begin,end,pathcost,Cinse)(16) 式中,begin代表对文档树进行前序遍历时结点的序号,end是遍历完该结点的所有子孙结点后再一次访问该结点时的序号,pathcost是该结点所有祖先结点的插入代价的总和,Cinse是该结点的插入代价。
在变异查询树的精确嵌入过程中,通过regionCode可以计算它所包含的AD关系的结构谓词(v1,v2)嵌入到文档树中所需的结点插入代价,其计算公式如下 Cinse(v1,v2)=pathcost(v2)-pathcost(v1)-Cinse(v1)(17) 其中v1是v2的祖先结点,Cinse(v1,v2)代表结构谓词(v1,v2)在嵌入过程中所需插入到v1和v2之间的结点代价之和,它将作为变异查询树的嵌入代价Ce的一部分。
图6是一棵带有区间编码regionCode的汽车外形XML文档树,其中内部结点的区间编码带有全部的四个元素项,而叶子结点没有end和Cinse元素项。
c)对精确嵌入所需满足的第四个条件进行扩展在查询树中指定为PC关系的查询谓词在文档树中进行嵌入时,可以扩展为祖先后代关系进行完全匹配。
最优变异查询树 定义11(最优变异查询树)给定查询闭包Q*,如果Q*中的一棵变异查询树Qb’满足如下条件,那么该Qb’称为最优变异查询树。
Min(|Answer(Qi’)-K|)=|Answer(Qb’)-K| (1<i<n)(18) 式中,Answer()代表Q*中任意一棵变异查询树Qi’对XML文档集执行一次精确嵌入后得到的查询结果个数,Min()代表最小值,n代表Q*中变异查询树的总个数,K代表用户希望返回的查询结果的个数。
根据定义11,Qb’是查询闭包中第一个单独对XML文档集执行精确嵌入后得到的结果文档的个数等于或大于K的变异查询树。因此,通过求解最优变异查询树,可进一步对查询闭包中变异查询树的选择策略进行优化。结合查询闭包的Top-K顺序求解过程,基于两阶段查询重写的多样性XML文档近似查询算法-TRAXQ的执行步骤如下 1.利用PTO映射模型建立全局查询模式和XML文档集所包含的所有DTD间的映射规则集Rs; 2.利用Rs,对全局查询模式下的用户查询Q进行重写,得到针对每一种DTD的重写查询树Qs,并在此过程中计算Qs的重写代价Cr; 3.利用Cr对不同DTD下的Qs从低到高进行排序,形成Qs队列; 4.若Qs队列为空,则终止查询,否则从当前Qs队列中弹出Cr分值最低的Qs; 5.对当前重写查询树Qs应用重命名、删除内部结点和删除叶子结点这三种基本变异操作(不包括插入结点操作)构成变异操作序,并建立按变异操作代价之和Cnaming,del由低到高排列的变异查询树构成的查询闭包Q*,并将Q*中每棵变异查询树Q’对应的Cnaming,del和Qs的重写代价Cr之和作为Q’的查询代价CQ; 6.对Q*中的所有的Q’按CQ从低到高排序,并从Q*中弹出Qb’作为当前变异查询树。
7.对当前变异查询树和文档集Ds执行精确嵌入。在精确嵌入过程中,扩展为AD关系的结构谓词(在变异查询树中被指定为PC关系)所在的文档树也将被保留,同时计算在PC关系的结构谓词嵌入过程中所需的插入代价Cinse。如果有满足精确嵌入的四个条件的查询结果,就将其放入查询结果集中,并用Cinse和CQ之和来衡量当前查询结果的匹配近似度; 8.如果Q*为空,则返回步4,否则转一下步; 9.如果当前查询结果集中的结果个数小于K,则从Q*中的当前位置顺序弹出下一棵变异查询树Q’作为当前变异查询树,并转步7;否则转下一步; 10.从查询闭包中按查询代价从小到大顺序弹出Qb’之前的变异查询树,并对步7中累积得到的结果文档集逐次进行精确嵌入,同时用这些变异查询树的Cinse和CQ的代价之和来进一步确认每次精确嵌入后返回的查询结果和查询Q的近似程度,并按其近似度值插入到查询结果集的适当位置中去,最后返回K个按近似度由高到低排列的结果文档序列给用户,算法终止。
权利要求
1.一种基于多样性XML文档近似查询方法,其特征在于该方法包括XML文档多样性处理,单DTD下XML文档近似查询,查询代价评估和Top-K问题求解四个部分;
XML文档多样性处理模块采用基于PTO模型的映射规则自动生成算法将用户在全局查询模式下提出的原始查询重写为不同DTD下的重写查询树;单DTD下XML文档近似查询模块利用重写查询树,结合基本变异操作,通过对变异查询树的多次精确嵌入实现了单DTD下XML文档集的近似查询;查询代价评估模块采用基于XML样本数据分布统计的方法,计算了每一个查询结果的查询代价;Top-K问题求解模块通过对结点进行区间编码,并借助最优变异查询树的预先估计,最终实现了对多样性XML文档近似查询的Top-K求解。
2.根据权利要求1所述的一种基于多样性XML文档近似查询方法,其特征在于,XML文档多样性处理模块的实现步骤如下
1)依据基于本体的全局查询模式,按照面向对象查询语言提出原始查询;
2)依据PTO模型(v1,v2)->c1.role,c2.inverse(role)|c3.attribute,按如下步骤建立DTD和全局查询模式之间的映射规则集
(1)广度优先遍历DTD树TDTD,抽取TDTD中每条有向边对应的结点v1和v2,若已遍历结束,转步(4);否则,转步(2);
(2)查找v1和v2在全局查询模式图G中对应的概念结点v1和v2或属性attribute,若找到,转步(3);否则,把二元组(v1,v2)加入集合Set1中,转步(1);
(3)如果找到的是两个概念结点c1和c2,则生成规则(v1,v2)->c’1.role,c’2.inverse(role),转步(1);如果找到的是一个概念结点c1和属性attribute,则生成规则(v1,v2)->c1.attribute,转步(1);
(4)对Set1集合中的二元组使用规则(x,y),(y,z)|-(x,z)进行扩展,将新生成的扩展二元组放入集合Set2;
(5)遍历集合Set2,抽取其中每一个元组中的结点v1和v2;若已遍历结束,则终止算法;否则,转步(6);
(6)查找v1和v2在全局查询模式图G中对应的概念结点c1和c2或属性attribute,若找到,转步(7);否则,转步(5);
(7)如果找到的是两个概念结点c1和c2,生成规则(v1,v2)->c’1.role,c’2.inverse(role)转步(5);如果找到的是一个概念结点c1和属性attribute,生成规则(v1,v2)->c1.attribute转步(5);
3)利用生成的映射规则集按模式路径,概念和角色逐一映射的方式将原始查询改写为不同DTD下的结构谓词集,并由结构谓词集进一步构成为重写查询树形式。
3.根据权利要求1所述的一种基于多样性XML文档近似查询方法,其特征在于,单DTD下XML文档近似查询模块按如下步骤进行实现
1)利用重命名结点,删除结点和插入结点这几种基本变异操作组成可能的基本变异操作序列;
2)应用基本变异操作序列对重写查询树进行变异,生成变异查询树;
3)将变异后得到的所有变异查询树根据其对应的嵌入代价构成查询闭包Q*;
4)从查询闭包中取出当前嵌入代价最小的变异查询树对XML文档集中的XML文档树依次进行精确嵌入;
5)如果满足精确嵌入条件的结果个数大于或等于用户指定的K个,则K个最优解已形成,查询终止;否则,若查询结果集的个数小于K个,就按嵌入代价由低到高从查询闭包中选取新的变异查询树,接着继续进行精确嵌入,直到符合精确嵌入的结果个数大于等于K个为止。
4.根据权利要求1所述的一种基于多样性XML文档近似查询方法,其特征在于,在查询代价评估模块中,采用基于XML样本数据分布统计的方法,按如下步骤和公式对查询代价及其相关元素进行计算
1)按公式o(p)=tf(sp)*·idf(sp)计算模式路径p的罚分,其中,tf(sp)为模式路径谓词频,idf(sp)为模式路径逆文档频;
2)按公式计算语词间的相似度sim(v,c),其中,MinLen(v,c)代表语词间的最短路径长度,Depth()代表语词在WordNet中的深度;
3)按公式d(r)=[2-sim(v1,c1)-sim(v2,c2)]*tf(sp)计算映射规则r的罚分,其中,v1,v2和c1,c2分别代表规则r两端不同的语词;
4)按公式计算重写查询树Qs的重写代价Cr(Qs),
其中,P代表在得到重写查询树Qs的查询语句到DTD的映射过程中丢掉的模式路径集;
5)按公式计算重命名结点操作代价,其中,w(vi)代表结点vi的权重,α为平衡因子,βnaming为重命名因子;
6)按公式Cdel(vi)=α*βdel*(wmax-w(vi))计算删除结点操作代价;
7)按公式Ginse(vi)=α*βinse*w(vi)计算插入结点操作代价;
8)按公式计算变异查询树Q’的嵌入代价Ce(Q’),其中,c(zi)代表应用某种基本变异操作zi的代价;
9)按公式Co=Cr(Qs)+Ce(Q’)对查询代价CQ进行计算。
5.根据权利要求1所述的一种基于多样性XML文档近似查询方法,其特征在于,Top-K问题求解模块按如下步骤实现了对多样性XML近似查询过程中Top-K个查询答案的顺序求解
1)对XML文档树中的结点按如下方式进行编码regionCode=(begin,end,pathcost,Cinse),式中,begin代表对文档树进行前序遍历时结点的序号,end是遍历完该结点的所有子孙结点后再一次访问该结点时的序号,pathcost是该结点所有祖先结点的插入代价的总和,Cinse是该结点的插入代价;
2)利用公式Cinse(v1,v2)=pathcost(v2)-pathcost(v1)-Cinse(v1)计算在变异查询树的精确嵌入过程中它所包含的AD关系的结构谓词(v1,v2)嵌入到文档树中所需插入到v1和v2之间的结点代价之和,其中,v1是v2的祖先结点;
3)对精确嵌入所需满足的条件扩展为在查询树中指定为PC关系的结构谓词在文档树中进行嵌入时,可以扩展为祖先后代关系进行完全匹配;
4)从查询闭包Q*中按如下条件Min(|Answer(Qi’)-K|)=|Answer(Qb’)-K|(1<i<n),选取最优变异查询树Qb’,其中,Qi’代表Q*中的任意变异查询树;
5)对Q*中的所有的Q’按CQ从低到高排序,并从Q*中弹出Qb’作为当前变异查询树;
6)对当前变异查询树和文档集Ds执行精确嵌入,在精确嵌入过程中,扩展为AD关系的结构谓词,在变异查询树中被指定为PC关系,它所在的文档树也将被保留,同时计算在PC关系的结构谓词嵌入过程中所需的插入代价Cinse,如果有满足精确嵌入的四个条件的查询结果,就将其放入查询结果集中,并用Cinse和CQ之和来衡量当前查询结果的匹配近似度;
7)如果Q*为空,则返回步4),否则转一下步;
8)如果当前查询结果集中的结果个数小于K,则从Q*中的当前位置顺序弹出下一棵变异查询树Q’作为当前变异查询树,并转步7);否则转下一步;
9)从查询闭包中按查询代价从小到大顺序弹出Qb’之前的变异查询树,并对步7)中累积得到的结果文档集逐次进行精确嵌入,同时用这些变异查询树的Cinse和CQ的代价之和来进一步确认每次精确嵌入后返回的查询结果和查询Q的近似程度,并按其近似度值插入到查询结果集的适当位置中去,最后返回K个按近似度由高到低排列的结果文档序列给用户。
全文摘要
本发明公开了一种基于多样性XML文档的XML近似查询方法,XML文档多样性处理模块采用基于PTO模型的映射规则自动生成算法将用户在全局查询模式下提出的原始查询重写为不同DTD下的重写查询树;单DTD下XML文档近似查询模块采用基本变异操作对重写查询树进行查询变异,利用得到的查询闭包并结合多次精确嵌入对单DTD下的XML文档集实现了近似查询;查询代价评估模块采用基于XML样本数据分布统计的方法,计算了每一个查询结果的查询代价;本发明针对多样性XML文档不仅能够返回精确查询结果,还能及时的返回带有相似度分值的近似结果序列。
文档编号G06F17/30GK101114291SQ20071001853
公开日2008年1月30日 申请日期2007年8月24日 优先权日2007年8月24日
发明者征 覃, 衡星辰, 邵利平, 山 姜 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1