二、XML查询语言
对XML文档进行检索(查询)请求的描述有两种方式[2]:一是数据库角度的XML查询方式(XML Query[3]);二是信息检索角度的XML查询方式(XML IR)。信息检索角度的XML查询又包括三小类:扩展了数据库角度XML查询方式的XML查询;直接将关键词查询延伸至XML查询;以及直接使用XML片段来描述查询请求。其中,第一种查询方式主要用于支持XML的数据库查询,第二种方式中的第三小类查询方式使用得很少。本文是从信息检索的角度探讨XML检索,因此文中谈到的XML检索指的是第二大类的第一小类和第二小类的检索方式。
在XML检索中,文档内部各层次的XML元素理论上都是可检索的单元,检索系统对于用户查询的返回结果一般都是文档中具体的XML元素。这种聚焦式的检索有助于对含有大量长文档的信息库和包含多检索主题文档的查询,呈现在用户面前的将是文档中最相关的内容。例如,一本书利用XML将段落、章节标记出来之后,可以在检索时返回与用户查询主题最相关的段落或章节,而不是单纯的整本书。在XML检索中,用户被引导到文档中最相关的部分,从而能够更容易地定位相关内容。这正是XML检索与非结构化文本的检索相比的最大优点,即XML检索可以实现元素级的检索。
在XML检索中,考虑到XML文档的结构信息,可以利用文档逻辑结构来检索出更符合检索请求的文档元素。这种文档逻辑结构通过合适的方式可以放到检索语言中,使用户可以直接对文档结构加以利用。XML检索查询语言按照是否加入结构限制分为CO(content-only)和CAS(content and structure)两大类检索语言。
CO检索语言一直以来是传统信息中的标准检索语言,在用户不知道或不关心XML文档逻辑结构的环境下可以使用这种检索语言。尽管只能从内容上进行检索限定,XML检索系统仍然能够检索出合适的XML层级元素。CO检索语言的例子有:XRANK[4],XKSEARCH[5],以及NEXI的CO查询[6]。
CAS检索语言使用户可以从内容和结构上对检索请求进行限定。结构限定既可以指定在特定元素中查找(例如:检索结果必须包含关于某个主题的section),也可以指定返回结果的类型(例如:检索结果应该是section)。从目前来看,CAS检索语言可以分为三类[7]:(1)基于标签的查询语言,其允许用户为关键词指定标签名从而限定返回元素的类型,如XSEarch[8];(2)基于路径的查询语言,该类型语言往往是基于XPath定义的,典型的如: XIRQL[9]、XXL[10]、FlexPath[11]以及NEXI的CAS查询[6]等;(3)基于从句的查询语言,该类型语言使用层叠的从句来表达检索条件,类似于SQL语言,如XQuery[12]、XQuery Full-Text[13]等,其中XQuery是最具代表性的,XQuery Full-Text则是在XQuery的基础上加入了谓词(例如近似查询和相关排序)扩展。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。