当前位置: 首页 > 专利查询>复旦大学专利>正文

基于文档类型定义的XML数据流关键字搜索方法技术

技术编号:2828990 阅读:370 留言:0更新日期:2012-04-11 18:40
本发明专利技术属于数据管理技术领域,具体为一种基于文档类型定义的XML数据流关键字搜索方法。本发明专利技术包括:将关键字搜索的语义定义为语义独立的最小最低公共祖先,将查询结果定义为语义独立的最小连通树,从而能够有效处理XML数据流;对纯粹关键字搜索语法进行简单扩充,每一个搜索项由一个关键字和包含该关键字的标签组成;基于文档类型定义,将关键字搜索细化为查询图,在查询图的基础上构造支持正向状态转移和状态回溯的查询状态机,对XML数据流和返回结果缓存进行单遍扫描和处理。本发明专利技术能够有效支持XML格式数据流的关键字搜索,搜索语法简单、搜索效率高,可应用于互联网内容监测、互联网信息发布与订阅、Web服务消息过滤等领域。

【技术实现步骤摘要】

本专利技术属于数据管理
,具体涉及一种利用文档类型定义(DTD),对可扩充标记 语言(XML)数据流进行关键字搜索的方法。
技术介绍
人们在20世纪90年代初,提出了数据流处理模型。与传统数据库技术不同,它的特 点是数据是在线、实时到达的,到达次序不受应用控制;査询是持续的;由于数据流是 无限的,将到达的数据流存储在本地后再进行处理是不现实的。加州大学伯克利分校的 Telegraph [16'17],斯坦福大学的STREAM [18]项目等项目的研究重点是关系型数据流管 理技术(也称为基于元组的数据流)。如今,XML已经成为Web上和企业间的信息描述和信 息交换的标准。不同于关系型数据流,XML流是自描述的,内容与结构混杂在一起,具有 层次、嵌套的结构,其数据是有序的,通常以记号(token)的方式进行处理。因此,XML 流处理技术引起广泛的研究兴趣。迄今为止,几乎所有关于XML流处理的研究[1'2'3]都采用XPathW或XQueryW这样的完全 结构化的査询语言。这类结构化查询语言的优点是能够表达准确用户的査询语义和想要的 返回结果,但是,对于一般用户(尤其是Web用户)而言过于复杂,难以学习。即使用户完 全掌握了査询语言,由于不了解XML流背后的结构,也难以写出正确的查询。关键字搜索 广泛应用于信息检索领域,取得了巨大的成功。其优点是为用户提供了友好的搜索界面, 已经被广泛接受,并且用户不需要了解XML的结构。然而,从另一方面讲,由于缺乏对XML 文档结构的了解以及过于简单的搜索界面,会带来一些严重的缺点首先,利用纯粹的关 键字难以甚至不可能准确地表达用户的査询语义;其次,用户不能说明要返回的XML片断 是什么。XML文档或XML数据库上的关键字搜索是近年来数据管理领域中的一个热点w'。'11』, 比较著名的有XKeyword[1°]、 XKSearch[7]、 XSearch[8]、 XRANK[9] 、 XSeek[切等。但是,这些 工作与本专利技术有两点重要区别。 一是本专利技术处理的是XML数据流,是一个新的研究问题。 这与XML文档或XML数据库的査询处理方法有着根本区别XML数据库中,XML数据是持 久存储的,而查询是即时发出的;在查询时可以多次扫描XML文档,对其进行索引和查询 优化。而在XML流中,査询是持续的,而数据流是无限的、实时的、以预先无法知道的顺序到达,因而只能单遍扫描、并在少量的内存中加以处理。第二个主要区别是关于关键字 的搜索语义,即到底哪部分XML文档片段是用户真正感兴趣的内容。这是进行关键字搜索 的一个根本问题。目前,XML文档或XML数据库搜索的相关工作大都认为,最小最低公共 袓先(SLCA)是对用户有意义的XML片段,例如XKSearch'开发了 SE和ILE算法来计算SLCA。 Li等人[6]将关键字搜索的语义定义为有意义的最低公共祖先(Meaningful Lowest Common Ancestor),其本质含义于SLCA相同。Vagelis等人[11]给出了计算包含关键字的结点的最 小连通树的方法。然而,对于递归文档和DTD中含有部分共享元素的情况下,类似SLCA 的概念会丢失部分对用户有意义的XML片段。因此,本专利技术定义了新的概念语义独立的 最小最低公共祖先(MISLCA),将其作为XML关键字搜索的语义,并用语义独立的最小连通 树(MIMCT)作为查询结果返回给用户。到目前为止,涉及到XML流上的关键字査询只有参考文献[19],它没有考虑如何利用DTD 所蕴含的相关信息。但是,在很多XML流的应用中,例如网站的个性化推荐服务等,服务 提供商预先知道XML文档的DTD。而利用XML流的DTD,可以明显提高查询处理的性能。 与参考文献[19]相比,本专利技术除了在搜索语义上与之不同之外(它使用的是最小最低公共祖 先),另一点是首次考虑在己知DTD的情况下,如何在XML流上进行高效的关键字搜索。
技术实现思路
本专利技术的目的在于提出一种能够利用DTD有效实现针对XML数据流的关键字搜索方 法,以便能在单遍扫描XML数据流的情况下处理关键字搜索,同时保持较低的内存耗费、 有效进行返回结果的缓存管理。本专利技术提出的利用DTD实现XML数据流的关键字搜索方法是基于査询自动机的方 法,可以记为XDSearch。方法的具体步骤如下(1) 将用户提交的关键字搜索定义为XML搜索项的集合,每一个XML搜索项由一 个关键字和包含该关键字的标签组成;将关键字搜索的语义定义为语义独立的最小最低公 共祖先,记为MISLCA,将査询结果定义为语义独立的最小连通树,记为MIMCT;从而 为用户提供友好搜索界面;(2) 将XML数据流的文档类型构造为一个简化DTD(3) 将用户提交的关键字和XML数据流的简化DTD图结合在一起,找出从DTD图 的根到关键字的所有可能的查询路径,进而通过共享所有可能査询路径的前缀,构造关键 字的査询(4) 在查询图的基础上构造支持正向状态转移和状态回溯的查询状态机,利用查询 状态机,对XML数据流和返回结果的缓存进行单遍扫描和查询处理; (5)为了进一步提高系统性能,定义査询状态机的最终接受状态,在遇到最终接受状 态时,状态机停止执行。下面对具体内容给予详细描述1. 友好的搜索界面当前,XML文档的关键字搜索界面主要是输入一组关键字(当前研究将各个关键字之间 的关系默认为〃与〃),我们将之称为纯关键字搜索。例如,对于图1所示的XML文档片段, 如果用户要搜索Kasitij Sheth和Amit Sheth两个人共同发表的文章题目,则可输入关 键字〃Kasitij Sheth、 Amit Sheth〃和〃title〃,其中关键字可以是标签包含的值(如 Kasitij Sheth〃),也可以是标签名(如〃title〃)。这种纯关键字搜索广泛应用于信息检 索领域,取得了巨大的成功。其优点是为用户提供了友好的搜索界面,并且用户不需要了 解XML的结构。然而,从另一方面讲,由于缺乏对XML文档结构的了解以及过于简单的搜 索界面,用户难以甚至不可能准确地表达用户的查询语义,例如,同样的Kasitij Sheth 和Amit Sheth不仅可能出现在作者名中,也可能出现在文章名、地址名等中,这时,用 户可能搜索到很多无关的结果。本专利技术对纯关键字搜索的语法进行简单扩充。除了允许用 户输入关键字,还允许用户选择XML标签(由服务器方提供相应的标签信息)。本专利技术将XML 标签-关键字称为搜索项。在一个搜索项中,标签直接包含关键字,可能出现在XML文 档中。用户的搜索由一系列搜索项组成。下面给出相关定义。定义1.搜索项(Search Term,简称为ST)。 一个搜索项t是一个XML文档标签和它 包含的关键字组成的对,表示为t-s:w,其中,s表示XML文档标签,w表示标签s包含的 关键字。关键字可以为空。用户提交的查询Q(S)是搜索项的集合S-UU…,t。。例如,针对图1,用户若要査询Kasitij Sheth和〃Amit Sheth共同发表的文章的 title,可以给出査询Q!(S),包含搜索项th t2, t3。其中,t!= name : 〃Kasitij Sh本文档来自技高网
...

【技术保护点】
一种基于文档类型定义的XML数据流关键字搜索方法,其特征在于具体步骤如下:    (1)将用户提交的关键字搜索定义为XML搜索项的集合,每一个XML搜索项由一个关键字和包含该关键字的标签组成;将关键字搜索的语义定义为语义独立的最小最低公共祖先,记为MISLCA,将查询结果定义为语义独立的最小连通树,记为MIMCT;从而为用户提供友好搜索界面;    (2)将XML数据流的文档类型构造为一个简化DTD图;    (3)将用户提交的关键字和XML数据流的简化DTD图结合在一起,找出从DTD图的根到关键字的所有可能的查询路径,进而通过共享所有可能查询路径的前缀,构造关键字的查询图;    (4)在查询图的基础上构造支持正向状态转移和状态回溯的查询状态机,利用查询状态机,对XML数据流和返回结果的缓存进行单遍扫描和查询处理;    (5)为了进一步提高系统性能,定义查询状态机的最终接受状态,在遇到最终接受状态时,状态机停止执行:    其中,所述的XML关键字搜索项、XML关键字搜索语义以及返回结果定义如下:    定义1.搜索项,简称为ST:一个搜索项t是一个XML文档标签和它包含的关键字组成的对,表示为t=s∶w,其中,s表示XML文档标签,w表示标签s包含的关键字;关键字可以为空;用户提交的查询Q(S)是搜索项的集合S=t↓[1],t↓[2],…,t↓[n];    定义2.语义独立的最小最低公共祖先,简称为MISLCA:给定一颗XML树T,V表示树T中所有结点的集合;*n↓[d]∈V,n↓[a]∈V,如果n↓[d]是n↓[a]的后裔或等于n↓[a],称为n↓[d]与n↓[a]具有后裔或自身关系,记为n↓[d]≤n↓[a];如果n↓[d]≠n↓[a],则记为n↓[d]<n↓[a];再给定一个关键字列表w↓[1],…,w↓[k],假定用S↓[i]表示对应关键字w↓[i]的结点集合,S↓[i]∈V,即S↓[i]中元素的标记直接包含关键字w↓[i];将关键字列表w↓[1],…,w↓[k]的最低公共祖先(LCA)表示为LCA(S↓[1],…,S↓[k]),将最小最低公共祖先(SLCA)表示为SLCA(S↓[1],…,S↓[k]);假定v↓[1],…v↓[k]是S↓[1],…,S↓[k]的所有MISLCA,记为MISLCA(S↓[1],…,S↓[k]);开始MISLCA(S↓[1],…,S↓[k])为空,那么,    (1...

【技术特征摘要】
1、一种基于文档类型定义的XML数据流关键字搜索方法,其特征在于具体步骤如下(1)将用户提交的关键字搜索定义为XML搜索项的集合,每一个XML搜索项由一个关键字和包含该关键字的标签组成;将关键字搜索的语义定义为语义独立的最小最低公共祖先,记为MISLCA,将查询结果定义为语义独立的最小连通树,记为MIMCT;从而为用户提供友好搜索界面;(2)将XML数据流的文档类型构造为一个简化DTD图;(3)将用户提交的关键字和XML数据流的简化DTD图结合在一起,找出从DTD图的根到关键字的所有可能的查询路径,进而通过共享所有可能查询路径的前缀,构造关键字的查询图;(4)在查询图的基础上构造支持正向状态转移和状态回溯的查询状态机,利用查询状态机,对XML数据流和返回结果的缓存进行单遍扫描和查询处理;(5)为了进一步提高系统性能,定义查询状态机的最终接受状态,在遇到最终接受状态时,状态机停止执行其中,所述的XML关键字搜索项、XML关键字搜索语义以及返回结果定义如下定义1.搜索项,简称为ST一个搜索项t是一个XML文档标签和它包含的关键字组成的对,表示为t=s∶w,其中,s表示XML文档标签,w表示标签s包含的关键字;关键字可以为空;用户提交的查询Q(S)是搜索项的集合S=t1,t2,…,tn;定义2.语义独立的最小最低公共祖先,简称为MISLCA给定一颗XML树T,V表示树T中所有结点的集合;如果nd是na的后裔或等于na,称为nd与na具有后裔或自身关系,记为nd≤na;如果nd≠na,则记为nd<na;再给定一个关键字列表w1,…,wk,假定用Si表示对应关键字wi的结点集合,Si∈V,即Si中元素的标记直接包含关键字wi;将关键字列表w1,…,wk的最低公共祖先(LCA)表示为LCA(S1,…,Sk),将最小最低公共祖先(SLCA)表示为SLCA(S1,…,Sk);假定v1,…vk是S1,…,Sk的所有MISLCA,记为MISLCA(S1,…,Sk);开始MISLCA(S1,…,Sk)为空,那么,(1)SLCA(S1,…,Sk)都是S1,…,Sk的MISLCA,即MISLCA(S1,…,Sk)=MISLCA(S1,…,Sk)+SLCA(S1,…,Sk);(2)另外,如果nmislca是S1,…,Sk的MISLCA,即MISLCA(S1,…,Sk)=MISLCA(S1,…,Sk)+nmislca,当且仅当■nmislca∈LCA(S1,…,Sk)-MISLCA(S1,…,Sk),并且■则 nmislca<n′,并且,■以nmislca为根的最小连通树与SLCA(S1,…,Sk)为根的最小连通树的交集为空;(3)重复执行步骤(2),直到没有nmislca满足(2)中的条件;定义3.语义独立的最小连通树,简称为MIMCT给定一颗XML树T以及一个关键字列表w1,…,wk,w1,…,wk的最小连通树TMIMCT是指以该关键字列表的MISLCA为根的、连接MISLCA包含的所有关键字的最小子树;所述的简化DTD图的定义如下定义4.简化DTD可以看作一个有根的有向图SDG=(V,E),称为简化DTD图,其中,V表示有向图的所有结点构成的集合,是连接结点的边;(1)r∈V是DTD图指定的根,对于任一结点v∈V,都存在惟一的从r到v的有向路径;(2)结点v∈V对应元素或属性,边e∈E表示结点之间的包含父子关系,结点的标签名是元素或属性的名字;所述的关键字查询图的定义、构造方法如下定义5.查询图QG是一个9元组QG=(V’,E’,∑’,λ’,η,ρ’,root’,S’,W)(1)V’表示结点的有限集合;(2)∑’表示结点标签的有限集合;(3)λ’V’→∑是标签函数;λ(n)返回结点n的标签名字;(4)ρ’V’→∑’∪ε是父亲函数,ρ’(n)返回n的父亲结点;(5)root’∈V’是G’的根;(6)W=w1,…,wn表示关键字列表;(7)S’=s1,…,sm是直接包含W的结点;查询图的构造方法为给定一个输入XML树T的DTD,以及一个关键字查询Q(S),Q(S)包含的搜索项为t1,t2,t3…tn,搜索项中的关键字为w1,…,wn,包含关键字的标签为si,…,smm≤n,构造查询图的步骤如下(1)构造给定DTD的简化DTD图SDG;(2)V是SDG中的结点集合,r∈V是SDG的根,对于每一个si∈V,可以找出从r到...

【专利技术属性】
技术研发人员:杨卫东
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1