Fundamentals

Main concepts of the AIML language are:

AIML Tags

Following are the important tags which are commonly used in AIML documents.

  • <aiml> : Defines the beginning and end of a AIML document.
  • <category> : Defines the unit of knowledge in Alicebot's knowledge base.
  • <pattern> : Defines the pattern to match what a user may input to an Alicebot.
  • <template> : Defines the response of an Alicebot to user's input.

Following are some of the other widely used aiml tags. We'll be discussing each tag in details in coming chapters.

  • <star> : Used to match wild card * character(s) in the <pattern> Tag.
  • <srai> : Multipurpose tag, used to call/match the other categories.
  • <random> : Used <random> to get random responses.
  • <li> : Used to represent multiple responses.
  • <set> : Used to set value in an AIML variable.
  • <get> : Used to get value stored in an AIML variable.
  • <that> : Used in AIML to respond based on the context.
  • <topic> : Used in AIML to store a context so that later conversation can be done based on that context.
  • <think> : Used in AIML to store a variable without notifying the user.
  • <condition> : Similar to switch statements in programming language. It helps ALICE to respond to matching input.

AIML Vocabulary

AIML vocabulary uses words, space and two special characters * and _ as wild cards. AIML interpreter gives preference to pattern having _ than pattern having *. AIML tags are XML compliant and patterns are case-insensitive.

Example

<aiml version = "1.0.1" encoding = "UTF-8"?>
   <category>
      <pattern> HELLO ALICE </pattern>      
      <template>
         Hello User!
      </template>      
   </category>
</aiml>

Following are the important points to be considered −

  • <aiml> tag signifies start of the AIML document.
  • <category> tag defines the knowledge unit.
  • <pattern> tag defines the pattern user is going to type.
  • <template> tag defines the response to the user if user types Hello Alice.

Result :

User: Hello Alice
Bot: Hello User