[alicebot-archcomm] Another suggestion for AIML architecture

Dr. Rich Wallace alicebot-archcomm@list.alicebot.org
Fri, 28 Feb 2003 20:24:25 +0100 (CET)


You've hit upon one of least well defined areas of AIML here Gary.

One of the difficulties here is that, even if we specify the existence of
a general <system> tag like you've proposed, it still makes a lot of
assumptions about the run-time environment.

For example, Does <system>X</system> start a new process?  And, if not,
can it hold up the AIML parser forever if X does not return?

Say two calls to <system> occur in two templates, is there any sharing of
run-time information possible between them?

Another issue that came up, was, does the <system> or <javascript>
environment have access to the objects of the underlying AIML interpreter?
 Is there a convention to access, for example, the binding of the AIML
"star" from inside the script?

The more I think about these problems, the more confused I get.  The idea
of a <system> tag is simple.  But spelling out its exact behavior in a
language-independent, platform independent way is not.

I tend to think that the ad hoc solutions adopted by each interpreter are
going to be around for a while.

> There are several versions of the AIML engine, each specialized in an
> operating environment, that is, a language.  We have Program E which
> prefers PHP.  We have Program V which uses Perl.  Of course there is the
> Program D which is Java.  Program N written in C++ (or Program J if you
> prefer.)  And Program P for Pascal.  Program Z for Lisp.
>
> Each of these (except J and possibly P) have extended the AIML standard
> to include the language best for their environment.  Starting with D we
> have <javascript>.  In E we get <php>.  In V we get <perl>.  In N we get
> <script>.  Does Z have <lisp>? And in each we have <system> which
> probably is different for all.
>
> I propose that we create a standard tag for extensions to the language
> that is best for the platform.  In html it is called <script> and it
> adapts to what the browser can handle by an attribute.  I wouldn't
> really want to confuse the html with aiml, so I suggest we improve the
> <system> tag (although I am surely open for debate here since html and
> aiml should work together and share functions like formatting -
> including scripting.) Instead of <perl> we could write <system
> language="perl">.  Instead of <php> we could write <system
> language="php">.  This would allow the aiml standard to have a fixed
> specification for any future API or languages that might benefit the
> aiml engine.  A <system> without the language attribute would operate
> either as the preferred language of the engine or as the existing
> <system> does now.  Actually the existing definition for <system> means
> no single implementation of <system> acts as it does now, since by the
> standard it is platform dependent.  Which is exactly what the new
> additional tags seem to be doing and want to do.  They are enhancements
> for the platform in which they run.
>
>
> _______________________________________________
> alicebot-archcomm mailing list
> alicebot-archcomm@list.alicebot.org
> http://list.alicebot.org/mailman/listinfo/alicebot-archcomm


-- 
Dr. Rich
W A L L A C E
ALICE A.I. Foundation
drwallace@www.alicebot.org