【技术实现步骤摘要】
本专利技术属于数据管理
,具体涉及一种利用文档类型定义(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数据流关键字搜索方法,其特征在于具体步骤如下: (1)将用户提交的关键字搜索定义为XML搜索项的集合,每一个XML搜索项由一个关键字和包含该关键字的标签组成;将关键字搜索的语义定义为语义独立的最小最低公共祖先,记为MISLCA,将查询结果定义为语义独立的最小连通树,记为MIMCT;从而为用户提供友好搜索界面; (2)将XML数据流的文档类型构造为一个简化DTD图; (3)将用户提交的关键字和XML数据流的简化DTD图结合在一起,找出从DTD图的根到关键字的所有可能的查询路径,进而通过共享所有可能查询路径的前缀,构造关键字的查询图; (4)在查询图的基础上构造支持正向状态转移和状态回溯的查询状态机,利用查询状态机,对XML数据流和返回结果的缓存进行单遍扫描和查询处理; (5)为了进一步提高系统性能,定义查询状态机的最终接受状态,在遇到最终接受状态时,状态机停止执行: 其中,所述的XML关键字搜索项、XML关键字搜索语义以及返回结果定义如下: 定义1.搜索项,简称为ST:一个搜索项t是一个XML文档标签和它包含的关键字组 ...
【技术特征摘要】
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到...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。