大多数 robot 应用函数 (Robot Application Function, RAF) 需要信息源,并会生成传至目标的数据。源在 robot 内进行定义,并且不必与 robot 最终生成的资源描述中的字段相关。另一方面,目标通常是指资源描述中的字段名(如资源描述服务器的模式所定义)。
以下各节介绍了过滤流程的不同阶段,以及这些阶段的可用源:
在“安装”阶段,过滤器在进行安装但无法获得关于资源的 URL 或内容的信息。
在“元数据”阶段,robot 会遇到资源的 URL,但它还没有下载资源的内容。这样,关于 URL 以及源自其他源(例如 filter.conf 文件)的数据的信息均可用。不过,在此阶段,关于资源内容的信息不可用。
表 12–2 元数据阶段 RAF 的可用源| 资源 | 描述 | 示例 | 
|---|---|---|
| csid | 目录服务器 ID | x-catalog//budgie.siroe.com:8086/alexandria | 
| depth | 从起始点开始遍历的链接数 | 10 | 
| enumeration filter | 枚举过滤器的名称 | enumeration1 | 
| generation filter | 生成过滤器的名称 | generation1 | 
| host | URL 的主机部分 | home.siroe.com | 
| IP | 主机的数字形式 | 198.95.249.6 | 
| 协议 | URL 的访问部分 | http, https, ftp, file | 
| path | URL 的路径部分 | /, /index.html, /documents/listing.html | 
| URL | 完整的 URL | http://developer.siroe.com/docs/manuals/ | 
在“数据”阶段,robot 已经下载 URL 处资源的内容,并且可以访问关于该内容的数据,例如描述和作者。
如果资源为 HTML 文件,Robot 会分析 HTML 标头中的 <META> 标记。因此,在“数据”阶段可获得 <META> 标记内包含的任意数据。
在“数据”阶段,除了“元数据”阶段的可用源之外,以下源对 RAF 可用。
表 12–3 数据阶段 RAF 的可用源| 资源 | 描述 | 示例 | 
|---|---|---|
| content-charset | 资源所使用的字符集 | |
| content-encoding | 任意的编码形式 | |
| content-length | 资源的长度(字节) | |
| content-type | 资源的 MIME 类型 | text/html, image/jpeg | 
| expires | 资源到期的日期 | |
| last-modified | 上次修改资源的日期 | |
| <META> 标记中的数据 | HTML 资源标头中的 <META> 标记内提供的任何数据 | 作者、描述、关键字 | 
检索资源时,会返回所有源自 HTTP 响应报头的源(<META> 标记中的数据除外)。
在“枚举”阶段和“生成”阶段,可用数据源与“数据”阶段的可用数据源相同。有关信息参见表 12–3。
在“停止运行”阶段,过滤器完成过滤过程并停止运行。虽然为此阶段编写的函数可使用与“数据”阶段相同的可用数据源,但是停止运行的函数通常会将其操作限制为停止运行 robot 和清除活动。
每个函数都可以有一个 enable 属性。值可以是 true、false、on 或 off。管理控制台使用这些参数启用或禁用某些指令。
以下示例为 text/html 启用枚举,对 text/plain 禁用枚举:
| # 仅在 HTML 上执行枚举 Enumerate enable=true fn=enumerate-urls max=1024 type=text/html Enumerate enable=false fn=enumerate-urls-from-text max=1024 type=text/plain | 
添加 enable=false 属性或 enable=off 属性与注释掉该行具有相同的效果。使用这些属性是由于管理控制台不编写注释。