论文部分内容阅读
XML非完全结构查询是指满足用户在缺乏完整的XML文档结构信息情况下的查询需求,其主要面向缺少完整的结构信息说明以及异构环境下的查询需求。XML数据查询算法按照查询模式描述的不同分为两类,即XML结构查询和XML关键字查询。前者多采用了正则表达式的描述方法,偏向于传统的结构化的查询方式,能够清楚的表述用户的查询意图;后者融入了信息检索领域常用的查询思想和方法,允许用户仅仅输入关键字就能够进行查询。XML关键字查询与XML结构化查询比较起来更灵活,它只需要用户提供简单的关键字信息,而无需懂得任何查询语言或文档结构就可方便使用,因此该模式被广泛采用,有着重要的研究价值。XML关键字查询方式中最关键的问题是如何求解包含所有关键字的最小片段,即SLCA(Smallest Lowest Common Ancestors)问题。论文的主要研究内容如下:首先介绍了XML关键字查询方面的知识,包括XML树型结构、XML编码方案、包含关键字的最小片断理论以及XML关键字查询的思路。在三种XML编码方案中,因为Dewey编码包含更多的节点信息,所以选择它作为实验的编码方案。其次研究已存在的关于XML关键字查询的经典算法,并对各算法进行比较,分析它们的优点和不足,重点研究了LISA算法。LISA不仅需要频繁扫描节点,而且需要引入集合交操作,耗费了大量CPU周期。LISA Ⅱ虽然在避免不必要扫描方面改进了LISA算法,但却使用了自己独有的编码,不仅引入了编码映射,而且也使得该算法的通用性大大削弱。这两种算法即便作为一种仅在内存中执行的算法,以上缺点也影响了查询速度。为此,本文提出一种轻量级的、使用XML关键字查询通用的Dewey编码的新算法,LRIA (Level Retrieval Inquiry Algorithm)。该算法不仅消除了集合交操作,而且仅仅扫描所有节点至多一遍。通过实验证明LRIA算法是一种可行的XML关键字查询算法,并且与LISAⅡ算法进行对比实验,在查询相同大小的XML文档时所用的时间。LRIA算法表现出了较好的性能,是一种可行的求解最小片段的算法。作为一种新的XML关键字查询算法,LRIA具有查询简便快捷、普通用户使用门槛较低、用户友好等的特点,但是也会存在查准率相对于XML结构查询算法较低的XML关键字查询的先天缺陷。