一种基于NFA查询重写的XML过滤技术2

合集下载

一种新的XML近似查询及排序方法

一种新的XML近似查询及排序方法

一种新的XML近似查询及排序方法
刘大昕;王桐
【期刊名称】《哈尔滨工程大学学报》
【年(卷),期】2006(027)B07
【摘要】对海量的、异构XML文档进行检索时,现有的查询语言如XPath,XQuery已无法胜任,需要将数据挖掘和信息检索两方面相结合进行近似查询.提出一种新的XML文档近似查询方法,首先根据提出的层次路径模型提取文档结构特征,进行向量空间映射.然后通过奇异值分解进行矩阵变换,在去除相关冗余的同时有效地降低了空间维数.目标文档的匹配在变换后的检索空间中进行,同时对返回的查询结果进行相似性排序.采用DBLP数据集进行测试,实验获得良好的查询及排序结果.
【总页数】4页(P407-410)
【作者】刘大昕;王桐
【作者单位】哈尔滨工程大学计算机科学与技术学院,黑龙江哈尔滨;150001
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.一种新的XML近似查询及排序方法
2.一种基于XML文档聚类的XML近似查询算法
3.一种基于XML小枝查询片段松弛的近似查询与结果排序方法
4.一种新的基
于索引的多版本XML文件的结构查询法5.一种基于语义相关度的XML关键字查询排序方法
因版权原因,仅展示原文概要,查看原文内容请购买。

基于两阶段查询重写的XML近似查询算法

基于两阶段查询重写的XML近似查询算法

基于两阶段查询重写的XML 近似查询算法衡星辰,覃 征,邵利平,曹玉辉,高洪江(西安交通大学电子与信息工程学院,陕西西安710049)摘 要: 提出了基于两阶段查询重写的XML 近似查询算法.该算法不仅能够返回精确查询结果,而且能够返回带有相似度分值的近似结果序列.首先,通过模式重写策略,将原始查询树改写为多种XML DTD(文档类型定义)下的重写查询树,从而解决了XML 数据的多样性带来的查询语义缺失问题,接着,利用基本变异操作得到的变异查询树对XML 数据树完成精确嵌入,可将XML 近似查询的问题转变为多棵变异查询树的精确查询问题,并给出了基于XML 数据统计的相似度计算模型和Top -K 问题求解的优化算法.最后,在汽车外形智能化设计的实验中表明该算法优于SSO 算法.关键词: XML 近似查询;基本变异操作;变异查询树;模式重写;异质XML 文档中图分类号: TP311 文献标识码: A 文章编号: 0372-2112(2007)07-1271-08Two -Phase Qu ery Rewriting Based Approximate XML Query AlgorithmHE NG Xing -chen,QI N Zheng,SHAO L-i ping,CAO Yu -hui,GAO Hong -jiang(School o f Elect ronics and In f o rmation Engine ering o f Xi .an Jiaotong Universit y ,Xi .an ,Shaanxi 710049,China)Abstract: A two -phase query rewriting based approximate XML (extensible markup language)query algorithm is proposed.The algorithm can not only return the exact answers,but als o return the sequence of approximated answers with similarity degree.Firstly,thro ugh the strategy of scheme rewriting,an original query tree is rewritten into query trees with different XML DTDs (doc -ument type definition)so as to so lve the problem of semantic loss due to the heterogeneous XML data.Secondly,the transformed query trees derived by the sequences of the basic transformation operations are used to perform exact embedding s into XML data tree,so as to transform the problem of approximate XML query into the problem of exact XML query for transformed query trees.Thirdly,XM L data distribution statistics based similarity degree computi ng model and optimization algorithm for Top -K problem are given.Finally ,the experi ments of intelligent design of automobile shape show our algorithm outperforms the SSO algorithm.Key words: approx imate XM L query;basic trans formation operation;transformed query tree;schema rewriting ;heteroge -neous XML documents1 引言近年来,随着X ML (e xte nsible ma rkup language)的出现,针对X ML 文档半结构化数据的查询算法的研究逐渐引起了国内外信息检索领域人们的关注[1~4].XML 为Internet 上的数据的描述和交换提供了一种事实上的标准,作为一种通用格式来存储和交换来自于多种数据源的数据信息.XML 文档具有灵活的表达能力,而这种灵活的表达能力使得不同组织和个人建立的XML 文档,难以遵照一个统一的数据模式,即使内容完全相同的文档,不同的组织和个人也很难按照统一的标准来建立结构和标识内容完全相同的XML 文档,从而造成了X ML 文档数据的多样性.如何针对WEB 上的大量的多样性的X ML 数据进行有效的信息提取是目前迫切需要解决的问题.目前不同的组织和个人已经展开了不少的研究工作.已有的XML 近似查询算法的研究主要包括三个部分:查询变异策略,打分策略,查询评估策略.其中,按照采用的查询评估策略的不同,X ML 近似查询算法大体上可被分为三类:基于查询重写策略的[5~8],基于计划松弛策略的[9~11]和基于数据松弛策略的[12]等.基于这些查询评估策略,近年来提出的算法主要包括:动态有序罚分算法(DPO)[8],静态有序选择算法(SSO)[11],加权树模式剪枝算法[9]等.它们的基本思想是采用多种弱化方法对用户的原始查询树进行变异,得到多棵和用户原始查询条件相似的变异查询树,再利用这些变异查询树对XML 数据库进行精确匹配,将多次精确匹配后得到的带有变异代价值的查询结果作为近似查询的答案,从而将XML 近似查询的问题转变为收稿日期:2006-06-15;修回日期:2007-02-20基金项目:国家973重点基础研究发展规划(No.2004CB719401)第7期2007年7月电 子 学 报ACTA ELECTRONICA SINICA Vol.35 No.7J uly 2007多棵变异查询树的精确查询问题.但是,目前X ML文档的查询方法大多关注对单一文档或遵循同一DTD(doc-ument type definition)的多个XML文档的查询,随着X ML 数据库数据多样性的增加,查询服从多类D TD的X ML 文档逐渐成为查询需求的主流,文献[3]提出了一种XML查询中的DTD排序技术试图解决这个问题,但文中没有进一步给出排序后的D TD对用户的查询结构进行重构的方法以及结合该DTD排序技术的XML近似查询算法框架.其他现有的算法也未能对此给出较好的解决方案.另外,随着X ML查询系统应用领域的扩展和后台X ML数据库的扩大,X ML近似查询算法中基本变异操作代价的计算不能简单的依赖于领域专家的经验或者对X ML样本数据的统计模型.因此,本文在SSO 算法的基础上提出了基于两阶段查询重写的X ML近似查询算法-TRXQ(two-phase re writing based approxi mate XML query)来试图解决以上这些问题.2XML查询形式化定义1由X ML文档按照一定的映射关系转化成的无向多叉树结构称为X ML数据树,简称为数据树,它可用一个四元组D=(N,E,R,root(D))来表示,其中N代表树中的结点集,E代表边集,R代表结构关系集,root(D)代表数据树的根结点.本文考虑了X ML文档集中元素和属性名的语义多样性的问题.假定文档集中的文档来源于不同的组织和机构,它们采用了不同的D TD进行了定义,这样对同样一个现实领域实体的描述可能在不同的X ML文档中用了不同的标签或者结构关系.定义2由X ML查询语句转化成的无向多叉树结构称为查询模式树,简称为查询树,它可用一个四元组Q=(V,E,R,root(Q))来表示,其中V代表查询树中的结点集,E代表边集,R代表结构关系集,root(Q)代表查询树的根结点.查询树中的根结点指明了当前所要查询的范围,叶子结点描述了用户所要查询的具体信息,内部结点指明了具体信息所在的上下文.查询树中结点之间的边有两种类型:父子关系和子孙后代关系.定义3给定一棵XML数据树D,那么由D中的2个结点vi 和vj以及存在于这2个结点之间的结构关系集R构成的一个二元谓词R(vi,v j)被称为结构查询谓词,简称结构谓词或查询谓词.一棵查询树可分解为多个查询谓词构成的集合.根据已经引入的数据树和查询树的概念,关于XML数据查询的问题就可以被转化为一个查询树到数据树的嵌入问题,该嵌入又可分为精确嵌入和近似嵌入.精确嵌入[8]的定义如下:定义4给定一棵查询树Q,若在查询过程中,Q中的所有结点vi(v i I V)满足如下四个条件,则一个从查询树Q到数据树D的映射函数f被称为一个精确嵌入.(1)v i=v j=>f(v i)=f(v j);(2)结点v i的标签和f(v i)的标签相同;(3)结点v i的类型和f(v i)的类型相同;(4)查询树Q中所潜在的所有查询谓词QP在数据树D中都存在.3X ML近似查询为了发现和用户设定的查询树近似匹配的答案,首先要对原始查询树进行查询变异.定义5利用插入一个结点,删除一个结点或重命名一个结点标签等对一棵原始查询树Q作出的每种修改称为一个查询变异QT.下面,本文简要介绍查询变异Q T过程中对原始查询树所常用到的几种基本查询变异操作.311基本查询变异操作本文引入了文献[8]定义的几种常用的基本查询变异操作:插入结点操作,删除内部结点操作,删除叶子结点操作和重命名结点操作.本文对基本变异操作的使用制定了规则,不允许对原始查询树任意使用由基本变异操作构成的序列,目的是为了避免生成毫无用户语义要求的大量的/盲目0变异查询树而增加了查询算法的复杂性.本文从两个方面定义了基本变异操作的使用规则:(1)基于查询标记:当用户在设定查询树时,可以根据自己的查询需求对树中的查询结点设置特殊标记的方法来限制变异操作对这些结点的影响,例如不得对用户最感兴趣的结点进行重命名操作,就在该结点旁边加上/!0号.这种方法灵活性高,但用户需要具备一定的查询语法知识.(2)基于限制规则:这是对基本变异操作使用的通用规则,主要包括以下四种:¹不能为根结点插入父结点,或者对叶子结点插入子结点;º在删除内部结点时不包括根结点,在删除叶子结点时,如果该叶子结点的父亲结点只有它一个儿子,那么该结点不允许被删除;»在重命名结点时,新的标签必须是该结点的父亲结点或兄弟结点的标签;¼查询树中不能出现没有叶子结点的分枝,若有将该分枝自动删除.312TRXQ近似查询算法定义6由一组任意的基本变异操作构成的序列称为变异操作序T.1272电子学报2007年定义7 通过应用一个指定的变异操作序到原始查询树Q 后得到的查询树称为变异查询树Q c .定义8 对原始查询树执行基本变异操作后所带来的和用户原始查询需求之间的语义损失度称为基本变异操作代价,它是大于0的实数.定义9 给定一棵原始查询树Q 和一棵变异查询树Q c ,Q c 由应用一个变异操作序(t 1,t 2,,,t n )到Q 后得到.若用cost (t i )代表某个基本变异操作t i 的代价,那么一棵变异查询树Q c 的嵌入代价可被定义如下:MappingCost (Q c )=Eni=1cost (t i )(1)嵌入代价是衡量查询结果近似程度的标准,嵌入代价越大则最终查询结果的近似程度越低.定义10 给定一棵原始查询树Q ,若用Q c (T i )代表应用一个变异操作序T i =(t 1,t 2,,,t n )到Q 后得到一个变异查询树,那么查询闭包Q *可被定义如下:Q *=G ]i =0Q c (T i )(2)其中,Q c (T 0)=Q ,MappingCost (Q c (T i +1))>Map -pingCost (Q c (T i )).定义11 给定一个数据树集合和一个查询闭包Q *,若用一个二元组(D mi n ,c)来代表近似查询闭包中的一棵变异查询树的查询结果,而D mi n 代表与该变异查询树满足精确嵌入的所有数据树中所需嵌入代价最小的数据树,c 代表D mi n 对应的嵌入代价,那么对所有的二元组(D mi n ,c)的求解被称为一个近似嵌入.从定义11可以看出一个近似查询的问题可以被转化为针对近似查询闭包的多次精确查询的问题来求解,解决近似查询问题的算法必须能够发现近似查询闭包中所有变异查询树的精确嵌入结果.又因为用户往往感兴趣的是最近似的k 个查询结果,Top -K 问题被定义如下:定义12 给定一棵原始查询树Q 和一个整数K,那么求解按嵌入代价从小到大排列的K 个近似查询结果列(D,MappingCost )的问题被称为Top -K 问题.定义13 若一个给定的XML 文档集中的所有X ML 文档都按照同一种D TD 来定义,不同的XML 文档只存在结构上的不同(XML D TD 允许部分结构的缺失),而在元素及其属性的命名上不存在异名同义的问题,则称为异构同质X ML 文档集.定义14 若一个给定的XML 文档集中的所有X ML 文档可按照不同的D TD 来定义,不同的XML 文档不仅存在结构上的不同,而在元素及其属性的命名上存在异名同义的问题,则称为异构异质X ML 文档集.定义15 给定两种X ML D TD :S 1、S 2,再给定一棵S 1定义下的原始查询树Q,若Q 中的所有结点v i (v i IV)和S 2中的元素结点u j (u j I U)满足如下条件,那么原始查询树Q 中的结点集V 到S 2定义下的查询树Q c 的结点集V c (V c <U)的一个映射m 称为模式重写:Max(Sem -Distance (v i ,u j ))=Sem -Distance (v i ,m(v i ))(1<i <N ,1<j <M ) (3)其中,m(v i )I V c ,Sem -Distance (v i ,u j )代表S 1和S 2中元素结点之间的语义距离.定理1 给定一个查询闭包Q *,则按照Q *所包含的变异查询树顺序查询得到的结果集在质量上是单调递减的,在数量上是单调递增的.证明 用T 来代表变异查询树序列,T =(t 1,t 2,,,t n ),其中t i 代表变异查询树.用R 来代表查询结果序列,用r *(t 1)代表t 1对应的查询结果集,则R =(r *(t 1),r *(t 2),,,r *(t n )).由查询闭包的定义可知,该序列是按照嵌入代价c 由低到高来排列的,即c(t 1)<=c(t 2)<=,<=c(t n ).又由嵌入代价的定义可知,查询结果的相似度(质量)和其对应的近似查询树的嵌入代价成反比,若用Sim ()代表近似查询树t i 最终对应的查询结果的相似度函数,则有Sim (r *(t 1))>=Sim (r *(t 2))>=,>=Sim (r *(t n )),固结果集在质量上是单调递减的.由变异查询树的定义可知,一个变异查询树对应着一组基本变异操作序,若用A (t i )来代表变异查询树t i 对应的基本变异操作序,那么有以下两种情况:(1) A (t i )=A (t i -1)+{a,b,c},其中{a,b,c}代表三种基本变异操作可能构成的任意序列.由于t i 在t i -1基础上增加了新的基本变异操作,显然因为这些新的基本变异操作扩大了t i 的查询的范围,导致t i 的查询结果集更大,固按照查询闭包中的变异操作序查询出的结果序列在数量上是单调递增的.(2) A (t i )X A (t i -1)+{a,b,c},即t i 没有对t i -1的基本变异操作进行闭包.由已证明的按照查询闭包中的变异操作序查询出的结果序列在质量上是单调递减可以推出t i 对应的变异代价大于t i -1对应的变异代价.又由于本文提出的是基于样本数据分布统计的方法来计算变异操作的代价,所以t i 的变异代价越大,它所应用的基本变异操作所涉及的查询谓词在后台X ML 数据库中出现的频率越高,t i 中查询谓词的频倍越高,从而导致t i 的查询结果集更大,固按照查询闭包中的变异操作序查询出的结果序列在数量上是单调递增的.故定理1由此得证.至此,本文提出的针对异构异质X ML 文档集的TRXQ 算法的主要步骤如下:(1)求出原始查询树Q 对应的D TD 和XML 数据库所涉及的其他DTD 之间的语义距离r 以及结点最佳映1273第 7 期衡星辰:基于两阶段查询重写的XML 近似查询算法射关系表;(2)利用(1)步中得到的结点最佳映射关系表对原始查询树Q进行重写,得到不同D TD定义下的重写查询树Qs;(3)将(1)步中得到的语义距离r作为重写查询树Q s的重写代价,利用该重写代价r对不同DTD定义下的重写查询树Qs 从低到高进行排序,形成Qs队列;(4)若Q s队列为空,则终止查询,否则从当前Q s陷列中弹出重写代价r最低的Qs.(5)求出当前Q s对应的查询闭包Q*s,并将Q*s中的变异查询树Q t s对应的嵌入代价c和Q s对应的重写代价r的乘积c#r作为变异查询树Q ts最终的查询代价e;(6)对查询闭包Q*s中的所有的变异查询树Q t s按查询代价e从低到高进行排序;(7)如果查询闭包为空,则返回(4),否则从查询闭包中取出当前分值最低的Q t s,并将该Q t s从查询闭包中删除.采用结构化连接算法[13]对该Q ts和数据树集执行精确嵌入,如果有满足精确嵌入的四个条件的查询结果,就将其放入查询结果集中,并将该变异查询树的查询代价e作为当前查询结果和原始查询树Q的匹配近似度;(8)如果查询结果集中的结果个数达到用户查询时指定返回结果数K,则终止查询,否则返回(7)继续执行. 4XML查询代价评估XML查询代价的正确评估,是有效衡量查询结果近似度的标准,其主要包括两个部分:基于XML DTD的重写代价r和基于变异操作的嵌入代价c.411重写代价由于X ML数据库的异质性,增添到文档库中的XML文档并不会遵循同一种D TD来定义,那么很有可能出现这种情况:虽然新到来的XML文档所对应的DTD和查询默认的DTD在结构和对元素的描述词汇方面并不一致,但是在语义上,它们的确描述了非常接近的对象信息,所以这些XML文档对于用户的查询也是很有用的.为了查出所有的这些异质同义的文档,需要利用这些XML D TD间隐含的相似信息来重写查询树.基于文献[14]中的部分思想,本文设计的基于X ML DTD的查询树重写算法的主要步骤如下:(1)用RDF规范,将被计算的两个XML DTD转化成一个有向标识图[15],接着,利用该有向标识图构造出一个双连接图[16],该图中包含了由这两个D TD树中的结点构成的结点对联结.(2)计算双连接图中结点对的初始相似度.本文采用in-depth语义的方法来处理这个问题.这里要利用一个中文同义词库,通过比较两个结点的标签名在中文同义词库中的同义词分别所在的类层次的深度和连接两个同义词的最短路径的长度来量化两个结点间的相似度,比如针对结点对(s1,s2)的相似度计算公式如下: Sim-Dis tance(s1,s2)=1+(Min-Path(s1,s2)/|Depth(s1)+Depth(s2)|)(4)(3)初始相似度仅仅反映了单个结点对的语义距离,它是片面的,没有考虑结点在DTD树中的位置对它们产生的影响.本文采用相似度传播算法[16]对初始相似度进行了修正,该方法在计算过程中考虑了DTD的结构信息,其核心思想是属于不同DTD中的两个结点越相似,那么它们的相邻结点也越相似,也就是说D TD中两个元素的相似情况也影响到了它们各自的相邻结点.(4)统计针对每个结点的相似度最高的结点对作为该结点的最佳匹配,以确保对于每一对结点(s1,s2)来说,不存在另外的结点对(x1,x2),使得s1更相似于x1比s2,而x2更相似于s1比x1.(5)利用得到的最佳匹配结点对对原始的查询树进行重写.重写的过程是对原始查询树中从根结点出发的每条路径的重写构成,并将基于路径的重写过程中所涉及的替换结点的相似度累加求和,将其平均值作为该次重写所需的代价,即重写代价r.(6)统计源D TD和目标DTD中的所有最佳匹配结点对的相似度之和,并除以目标D TD中所包含的结点数所得到的值作为这两个DTD间的相似度.412嵌入代价根据定义5嵌入代价是应用到原始查询树上的所有变异操作的代价总和,那么计算嵌入代价的问题就转化为计算基本变异操作代价的问题.下面介绍基于样本数据分布统计和专家经验的基本变异操作代价的计算方法.41211重命名代价重命名代价指的是将一个结点的标记更新为该结点的父结点或者兄弟结点的标记所需要的代价.例如要将结点n1更替为它的祖先结点n2,它的计算步骤如下:(1)根据XML DTD求出Min-path(n1,n2):结点n1和n2间的最短路径;(2)统计该条路径所经过的结点.(3)累加这些结点的权重作为重命名所需的代价. (路过/零/问题:路径上没有其他结点,则将结点n1和n2的权重差作为代价;再次路过问题:路径上出现同名的结点,出现同名结点说明结点n1和n2分别处于同名的两个结点所代表的不同的语义上下文下,此时代价定义为无穷大.)如何定义XML文档中每个结点的权重是接下来需要解决的问题.一个结点的权重和两个因素有关:(1)1274电子学报2007年所处的位置;(2)出现的频率.在XML文档树中所处的位置越高,出现的频率越大,则该结点的权重也越大,因此可以给出如下的计算公式:W(n i)=A*B na mi ng*E N t=1(G t(n i)/N)*(N/N no rmal)(5)式(5)中N代表结点ni在X ML数据库中出现的次数,N nor mal是标准频数,即预先统计得出的所有结点出现的平均次数.(N/Nno rmal)表示结点n i出现的相对频倍,它的值越高,说明结点ni出现的频率越大,从而导致它的权重也越大.A为平衡因子,可以用来调整结点和该结点构成的结构谓词之间的频度差异,Bna mi ng为重命名因子,可以用来调整因为环境上下文引起的权重和重命名代价之间转换的等价度.Gt(n i)是一个度量结点ni在第t次出现时所在位置重要性的函数,它的计算公式如下:G t(n i)=L ni/L t r e e(6)其中Lni 是结点ni在当前所在的X ML数据树中所在的层数,根结点位于最高层,Lt ree代表当前这棵数据树的总层数.41212删除代价由于一个结点的权重和该结点在文档库中出现的频率成正比,那么该结点的权重越大,那么删除该结点所需要的代价就越小.设结点权重的上限值为Wmax,那么删除一个结点ni的代价为:Cost del(n i)=A*B del*(W max-w i)(7)其中,wi 为结点ni的权重,A为平衡因子,可以用来调整结点和该结点构成的结构谓词之间的频度差异,Bde l 为删除因子,可以用来调整因为环境上下文引起的权重和删除代价之间转换的等价度.特殊地,当结点取上限值时,它的删除代价就为0.41213插入代价插入结点就相当于在查询树中增加新的结点.和删除一个结点的代价的计算方法相反,插入结点的代价和新增加的该结点权重的大小成正比,也就是说该结点在文档集中出现的频率越大则插入它的代价也越大,那么插入一个结点ni的代价为:Cost i nse(n i)=A*B i nse*w i(8)其中,w i为结点n i的权重,A为平衡因子,可以用来调整结点和该结点构成的结构谓词之间的频度差异,Bi nse 为插入因子,可以用来调整因为环境上下文引起的权重和插入代价之间转换的等价度.5Top-K问题511查询闭包的Top-K顺序求解根据定义10可知查询闭包是由原始查询树得到的所有变异查询树的集合,在TRXQ近似查询算法步骤(6)中需要依据查询代价对查询闭包中所有的变异查询树从低到高进行排序.但是要能进行正确有效的排序,有两个问题需要解决:(1)求出所有变异查询树;(2)预先计算出每棵变异查询树的查询代价.本文通过结合以下三个方法来解决这两个问题:(a)利用3.1小节给出的基本变异操作的限制规则,来精简出切实有效的查询闭包;(b)对XML数据库中的XML数据树进行编码[8],生成带有如下索引结构的数据树来解决盲目的结点插入操作带来复杂性问题:index=(pre,bound,pathc ost,insc ost)其中pre代表对数据树进行前序遍历时结点的序号,bound是该结点的所包含的最右边的叶子结点的序号,pathcost是该结点所有祖先结点的插入代价的总和, inscost是该结点的插入代价.利用该索引结构,可以计算将任意查询谓词嵌入到数据树中所需的插入代价,其计算公式如下:InsertCost=distance(n1,n2)=pa thcost(n2)-pathc ost(n1)-inscost(n1)(9)其中,n1和n2是该查询谓词包含的两个结点,而n1是结点n2的祖先.该插入代价insCost是前文中提出的嵌入代价c的一部分.(c)对精确嵌入所需满足的第四个条件进行补充:在查询树中指定为父子关系的查询谓词,其在数据树中可以扩展为子孙后代关系.至此,查询闭包的Top-K顺序求解的步骤如下:(1)依据方法a)对原始查询树依次应用重命名、删除内部结点和删除叶子结点这三种变异操作(不包括插入操作)构成的变异操作序,生成按变异操作代价由低到高排列的变异查询树构成的查询闭包,此步得到的变异操作代价称为基本嵌入代价cna mi ng,del.(2)如果查询闭包为空,则终止查询,否则从查询闭包中选出当前分值最低的变异查询树对数据树集进行精确嵌入.按照方法(c),在精确嵌入过程中,在数据树中满足子孙后代关系的查询谓词(在查询树中被指定为父子关系)也将被保留,并应用方法b)中定义的函数distance()来实时计算所有潜在的插入结点操作的代价cinse rt.(3)将(2)步中得到得插入代价和(1)步中得到该变异查询树的基本嵌入代价之和作为当前查询结果的近似度,并插入到查询结果集的适当位置中去.(4)如果查询结果集中的结果个数达到用户查询时指定返回结果数K,则终止查询,同时返回K个按近似度由高到低排列结果序列给查询用户,否则返回步(2)继续执行.1275第7期衡星辰:基于两阶段查询重写的XML近似查询算法。

一种XML数据的查询方法[发明专利]

一种XML数据的查询方法[发明专利]

专利名称:一种XML数据的查询方法
专利类型:发明专利
发明人:郭少松,包小源,陈薇,王腾蛟,杨冬青申请号:CN201210192018.7
申请日:20120611
公开号:CN103488639A
公开日:
20140101
专利内容由知识产权出版社提供
摘要:本发明提供一种XML数据的查询方法,其步骤包括:1)采用Native XML方式存储XML数据,其存储结构包括:内节点层,存储XML树的节点,XML元素采用DDE编码方式进行编码;叶节点层,存储XML树叶节点的文本数据;倒排层,存储内节点层的倒排索引;2)根据输入的XPath查询语句,从所述倒排层中取出与所述XPath的节点对应的元素序列,并采用败者树进行归并排序;3)对归并排序后的XML元素按顺序进行入栈和出栈操作,从缓冲区得到查询结果。

本发明能够处理带有关键字“OR”和通配符“*”的XPath,并具有很高的效率。

申请人:北京大学
地址:100871 北京市海淀区颐和园路5号
国籍:CN
代理机构:北京君尚知识产权代理事务所(普通合伙)
代理人:余长江
更多信息请下载全文后查看。

XML查询模式匹配及文档过滤技术研究.doc

XML查询模式匹配及文档过滤技术研究.doc

XML查询模式匹配及文档过滤技术研究XML (eXtensible Markup Language)以其自描述性,跨平台交换性等特点,已经成为了网络上数据存储和数据交换的标准。

互联网上越来越多的结构化或半结构化的数据采用XML格式存储和交换,对XML数据的查询处理及其文档过滤的研究显得日益重要。

本文对XML数据管理领域中的查询处理及其优化问题和XML 文档过滤问题进行了深入的研究。

Twig模式匹配是查洵处理问题中的核心问题,目前该问题吸引了大量学者对其进行研究,本文提出一种索引方法来提高twig模式匹配效率。

目前对模式匹配问题的研究都集中在只包含后代轴和孩子轴的查询模式,对包含父亲轴和祖先轴的模式研究几乎是空白。

同样在信息选择分发系统中,对大量订阅请求的管理和文档过滤算法足其核心研究内容。

已有的对大量XPath表达式索引的方法只能处理只包含祖先轴和后代轴的XPath表达式,因此文档过滤算法只能通过只包含正向轴的XPath表达式来对文档进行过滤和分发。

本文对查询处理优化技术和XML文档过滤技术进行了详细的分析和深入研究,提出解决以上新问题的解决方法,本文贡献点可概括如下:(1)对于查询处理中的twig查询,本文提出了一种新的索引结构C-Tree,该索引结构将XML文档中元素间的上下文索引起来,解决了传统标签流算法对于将XML文档分解为标签流过程中削弱大量上下文信息的问题。

根据这个索引结构,本文提出了一套整体twig连接算法,来处理在不同类型文档上的twig模式匹配问题。

通过借助C-Tree索引中的上下文信息,算法可以在标签流上跳跃大量不参与最终结果的节点,所以大大提高了twig查询处理的效率。

(2)目前的XML查询处理研究工作中,没有对包含父亲轴和祖先轴的模式的匹配算法的研究。

为了提高XML数据库系统中提供给用户的查询表达式的表达能力,本文提出了一种新的查询模式xtwig模式。

并且分析了xtwig模式的查询语义性质,提出了一系列消除查询语义冗余的化简方法。

一种基于RBF神经网络的XML文本分类方法

一种基于RBF神经网络的XML文本分类方法

一种基于RBF神经网络的XML文本分类方法
刘锋;唐佳;仲红
【期刊名称】《计算机技术与发展》
【年(卷),期】2009(019)008
【摘要】为了快速有效地组织和分析海量的XML文本信息,XML文本的自动分类必不可少.文中提出了一种基于RBF神经网络的分类方法,并运用改进型的CHI统计量方法进行特征提取,对传统的加权公式进行了一些改进,再运用资源优化神经网络(RON)进行训练,做了必要的实验分析.实验结果表明该分离器有较高的分类质量,提高了分类的效率,有较高的分类准确性,满足了XML文本自动分类的要求.
【总页数】3页(P34-36)
【作者】刘锋;唐佳;仲红
【作者单位】安徽大学,计算机科学与技术学院,安徽,合肥,230039;安徽大学,计算机科学与技术学院,安徽,合肥,230039;安徽大学,计算机科学与技术学院,安徽,合肥,230039
【正文语种】中文
【中图分类】TP311.5
【相关文献】
1.基于粗糙集和RBF神经网络的文本自动分类方法 [J], 白如江
2.基于RBF神经网络和决策树的文本分类方法 [J], 王煜;徐建民
3.基于改进QPSO和RBF神经网络的文本分类方法 [J], 李滨旭;姚姜虹
4.一种基于VFDT算法的同构XML流分类方法 [J],
5.一种基于RBF神经网络的极化SAR图像分类方法 [J], 赵一博;邹焕新;秦先祥因版权原因,仅展示原文概要,查看原文内容请购买。

基于有限自动机的XML过滤技术研究综述

基于有限自动机的XML过滤技术研究综述

Ab ta t P ee tdt a h u rn tt frs a c b u L i eigtc nq e a e nf i uo tn ( A) sr c r sn e h tt ec re tsa eo ee rh a o tXM f tr e h iu sb s do i t a tmao F . l n n e Cls ie h e h iu sa c r ig t h e t rso A , n n lzd sm et pclag r h . s e py dsu s d a sf dt etc nq e co dn ot efau e fF a d a ay e o y ia lo i ms Alod e l ic se i t a d c mp r dt ea v na e n ia v na e ft eeag r h . n o a e h d a tg sa d ds d a tg so h s lo i ms t
X ML过滤技术研究 中的主要 问题 有 :) 1 如何构造高效 的 查询索 引。和传统数据库系统 中需要为所存储 的大量数据 建
QI Yo g r i S N n -u UN e- i ZHANG h o y o YU n W i we Z u-a Pig
( p . fCo ut g a d If r t c n lg Fu a ie st Sh n h i2 0 3 Chn ) De t o mp i n n o ma i Te h oo y, d n Unv r i n on y, a g a 0 4 3, ia
Ke wod F nt uo tn, ey i e , y rs i i a tmao Qu r n x XML i e ig tc nq e e d f trn e h iu l

XML文档过滤引擎有限自动机的构造

XML文档过滤引擎有限自动机的构造
吴绍根
【期刊名称】《河北软件职业技术学院学报》
【年(卷),期】2013(000)003
【摘要】对XML文档的处理包括文档检索和文档过滤。

XML文档过滤是对XML 文档的订购/发布访问,是对XML文档的在线处理,文档的过滤效率、引擎的构造及过滤引擎的动态可维护性是影响过滤引擎使用的关键要素。

基于有限自动机理论,提出了一种新的基于XPath和有限自动机高效构造过滤引擎的模型,给出了实现XML文档过滤引擎有限自动机的相关构造算法,该算法实现了对所构建的过滤引擎有限自动机的在线更新,并可实现对XML文档的不停机过滤。

【总页数】4页(P48-51)
【作者】吴绍根
【作者单位】广东轻工职业技术学院,广州 510300
【正文语种】中文
【中图分类】TP391
【相关文献】
1.XML与基于XML文档检索的搜索引擎 [J], 金甦
2.XML文档过滤算法YFilter的一种改进技术 [J], 苏明柿;张守志
3.一种新的基于有限自动机的XML过滤方法 [J], 朱茂盛;许英华
4.基于有限自动机的XML过滤技术研究综述 [J], 覃泳睿;孙未未;张卓瑶;余平
5.基于XML文档检索的搜索引擎设计 [J], 谭新良;蔡代纯
因版权原因,仅展示原文概要,查看原文内容请购买。

一种基于查询请求授权的XML访问控制方法

An Approach of Query Request Authorization Process for the Access Control System to XML
Documents
作者: 李瑞霞 韩郁葱
作者机构: 皖西学院信息工程学院,安徽六安237012
出版物刊名: 皖西学院学报
页码: 27-29页
年卷期: 2011年 第2期
主题词: XML 访问控制 授权
摘要:在信息系统中访问控制是一种基本的安全机制,当多用户系统将XML作为数据存储方式的时候,出现了XML文档的访问控制问题,XML文档具有层次结构,对其访问可以是细粒度的,因此,可以不去访问文件全部信息而限制用户访问文件的部分信息。

传统的方法在每次用户请求处理过程中都要将策略文件和数据文件进行比较,因此在数据量比较大的时候就会降低处理效率。

将用户请求和策略规则进行分类,并通过比较二者的类型获得授权结果。

结果表明,该方法在处理用户访问的过程中减少了访问数据的需要。

Web服务中的XML数据过滤方法

Web服务中的XML数据过滤方法
刘宁;谭三
【期刊名称】《西华大学学报(自然科学版)》
【年(卷),期】2006(25)1
【摘要】基于内容的可伸缩路由体系可以处理与Web服务有关的不断增长的XML数据.本文应用W3C的XPath(XML路径语言)设计了一个树型结构的过滤器,用来快速匹配XML数据.并利用数据共享策略和过滤共享策略的并行机制,构建了一个层次结构的XML路由体系,用来满足高传输负载所需的性能要求.
【总页数】4页(P31-33,43)
【作者】刘宁;谭三
【作者单位】西华大学数学与计算机学院,四川,成都,610039;西华大学数学与计算机学院,四川,成都,610039
【正文语种】中文
【中图分类】TP393.03
【相关文献】
1.基于Web服务器的XML数据库技术 [J], 玄文启
2.基于Web服务的XML数据集成方案研究 [J], 陈丽娟;陶莉
3.基于 Web服务的XML数据转换技术 [J], 陈运海
4.提高Web服务匹配效率的服务过滤方法 [J], 李婧;陈旺虎;冯百明
5.基于XML数据集访问WEB服务的研究 [J], 蔡龙飞
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一种基于NFA查询重写的XML过滤技术1刘国海,虞慧群*,杜丽萍(华东理工大学计算机科学与工程系,上海200237)摘要:本文研究XML存取控制策略,通过基于NFA的XML查询重写技术,实现了支持精细粒度的XML文档存取控制策略。

通过构造XML文档存取控制策略的NFA以及基于NFA的查询语句重写技术,有效地实现了独立于视图的、高效的XML精细粒度的存取控制。

关键词:XML,存取控制,视图,查询重写中图分类号:TP311 文献标识码:ANFA-based Query Rewriting for XML FilteringLIU Guo-hai, YU Hui-qun*, DU Li-ping(Department of computer Science and Engineering,East China University of Science and Technology,Shanghai 200237,China)Abstract: This paper proposes XML access control, Introduce an NFA-based query rewriting technique, which supports fine-grained access control for XML documents. An efficient access control policy enforcement method is achieved by building NFAs of XML access control policies, and rewriting queries based on the policy NFA.Keywords:XML, access control, view, query rewriting可扩展的标志性语言(XML)[1]为网络环境下的结构化数据表示和传输提供了技术标准,是近年来广泛用于Web服务的语言,加速了Web信息的共享。

随着分布式和信息共享的快速发展,对XML信息实施高效、安全的存取控制的要求越来越高。

现在,已经出现许多的支持细粒度存取控制的XML存取算法和支持高效过滤的过滤器。

但是大部分的系统都是使用view-based的方法[2,3,4],或者直接从XML数据库中获得安全支持[5,6]。

使用view-based的方法有一个非常明显的缺点就是创建和维护的费用太高,不能得到用户的支持;直接依赖XML数据库,从数据库中获得安全支持,这种方法不能安全地应用。

因此目前也出现了能实现view-independent且不依赖XML数据库的细粒度的存取控制策略的过滤器,例如:Yfilter过滤器[7]就是一个高效的、范围可调的XML数据过滤算法,但是系统要随时为新增加的查询语句创建不确定的自动机(Nondeterministic Finite Automation)既NFA,这样会大大增加系统的开销,降低系统效率,同时也没有很好的支持安全存取控制策略和考虑情景感知因素。

Qfilter[8]过滤器则很好地实现了XML存取控制策略,通过对查询语句的改写大大提高了查询效率,但是它需要根据不同的角色建立不同的NFA,当系统太大、角色过多的时候其效率会大大降低,同时也没有考虑情景感知因素。

本文采用基于角色的存取控制模型[9](Role-Based Access Control,RBAC),由RBAC 模型中的策略建立一个NFA来实现存取控制,通过NFA执行算法对用户提交的查询语句Q 进行重写,以得到满足安全控制和情景因素的新查询语句Q’,从而实现高效率的、实现情景感知的XML存取控制策略。

1 RBAC模型中策略描述RBAC模型中的策略最显著的特点是简化授权管理,即通过角色(roles)分配许可收稿日期:2005-06-03基金项目:国家自然科学基金项目(编号: 60473055, 60373075)作者简介:刘国海(1981-),男,福建人,硕士生,研究方向为XML文档的存取控制通信联系人:虞慧群,E-mail:yhq@(permission)给不同的用户(users),即在许可与用户之间增加了一个中间层roles,在本文中使用Policy来取代Permission直接描述他们的对应关系:Policy< role_name,object,operation,sign,conditions>。

Policy是一个五元组,其中object是策略所作用的对象,一般用Xpath语言描述;role_name是策略所起作用的角色;operation是策略所要做的操作类型,一般有四种:read,write,update,delete;sign是区分策略是允许访问+,还是拒绝访问–;Conditions是一组逻辑语句:Condition1&Condition2…&ConditionN,Condition是一条逻辑判断语句,如parameter1、operation、parameter2的形式,operation是操作类型,只是这些操作是逻辑运算或集合运算,如≥、=、≠、≤、∈等,只有当两个参数之间的关系满足operation时,Policy 才能起作用。

例如:P7:nurse,files/record/case/test,read,+,user_name∈dept_mumber当user_name∈dept_mumber时,策略P7中role nurse才能对files/record/case/tes t进行read操作。

2 由策略构建NFA2.1 基础定位路径的NFA在自动机理论中的NFA是由一个五元组构成,即NFA M=(Q,∑,δ,q0,F),其中五个元素的定义:(1)Q是状态的集合,包括初始状态S,可接受状态A i;(2)∑是输入元素的集合,包含各个输入元素、ε、*等;(3)δ是传输函数集合;(4)q0是初始状态,本文的初始状态为S;(5)F是可接受状态的集合,本文中为A i(A i关联一个元组<role_name,operation,sign,conditions>的集合)。

在NFA中,所有的Policy语句都可以在一个NFA中描述清楚,在NFA中从一个状态到另一个状态的转换标识都依赖object路径中的每个定位步骤,所以一般的前缀路径都只被表示一次。

每条Xpath语句都是由四种基础定位路径组成:/x、/*、//x、//*,其中“x”是特定用来表示DTD中所定义的所有元素,而“*”是一个通配符,用来匹配表达式中的符号。

图1所示的就是Xpath语句的四个基础路径所对应的NFA碎片(NFA fragments),图中一个圆圈表示一个状态,两个同心圆圈表示一个可接受状态,每个箭头的连线表示一次转换,与连线一起的符号为转换的标识,表示只有输入匹配的元素才能通过这条连线的转换到下一状态。

符号“*”可代表任何元素,而符号“ε”用于表示该传输不要求任何输入。

/x://x:/*://*:图 1 基本定位路径的NFA碎片Fig.1 The NFA of Basic Xpath2.2由策略构建NFA每条Policy< role_name,object,operation,sign,conditions>是一个五元组,其中的object 是主要的资源信息,系统通过object构建NFA的主体,然后再将<role_name,operation,sign,conditions>信息关联到接受状态中表达,构建算法如下:(1)建立初始状态S,将S加入M=(Q,∑,δ,q0,F)中的状态集合Q,并将S作为初始状态q0。

(2)取得一条Policy P i,将其中的object取出,并得到第一个基础定位路径,查看是否存在与该定位路径匹配的从当前状态S输出的转换,如有则将当前状态转到下一匹配状态,并转到步骤3;没有则建立新的转换,如果是/x、/*路径,就建立新状态i,并建立从状态S到状态i的传输,以元素x或*为该转换命名;如果是//x、//*路径,就建立新的两个状态i、j,并如图2中所示的Xpath语句的基础定位路径构建NFA碎片的方法,建立新的转换;最后将新建的状态加入到状态集合Q中,将输入的元素加入到集合∑中,将新的转换建立新的传输函数,并加入 中。

(3)查看Xpath语句是否结束,如果结束则转到步骤4;没有就继续。

继续取得object 中的Xpath语句的基础定位路径,如步骤2一样查看是否有匹配的转换,有则当前状态转到匹配的下一状态,并从新开始步骤3;没有则建立新的状态与新的转换,并加入到自动机M中,从新转到步骤3。

(4)Xpath语句结束,得到最后的状态j,查看是否已经为可接受状态,如果是则转到步骤5,否则将其改名为A i,并加入到可接受状态集合F中。

(5)将Policy<role_name,object,operation,sign,conditions>中的role_name,operation,sign,conditions信息取出,组成一个新的元组<role_name,operation,sign,conditions>加入与可接受状态A i关联的集合中(对于每个可接受状态A i,关联一个元组<role_name,operation,sign,conditions>的集合)。

(6)查看是否还有新的Policy,如有则转到步骤2,没有则NFA建立完成。

2.3 构建医疗系统策略NFA下面是一个医疗机构的系统存取控制策略,在该医疗系统中,病人的医疗记录信息及其疾病信息对不同的角色是有不同的访问权限的,比如医生可以看到自己部门的病人的个人信息和所有的医疗记录与分析;护士可以看到她负责的部门的病人记录中的名字、诊断、测试信息,但是不能查看病人的调查结果值和疾病信息;病人的家属也只能看到病人的病人记录中的名字、诊断、测试信息,但是不能查看病人的调查结果值和疾病信息;病人也只能看到病人的病人记录中的名字、诊断、测试信息,但是不能查看调查结果值、疾病信息和X光的检查结果。

P1:doctor,files/record//*,read,+, IP∈NET & time∈ON_duty_time & user_name∈joint_dept_mumber P2:nurse,files/record/research_value,read,–,user_name∈joint_dept_mumberP3:family_member,files/record/research_value,read,–,ФP4:patient,files/record/research_value,read,–,ФP5:nurse,files/record/case/name,read,+,user_name∈joint_dept_mumberP6:nurse,files/record/case/diagnosis,read,+,user_name∈joint_dept_mumberP7:nurse,files/record/case/test,read,+,user_name∈joint_dept_mumberP8:family_member,files/record/case/name,read,+,ФP9:family_member,files/record/case/diagnosis,read,+,ФP10:family_member,files/record/case/test,read,+,ФP11:patient,files/record/case/name,read,+,ФP12:patient,files/record/case/diagnosis,read,+,ФP13:patient,files/record/case/test,read,+,ФP14:doctor,patients/patient//*,read,+,IP∈NET & time∈ON_duty_time & user_name∈joint_dept_mumber P15:nurse,patients//disease,read,–,ФP16:patient,patients//disease,read,–,ФP17:patient,patients//xray,read,–,Ф系统首先建立初始状态S,取得策略P1,并由object取得基础定位路径files,建立新状态1,并从状态S到状态1的转换files,再取得路径/record,同样建立新的状态2并从状态1到状态2的转换record,最后是路径//*,如图2为所选策略建立的NFA图。

相关文档
最新文档