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