[pandorabots-general] Announcement & Invitation: xAIML

Noel Bush noel at aitools.org
Tue May 16 19:56:58 PDT 2006


Greetings to all,

This message is to announce the start of a public discussion of an 
initiative called "xAIML", and to invite you to join it.

xAIML is likely to be of interest to implementors of AIML interpreters, 
to AIML developers, as well as to the wider community of bot developers 
who would like to leverage the advantages of standardization enjoyed by 
the AIML community over the last several years, but also need to extend 
or otherwise modify the functionality set.

The key value here is: you can implement and use variations on the 
general feature set of AIML, without losing "measurable compatibility" 
among interpreters and among (x)AIML sets.

Below you will find a brief background and introduction to xAIML.  To go 
further, you are invited to peruse the materials at http://aitools.org, 
and to help start up the discussion there -- the site is now 
reconfigured as a wiki.  We will also set up an xAIML mailing list 
shortly, for those who find that a more comfortable medium for 
collaboration.

This is an initiative in the full spirit of open source and free 
software collaboration.  Anybody can enjoy the benefits of this new 
technology, and anybody can contribute and help to shape its 
development.  It is my sincere hope that this will provide a neutral, 
commercial-free, non-partisan cooperative space for implementing a 
framework that will be of use to bot developers of all stripes, 
commercial to hobbyist, amateur to professional.

Here now is the above-mentioned overview and background (taken from the 
main xAIML wiki page):

xAIML grows out of needs that have arisen since the formalization and 
standardization of AIML in 2001. It is generally agreed that the 
publication of the formal AIML specification encouraged an explosion in 
the development of AIML interpreters. Implementors of these 
interpreters, as well as AIML developers, found it very beneficial to be 
able to rely on a fixed standard that provided a reasonable guarantee 
that AIML working on one interpreter would work on another.

At the same time, however, many people have wished to extend the 
functionality of AIML, and some people have decided to implement AIML 
interpreters that do not fully conform to the AIML specification (for 
instance, commonly, do not implement the <javascript/> element). The 
result has been, on the one hand, some pressure *against* innovation, 
and on the other hand, some confusion about the "true compliance" of 
various interpreters.

In order to alleviate the pressure and the confusion, xAIML is provided 
as a "meta-specification" that gives interpreter implementors and AIML 
developers a path to follow when providing and using new functionality. 
xAIML does *not* specify any new functionality for AIML--instead, it 
specifies *how* to specify a derivation of AIML. It is anticipated that 
people's needs may vary widely--some may only want to remove or add one 
or two tags, while others will want to deploy a considerably different 
variation of the functionality set. In all cases, xAIML offers a 
framework for formally describing these derivations, called "xAIML 
dialects", and for measuring the difference between any two dialects.

A key aspect of the xAIML framework is its use of Internet domain names. 
Since the ownership of domain names is well-established and regulated, 
this provides a handy mechanism for implementors and developers to keep 
track of "ownership" of xAIML dialects. Creators of xAIML dialects are 
provided the opportunity to supply extensive detail about the 
implementation of unique functionality, although some parts of the 
specification are also optional and do not preclude the participation of 
dialects whose source code is hidden.

Also key to xAIML is its use of a simple hierarchy of inheritance. The 
"baseline" xAIML is functionally equivalent to AIML (and provides a 
fully xAIML-Spec annotated description of the same)--every other dialect 
inherits directly or indirectly from this. This is the mechanism by 
which xAIML dialects may easily make small changes to a dialect (or 
numerous changes) without needing to literally duplicate the effort 
provided by parent/ancestor dialects.

Any AIML interpreter may become an "xAIML Interpreter" by implementing a 
well-specified set of essential functionality. It is anticipated that a 
liberally-licensed library of xAIML functionality in several popular 
programming languages will be made available.

See http://aitools.org for more!!

Best regards,
Noel


More information about the pandorabots-general mailing list