aiml

aiml【aiml】AIML,全名为Artificial Intelligence Markup Language(人工智慧标记语言),是一种创建自然语言软体代理的XML语言,是由Richard Wallace和世界各地的自由软体社区在1995年至2002年发明的 。
基本介绍中文名:人工智慧标记语言
外文名:Artificial Intelligence Markup Language
简称:aiml
发明时间:1995-2002
背景它的雏形是一个名为"A.L.I.C.E." ("Artificial Linguistic Internet Computer Entity")的高度扩展的Eliza机器人 。ALICE总共赢得3次每年度的Loebner奖,并且在2004年获得了Chatterbox Challenge的冠军 。由于A.L.I.C.E. 的AIML设定是在GNU GPL协定下发布的,所以已经有许多基于该程式和AIML库的“克隆ALICE”出现 。目前AIML已经有了Java,Ruby,Python,C,C#,Pascal等语言的版本 。AIML的元素category元素category是AIML库中的基本单位,每个category元素都至少包含两个子元素:pattern和template元素 。下面是个简单的例子:<category><pattern>WHAT IS YOUR NAME</pattern><template>My name is Leo.</template></category>当这个AIML库被载入之后,你问机器人“WHAT IS YOUR NAME”,机器人便会回答“My name is Leo.” 。Pattern元素Pattern主要用来匹配用户输入,在原生的英文AIML语法中Pattern支持 _ 和 * 的模糊匹配 。例如:<category><pattern>WHAT IS YOUR *</pattern><template>My name is Leo.</template></category>只要用户的输入是以“WHAT IS YOUR ”开头,机器人就会回复“My name is Leo.” 。Template元素很明显Template元素是机器人的对用户提问的回答,当用户的输入和同一个category下的Pattern相匹配是,就会将此category元素下的Template输出 。That元素机器人之所以有思考功能,主要就是that元素的作用 。例如:<category A><pattern>是的</pattern><that>你是程式设计师吗?</that><template>你最擅长的程式语言是什幺?</template></category><category B><pattern>是的</pattern><that>你是学生吗?</that><template> 你是哪个学校的</template></category>机器人首先通过pattern匹配,匹配到了“是的”但是机器人的资料库中对应“是的”的回答必然非常多,比方有下面A和B两个categories 。于是机器人便去匹配that标籤,也就是机器人自己上句说过的话,即“你是程式设计师吗?”这样它就可以确定应该匹配category A了,最后给出正确的回应“你最擅长的程式语言是什幺?”