It's a plain text, line-based scripting language with goals of being simple to learn, quick to type, and easy to read and maintain. This is in contrast to other chatbot languages that require you to read and write ugly XML code (like AIML), or memorize lots of random symbols and "line noise" to write and read your code (like ChatScript).
RiveScript keeps simple replies simple, for example:
+ hello bot - Hello, human!This will add a reply so that when a human says the words "Hello bot", the bot would respond with "Hello, human!"
With more advanced RiveScript code we can learn and repeat user variables and use more complicated trigger matching patterns:
+ my name is * - <set name=<formal>>I will remember to call you <get name>. + (what is|do you know) my name * <get name> != undefined => Yes, your name is <get name>! - I don't know your name.You can learn more in the RiveScript Tutorial.
The RiveScript library only concerns itself with fetching a response to a user input message. Everything else is up to your program. This is in contrast to AIML bots ("Alicebots"), in which an Alicebot is a complete chatbot solution with a configuration system, runtime interface (e.g. support for connecting to instant messengers or listening on a socket server) and all the bells and whistles built in, and which just so happens to include a scripting language (AIML). With AIML bots, it's often difficult to separate out just the code that deals with AIML to use it in your own code. RiveScript's goal is to be simple and self-contained and easy to use it how you want to.
Read more about RiveScript's goals and scope in the Contributing Guidelines.