[alicebot-archcomm] Topic handling

Dr. Rich Wallace alicebot-archcomm@list.alicebot.org
Sat, 26 Jul 2003 12:02:38 -0700 (PDT)


There is a lot of material in this proposal.

One point to consider: you can implement a topic stack in AIML without
adding any new tags.  Kim Sullivan and others have already show how to
write stacks with PUSH and POP operations in "pure" AIML.

> The topic is accessed by <topic name="..."> to group categories in the
> AIML files and by <set/get> inside <template> to switch the topic.
>
> Proposal:
>
> Top-level topic:     <topic value="..."> ..... </topic>   (changed)
>
>     The use of the attribute "value" is consistent in the face of the
> overall use of name/value in AIML.
>
> Pattern-side topic:  <topic> ... </topic>                 (new)
>
>     This works analog to pattern-side <that> and might be more readable
> in cases, you want to group categories by patterns.
>
>     Constraint: If <topic> is defined top-level, the use of pattern-side
> <topic> is forbidden.
>
> Template-side topic: <topic [value="..."|index="#"|pop] />    (new)
>                       <topic [push]>...</topic>                (new)
>
>     The use of normal set/get here interferes with user-defined
>     predicates (variables). So it might be clearer to handle the topic
> analog to template-side <that> with the difference, that <topic> is
> writable.
>
>     Possible usage:
>
>     <topic value="..."/>        or
>     <topic push>...</topic>     or
>     <topic>...</topic>             set current topic and push it
>                                    on stack
>
>     <topic/>                    or
>     <topic index="1"/>             return current topic
>
>     <topic index="2"/>             return last topic
>     <topic index="3"/>             return last but one topic
>     etc.
>
>     <topic pop/>                   return current topic and pop it
>                                    from the stack (last topic becomes
> current topic)
>
> (Maybe we have to use something like push="1" or push="push" or
> action="push" to be 100% XML compliant - any XML guru around? ;-)
>
>
> For that matter another
>
> Proposal:
>
> Top-level that:     <that value="..."> ..... </that>      (new)
>
>     Works like top-level <topic> and helps grouping categories.
>
> Pattern-side that:  <that> ... </that>                    (unchanged)
>
>     Constraint: If <that> is defined top-level, the use of pattern-side
> <that> is forbidden.
>
> Template-side that: <that [index="#[,#]"] />              (unchanged)
>
>     Read-only in contrast to the template-side <topic>.
>
>
> The new idea of having a topic-stack must be discussed. There might be a
> need of this - see i.e.
> http://www.alicebot.org/pipermail/alicebot-general/2002-March/003514.html
>
> And there is another issue: Top-level and pattern-side <topic/that> are
> used to define patterns to be matched against the current values, while
> the template-side <topic/that> return the current values: <that
> index="1,1"/> returns the bot's last uttered sentence, which is matched
> against the pattern-side <that>. The same applies to <topic>, so the
> AIML writer must be careful, what to store in <topic> and what he'll get
> back in respect of meaningfull output - e.g. pay attention to character
> case, do not store topics like "* LIZARDS" etc..
>
> Maybe <topic/> should return '' instead of '*', if the last topic was
> '*' aka 'catch all' aka 'stack is empty'.
>
> I think, that a topic stack is useful especially in catch-all categories
> to return to a previous topic.
>
> Ernest
>
> --
>                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
>
> ---------------------------------------------------------------------
> SPAM ALERT                       http://www.virtualitas.net/spam.html
> ---------------------------------------------------------------------
>
>
> _______________________________________________
> 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
"Dean of cheezo-hobby system hackers."--Salon