Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
What is SuperScript?
SuperScript is a dialog system and bot engine for creating human-like conversation chat bots. It exposes an expressive script for crafting dialogue and features text-expansion using WordNet and information retrieval using a LevelDB graph system.
SuperScript's power comes in its topics and conversations, which mimic typical human conversations. If you're looking to create complex conversations with branching dialogue, or recreate the natural flow of talking about different topics, SuperScript is for you!
What comes in the box
- Dialog engine.
- Multi-user platform for easy integration with group chat systems like Slack.
- Message pipeline with NLP tech such as POS tagging, sentence analysis and question tagging.
- Extensible plugin architecture to call your own APIs or do your own NLP if you want to!
- A built in graph database using LevelDB. Each user has their own sub-level, allowing you to define complex relationships between entities.
- WordNet, a database for word and concept expansion.
Where can I use this?
SuperScript is platform agnostic. There are example clients for Slack, Telnet, Express, Twilio, Telegram and Hangout. If you're feeling adventurous, you could even write your own middleware for BotKit and deploy it to Facebook Messenger, Slack and Microsoft Bot Framework all at once!
How it works
When a bot receives a message, it will first create a message object using the ss-message library. By default, some basic analysis like word stemming is performed, but you can write and plug in various extra features you wish to use in your message, such as NLP tagging or question classification.
We then pass this to the dialog engine, which will look for a match to what the user has said using the message, any knowledge the bot has gained, and other mechanisms like whether it's a question, whether we're in a conversation, or any keywords in the user's message that correspond to certain topics.
Once a trigger has been matched, its reply is processed, recorded in the database, and sent back to the user.
All of these ideas are explored further in Under the Hood.
- Topic: a way to logically group one or more gambits that are about a certain topic, such as football or fishing. All your conversations start within a topic. SuperScript will continue to search topics until it finds a matching trigger and reply.
- Gambit: a trigger, one or more replies, and any additional rules that tell the bot how to reply to a specific input, such as filters.
- Input: the message sent by the user to the bot.
- Trigger: a string that is matched against the user's input in order to work out how to respond.
- Reply: a specific reply given by the bot under certain conditions.
- Conversation: a set of gambits that will only match if a previous gambit in the conversation chain has already been matched.
A detailed walkthrough can be find here: Installing
Continue to Triggers