Aiml就是一个xml兼容的文本文档,现简单介绍一下xml规范:
xml每一个型如<aiml topic=”电影”>叫做一个元素,每个元素都是闭合的,也就是说要只要有<aiml>开头就必定有</aiml>相对应与之闭合;topic=”电影”称为改元素的属性,一个元素可以有多个属性没有限制。元素和元素之间可以嵌套,但必须闭合。一个最简单的aiml文件如下:
<?xml version=”1.0″ encoding=”GB2312″?>
<aiml>
<category>
<pattern>你好</pattern>
<template>好</template>
</category>
</aiml>
1. <?xml version=”1.0″ encoding=”GB2312″?>这个是所有xml文档都必须申明的,如果是中文这里要申明编码为:GB2312,如果是英文则一般申明为:UTF-8
2. category表示一个目录,表示一个一问一答匹配和一问多种应答匹配,但不允许多中提问匹配。
3. pattern表示匹配模式,表示用户的输入匹配,以上例子,用户一旦输入你好,那机器人就找到这个匹配,然后取出应答“好”;
4. template表示应答,这里应答一个“好”字。
有了这几个简单的元素理论上就可以写出任意匹配模式,达到一定智能,但实际应用当中只有这些元素是不够的,接下去将作进一步介绍。

注意:aiml所有元素属性都是大小写敏感的!!!
aiml的pattern元素里面的英文必须大写!!!

4、详细说明
1. think元素
型如: <think><set name=”topic”>Me</set></think>
放置在template元素里面,表示一旦用户的输入匹配到该category时,再回复应答的同时,给一个变量赋值,这里也就是把Me记再脑子里,以后就可以用<get name=”topic”/>来取出先前记住的内容。
2. <star/>表示*,比如有一个匹配模式是<pattern>* 你 好 *<pattern>;注意,由于机器人解析器是外国人写的;而外国人每个单词之间一个空格,因为,我们写匹配的时候也要再每个汉字之间加上空格。这里pattern元素里的匹配模式是用*号表示任意匹配的,但在其他元素里面不能用*号,而用<star/>这个元素来表示。
3. <srai>元素,刺激回复人工智能,表示<srai>里面的话会被当作是用户输入,从新查找匹配模式,直到找到非<srai>定义的回复。例如:
<srai>我 是 <star/></srai>,那么机器人会把“我 是 *”当作是用户输入来从新查找匹配模式。
4. <condition>元素,放在template元素里面,可以有多个condition元素,但不能嵌套(目前还不支持),有3种形式:
<condition name=”name” value=”value“>你好 </condition>
<condition name=”name” contains=”value“> 你好</condition>
<condition name=”name” exists=”value“>你好 </condition>
Name是预先定义的变量,第一种表示name变量的值如果和value相等,回复内容就包括”你好”;第二种表示name变量的值如果里面包含value这个字符串,回复内容就包括“你好”;第三种表示name变量的值如果存在value的值,回复内容就包括“你好”(这个什么意思还不明确)
举个使用例子:
<category>
<pattern>你 好</pattern>
<template>
你好阿!
<condition name=”用户名字” value=”张三“>
你又来了阿:)
</condition>
</template>
</category>

a. 情况一:如果事先用think设置了变量“用户名字”,而且等于“张三”,那么用户接受到的回复内容是:你好阿!你又来了阿;)
b.情况二:如果事先没有定义或者变量“用户名字”的值不等于“张三”,那么用户接受到的回复内容是:你好阿!
写法有一下几种:
<category>
<pattern>我 头 发 的 颜 色 是 蓝 色 *</pattern>
<template>哇塞,你很
<condition name=”用户性别” value=”女“> 漂亮阿!</condition>
<condition name=”用户性别” value=”男“>英俊阿!</condition>
</template>
</category>

<category>
<pattern>我 头 发 的 颜 [...]

Tag :, , ,

Elements of AIML
AIML contains several elements. The most important of these are described in further detail below.
Categories
Categories in AIML are the fundamental unit of knowledge. A category consists of at least two further elements: the pattern and template elements. Here is a simple category:
<category>
  <pattern>WHAT IS YOUR NAME</pattern>
  <template>My name is John.</template>
</category>
When this category is [...]

Tag :,

AIML Background

2009.04.26

AIML Background
The XML dialect called AIML was developed by Richard Wallace and a worldwide free software community between the years of 1995 and 2002. It formed the basis for what was initially a highly extended Eliza called “A.L.I.C.E.” (”Artificial Linguistic Internet Computer Entity”), which won the annual Loebner Prize Contest for Most Human Computer three [...]

Tag :,

What is AIML

2009.04.26

What is AIML
The ALICE software implements AIML (Artificial Intelligence Markup
Language) a non-standard evolving markup language for creating chat robots.
The primary design feature of AIML is minimalism. Compared with
other chat robot languages, AIML is perhaps the simplest. The
pattern matching language is very simple, for example permitting
only one wild-card (’*’) match character per pattern.
AIML is an XML [...]

Tag :, ,

AIML: Artificial Intelligence Markup Language
http://www.alicebot.org/aiml.html
AIML (Artificial Intelligence Markup Language) is an XML-compliant language that’s easy to learn, and makes it possible for you to begin customizing an Alicebot or creating one from scratch within minutes.
The most important units of AIML are:
<aiml>: the tag that begins and ends an AIML document
<category>: the tag that marks a [...]

Tag :, , , ,

A project to create the Chinese aiml database . Thus we can chat with IM robots in Chinese freely !