CN102043802B - 基于结构摘要的xml关键字检索方法 - Google Patents

基于结构摘要的xml关键字检索方法 Download PDF

Info

Publication number
CN102043802B
CN102043802B CN 200910197333 CN200910197333A CN102043802B CN 102043802 B CN102043802 B CN 102043802B CN 200910197333 CN200910197333 CN 200910197333 CN 200910197333 A CN200910197333 A CN 200910197333A CN 102043802 B CN102043802 B CN 102043802B
Authority
CN
China
Prior art keywords
node
tree
coding
xml
structural
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
Application number
CN 200910197333
Other languages
English (en)
Other versions
CN102043802A (zh
Inventor
潘凌云
杨卫东
方非
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fudan University
Shanghai Aircraft Manufacturing Co Ltd
Original Assignee
Fudan University
Shanghai Aircraft Manufacturing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fudan University, Shanghai Aircraft Manufacturing Co Ltd filed Critical Fudan University
Priority to CN 200910197333 priority Critical patent/CN102043802B/zh
Publication of CN102043802A publication Critical patent/CN102043802A/zh
Application granted granted Critical
Publication of CN102043802B publication Critical patent/CN102043802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种XML关键字检索方法,包括以下步骤:a.对一个XML树进行深度优先遍历,建立所述XML树的结构摘要树,并对所述结构摘要树的所有节点以及所述XML树的所有叶子节点分别进行编码,以得到各个叶子节点的编码和各个结构摘要树节点的编码;b.对所述各个叶子节点以及各个结构摘要树节点,以其各自的节点名称或文本值为键,以其各自的编码为值,建立倒排索引;c.由所述结构摘要树中计算出最小最低公共祖先节点;d.基于计算出的最小最低公共祖先节点,构造出检索返回结果。

Description

基于结构摘要的XML关键字检索方法
版权声明
本专利申请文件中包含受版权保护的内容,版权所有者对其它单位或个人在本专利申请由中国国家知识产权局公开之后对该内容进行的翻印没有异议,但保留就其它单位或个人针对该内容所进行的其它行为主张版权的所有权利。
技术领域
本发明涉及关键字检索,尤其涉及XML关键字检索。
背景技术
关键字检索因易于使用而广泛应用于信息检索领域。使用关键字检索,用户无须掌握复杂的查询语言,也无需了解XML文档的模式,便可以找到他们感兴趣的内容。由于XML已经成为构造网页和企业间进行信息描述和交换的标准,针对XML文档所进行的关键字检索(下称XML关键词检索)因而具有极其广阔的应用前景。
目前,与XML关键字检索相关的大部分研究都基于最低公共祖先(LCA),其中最具代表性的是由Yu Xu,Yannis Papakonstantinou在SIGMOD’2005上发表的Efficient Keyword Search for Smallest LCAs inXML Databases一文中的XKSearch中提出的最小最低公共祖先(SLCA),其中,以SLCA节点为根节点所返回的子树被认为是对用户有意义的。XKSearch中基于对LCA的计算来计算SLCA节点。LCA的最简便的计算方法是对文档中的元素和文本节点进行Dewey编码,然后对Dewey编码的结果计算最小公共前缀来得到LCA。XRANK、MLCA、XSEarch、VLCA等本质上与SLCA类似,不再赘述。XSeek、MaxMatch则探讨了如何在SLCA的基础上组织返回结果。关于XKSearch,可详见http://portal.acm.org/citation.cfm?id=1066217
发明内容
本发明的申请人意识到,使用关键字来对XML进行检索,有以下关键性问题需要解决:
1.如何准确地定义关键字检索的语义
鉴于关键字的模糊检索的本质,其语义的定义显得十分重要。
2.如何建立合适高效的检索机制
Dewey编码的编码方式决定了对文档建立的索引中存在着许多的冗余和重复信息,使得文档的索引通常比文档还要大许多。图1a示出了对一个XML片段进行Dewey编码的例子。基于Dewey编码,可以方便直观地确定两个节点间的相互关系,并能迅速确定节点在树中的位置。Dewey编码的缺陷是存在较多的冗余信息,例如,图1(a)所示的XML树中的叶子节点Bob(0.0.0.0)的Dewey编码已经包含了该节点所有的路径信息,而author(0.0.0)又重复了对这个路径的编码。
3.如何让检索能够返回合适的结果
目前,对于以SLCA节点作为关键字检索的语义,返回的结果难以有效的组织。
基于对上述技术问题的认识,在本发明中,提出了一种基于结构摘要的XML关键字检索方法,其具体包括以下方面:
1)提供了XKSS索引建立方法,结合结构摘要技术来优化XML关键字检索的索引大小;
2)提供了在XKSS索引基础上计算SLCA的方法;
3)提供了利用XKSS来构造最小连通树的方法。
其中,结构摘要(structure summary)是一种由XML数据得到的对XML结构的近似描述,它以XML树结构中节点的路径信息为基础,对XML文档树的节点和路径进行约简,通常应用于对xPath等查询的路径进行快速查找匹配。它的特点是所有重复的节点和路径只在该结构摘要里出现一次,换言之,在结构摘要中不会存在两个具有相同路径的节点。对于一个XML文档而言,结构摘要是很小的,例如,图1a所示的XML文档的结构摘要如图1b所示。
XML小枝模式查询本质上是具有针对XML文档结构和内容的选择谓词的查询。将一组小枝模式与随时到达的XML文档进行匹配是XML流数据处理的核心操作。
在结构摘要索引方面也有许多相关的研究,其中,DataGuide最早被提出并应用于Stanford大学的Lore项目中。DataGuide的基本思想是将NFA转换为DFA的方法应用到归约XML树上的相同路径中。DataGuide是一个比较粗略的结构摘要,其中可能包含实际数据中并不存在的路径信息,所以,后来又陆续提出了一些基于双似(bisimilar)等价概念的结构摘要,如1-index和xSKETCH,以及后来放松双似的条件得到k阶双似的A(k)-indexes。
根据本发明的一个方面,提供了一种能高效地实现XML关键字检索的方法,其中,本发明所提供的用于XML关键字检索的XML索引记为XKSS,上述方法包括以下步骤:
a.将传统的使用Dewey编码建立索引的方法进行扩展,对XML树的叶子节点和结构节点分开进行编码;
b.将编码后的数据按值和标签分别建立倒排索引;
c.基于XKSS索引,对SLCA的计算算法进行改进,从而利用XKSS索引计算出SLCA节点。
附图说明
通过以下结合附图对本发明至少一个非限定性实施例所作的描述,本发明的其它特点、优势将会显得更为清楚和明显。其中:
图1a示出了对一个XML片段进行Dewey编码的例子;
图1b示出了图1a所示XML文档的结构摘要;
图2a-2b示出了根据本发明的一个具体实施例所建立起来的结构摘要树和编码;
图3a-3c示出了一个根据SLCA建立最小连通树的过程;
图4示出了本发明与现有技术在索引大小上的实验比较结果;
图5示出了本发明与现有技术在算法执行时间上的实验比较结果,其中,标签含关键字;
图6示出了本发明与现有技术在算法执行时间上的实验比较结果,其中,标签不含关键字。
在附图中,相同或相似的附图标记表示相同或相似的技术特征。
具体实施方式
以下将结合具体实例来对本发明进行详述,下文总体上分为两个部分,第一部分主要涉及XML关键字检索的语义定义,第二部分则涉及上述的XKSS索引的建立以及在此基础上的SLCA计算。
一、XML关键字检索的语义
前已述及,XML关键字检索的一个重要问题是确定关键字检索的语义,即确定用户对XML的哪些部分感兴趣。这样,可以避免返回过多与关键字无关的信息。当前的研究主要以LCA为基础来确定XML关键字检索的语义,而其中最普遍采用的是XKSearch提出的SLCA概念,这些概念的详细定义将通过下文的描述而变得更加清楚。
通常,XML文档会被表示为树的模型,对于一个XML树T,其中的每个节点v都会对应于XML文档中的元素。一般地,假定文本节点只出现在叶子节点中,对文档结构的描述则通常出现在非叶子节点,也称语义节点。为了方便描述,本文中用Label(v)表示节点v的标签名,Text(v)表示节点v的文本值,Depth(v)表示v在树T中的深度。如果用Dewey编码表示,一个节点的Dewey编码的长度就是该节点的深度。如果在树T中的节点v是w的祖先,则表示为v<w;
两个节点的LCA是指这两个节点的公共祖先中深度最大的节点。
给定两个节点a,b的Dewey编码,这两个Dewey编码的最大前缀就是a,b的LCA节点的Dewey编码。
给定一系列关键字w1,w2...wk,对于其中的每个关键字wi,在XML树T中能够找到一个与之对应的节点集合Si,这个节点集合Si中的每个节点都包含wi
本文中,称LCA(S1,S2...Sk)为关键字的LCA节点集合。
同样,对于节点集合S1,S2...Sk,当且仅当以下条件同时满足时,v∈SLCA(S1,S2...Sk):
1.V∈LCA(S1,S2...Sk);
2.不存在任何的w满足w∈LCA(S1,S2...Sk);以及
3.v<w。
给定一系列关键字w1,w2...wk和XML树T,w1,w2...wk的应答子树是指T的一个包含每个关键字至少一个实例的子树。w1,w2...wk的最小应答子树满足以下条件:
1.本身是一个应答子树;
2.该子树自身的各子树中,没有一个是应答子树。
给定一系列关键字w1,w2...wk和XML树T,w1,w2...wk的最小连通树是指以SLCA(w1,w2...wk)为根节点,只包含从根节点到w1,w2...wk的路径上所有节点的树。
二、XKSS索引的建立和SLCA的计算
在实际的XML数据库中,索引量通常会十分的庞大。而XKSS通过引进结构摘要的概念,采用对XML文档的叶子节点单独进行编码,其他节点使用结构摘要树的方式对其结构进行编码,大幅度地约简了XML中相同的路径信息,减少了需要编码的节点数量。所以整个文档树的编码被分为两部分:文本节点编码和结构摘要树编码。最后再对两种编码分别建立索引。该方法能够大幅度压缩索引大小的主要原因就在于使用结构摘要树的编码信息来代替文档中的所有非叶子节点的编码,而结构摘要树的大小是远远小于XML树本身。
XKSS索引的建立和使用分别在两个阶段进行:预处理(pre-process)阶段和运行时(run-time)阶段。
预处理阶段,通过对XML文档进行深度优先遍历,使用Dewey编码的方式对节点进行编码,同时建立文档的结构摘要树,结构摘要树也用Dewey编码表示,两部分编码在一次遍历中同时完成。最后对文档中的叶子文本节点以及结构摘要树中的节点的Dewey编码以节点值为键分别建立倒排索引。
运行时阶段,用户提交关键字查询,通过倒排索引找出包含关键字的节点,利用SLCA算法计算出SLCA节点的Dewey编码值,由于索引的只是叶子节点,所以并不能根据SLCA的Dewey编码得到真正的SLCA节点。这时候可以利用SLCA的Dewey编码和结构摘要索引找出实际的SLCA节点。
XKSS分别对XML文档树中的文本节点和该文档的结构摘要树进行索引。结构摘要的建立需要对XML文档进行遍历,可以利用对XML文档进行Dewey编码的同时建立起XML文档的结构摘要。
最后建立起来的结构摘要树和编码如图2a-2b所示。其中,图2a是对文本节点的编码,索引时只对包含文本值的节点保留编码并索引。每个节点v的编码采用(Dcode,id)的形式,其中,Dcode是节点v在XML树中的Dewey编码,id代表节点v的双亲节点的标识,通过该标识可以在结构摘要树中找到v的双亲节点的位置。图2b则是图2a中文档的结构摘要树,也同样使用Dewey编码,不同的是结构摘要树的根节点被编码为1,于是,所有节点的编码都以1开头,从而实现与原文档树的编码的区分。图中用圆点标出的节点是文本节点的双亲节点,同样用(Dcode,id)的形式编码,其中,Dcode是该节点在结构摘要树中的Dewey编码,id代表该节点的一个标识,这个标识与文档树中文本节点的标识相对应,通过这个标识,文本节点可以找到自己的双亲节点。
对XML文档进行Dewey编码的方法十分直观,建立结构摘要树的方法可以参照建立DataGuide的算法。无论是对文档进行Dewey编码还是建立结构摘要树都需要对文档进行一次遍历,所以我们将这两个过程结合在一次文档遍历中完成。完成了对整个XML树以及这棵的结构摘要树的编码之后,接着对XML树中的文本叶子节点和结构摘要树中的节点以节点名称或者文本值为键,Dewey编码为值建立倒排索引,而XML树中的所有非叶子节点的编码则不会进行索引。使用结构摘要树中的节点代替了原来XML树中的所有非叶子节点进行索引,大大的减少了进行索引的节点数量,这也是XKSS索引远小于比原始索引方法的重要原因。
上述建立XKSS索引的算法还可以表示为:
Figure G2009101973337D00071
算法1:XKSS索引的建立
使用结构摘要对索引进行压缩,可以有效的减少索引的大小。然而索引中结构摘要树代替了整个文档的结构信息,所以必须能从结构摘要中计算出SLCA节点,并且构造出最终的返回结果。
用户提出的关键字,可能是对文本节点的查询例如Bob,也可能代表的是用户希望查询的语义例如author。对于文本节点,已经有了完整的索引,可以直接采用SLCA算法计算;而对于语义节点,由于本例中只保留了其结构信息,因此在本发明的一个实施例中,提出了基于XKSS的SLCA计算算法,实验也证明了该算法的正确性。
首先,给定关键字w1,w2...wk,wk+1,wk+2...wj,本例中,将关键字分为两类,关键字w1,w2...wk出现在文本节点中,是对文本节点的查询,关键字wk+1,wk+2...wj出现在语义节点中,是对查询语义的补充。
本例中,上述两类关键字间被分开处理,对于w1,w2...wk,从索引中找到包含这些关键字的节点集S1,S2...Sk,然后通过SLCA算法计算得到所有S1,S2...Sk的SLCA节点的Dewey编码,这些Dewey编码并不能在索引里找到相应的节点,因为中间节点并不会被索引,所以需要利用结构摘要找到真正的SLCA节点。
下面给出的函数可以由一个SLCA节点的Dewey编码得到它在结构摘要树中的编码和名称。如果关键字没有出现在语义节点中,则SLCA就已经被计算出来了。如果有关键字出现在了语义节点中,那么还需要进行进一步的计算,归纳上述情况,提出了算法SSB-SLCA,以下还将得到详述。
上述计算SLCA的算法还可以表示为(该算法的描述整体移入本说明书的下一页):
Figure G2009101973337D00091
算法2:基于XKSS索引计算SLCA
如果以最小应答子树为结果,则在最坏的情况下可能会返回整个XML文档,其中以SLCA为根节点。本例中,讨论如果利用结构摘要来得到最小连通树作为返回结果。
由之前的工作可以得到关键字的SLCA节点集在结构摘要树中的Dewey编码,利用这个Dewey编码可以采用bottom-up算法构造出关键字的最小连通子树。
算法3:应用XKSS索引构造最小连通树
输入:SLCA节点v’和包含关键字的节点v1,v2...vk
输出:以v’为根节点的一个最小连通树Ta
步骤1:将v1,v2...vk作为叶子节点加入Ta
步骤2:对于v1,v2...vk中的每一个节点vi,找到结构摘要树中id为vi.id的节点vi’,作为vi的双亲节点加入Ta,同样在结构摘要树中找到vi’的双亲节点,并将其加入Ta中作为vi’在Ta中的双亲节点,直到SLCA节点v’加入Ta
步骤3:根据每个vi的Dewey编码为信息将Ta中的节点拆分成满足每个vi的Dewey编码的路径信息。
同样以一个例子来说明算法的执行过程。同样在图2a所示XML文档中提出关键字为『James,Editorial,Bob,SignalML』,那么经过算法2的计算,将会得到这样的结论:SLCA节点为图2b中的dblp(0)节点。执行算法3,Ta将会如图3所示的过程被建立。
首先执行上述步骤1,得到图3a的结果,所有包含关键字的叶子节点被加入Ta。然后执行上述步骤2,根据结构摘要树的结构,自底向上的将节点加入Ta。由于结构摘要树中的节点是经过合并的,所以还需要根据叶子节点的Dewey编码将其中实际节点展开。例如图3b中的Bob和SignalML的Dewey编码的前两位是0.0,而James和Editorial的Dewey编码的前两位是0.1000,这说明在树的第2层,Bob和SignalML拥有同一个祖先,而James和Editorial拥有同一个祖先,于是将树中第2层的article节点一分为二,分别作为Bob,SignalML以及James,Editorial的祖先节点。
通过执行上述步骤3,将得到图3c所示的结果。
为了证明本发明相比于现有技术的种种优势,申请人特别进行了实验比较,具体结果如图4-6所示。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在所附权利要求的范围内做出各种变形或修改。

Claims (4)

1.一种XML关键字检索方法,包括以下步骤:
a.对一个XML树进行深度优先遍历,建立所述XML树的结构摘要树,并对所述结构摘要树的所有节点以及所述XML树的所有叶子节点分别进行编码,以得到各个叶子节点的编码和各个结构摘要树节点的编码;
b.对所述各个叶子节点以及各个结构摘要树节点,以其各自的节点名称或文本值为键,以其各自的编码为值,建立倒排索引;
c.由所述结构摘要树中计算出最小最低公共祖先节点;
d.基于计算出的最小最低公共祖先节点,构造出检索返回结果;
其中,所述步骤d包括:
-以最小最低公共祖先节点v’和包含关键字的节点v1,v2…vk作为输入,得到一个以v’为根节点的最小连通树Ta,作为输出,
其中,用户提交关键字查询,通过倒排索引找出包含关键字的节点,并利用结构摘要来得到最小连通树作为返回结果。
2.根据权利要求1所述的方法,其中,所述步骤a包括:
-通过一次深度遍历,使用Dewey编码对所述XML树的叶子节点进行编码,并建立所述结构摘要树,并用Dewey编码表示所述结构摘要树,从而得到各个叶子节点的编码和各个结构摘要树节点的编码。
3.根据权利要求1所述的方法,其中,所述步骤c包括:
-找出包含用户提供的关键字的节点;
-利用最小最低公共祖先节点算法计算出最小最低公共祖先节点的Dewey编码;
-利用最小最低公共祖先节点的Dewey编码和结构摘要索引找出SLCA节点。
4.根据权利要求1所述的方法,其中,所述步骤d包括:
d1.将v1,v2…vk作为叶子节点加入Ta
d2.对于v1,v2…vk中的每一个节点vi,在结构摘要树中找到一个双亲节点的标识为vi.id的节点vi’,将vi’作为vi的双亲节点加入Ta,以及,在结构摘要树中找到vi’的双亲节点,并将其加入Ta中作为vi’在Ta中的双亲节点,直到v’被加入Ta
d3.根据每个vi的Dewey编码,将Ta中的节点拆分为满足每个vi的Dewey编码的路径信息。
CN 200910197333 2009-10-16 2009-10-16 基于结构摘要的xml关键字检索方法 Active CN102043802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910197333 CN102043802B (zh) 2009-10-16 2009-10-16 基于结构摘要的xml关键字检索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910197333 CN102043802B (zh) 2009-10-16 2009-10-16 基于结构摘要的xml关键字检索方法

Publications (2)

Publication Number Publication Date
CN102043802A CN102043802A (zh) 2011-05-04
CN102043802B true CN102043802B (zh) 2013-09-25

Family

ID=43909944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910197333 Active CN102043802B (zh) 2009-10-16 2009-10-16 基于结构摘要的xml关键字检索方法

Country Status (1)

Country Link
CN (1) CN102043802B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102867054A (zh) * 2012-09-13 2013-01-09 江苏乐买到网络科技有限公司 一种xml关键字查询方法
CN111339457B (zh) * 2018-12-18 2023-09-08 富士通株式会社 用于从网页抽取信息的方法和设备及存储介质
CN110245248B (zh) * 2019-05-31 2022-10-21 河南大学 一种遥感影像关键字查询方法
CN112749301B (zh) * 2020-10-12 2022-09-30 河南大学 一种海量遥感元数据模糊xml的关键字查询方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585945A (zh) * 2001-09-28 2005-02-23 甲骨文国际公司 用于将xml模式映射到对象关系数据库***的机制
CN101091181A (zh) * 2004-10-05 2007-12-19 尤尼西斯公司 保存和恢复互锁树数据库

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585945A (zh) * 2001-09-28 2005-02-23 甲骨文国际公司 用于将xml模式映射到对象关系数据库***的机制
CN101091181A (zh) * 2004-10-05 2007-12-19 尤尼西斯公司 保存和恢复互锁树数据库

Also Published As

Publication number Publication date
CN102043802A (zh) 2011-05-04

Similar Documents

Publication Publication Date Title
JP4516566B2 (ja) Xml文書とリレーショナルデータと間のマッピングにおける階層情報の保持
Fegaras et al. Query processing of streamed XML data
Holland et al. Choosing a data model and query language for provenance
US20040128296A1 (en) Method for storing XML documents in a relational database system while exploiting XML schema
US20060206466A1 (en) Evaluating relevance of results in a semi-structured data-base system
CN107992608B (zh) 一种基于关键字上下文的sparql查询语句自动生成方法
JP2009518718A (ja) Xmlのための簡素インデックス構造
US20070078816A1 (en) Common sub-expression elimination for inverse query evaluation
CN102043802B (zh) 基于结构摘要的xml关键字检索方法
CN100397397C (zh) 基于关系数据库的xml数据存储与访问方法
CN101615190B (zh) 安全的xml关键字检索方法
CN101833588B (zh) 一种xml文档索引结构
CN103294791A (zh) 一种可扩展标记语言模式匹配方法
CN102033956A (zh) 具有智能提示功能的图形化xml内容和结构查询***
CN1560763B (zh) 一种可扩展标记语言路径查询翻译为结构查询的方法
CN1564161A (zh) 一种构造和浏览语义链的方法
Qin et al. Efficient XML query and update processing using a novel prime-based middle fraction labeling scheme
Raji et al. RDF approach on social network analysis
KR20080008573A (ko) Xml 데이터로부터 연관규칙을 추출하기 위한 방법
Chung et al. Extracting indexing information from XML DTDs
Zhang et al. Odaies: ontology-driven adaptive Web information extraction system
CN102867054A (zh) 一种xml关键字查询方法
Kung et al. A novel twig-join swift using SST-based representation for efficient retrieval of internet XML
Álvarez-García et al. Graphgen: A tool for automatic generation of multipartite graphs from arbitrary data
Chavez et al. Rdf-based model for encoding document hierarchies

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