AIML
|
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.
Contents |
Background
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., which has now won the annual Loebner Prize Contest for Most Human Computer three times, and is also currently the Chatterbot Challenge Champion (2004). Since its introduction to the internet, due to AIML and the Alicebot programs being open-source, many thousands of Alicebot 'clones' have been created based upon the original implementation of the program and its AIML knowledge-base. The development of AIML continues, and recently witnessed the release of the Annotated ALICE AIML set in the fall of 2004. The current most active implementation is Pandorabots.com, an online bot hosting and development company which provides free hosting for their Program Z Alicebots.
Elements of AIML
AIML contains several elements. The most important of these are described in further detail below.
Categories
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.
Patterns
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.
Template
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:
- The user's input can become part of the chatbot's response. For example:
Human: Are you smarter than Hal 9000? ALICE: Of course I am more intelligent than Hal 9000.
- To make the responses seem more human-like, they can be randomly selected from a preset list of possible response. For example:
Human: What is Wikipedia? ALICE: That's a good question. Human: What is Wikipedia? ALICE: I don't know anything about it. Human: What is Wikipedia? ALICE: I have to process that one for a while.
External Links
Official Resources
- The A.L.I.C.E. Artificial Intelligence Foundation (http://www.alicebot.org)
- Further AIML Code Examples (http://www.alicebot.org/aiml.html)
Examples of Popular Online Alicebots
- The Original A.L.I.C.E. (http://www.pandorabots.com/pandora/talk?botid=f5d922d97e345aa1)
- Dawnstar (http://www.pandorabots.com/pandora/talk?botid=c1776ae8ce354d1f)
- The Electronic Brain Community - Artificial Intelligence Bot (http://www.electronicbrain.evemail.net/aibot.htm)
- Ailysse (http://www.pandorabots.com/pandora/talk?botid=829713883e34f760)
- Lilith (http://www.pandorabots.com/pandora/talk?botid=b9b96b247e34f4f2)
- Foxy Botachelli: Webchat Girl (http://atecit.dyndns.org/?template=foxysmall)
- Talk to William Shakespeare (http://www.shakespearebot.com)
- Talk to William Shakespeare (http://www.shakespearebot.com)
AIML Communities & Alicebot Directories
- A.I.Nexus:A Showcase for Alicebots on the Web (http://www.knytetrypper.com/ain.html)
- The AIML Scripting Resource (http://www.AIML.info)de:Artificial Intelligence Markup Language