Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Artificial Intelligence Markup Language
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Type of XML dialect}} {{about|a computer language|the research institute in Adelaide|Australian Institute for Machine Learning}} {{primary sources|date=March 2017}} {{Infobox file format | name = Artificial Intelligence Markup Language | icon = AILM logo.svg | icon_size = 100px | logo = | screenshot = | caption = | extension = <code>.aiml</code> | mime = | type code = | uniform type = | magic = | owner = [[Richard Wallace (scientist)|Dr. Richard S. Wallace]] | released = {{Start date and age|2001|07|16}} <ref>{{cite web |title=Press Release: AIML 1.0 Standard Passed (A.L.I.C.E. AI Foundation) |url=http://www.alicebot.org:80/press_releases/2001/aiml10.html |website=alicebot.org |access-date=1 December 2013 |archive-url=https://web.archive.org/web/20070715113602/http://www.alicebot.org/press_releases/2001/aiml10.html |archive-date=15 July 2007 |location=San Francisco CA |language=en |date=16 July 2001}}</ref> | latest release version = 2.1<ref name="docs">{{cite web |title=AIML 2.1 (AIML Foundation) |url=http://www.aiml.foundation/doc.html |website=aiml.foundation/ |access-date=2022-06-11 |archive-url=https://web.archive.org/web/20190514124117/http://www.aiml.foundation/doc.html |archive-date=14 May 2019 |url-status=live}}</ref> (rev 1.0.2.22 {{citation needed| date=June 2022}}) | latest release date = {{Start date and age|2018|06|20}} <ref name="docs" /> <!-- Not supported in this infobox | latest preview version = 2.0 | latest preview date = {{Start date and age|2013|10|31}} <ref>{{cite web |last1=Wallace |first1=Richard S. |title=AIML 2.0 Working Draft |url=https://docs.google.com/document/d/1wNT25hJRyupcG51aO89UcQEiG-HkXRXusukADpFnDs4/pub |website=docs.google.com |publisher=ALICE A.I. Foundation |access-date=1 December 2013 |language=en}}</ref> -->| genre = [[Artificial intelligence]] | container for = | contained by = | extended from = [[XML]] | extended to = | open = Yes | standard = | url = {{official URL}} }} '''Artificial Intelligence Markup Language''' ('''AIML''') is an [[XML]] dialect for creating [[natural language]] software agents. == History == The '''XML dialect''' called AIML was developed by [[Richard Wallace (scientist)|Richard Wallace]] and a worldwide [[free software community]] between 1995{{Citation needed|date=March 2016}} and 2002. AIML formed the basis for what was initially a highly extended [[ELIZA|Eliza]] called "[[Artificial Linguistic Internet Computer Entity|A.L.I.C.E.]]" ("Artificial Linguistic Internet Computer Entity"), which won the annual [[Loebner Prize|Loebner Prize Competition in Artificial Intelligence]]<ref>{{cite web |title=loebner.net - Informationen zum Thema loebner. |url=http://www.loebner.net/Prizef/loebner-prize.html |website=loebner.net |access-date=10 November 2010 |archive-url=https://web.archive.org/web/20101230195120/http://www.loebner.net/Prizef/loebner-prize.html |archive-date=30 December 2010 |date=26 October 2007}}</ref> three times, and was also the Chatterbox Challenge<ref>{{cite web |title=Chatterbox Challenge |url=http://www.chatterboxchallenge.com/ |website=chatterboxchallenge.com |access-date=10 November 2010 |archive-url=https://web.archive.org/web/20060325195507/http://www.chatterboxchallenge.com/ |archive-date=25 March 2006 |url-status=dead}}</ref> Champion in 2004. Because the A.L.I.C.E. AIML set was released under the [[GNU General Public License|GPL]], and because most AIML interpreters are offered under a [[Free Software|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<ref>{{cite web |title=Free AIML sets - aitoold.org |url=http://aitools.org/Free_AIML_sets |website=aitools.org |archive-url=https://web.archive.org/web/20061009222437/http://aitools.org/Free_AIML_sets |archive-date=9 October 2006 |date=17 May 2006}}</ref> in several languages have been developed and made available by the user community. There are AIML interpreters available in [[Java (programming language)|Java]], [[Ruby programming language|Ruby]], [[Python (programming language)|Python]], [[C++]], [[C Sharp (programming language)|C#]], [[Pascal programming language|Pascal]], and other languages (see [[#Free .2F Open Source AIML Implementations|below]] {{dead link|date=June 2020}}). A semi-formal specification<ref name="specs">{{cite web |title=AIML 1.0.1 (A.L.I.C.E. AI Foundation) |url=http://www.alicebot.org:80/TR/2011/ |website=alicebot.org |access-date=1 December 2013 |archive-url=https://web.archive.org/web/20131118214101/http://www.alicebot.org/TR/2011/ |archive-date=18 November 2013 |language=en |date=13 October 2011 |url-status=dead }}</ref> and a W3C XML Schema for AIML<ref>{{cite web |title=AIML.xsd |url=http://aitools.org/programd/resources/schema/AIML.xsd |website=aitools.org |access-date=10 November 2010 |archive-url=https://web.archive.org/web/20060317085750/http://aitools.org/programd/resources/schema/AIML.xsd |archive-date=17 March 2006}}</ref> are available. Since early 2013, The A.L.I.C.E foundation has been working on a draft specification for AIML 2.0.<ref>{{cite web |title=AIML 2.0 draft specification released |url=http://alicebot.blogspot.com:80/2013/01/aiml-20-draft-specification-released.html |website=alicebot.blogspot.com |access-date=19 June 2014 |archive-url=https://web.archive.org/web/20130518171303/http://alicebot.blogspot.com/2013/01/aiml-20-draft-specification-released.html |archive-date=18 May 2013 |date=16 January 2013}}</ref> == 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: <syntaxhighlight lang="xml"> <category> <pattern>WHAT IS YOUR NAME</pattern> <template>My name is Michael N.S Evanious.</template> </category> </syntaxhighlight> 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 as complex as [[finite-state machine]]s and as such at least of level 3 in the [[Chomsky hierarchy]]. This is because a state correlates to one [[topic (linguistics)|topic]]. To implement that behavior, the topic should have a "*" Pattern to make sure, that the state is not left accidentally. A state transit is implemented with the {{code|2=xml|1=<think><set name="topic">state2</set></think>}} Tag. This way, the bot will be able to "remember" the topic talked about or even user privileges, which are gained during the chat. === Templates === A template specifies the response to a matched pattern. A template may be as simple as some literal text, like My name is John. A template may use variables, such as the example My name is <bot name="name"/>. which will substitute the bot's name into the sentence, or You told me you are <get name="user-age"/> years old. which will substitute the user's age (if known) into the sentence. Template elements include basic text formatting, conditional response (if-then/else), and random responses. Templates may also redirect to other patterns, using an element called '''{{text|srai}}''' (Symbolic Reduction in Artificial Intelligence). This can be used to implement synonymy, as in this example (where [[CDATA]] is used to avoid the need for [[XML#Escaping|XML escaping]]): <syntaxhighlight lang="xml"> <category> <pattern>WHAT IS YOUR NAME</pattern> <template><![CDATA[My name is <bot name="name"/>.]]></template> </category> <category> <pattern>WHAT ARE YOU CALLED</pattern> <template> <srai>what is your name</srai> </template> </category> </syntaxhighlight> The first category simply answers an input "what is your name" with a statement of the bot's name. The second category, however, says that the input "what are you called" should be redirected to the category that matches the input "what is your name"βin other words, it is saying that the two phrases are equivalent. Templates can contain other types of content, which may be processed by whatever user interface the bot is talking through. So, for example, a template may use HTML tags for formatting, which can be ignored by clients that don't support HTML. ==References== {{reflist}} {{DEFAULTSORT:Aiml}} [[Category:Free artificial intelligence applications]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Code
(
edit
)
Template:Dead link
(
edit
)
Template:Infobox file format
(
edit
)
Template:Primary sources
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Text
(
edit
)