Comparison of Implementations
I currently maintain four different implementations of RiveScript, and some are
better maintained than others. I'll try to keep this page up-to-date to include
the differences in support between the different implementations, and use it as
reference for eventually fixing these problems so they all support the same
features of RiveScript.
In general, the order of priority for me adding features to RiveScript comes in
this order: Perl, Python, JavaScript, and finally Java. At the time of writing
this sentence, Python has a few features over Perl, and that's largely because
I wrote the Python version second and thought of these ideas as I went.
Sometimes the Python version will get a new feature before Perl, due to the
popularity of the programming language in general.
I'll organize this list by feature, and list the implementations that support
it, rather than the other way around. Features that were present "since 1.0"
don't have links to the commits on GitHub.
- Unicode/UTF-8 Support
Allows using foreign characters in triggers, loosens up the filtering of
input messages, also allows for the user to tell the bot their e-mail
address without the @ and dot symbols being removed. Where supported, the
feature is considered experimental and is not enabled by default.
- Punctuation stripping in UTF-8 mode
Strips common punctuation characters from input messages when UTF-8 mode
is active. Provides a way for the user to override this regexp if they
need to change the definition of what a punctuation character is.
- Shortcut tags <input> and <reply> in Triggers
Shortcuts for <input1>
and <reply1>
,
respectively. This is for trigger lines only, not replies. For example,
+ <input>
- Python
- Perl
- JavaScript
- Go
- Setter tags for <bot> and <env>
Lets you use <bot name=value>
or
<env name=value>
to set variables, similar to the
<set>
tag.
- Python
- Perl
- JavaScript
- Go
- Multiple Redirects
Ssimilar to multiple replies; puts redirects and replies into the same
bucket for random selection. Acts as a shortcut to using
- {@another trigger}
Web design and content copyright © 2024 Noah Petherbridge.