-
Notifications
You must be signed in to change notification settings - Fork 1
Description
At some point a deep dive should be done to compare RiveScript to AIML 2.0 similar to https://www.rivescript.com/compare/aiml. I had someone e-mail me asking about that. I threw this together from a quick Google search of AIML 2.0 tags.
✔️ Category topic tags: looks similar enough to the old <topic> container tag
✔️ Zero or more wildcards: [*] makes an 'optional wildcard' which doesn't need to match any text, and a normal * wildcard needs to match at least one character/word.
✔️ Pattern priority: RiveScript has {weight} tags to prioritize certain triggers
❌ Sets: no support in RiveScript
❌ Maps: no support in RiveScript
✔️ Conditional patterns (wildcards for defaults): RiveScript does defaults by just using normal replies after the condition commands.
❌ Condition loops: not sure what this is but RiveScript doesn't support it.
❌ Local variables (at the category/trigger level): no support
❌ Remote requests: no support (seems to be a Pandorabots tie-in for AIML and there isn't a Pandorabots for RiveScript)
❓ Normalization and denormalization: no support. Could be implemented by an object macro.
❌ Date formats: RiveScript expressly didn't include a <date> tag as was mentioned on the AIML 1.01 comparison page, object macros are better suited for that purpose.
✔️ Request tag: <input> tag does this in RiveScript (<input1> to <input9> for historical inputs)
✔️ Response tag: <reply> tag in RiveScript (<reply1> to <reply9>)
❌ Learning: No support. AIML 1.x had a <learn> tag too which RiveScript doesn't support either.
❓ Explode tag: no support, could be done with an object macro.
❌ Mobile tags: IIRC, AIML doesn't use these directly anyway, they just convey out-of-band info, and I've seen people come up with their own clever solutions in RiveScript. So no direct support built in.