[alicebot-archcomm] [proposal] <get pattern=

Christopher Fahey [askrom] alicebot-archcomm@list.alicebot.org
Sun, 11 Nov 2001 14:06:55 -0500


> The current <set>/<get> methods look so similar to "variable 
> assignment" that they possibly mislead people into [not] thinking 
> in "true AIML" fashion. People begin writing mini-programs 
> inside categories, testing "variable" values and all that jazz.


Setting and testing variables is really simple stuff that anyone with a
little bit of programming experience can understand pretty quickly. For
practical, mission-critical AIML applications (like online help, sales,
guides, etc) it is essential. Mimi-programs aren't necessarily bad, are
they?

The system you describe may be more like how a mind works, and for
all-purpose conversation it may be more powerful than manually setting
and checking variables all the time, but my gut reaction says that (a)
the learning curve would be steep and (b) botmasters will still opt to
use a more explicit controlled-flow style of AIML authoring.


> <!--Example 1-->
> <category>
>   <pattern>I LIKE *</pattern>
>   <template>
>     I'll remember that.
>   </template>
> </category>
> 
> <category>
>   <pattern>WHAT DO I LIKE</pattern>
>   <template>
>     You told me you like <get pattern="I LIKE *"><star/></get>.
>   </template>
> </category>
> 
> That allows two things:
> 
> 1. I can retrieve things that were captured even if I have no 
> control over the AIML (as when I am using AIML that is served 
> from somewhere else). 2. When writing AIML, I don't always 
> have to predict which values I'll want to save for later use. 
>  I can refer to the values by a more direct means -- their 
> "meaning" with respect to some particular utterance -- rather 
> than being constrained to think up arbitrary names to 
> associate with these values.


What if the original pattern was never triggered? That is, the user says
"WHAT DO I LIKE" but never said "I LIKE *"? It seems like the whole <get
pattern> structure introduces a degree of unpredictability to the bot,
and this unpredictability is not necessarily something that a lot of
botmasters really want.

To me, the advantage of explicit variable setting/testing via <set> and
<get> is that AIML authors can be *sure* about what their bot is going
to say in certain situations. Yes it amounts to mini-programming, but it
seems to me that your idea of what AIML-thinking is is something that is
of more use to AI academics and tinkerers than it is to the businesses,
governments, and entertainment producers who I think are going to be our
primary audience. 

I guess the difference is between whether or not one sees an AIMLbot as
your child or as your slave. I'm not all that sure I'm ready for the
former.

-Cf

[christopher eli fahey]
art: http://www.graphpaper.com
science: http://www.askrom.com