[alicebot-archcomm] [proposal] <get pattern=
Noel Bush
alicebot-archcomm@list.alicebot.org
Sun, 4 Nov 2001 19:07:53 +0300
> The trouble comes when I imagine myself in front of a class of AIML
> students,
> trying to explain what <get pattern="I LIKE *"><star/></get> means.
I think that it could even be easier than explaining the practical use
of <get name="something"/>.
Note I said *practical* use. The understanding of <set> and <get> is,
of course, very easy in general. But when it comes to practically
mapping out a plan to set and use these things in a way that's
consistent, you venture into territory that seems very un-AIML to me.
The question, "What is the default value of x?" is probably not a
question that makes any sense if you're describing how a mind actually
works.
The current <set>/<get> methods look so similar to "variable assignment"
that they possibly mislead people into thinking in "true AIML" fashion.
People begin writing mini-programs inside categories, testing "variable"
values and all that jazz.
But what is interesting about AIML isn't the ability to "set variables"
-- what's interesting is to focus on what people actually say. I don't,
in my head, need to assign some kind of explicit predicate like "Lja"
(or "Likes(Joe,apples)") in order to remember that Joe likes apples.
More than likely, I remember this by thinking back to some statement by
Joe like "I like apples", or some action Joe took that I "interpreted"
(symbolically reduced) to "I like apples". I don't need to give special
status to "likes" in understanding that: what I give special status to
is the variable part of "I LIKE *", as it sits within the invarying
part.
At least that's my interpretation of what a pattern is in AIML.
So you could say that a pattern actually forms a predicate, with an
unpredefined number of terms to which it applies. More correctly, the
whole pattern:that:topic path constitutes a predicate. It isn't
worthwhile -- probably even wrong -- to go about interpreting the
predicate: to say that "this category 'means' x". It doesn't
necessarily mean x in some absolute sense, and it can be used in many
different, unpredictable ways to generate "meanings" without the least
need for labeling.