Monday, January 28, 2013

Program AB -- AIML 2.0 Reference Implementation

Motivated by the technological and social changes of this mobile era, the ALICE A.I. Foundation has released a new, free, open source Java implementation of the AIML 2.0 Draft Specification.   Following the tradition of naming AIML interpreters after letters of the alphabet (Program A (SETL), Program B (Java), Program D (Java), Program E (PHP), J-Alice (C++), Program N (C++), Program O (PHP/MySQL), Program P (Pascal),  Program Q (C++, Qt), Program R (Ruby), Program V (Perl), Program W (Java), Program Y/PyAIML (Python), and Program Z (Lisp)), this new system is called Program AB to indicate a "fresh start" with AIML 2.0.

Program AB serves as the reference implementation of AIML 2.0 and is currently the primary platform for experimenting with new features.  The program is structured to enable developers to easily extend AIML with custom tags.  Program AB implements AIML 2.0 features including Sets and Maps, Zero+ wildcards, and the capability to connect to remote bots and web services through the new  tag.

Significantly, Program AB implements some memory and storage optimizations that make it possible to run a sophisticated chatbot on a mobile device or embedded system.   Versions of Program AB have already been tested on Android phones and tablets, as well as the Raspberry Pi single-board computer.  Embedding the artificial intelligence engine in such devices provides the possibility of creating virtual assistants that work without an internet connection, as well as enhancing user privacy because the application does not rely on transmitting conversation data to a remote server.

Program AB is available for beta testing at

Wednesday, January 16, 2013

AIML 2.0 draft specification released

The ALICE A.I. Foundation has released a draft specification of a major uprgade to AIML (Artificial Intelligence Markup Language), version 2.0 of the language.   AIML is a widely adopted standard for creating chat bots and mobile virtual assistants like ALICE, Mitsuku, English Tutor, The Professor and many more.  A decade or more of experience building AIML bots has informed the need for new features in the language.  The need for new features however is tempered by the goal of keeping AIML as simple as possible, especially for non-programmers.

AIML 2.0 combines Pandorabots extensions to the language, the Out-of-Band (OOB) tags that implement actions on mobile devices, and a collection of new AIML features.   AIML 2.0 includes a new tag so that the bot can access responses from remote web services and even other AIML bots.  The AIML 2.0 draft includes new wildcards, conditional loops, local variables, and the ability to specify attribute values in tags.  One significant advance, AIML Sets and Maps, is described in a companion document.

The AI Foundation will shortly be releasing a new open source AIML interpreter in Java to serve as a reference implementation of AIML 2.0.  To join the discussion about AIML 2.0 please visit and the forum.

What’s new in AIML 2.0?

  • Zero+ wildcards: new wildcards that match 0 or more words.
  • Highest priority matching: select certain words to have top matching priority.
  • Migrating from attributes to tags: more dynamic control of attribute values.
  • AIML Sets: match inputs with sets of words and phrases.
  • AIML Maps: map set elements to members of other sets.
  • Loops: Iterations in conditional expressions.
  • Local variables: variables with scope limited to one category.
  • Sraix: access external web services and other Pandorabots.
  • Pandorabots extensions
    • date: formatted date and time.
    • request: access previous input request history.
    • response: access previous bot response history.
    • unbound predicates: check if a predicate has been set or not.
    • learn: learn new AIML categories.
    • learnf: learn new AIML categories and save in a file.
    • explode: split words and phrases into individual characters.

  • OOB (Out of Band) Tags: AIML extension for mobile device control


blogger templates | Make Money Online