高效识别 XML 关键字搜索的贡献节点
1. 引言
关键字搜索为用户从 XML 文档中获取所需信息提供了便捷的接口,但由于缺乏精确的查询语义,可能会返回不相关的数据。因此,有许多研究致力于为用户自动推理有意义的答案。
一般来说,XML 文档可以看作是一棵有根树,其中每个节点代表一个元素或内容。基于最近公共祖先(LCA)的方法会首先识别 LCA 节点,该节点的子树中至少包含每个关键字一次。然而,LCA 节点有时对用户的查询不够具体,因此有研究提出了最小最低公共祖先(SLCA)的概念。一个节点被称为 SLCA 需要满足两个条件:一是它是 LCA;二是它没有包含所有查询关键字的后代节点。
例如,对于查询 Q1 = (Jim, POSITION, TEAM NAME),在给定的 XML 树中,LCA 列表是 [1, 1.2, 1.3]。由于节点 1 有后代节点 1.2 和 1.3 也是 LCA,所以只有节点 1.2 和 1.3 是 SLCA。可以看到,对应的两个 TEAM 元素比 LEAGUE 元素(即节点 1)包含更具体的信息。
SLCA 方法基于祖先/后代关系实现了特异性,但它没有区分兄弟节点的重要性。因此,有研究进一步提出了贡献节点的概念。一个节点是贡献节点需要满足:一是它是给定 SLCA 的后代节点或它本身就是 SLCA 之一;二是它没有兄弟节点 n2 使得 dMatch(n2) ⊃ dMatch(n)。
已有研究给出了一个高效的系统 MaxMatch 来产生所需的输出,它包含一个核心模块 PruneMatch 来修剪不太重要的节点。其主要思想是先通过后序遍历收集每个子树代表的关键字,然后在前序遍历中使用这些信息来确定要修剪的节点。虽然 M
超级会员免费看
订阅专栏 解锁全文
30

被折叠的 条评论
为什么被折叠?



