/ AIML

AIML中文文档第二章

2.AIML文件

定义:一个格式正确的AIML文件应该符合XML定义、符合本文档规定的AIML定义。

每个AIML对象都有一个逻辑结构和物理结构。在物理结构上,每个对象都由topic和category单元组成。逻辑上,AIML对象由明确标记的元素和字符引用组成。

AIML对象可能被XML定义的注释、处理指令或者来自其他命名空间的XML内容所覆盖。注释和处理指令不会被AIML解释器处理。外来的内容可能通过AIML解释器传输到应答器,但不会被AIML解释器处理。

下面,我们从不同的方面重新定义AIML的对象结构,尽管在绝大多数情况下仅仅是重复和XML相同的定义。某些情况下,AIML解释器会有比XML处理器更多的限制。

2.1 格式正确的AIML文件

定义:如果一个文件符合本文档中的定义,并且符合XML格式良好的定义,则成为格式正确的AIML文件。(http://www.w3.org/TR/2000/REC-xml-20001006#sec-well-formed)

2.2 字符

AIML中文本和字符的定义同XML的定义http://www.w3.org/TR/2000/REC-xml-20001006#charsets

2.3通用语法结构

见XML定义 http://www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn.

2.4字符数据和标记

见XML定义 http://www.w3.org/TR/2000/REC-xml-20001006#syntax

2.5注释

见XML定义 http://www.w3.org/TR/2000/REC-xml-20001006#sec-comments

AIML解释器不会去检索注释的内容。

2.6处理指令

见XML定义 http://www.w3.org/TR/2000/REC-xml-20001006#sec-pi

2.7 CDATA段

正如XML文档所说的http://www.w3.org/TR/2000/REC-xml-20001006#sec-cdata-sect,CDATA段会在AIML中任何一个地方出现就像CDATA段会在XML文件中任何一个地方出现一样,它们用于转义包含会被识别为标记的字符串的文本块。

2.8 序言(prolog)和文件类型声明

见XML定义 http://www.w3.org/TR/2000/REC-xml-20001006#sec-prolog-dtd

由于AIML可以在其他XML文档中出现,它们自身可能有也可能没有序言,AIML解释器对是否有序言没有强制要求。

AIML不使用文档类型申明。相反,AIML使用的是W3C架构。本文档可以被认为是AIML架构的申明。AIML文件可以不引用AIML架构的命名空间。然而我们强烈建议这么做,因为这样有助于AIML解释器使用最合适的解释器。

2.9 独立文档申明

见XML定义http://www.w3.org/TR/2000/REC-xml-20001006#sec-rmd

2.10 空格处理

见XML定义http://www.w3.org/TR/2000/REC-xml-20001006#sec-white-space

AIML解释器对空格的默认处理是:

对于字符数据元素或者其他元素,如果不包含空格,就直接输出。

如果在一个元素和字符数据或者其他元素之间有至少一个空格,就会不规则的生成空格,除非xml:space属性被应用于父元素。

如果xml:space属性被应用于某个元素,则不对空格进行任何处理。

2.11 行尾处理

见XML定义http://www.w3.org/TR/2000/REC-xml-20001006#sec-line-ends

2.12 语言标识

AIML文件可以使用XML属性xml:lang来区分该文件是否为自然语言或者格式化的语言,详见http://www.w3.org/TR/2000/REC-xml-20001006#sec-lang-tag

AIML独立于人类的语言,因此这种能够提供信息的XML方法是唯一可用的方法,没有其他东西可以支持这种明确的标记。

AIML中文文档第二章
Share this