论文部分内容阅读
XML已经成为互联网上数据表示和数据交换的标准。随着XML文档数据量和文档数量的快速增长,随之而来也产生了很多问题,其中很重要的一个问题就是如何有效的查询这些文档,也就是结构查询,亦称为数据查询。而有效的数据查询又涉及到文档的存储机制和索引结构等问题,这些问题已经引起了学术界和工业界的广泛研究热情,学者们在这些问题上作了大量的研究工作。另外一个问题是基于XML文档的信息检索,这也是一个新产生的研究问题。面对巨大的网络信息,如何才能为用户检索出真正有效的信息是一个非常具有挑战性的研究问题。现存的大部分搜索引擎是基于关键字搜索的,页面排序算法采用页面的超链接或页面内容的文本特性。如果页面采用XML来编写,那么就需要合理的利用XML的结构特性、语义特性以及其它的相关性质,来提高检索的效果和效率。这就促使对XML文档进行信息检索变成了一个非常有意义的问题。XML上的信息检索正在开始受到学术界的高度注意。对XML进行结构查询和信息检索是两个既具有相关性又具有不同特性的研究问题,如何集成这两个研究问题就更加具有研究的意义。本文的主要研究对象就是如何改进XML的结构查询以及信息检索的相关理论与技术,以便于它们更好地集成在一起,从而可以更加优化地执行用户的查询需求。针对这个研究目标,本文做了大量的研究工作。首先,本文在XQuery语言的基础上扩充了全文本检索功能,为了与原来的XQuery区分,扩充后的语言称为XQuery+(XQuery Plus)。XQuery+语言有如下特点:在XQuery+语言里,扩充了XQuery的检索功能,增加了一个为检索服务的谓词;在XQuery+中还支持检索词的布尔操作。本文的主要研究任务之一是如何有效地处理XML的结构查询。作为处理XML结构查询的基础,XML文档的节点编码模式和索引结构是研究的核心问题。本文提出了一个新颖有效的节点编号模式,详细地讨论了节点编号模式的定义和性质。节点编号模式对XML文档索引和查询提供了基础,一个有效的节点编号模式应该可以包含结构信息,易于支持索引和查询。从本文给出的节点编号定义和性质分析,我们知道编号模式可以满足这些基本的要求。本文在这个节点编号模式的基础上建立了一个HiD索引结构,HiD索引结构有效地集成了结构索引和值索引两个部分。通过大量有竞争性的实验分析表明,采用HiD索引机制方法可以在索引的构建时间和空间消耗上得到很好的平衡和性能表现。本文研究的第三个主要任务是基于XML的信息检索。XML信息检索的核心问题是如何进行相关度打分。本文提出了一种新颖的、有效的对基于XML信息检索查询进行相关度打分的算法,该算法同时考虑了结构相关度和语义相关度。结构相关度主要利用了检索词的距离概念;语义相关度的计算则采用了节点相关度语义权重系数的方法。为了合理地评价和比较本文提出的方法以及其他研究者的方法之间的效果差异,本文还做了大量的实验。从所作的试验结果中可以看出,在合理应用本文的方法下,检索的查全率和查准率都可以得到显著的提高,检索结果非常合乎用户的需求。基于对结构化查询和信息检索的相关研究成果,本文提出了处理XML结构化查询和信息检索的有效算法与机制。这些算法分别处理了XQuery和XQuery+查询。虽然这些算法都基于HiD索引结构之上,但是这些算法的特点不同,处理对象不同。对于XQuery查询来说,本文给出的两个算法分别处理单路径查询和具有两个分支的树模式查询。基于这两个算法,可以方便地构造出处理复杂查询的算法。而对于XQuery+查询的处理,本文也给出两个不同处理算法。算法XQuery+G-1采用了on-the-fly的查询和打分机制,而算法XQuery+G-2则简单地采用了查询后计算相关度的技术。通过实验,本文还详细地分析了各个算法的性能和效果,为了合理的评估相关算法的性能,试验中对不同的算法还选用了不同的、可比较的、合理的比较算法。实验结果表明无论是处理结构化查询还是检索查询,本文提出的对应算法都表现出较高的执行效率,可以有效地提高查询与检索速度和效果。课题的最后一个研究任务是在相关研究成果的基础上设计开发一个原型系统。本文详细地讨论了原型系统的设计目标、分析与设计过程,确定了原型系统的架构。经过分析原型系统的系统流程,得出各个模块的功能与实现过程。最后,我们采用java语言在Qizx/open的基础上实现了原型系统。从原型系统的体系架构和模块功能可以看出,原型系统基本可以满足XML文档查询和检索的需求。原型系统的特色在于:(1)开放和层次化的结构,这样可以方便地支持和扩充新的功能和算法;(2)原型系统还实现了两种过滤机制和两种结果表示方法,这些都扩展了原型系统的性能和表现力,为将来做成熟的系统打下很好的基础。