XRL:数字图书馆中基于XML的高级查询语言
立即解锁
发布时间: 2025-08-23 00:10:51 阅读量: 3 订阅数: 11 

# XRL:数字图书馆中基于 XML 的高级查询语言
## 1. 引言
数字图书馆的新应用需要存储和处理大量半结构化数据,主要是包含文本数据的多媒体文档,并通过各种工具提供访问。这些应用的主要目的是为用户提供基于 Web 的新服务,其开发有以下常见要求:
1. 在存储和检索文档时,需将数据库和信息检索(IR)系统的常用功能与新的文档结构轨迹评估技术相结合。
2. 具备中间件架构,减轻服务器执行用户服务特定任务的负担,这些任务对 Web 客户端来说过于复杂。
3. 以统一方式方便查询重用,使用户查询能像文档一样存储、检索、重新定义、交换和执行。
XML 语言能很好地满足这些需求,它可表示和处理半结构化文档,还能在异构架构的软件组件间传输数据。不过,对于上述第一和第三个要求,仍存在一些未解决的问题。因此,提出了一种新的基于 XML 语法的查询语言 XRL,它能表达数据库条件(关于文档属性和结构)以及信息检索条件(关于文档内容和相关性),且查询可存储在 XML 存储库中并像其他 XML 文档一样操作。
## 2. XML 检索语言(XRL)
### 2.1 变量定义
XRL 查询的变量通过 `define_var` 标签定义。在 XRL 中,变量表示满足给定检索条件的文档组件(即 XML 文档子树)的相关性排序列表。这些检索条件由 `define_var` 的属性指定,具体如下:
- `id` 属性:用于标识变量,以便在查询或其他变量中引用。
- `contains` 属性:指定一个布尔信息检索表达式(IRE),用于筛选变量所代表文档组件的文本内容。例如:
```xml
<xrl id="d1">
<xrl:definitions>
<xrl:define_var id="v1" contains="PSG or (Paris Saint Germain)"
path="/NewsPaper//Sports/Article/*" level="Article" d_ini="1/1/2001" d_end="31/12/2001"/>
</xrl:definitions>
<xrl:queries> <! –Query specification elements -- > </xrl:queries>
</xrl>
```
这里的变量 `v1` 要求文本包含 “PSG” 或 “Paris Saint Germain”。
- `path` 属性:通过路径表达式指定必须满足检索条件的文档组件。若省略该属性,检索条件将应用于文档的所有组件。路径属性可以包含替代路径表达式,还能指定文档组件的顺序和标签属性值。
- `level` 属性:确定变量将检索的文档组件。若省略,变量将表示路径属性中指定的最后一个非通配符组件。
- `d_ini` 和 `d_end` 属性:定义文档发布日期的时间窗口。
- `max` 属性:表示要检索的文档组件的最大数量。
- `min_rel` 属性:指定检索文档组件的最小相关性。
- `redefines` 属性:允许从先前定义的变量定义新变量。新变量继承引用变量的所有属性值,除非在新变量中重新定义。例如:
```xml
<xrl:define_var id="v3" redefines="v1" contains="Real Madrid" min_rel="10"/>
```
- `value_of` 运算符(`$`):用于引用先前定义变量的属性值。例如:
```xml
<xrl:define_var id="v5" path="/NewsPaper//Sports//*" level="Article" max="20" d_ini="$v1.d_end">
```
### 2.2 查询规范
在 XRL 中,查询可视为变量的组合。查询通过 `query` 标签指定,标签的 `id` 属性为查询提供标识符。用户在指定查询时可选择相关性函数对查询结果进行排序,`relevance` 属性有以下取值:
- `contents`:查询结果按关键字频率给出的相关性排序。
- `structural`:查询结果按术语相关性和结构相关性的组合排序。
- `none`:查询结果不排序。
`type` 属性指定查询结果返回给用户的方式:
- `x_doc`:获取整个文档组件。
- `x_ref`:获取文档组件的引用。
- `x_count`:获取查询结果的大小。
查询中涉及的变量通过 `var` 标签指定,`id` 属性用于引用先前定义的
0
0
复制全文
相关推荐










