| |||||||||
AIML, or Artificial Intelligence Mark-up Language is an XML-based programming language. It was designed specifically to aid in the creation of the A.L.I.C.E. chatterbot. Although broadly described, the language is specialised to the creation of natural language software agents, known as Alicebots.
The programming language of AIML was developed by Dr. Richard Wallace and the Alicebot free software community between the years of 1995 and 2000. It formed the basis for the initial Alicebot, A.L.I.C.E.. Since then, due to AIML and the Alicebot programs being open-source, many Alicebot 'clones' have been created based upon the original implementation of the program and its AIML knowledge-base.
AIML contains several elements. The most important of these are described in further detail below.
Categories in AIML are the fundamental unit of knowledge. A category consists of at least two further elements. These are the pattern and template elements, which are usually coded in that order. However, this is not a necessary programming syntax.
Alicebots are generally described as 'pattern-matching' chatbots. This means that the program will search for patterns within a user's input and respond accordingly. The pattern element defines the pattern that will be searched for, hence its name.
If a pattern within a category is matched successfully and it is the most accurate pattern that can be matched, then the category-specific template is applied to the chatbots response. This template can contain other AIML elements, which allow automated customisation of the chatbot's response. For example: