junker / rivescript
RiveScript interpreter library for PHP with Laravel support. RiveScript is a scripting language for chatterbots, making it easy to write trigger/response pairs for building up a bot's intelligence.
Requires
- php: >=7.1
- axiom/collections: ~2.0
- symfony/console: ~3.0
- symfony/finder: ^3.2
Requires (Dev)
- monolog/monolog: ~1.0
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-10-28 04:36:25 UTC
README
This is a RiveScript interpreter library for PHP. See the below Working Draft section for more information.
The package follows the FIG standards PSR-1, PSR-2, and PSR-4 to ensure a high level of interoperability between shared PHP code.
Quick Installation
Simply install the package through Composer.
composer require junker/rivescript
Integration
The RiveScript PHP interpreter is framework agnostic. As such, the interpreter can be used as is with native PHP, or with your favorite framework.
Working Draft
The RiveScript Working Draft (WD) is a document that defines the standards for how RiveScript should work, from an implementation-agnostic point of view. The Working Draft should be followed when contributing to the RiveScript-PHP interpreter. If any of the current implementations don't do what the Working Draft says they should, this is considered to be a bug and you can file a bug report or send a pull request.
A copy of the working draft can be found within the resources
directory of this repository. You may also find the latest version on the RiveScript website at http://www.rivescript.com/wd/RiveScript.
Roadmap
Interpreter
- Format
- Whitespace
- Standard Global Variables
- Sort +Triggers
- Sort %Previous
- Sort Replies
- Syntax Checking
Tag Priority
- Within BEGIN/Request
- Within +Trigger
- Within Replies
Commands
- % Previous
- ^ Continue
- @ Redirect
- * Condition
- // Comment
! Definition
- version
- global
- var
- array
- sub
- person
> Label
- begin
- topic
- object
+ Trigger
- Atomic
- Wildcard
- Alternation
- Optional
- Arrays
- Priority
- Response
- Atomic
- Random
- Weighted Random
Tags
-
<star>
-
<star1>
-<starN>
-
<botstar>
-
<botstar1>
-<botstarN>
-
<input>
-
<input1>
-<input9>
-
<reply>
-
<reply1>
-<reply9
-
<id>
-
<bot>
-
<env>
-
<get>
-
<set>
-
<add>
-
<sub>
-
<mult>
-
<div>
-
{topic=...}
-
{weight=...}
-
{@...}
-
<@>
-
{random}...{/random}
-
{person}...{/person}
-
<person>
-
{formal}...{/formal}
-
<formal>
-
{sentence}...{/sentence}
-
<sentence>
-
{uppercase}...{/uppercase}
-
<uppercase>
-
{lowercase}...{/lowercase}
-
<lowercase>
-
{ok}
-
\s
-
\n
-
\/
-
\#