
 
AIML stands for Artificial Intelligence Markup Language. AIML was developed by the Alicebot free software community and Dr. Richard S. Wallace during 1995-2000. AIML is used to create or customize Alicebot which is a chat-box application based on A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) free software.
Following are the important tags which are commonly used in AIML documents.
| S.No. | AIML Tag / Description | 
|---|---|
| 1 | <aiml> Defines the beginning and end of a AIML document. | 
| 2 | <category> Defines the unit of knowledge in Alicebot's knowledge base. | 
| 3 | <pattern> Defines the pattern to match what a user may input to an Alicebot. | 
| 4 | <template> Defines the response of an Alicebot to user's input. | 
We'll discuss each of these tags in AIML Basic tags chapter.
Following are some of the other widely used aiml tags. We'll be discussing each tag in details in coming chapters.
| S.No. | AIML Tag / Description | 
|---|---|
| 1 | <star> Used to match wild card * character(s) in the <pattern> Tag. | 
| 2 | <srai> Multipurpose tag, used to call/match the other categories. | 
| 3 | <random> Used <random> to get random responses. | 
| 4 | <li> Used to represent multiple responses. | 
| 5 | <set> Used to set value in an AIML variable. | 
| 6 | <get> Used to get value stored in an AIML variable. | 
| 7 | <that> Used in AIML to respond based on the context. | 
| 8 | <topic> Used in AIML to store a context so that later conversation can be done based on that context. | 
| 9 | <think> Used in AIML to store a variable without notifying the user. | 
| 10 | <condition> Similar to switch statements in programming language. It helps ALICE to respond to matching input. | 
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.
<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.
User: Hello Alice Bot: Hello User