AIML是人工智能的标记语言。 它是一种XML标准用于定义的聊天机器人的反应。 机器人自由的机器人支持AIML,但是基于自有的知识基础,类似于人的大脑。
AIML定义一个机器人应该回答的一个问题时使用<模式>和<模板> 元素。 一种模式表示对用户的问题,和模板的定义了机器人的响应。 该模式和模板元素都集中在一个类别的元素,它可以进行分组下的专题单元。
| Tags | Description |
|---|---|
| <star index="N"/> | Replaced with value of * in pattern (or Nth *). |
| <that index="M,N"/> | Replaced with value of bot's previous response (or Mth previous response, and N sentence of the response). |
| <input index="N"/> | Replaced with value of users's input (or Nth *). |
| <thatstar index="N"/> | Replaced with value of * in "that" (or Nth *). |
| <topicstar index="N"/> | Replaced with value of * in topic (or Nth *). |
| <get name="XXX"/> | Replaced by the value of the conversation specific variable. |
| <bot name="XXX"/> | Replaced by the value of the bot specific variable. |
| <sr/> | Short form for <srai><star/><srai> (replaced with response to value of * from pattern). |
| <person2/> | Converts the text (or <star/>) between 1st and 2nd person (I <-> he, etc.). |
| <person/> | Converts the text (or <star/>) between 1st and 3rd person (I <-> you, etc.). |
| <gender/> | Converts the text (or <star/>) between male and female (he <-> she). |
| <date/> | Replaced with the current date and time, a "format" attribute is also supported. |
| <id/> | Replaced by the client id. |
| <size/> | Replaced with the size of bot's memory. |
| <version/> | Replaced with the AI engine version. |
| <uppercase> | Converts the text to uppercase. |
| <lowercase> | Converts the text to lowercase. |
| <formal> | Converts all words in the text to be capitalized. |
| <sentence> | Converts the first word in the text to be capitalized. |
| <condition name="X" value="Y"> | Defines an "if" condition based on comparing the value of a variable to a pattern. |
| <condition name="X"> | Case statement. |
| <condition> | Multi-valued if/else statement. |
| <random> | Choose on of the nested <li> values at random. |
| <li name="X" value="Y"> | Used in random and condition tags. |
| <li value="Y"> | Used in random and condition tags. |
| <li> | Used in random and condition tags. |
| <set name="XXX"> | Set the value of a variable. |
| <gossip> | Logs the text. |
| <srai> | Recursively evaluates the text and replaces it with the response. |
| <think> | Evaluates the nested statements but does not output any result. |
| <learn> | Load external AIML file, this is not currently allowed. |
| <system> | Executes a OS command, this is not currently allowed. |
| <javascript> | Executes JavaScript code. |
| <topic> | Category topic tags can now be set on a category to make it easier to add categories to topics. |
| <map> | Maps tag to allow the lookup of the element value in a predefined mapping, returning the mapped value. |
| <loop> | Condition loops tag to loop a conditional statement. |
| <var> | Local variables attribute for variables scoped to a category. |
| <sraix> | Remote requests tag to make a remote request of another bot instance, or service. |
| <normalize> and <denormalize> | Normalization and denormalization tags to convert special character into words, and back again. |
| <request> | Request tag to return the user's previous input request. |
| <response> | Response tag to return the bot's previous response. |
| <learn>, <learnf>, and <eval> | Learning tags to dynamically train a bot with new responses. |
| <explode> | Explode tag to split a word into its characters. |
| <oob> | Mobile (out of band) tag to support client and mobile device commands. |
| (<b>, <a>, <i>, <ul>, <ol>, <li>, <p>, <br>, <button>, <img>, <video>) | Various HTML tags are also allowed. |
| <self> | Evaluate Self code (Bot Libre extension). |
| Tags | Description |
|---|---|
| * | Matches one or more words. |
| _ | Matches one or more words, takes priority over all other words and wildcards, except $. |
| ^ | Matches zero or more words. |
| # | Matches zero or more words, takes priority over all other words and wildcards, except $. |
| $ | Pattern priority marker to make a pattern word match highest priority. |
| () | Optional set of words (Bot Libre extension). |
| [] | Required set of words (Bot Libre extension). |
| <set> | Set tag to evaluate a pattern based on words defined in a predefined set. |
| / | Regular expression pattern (Bot Libre extension). |
| {} | Self code (Bot Libre extension). |