[alicebot-archcomm] Structuring tags

Ernest Lergon alicebot-archcomm@list.alicebot.org
Tue, 23 Sep 2003 20:28:02 +0200


Reflecting about the proposed <aiml:br/> tag, I think, we should
consider more of those elements, which add basic structuring to AIML
resp. to a conversation.

Maybe the main parts of a conversation are:

* text
* pause
* prosody
* concurrency
* barge-in

AIML 1.01 deals only (not more but not less!!) with the part 'text'
itself. The other parts must be marked up with other languages like HTML
or VoiceXML, thus making the AIML non-portable from one frontend to
another or better: making AIML not so general as it should be. Moreover
emotions can only be expressed by choosing different wordings and
concurrency or barge-in are not possible at all.

One might say, that it's ok to leave all that up to other markup
languages, but I think, we should provide some basic elements, so that
the AIML writer is able to cover all above mentioned conversation parts
without using any other markup.

* pause
That's easy: <aiml:br[ time="timevalue"]/> as proposed.

* prosody
This has to be discussed in depth, because it touches the processing of
emotions in AIML and might force many extensions. There are some ideas
(<mood> i.e) but this part of a conversation has many implications and
can't be easily implemented as the others named here.

* concurrency
Think of a phonecall from your boss telling you to find a fax he sent to
you one month ago. You dig into your mountains of paper in the landscape
of your desk while uttering "Yes, I have it here... One moment...
Yesterday I saw it..." etc.

An example of this parallel processing is <vxml:submit/> [1].

A solution for AIML might be an attribut like 'meanwhile' to the
external tags like <javascript>, <system>, <perl> or <php> and the
discussed new tags <fetch> and <remote>. Another attribute 'time' tells
the interpreter how often the intermediary should be called - e.g.:

<category>
    <pattern>LOOK FOR *</pattern>
    <template>
I'll look it up for you...
<javascript meanwhile="FN77WAITING" time="2s">
var query = '<star/>';
// ... lengthy database search
</javascript>
    </template>
</category>

<category>
    <pattern>ASK FOR *</pattern>
    <template>
I'll ask my friends...
<remote meanwhile="FN77WAITING" time="3s"><star/></remote>
    </template>
</category>

<category>
    <pattern>FN77WAITING</pattern>
    <template>
<random>
    <li>uhm...</li>
    <li>let me see...</li>
    <li>please hold the line...</li>
    <li>many traffic today on the net...</li>
    <li>maybe...</li>
    <li>please wait...</li>
</random>
    </template>
</category>

So while calling lengthy operations the bot could utter something. In
programming techniques this is also known as still-alive sign - it calms
down a user seeing a progress bar ;-)

Programming hints: Using TTS as frontend, there should be no problem.
For HTML one might have to use server-push.

* barge-in
The user should have the possibility to interrupt the output-flow of
Alice. It might have the form of the attribute 'bargein' used by
<vxml:prompt> [2] and should be off by default - e.g.:

<remote meanwhile="FN77WAITING" bargein="true"><star/></remote>

<template bargein="true">
<!-- hundreds of <srai> constructing a long story -->
</template>

The attribute 'bargein' is inherited by the categories called by <srai>.

Programming hints: Again, using as frontend a TTS engine, it's very
easy. Using a HTML browser, one might have to create a frameset, so that
the user can type and send a query in one frame, while the bot fills up
the answer-frame.

Implementing concurrency and barge-in in the backend aka the AIML
interpreter is left as an excercise to our programmers ;-)

Something missing? Comments?

Ernest


[1] http://www.w3.org/TR/voicexml20/#dml5.3.8
[2] http://www.w3.org/TR/voicexml20/#dml4.1.5


-- 
               ProgramV - Alice on Perl - available at
                http://www.virtualitas.net/perl/aiml/

       VIRTUALITAS - Manufacturer of fine OOPPS - since 1996
*********************************************************************
* VIRTUALITAS Inc.               *       http://www.virtualitas.net *
* Ernest Lergon                  *    mailto:Ernest@virtualitas.net *
*********************************************************************
       PGP-Fingerprint 6E6F DC17 A886 342D  D63F 7880 12F5 6BA9
         PGP-Key http://www.virtualitas.net/Ernest_Lergon.asc

        Member of the Alicebot and AIML Architecture Committee
         http://www.alicebot.org/committees/architecture.html

---------------------------------------------------------------------
SPAM ALERT                       http://www.virtualitas.net/spam.html
---------------------------------------------------------------------