论文摘要
随着XML (eXtensible Markup Language)数据已逐渐成为网络上信息的主要表示和交换标准,对于XML数据检索的需求越来越多。由于XML数据自身的特性,使得对XML进行数据检索面临诸多新的挑战和机遇。虽然诸如XQuery或XPath等结构化查询方式,可以将XML查询转换为复杂的语义表达并且获得精确的查询结果,然而很多情况下关键字查询方式更能够被大众所接受。比如,结构化查询方式要求用户了解其复杂语法规则并对XML文档信息有一定的认识。对于XML关键字查询,现有的方法多数都是基于最低公共祖先LCA这个概念。它们认为和查询相关的内容都在LCA(Lowest Common Ancestor)子树中而LCA子树外的信息则被认为和查询不相关。然而,事实上由于用户不了解XML文档的结构信息并且输入的查询关键字往往由于过短而缺乏足够的判断信息,使得基于LCA方法生成的结果往往未能把所有相关的信息包含在LCA子树中,从而导致用户对查询结果不满意。而这正是本文的研究动机和尝试解决的问题。本文的主要贡献如下:总结了现有的XML关键字查询研究现状,指出它们共同的缺陷,即都会忽略不在LCA子树中的节点,因此文中提出了基于上下文(context)的LCA节点的概念;使用结果扩充的思想来定义并获取上下文信息,所涉及的问题包括:如何确定当前结果是否需要扩充;如果当前结果需要被扩充,那么应该添加哪些内容。针对这些问题,文中通过分析日志获取有意义的上下文信息,提出了一个决策策略进行查询结果扩充的判断;提出了一个基于XML的TF*IDF方法,该方法针对需要进行查询扩充操作的实体计算其候选属性的权重,并根据上下文信息,扩展查询表达式,这里的候选属性是指对于一个LCA子树,那些没有被该子树覆盖的即不会返回给用户的属性节点。在与SLCA方法进行的比较实验中,从召全率、召准率和F-measure三个指标上验证了本文的工作可以有效改进以往基于LCA语义方法的效果,此外也验证了文中方法的时间复杂度处于合理的范围内。实验验证了本文的工作达到了预期的目的