AIML, or Artificial Intelligence Markup Language, is an XML dialect for creating natural language software agents. History The XML dialect called AIML was developed by Richard Wallace and a worldwide free software community between 1995 and 2002. AIML formed the basis for what was initially a highly extended Eliza called "A.L.I.C.E." ("Artificial Linguistic Internet Computer Entity"), which won the annual Loebner Prize Competition in Artificial Intelligence three times, and was also the Chatterbox Challenge Champion in 2004. Because the A.L.I.C.E. AIML set was released under the GNU GPL, and because most AIML interpreters are offered under a free or open source license, many "Alicebot clones" have been created based upon the original implementation of the program and its AIML knowledge base. Free AIML sets in several languages have been developed and made available by the user community. There are AIML interpreters available in Java, Ruby, Python, C++, C#, Pascal, and other languages (see below ). A semi-formal specification and a W3C XML Schema for AIML are available. Since early 2013, The A.L.I.C.E foundation has been working on a draft specification for AIML 2.0. Elements of AIML AIML contains several elements. The most important of these are described in further detail below. Categories Categories in AIML form the fundamental unit of knowledge. A category consists of at least two further elements: the pattern and template elements. Here is a simple category: <category> <pattern>WHAT IS YOUR NAME</pattern> <template>My name is Michael N.S Evanious.</template> </category> When this category is loaded, an AIML bot will respond to the input "What is your name" with the response "My name is Michael N.S Evanious." Patterns A pattern is a string of characters intended to match one or more user inputs. A literal pattern like WHAT IS YOUR NAME will match only one input, ignoring case: "what is your name". But patterns may also contain wildcards, which match one or more words. A pattern like WHAT IS YOUR * will match an infinite number of inputs, including "what is your name", "what is your shoe size", "what is your purpose in life", etc. The AIML pattern syntax is a very simple pattern language, substantially less complex than regular expressions and as such less than level 3 in the Chomsky hierarchy. To compensate for the simple pattern matching capabilities, AIML interpreters can provide preprocessing functions to expand abbreviations, remove misspellings, etc. The AIML syntax itself is at least