Welcome to the A.L.I.C.E. AI Foundation

Promoting the adoption and development of Alicebot and AIML free software.

Two AIML Camps

Dr. Richard S. Wallace

Dr. Richard S. Wallace

One sure sign of a successful revolution is when the original revolutionaries break into factions and start squabbling among themselves. Such debate is a luxury before the status quo is overthrown, but an almost necessary feature for stability afterward. The Alicebot and AIML free software movement has that kind of revolutionary success in spades, judging from the amount of squabbling that has gone on.

Broadly, the AIML community has divided into two camps, which I call the "Reductionist" and the "Experimentalist" factions. The Reductionists belong to the long tradition of mathematical logic that began with Aristotle. They would keep the language as simple as possible (if not simpler :-)), so that it could withstand the rigor of mathemathical analysis, theory, and proof. Reductionists are strongly attracted to the minimalist design philosophy of AIML.

Experimentalists are those who see the minimal AIML that exists today as the mere seed of a great tree of a new language. There is no shortage of ideas for adding new features and tags to AIML in support of peer-to-peer, learning, voice recognition, character animation, robot control, general-purpose programming language features, and many more. These all take AIML beyond the simplistic language favored by the Reductionists. In some sense, the Experimentalists are driven by the need to create practical applications with AIML technology, and the perception that additional features will enable those applications.

An early version of this debate appeared when I raised the question, "Is AIML a high-level or a low-level language?". Tom Ringate pointed out that "low level" means "close to the machine" in terms of hardware, and "high level" langauges are abstracted far from the details of the underlying architecture. By that reasoning, AIML is a "high-level" language like Lisp, C++, Java, or SETL.

But I said, wait a minute, there is a hardware model for AIML. It's called "the brain". Knowing only a few details of neuroscience, it is actually easy to imagine how the brain could implement a stimulus-response <category>. It is also easy to imagine the brain executing a(n) <srai> through a feedback circuit. It is much harder to understand how the brain would implement <condition> or <javascript>. Keeping AIML pure enough so that one day, some scientist smarter than us might be able to map our knowledge onto the human brain is an exciting prospect for the Reductionist approach.

Can we have it both ways? The answer is yes, I think, if we are careful to specify the interfaces to AIML. The <system> and <javascript> tags already provide two ways to process information outside the AIML engine. In the future we should consider more carefully how to make ALICE a "container" that is easily accessed by other applications. Another solution is provided by namespaces, which allow embedding of other XML languages in AIML. The Reductionists will be satisfied so long as there are few changes to the AIML tagset itself.