FACTOID # 145: Three of the top ten countries for GDP per capita are island nations: Bermuda, Cayman Islands, and Iceland.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "AIML" also viewed:
RECENT ARTICLES
More Recent Articles »
 

FACTS & STATISTICS    Simple view

  1. Select countries to view: (hold down Control key and click to select several)

     

     

    Compare:

     

     

  1. Select fact or statistic: (* = graphable)

     

     

     

  2. (OPTIONAL) Compare to statistic: (both need to be graphable)

     

     

     

  3. View result as:

     

       
(OR) SEARCH ALL encyclopedia, stats & forums:   

Encyclopedia > AIML

AIML, or Artificial Intelligence Markup Language, is an XML dialect for creating natural language software agents. Hondas intelligent humanoid robot AI redirects here. ... The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. ... The term natural language is used to distinguish languages spoken and signed (by hand signals and facial expressions) by humans for general-purpose communication from constructs such as writing, computer-programming languages or the languages used in the study of formal logic, especially mathematical logic. ...

Contents


Background

The XML dialect called AIML was developed by Richard Wallace and a worldwide free software community between the years of 1995 and 2002. It 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 Contest for Most Human Computer three times, and was also the Chatterbox Challenge Champion in 2004. Dr. Richard S. Wallace is the Chairman of the Board and co-founder of the A.L.I.C.E. Artificial Intelligence Foundation. ... ELIZA is a famous 1966 computer program by Joseph Weizenbaum, which parodied a Rogerian therapist, largely by rephrasing many of the patients statements as questions and posing them to the patient. ... A.L.I.C.E. (Artificial Linguistic Internet Computer Entity) is an award-winning natural language processing chatterbot — a program that engages in a conversation with a human by applying some heuristical pattern matching rules to the humans input. ...


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. The current most active free implementation of an AIML interpreter is Program D, which is Java-based and has a large and active user and development community. There are also free / open source AIML interpreters available in Ruby, Python, C++, C#, Pascal, and other languages (see below). A formal specification and a W3C XML Schema for AIML are available. The GNU logo For other uses of GPL, see GPL (disambiguation). ... This article is about Free Software as defined by the sociopolitical Free Software movement; for information on software distributed without charge, see freeware. ... Open source refers to projects that are open to the public and which draw on other projects that are freely available to the general public. ... This article is about Free Software as defined by the sociopolitical Free Software movement; for information on software distributed without charge, see freeware. ... Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ... Ruby is a reflective, object-oriented programming language. ... Python is an interpreted programming language created by Guido van Rossum in 1990. ... For a WikiBook on programming with C++, see Wikibooks: C++ Programming. ... The title given to this article is incorrect due to technical limitations. ... Pascal is an imperative computer programming language, developed in 1970 by Niklaus Wirth as a language particularly suitable for structured programming. ...


Elements of AIML

AIML contains several elements. The most important of these are described in further detail below.


Categories

Categories in AIML are 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 Dick.</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 Dick."


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, far less complicated than regular expressions. It tends to suffice for most chat-oriented purposes, and where it lacks, AIML interpreters can provide preprocessing functions to expand abbreviations, remove misspellings, etc. A regular expression (abbreviated as regexp, regex or regxp) is a string that describes or matches a set of strings, according to certain syntax rules. ...


Template

A template specifies the response to a matched pattern. A template may be as simple as some literal text, like

 My name is Dick. 

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 templates, using an element called srai. This can be used to implement synonymy, as in this example:

 <category> <pattern>WHAT IS YOUR NAME</pattern> <template>My name is <bot name="name"/>.</template> </category> <category> <pattern>WHAT ARE YOU CALLED</pattern> <template> <srai>what is your name</srai> </template> </category> 

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.


External links

Main Resources

Free / Open Source AIML Implementations

Actively developed:

Dormant:

  • J-Alice (C++)
  • Program # (.NET/C#)
  • Program E (PHP)
  • Program N
  • Program P (Pascal)
  • Program V (Perl)
  • Program Y/PyAIML (Python)

Examples of Popular Online AIML Bots

AIML Communities & Bot Directories

  • AIML Scripting Resource (currently down)
  • A.I.Nexus: A Showcase for Alicebots on the Web

AIML Resources

  • AutoAiml - A Free Online Aiml file creator
  • TSL AIML Parser Chatbot Editor

  Results from FactBites:
 
AIML - The Artificial Intelligence Markup Language (370 words)
AIML (Artificial Intelligence Markup Language) is an XML-compliant language that's easy to learn, and makes it possible for you to begin customizing an Alicebot or creating one from scratch within minutes.
There are also 20 or so additional more tags often found in AIML files, and it's possible to create your own so-called "custom predicates".
Right now, a beginner's guide to AIML can be found in the AIML Primer.
The Slashdot Interview (2194 words)
AIML was developed by the Alicebot free software community and I during 1995-2000.
The AIML 1.01 standard permits multiple wildcards in each pattern, but the language is designed to be as simple as possible for the task at hand, simpler even than regular expressions.
AIML is not exactly the same as a simple database of questions and answers.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.