AIML spec open issues
The AIML spec (mirrored from here) has not been majorly revised since it was published in 2001. From time to time, discussion arises about certain items that are ambiguous or potentially incorrect in the spec. This page exists to try to collect all the points that have been raised. Potentially these may be addressed in some "proposed alternate spec" to be hosted here, and offered as input for the "official" AIML spec.
Please feel free to register and edit this page, but don't remove other people's items or comments. Thanks.
If possible, please include links to discussions about open points, so not all discussion have to be re-hashed here.
empty <set/> elements
Per Mehri, "The <set> in the aiml specification does not indicate what you should do whenever you hit an empty <set>....Should it unset the value entirely or should it set the value to an empty string?"
<condition/> behavior when no <li/> matches
Per Mehri, "What is the behavior for conditional Li's whenever none of the Li's match? I've seen some interpreters choose the first li and I've seen some return an empty string."
user> He did it. bot> Who? bot> Joe. bot> Oh, why do you think he did that? I wouldn't expect that kind of behavior from Joe.
That should be:
user> He did it. bot> Who? user> Joe. bot> Oh, why do you think he did that? I wouldn't expect that kind of behavior from Joe.
The revision of the spec on alicebot.org is numbered 008, but there is no entry indicating what was changed between 007 and 008, and as far as I can tell, there are no changes (maybe just some formatting?). Noel Bush
Wrong wildcard in pattern expression definition
 SimplePattExpr ::= SimplePattExprConst (#x20 SimplePattExprConst)*
Similarly, the definition of 8.1.2 Mixed Pattern Expression should use "*", to read:
 MixedPattExpr ::= MixedPattExprConst (#x20 MixedPattExprConst)*
Note that the AIML schema published here does not have this error.
<bot/> elements permitted in pattern-side <that/>
(Ibid.) Because the definition of <that/> (6.1.1 Pattern-side That) is, like 6. Pattern, aiml-pattern-expression, and because 8.1 Pattern Expression Syntax seems to permit either simple pattern expressions or mixed pattern expressions, the <that/> element can apparently contain <bot/> elements. This may or may not be desirable. It should be clearer which form of aiml-pattern-expression is used where.
The AIML schema published here states that "A pattern-side that element contains a simple pattern expression", but in fact sets the type of <that/> to MixedPatternExpression, rather than SimplePatternExpression.
- I have written AIML that uses empty templates, so I think that this should definitely be possible --Kim 16:55, 20 November 2006 (CST)
- ↑ http://list.alicebot.org/pipermail/alicebot-archcomm/2006-October/001016.html
- ↑ http://list.alicebot.org/pipermail/alicebot-archcomm/2006-August/000989.html
- ↑ http://list.alicebot.org/pipermail/alicebot-general/2006-August/010384.html
- ↑ 4.0 4.1 4.2 http://list.alicebot.org/pipermail/alicebot-general/2006-October/010414.html
- ↑ 5.0 5.1 5.2 http://list.alicebot.org/pipermail/alicebot-style/2006-October/000372.html
- ↑ 6.0 6.1 6.2 http://aitools.org/programd/resources/schema/AIML.xsd