[alicebot-archcomm] Predicates, Once Again
Jonathan Roewen
alicebot-archcomm@list.alicebot.org
Thu, 8 Jan 2004 10:22:55 +1300 (NZDT)
Hi All,
Been a while since I've stirred this list, so must be
time to do it again.
We never did get any general consensus on predicate
handling in AIML Interpreters, so I feel it's time to
try again.
>From my experience, other people appear to like having
the ProgramD-style default predicate value(s). From my
personal experience, I prefer specifying the default
value with the <get/> itself.
Sooo, perhaps we could come to some sort of middle
ground, making both avenues part of the standard.
I'd also like to see the AIML specifications relax
quite a bit as to what is allowed to be a name for a
predicate. Currently, if I'm not mistaken, it can be a
single word (no space characters allowed, etc).
Personally, I'd like to expand it to the bare minimum
of any sequence of alphanumeric characters
([A-Za-z0-9]), and the space character (0x20 - I
think). Such as <get name="first name"/> would be
legal syntax.
As for default values, I think that adding a
requirement to the AIML Standard that AIML
Interpreters must define some (Interpreter dependant)
method to allow an AIML Author to specify a global
default value for predicates.
I'd also like to see the <get/> tag itself extended in
functionality, to allow the J-Alice style of default
values. Where any valid template tag is valid as
content of <get/>, and that it of course be mixed
content (so other elements + character data is valid).
For example: <get name="some value"><srai>GET RANDOM
DEFAULT VALUE</srai></get> is considered valid AIML
markup.
I'm not use if the standard specifies when a predicate
is considered to be empty, but I assume that as long
as the value of the predicate is the empty string (""
in some programming languages), then any method of
providing a default value can be applied.
If my ideas, although not perfectly stated, seem to go
down well with you, then we'd also need to be specific
about with method of specifying the default value
ranks highest. I feel that the natural order would of
course be: if <get/> has markup content, use that,
else if a global default value has been set at
startup, use that, else return the empty string.
At present, I don't know how I feel about specifying
default values for specific tags, but am certain that
there are some among you who would feel these should
be part of the standard too.
In the case of specifying default values for specific
predicates, in terms of order, I believe it would fall
between markup content and global default value.
Now just a matter of getting all of your thoughts
about the merging of these two methodologies for
predicate default values (and predicate names).
Jon =)
http://personals.yahoo.com.au - Yahoo! Personals
New people, new possibilities. FREE for a limited time.