Storobia Archive


The acronym AIML stands for Artificial Intelligence Markup Language. This is an XML compliant dialect for encoding the behaviour of a chatbot in a standardised form that can be exchanged between different chatbot interpreters and implementations.

AIML was initially developed by Dr. Richard Wallace and used for the award-winning Alice chatbot. There are a number of online AIML based chatbot hosts as well as interpreters you can download for local use - the most popular probably being the Java based Program D.

AIML is based around the input-response model commonly used for chatbots. An AIML dataset (which can consist of many individual files) consists of templates that match a user's input statement and select an appropriate response. The matching of user input to AIML code is well defined and can be represented as a tree structure. Context can be provided by the setting and testing of predicates.

AIML is highly recursive and typically a single input-response pattern will have many alternative pattern matches that resolve recursively to the same ultimate code.

Being XML based makes AIML easy for interpreters to parse however it also makes it verbose and difficult for humans to navigate. Coding an sophisticated AIML chatbot by hand would be a massive endeavour. Fortunately the XML compliance allows some standard tools to be used and AIML specific tools are also being developed.

One limitation of AIML is that it has no direct support for synonyms, parts of speech etc. For instance there is no easy way to distinguish between the input "I like (noun)" and "I like (verbing)" other than exhaustive listing of possibilities. Arguably such features can be provided by the runtime interpreter and need or should not be a part of the data language. Unfortunately few if any currently available interpreters support such features.

This is an old page archive from Storobia. Please read the site terms of use