HOME

TheInfoList



OR:

AIML, or Artificial Intelligence Markup Language, is an
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
dialect for creating
natural language In neuropsychology, linguistics, and philosophy of language, a natural language or ordinary language is any language that has evolved naturally in humans through use and repetition without conscious planning or premeditation. Natural languag ...
software agents.


History

The XML dialect called AIML was developed by Richard Wallace and a worldwide
free software community The free software movement is a social movement with the goal of obtaining and guaranteeing certain freedoms for software users, namely the freedoms to run the software, to study the software, to modify the software, and to share copies of the s ...
between 1995 and 2002. AIML formed the basis for what was initially a highly extended
Eliza ELIZA is an early natural language processing computer program created from 1964 to 1966 at the MIT Artificial Intelligence Laboratory by Joseph Weizenbaum. Created to demonstrate the superficiality of communication between humans and machines ...
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 The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
, and because most AIML interpreters are offered under a
free Free may refer to: Concept * Freedom, having the ability to do something, without having to obey anyone/anything * Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism * Emancipate, to procur ...
or
open source license An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial compa ...
, 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 Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum (aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapp ...
, Python, C++, C#,
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
, and other languages (see
below Below may refer to: *Earth * Ground (disambiguation) * Soil * Floor * Bottom (disambiguation) * Less than *Temperatures below freezing * Hell or underworld People with the surname * Ernst von Below (1863–1955), German World War I general * Fr ...
). 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: WHAT IS YOUR NAME 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 A regular expression (shortened as regex or regexp; sometimes referred to as rational expression) is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" o ...
and as such less than level 3 in the
Chomsky hierarchy In formal language theory, computer science and linguistics, the Chomsky hierarchy (also referred to as the Chomsky–Schützenberger hierarchy) is a containment hierarchy of classes of formal grammars. This hierarchy of grammars was described ...
. To compensate for the simple
pattern matching In computer science, pattern matching is the act of checking a given sequence of tokens for the presence of the constituents of some pattern. In contrast to pattern recognition, the match usually has to be exact: "either it will or will not be ...
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 machines A finite-state machine (FSM) or finite-state automaton (FSA, plural: ''automata''), finite automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in exactly one of a finite number o ...
and as such at least of level 3 in the
Chomsky hierarchy In formal language theory, computer science and linguistics, the Chomsky hierarchy (also referred to as the Chomsky–Schützenberger hierarchy) is a containment hierarchy of classes of formal grammars. This hierarchy of grammars was described ...
. This is because a state correlates to one
topic Topic, topics, TOPIC, topical, or topicality may refer to: Topic / Topics * Topić, a Slavic surname * ''Topics'' (Aristotle), a work by Aristotle * Topic (chocolate bar), a brand of confectionery bar * Topic (DJ), German musician * 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 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 . which will substitute the bot's name into the sentence, or You told me you are 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 (Symbolic Reduction in Artificial Intelligence). This can be used to implement synonymy, as in this example (where
CDATA The term CDATA, meaning character data, is used for distinct, but related, purposes in the markup languages SGML and XML. The term indicates that a certain portion of the document is general ''character data'', rather than non-character data or ch ...
is used to avoid the need for XML escaping): WHAT IS YOUR NAME WHAT ARE YOU CALLED 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

{{DEFAULTSORT:Aiml Free artificial intelligence applications