[January 06, 2000] A communiqué from Richard Wallace reports on the recent release of the first Official ALICE Chat Robot CDROM disc. The CD includes all of the open source Java code needed to create chat robots like ALICE with the Artificial Intelligence Markup Language (AIML). AIML (Artificial Intelligence Markup Language) "is an XML specification for programming chat robots like ALICE using program B. The emphasis in the language design is minimalism. The simplicity of AIML makes it easy for non-programmers, especially those who already know HTML, to get started writing chat robots. One ambitious goal for AIML is that, if a number of people create their own robots, each with a unique area of expertise, program B can literally merge-sort them together into a Superbot, automatically omitting duplicate categories. We offer the both the source code and the ALICE content, in order to encourage others will 'open source' their chat robots as well, to contribute to the Superbot. Compared with other chat robot languages, AIML is perhaps the simplest. The pattern matching language is very simple, for example permitting only one wild-card ('*') match character per pattern. AIML is an XML language, implying that it obeys certain grammatical meta-rules. . . . What is XML? David Bacon pronounces it 'Eggsmell'. AIML is an example of using the XML standard to define a specialized language for artificial intelligence. . . The choice of XML syntax permits integration with other tools such as XML editors. Another motivation for XML is its familiar look and feel, especially to people with HTML experience. An AIML chat robot begins and ends with the <alice> and </alice> tags respectively. Real XML fanatics know that because AIML is an XML language it must have something called a DTD ([alias] Document Template Descriptor). The DTD is a formal specification of the grammar for an XML language. Unless you are using special XML tools to work on your AIML or developing your own parser for AIML, you probably do not need to know much about the DTD. This DTD reflects the current content of the *.aiml files that Program B can actually parse. The DTD will become more general as the parser improves. Viz., <!DOCTYPE alice [ <!ELEMENT alice (category+)> <!ELEMENT category (pattern,that?,template)> <!ELEMENT pattern (#PCDATA|name)*> <!ELEMENT name EMPTY> <!ELEMENT that (#PCDATA)> <!ELEMENT template . . .
AIML Schema Committee: "The AIML Schema Committee is responsible for creating and maintaining the W3C Schema for AIML, in particular, so-called 'Template-Side AIML Expressions' (TSAEs). The reasons for creating and maintaining an AIML schema are: (1) To make validation of AIML possible, and easy by virtue of existing XML validation tools. (2) To provide a complete formal description of AIML syntax, in the interest of encouraging the development of other applications that can generate or manipulate AIML. (3) To establish official, human- and machine-understandable versions of the AIML specification, in anticipation of a proliferation of AIML content using various versions of the spec ification. (4) To enable ready integration of AIML within other namespaces, such as XHTML..."
"[Appendix B. Note to Parents: The ALICE 'brain' does not contain any explicit or adult material. Experience has shown however, that clients (persons communicating with the chat robot over the Internet) will invariably try to engage the robot in adult conversations. The robot is programmed to try to avoid these topics."]
July 10, 2001] AIML version 1.0A Transitional DTD. "This is a transitional DTD that works with the current set (09-Jul-01) of documents. The ultimate goal is to be able to validate our AIML and slowly change this DTD to reflect the current direction. This gives us a strict way to enforce changes, until the schema is written. This DTD was constructed by reverse engineering our existing AIML documents. I also built it to show the disarray our current content is in..." ['I have created a DTD to validate our current std-*.aiml files against. I am still waiting to get this in CVS and in a public place. I originally called it version 0.10, but have been instructed by Jon and it is now version 1.0A. This DTD is reverse engineered from our aiml in CVS. It contains absolutely no functionality that wasn't in a std-*.aiml file. I also excluded processing of std-german.aiml due to it's vast number of language specific set_XXX elements. I added enclosures around the scripts in std-translation.aiml to make it well-formed. All the aiml validates using this DTD with the exceptions mentioned above. After examining this DTD, you'll be amazed at the disarray our content is in. But now that we have a "starting point", we can change that.'] Posted to the AIML Schema Committee mailing list by Alan Moss (LearningSoft Corporation).