AIML - Introduction
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.
AIML Tags
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
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