Key concepts

Perhaps first a little word about what the ‘chatbot designer’ actually is:

With the chatbot designer, you can design your own chatbots using a simple and intuitive pattern definition language. Talk to your bot through the microphone and watch how it responds and moves it’s face. Make it do searches on the internet, open applications, and let it do pretty much anything you can extend it with through .net functions.
The application comes with a comprehensive thesaurus editor, a pattern editor that includes a spell checker, a graphical asset editor, a system for running test cases and much more. It’s also possible to add your own characters.

Some concepts useful to know about the chatbot designer:

  • A character or avatar is a set of images that, together, form an animation able to lip-sync with a chatbot’s output and emotional state.
  • A communication channel is a way for the application to talk to/with the outside world. The best known channel is the chatbot itself which displays the character, the input and output text screen. Another example is the ‘OS’ channel, which provides access to .net functions.
  • A thesaurus is a tree-like structure of related words. Though the relationship can be selected, the most common one is the ‘is a’ relationship, as in ‘a is a letter’).
  • Assets represent concrete knowledge, like ‘My dog is called Nova’ or ‘you are reading this’. There are 2 constant assets declared in the system: #bot, which represents ‘I’ from the chatbot’s  perspective, and #user which represents ‘you’ from the bot’s viewpoint.
  • An input pattern is a text filter that the application uses to match input with output. Input patterns can be build with different components.
  • An output pattern is a text-generator that gets activated in response to an input pattern. It can also consist out of different components.
  • a conditional pattern’s result is calculated to determine if an output pattern should be activated.
  • Do-patterns are used to manipulate memory (assets, thesaurus or local variables). Do patterns attached to an input pattern are executed before any conditionals. Do patterns attached to output patterns are executed just before the output is generated but after the conditionals.
  • A rule consists of a series of input patterns and possibly also output patterns,  conditional patterns  and do-patterns. 
  • A single rule can have multiple input patterns, all of which map to the same output.
  • Multiple output patterns can be grouped together so that the system can pick 1 from the list (either sequential or random).
  • Multiple rules are grouped together in a topic. Besides rules, a topic can also have a series of questions. When a topic is activated and it contains questions, one of those will be generated.
  • Topics can be stand-alone or attached to thesaurus objects. The latter is useful to have the system generate topic specific questions.
  • Test cases are used to automatically test and measure the chatbot.

 

For those who would like to play with the full designer version, perhaps a very short overview of the main ideas behind the resonating neural network, the prime concept behind the chatbot designer:

  • A link between 2 neurons has a meaning. This meaning is expressed in the form of another neuron.
  • A network has processors, which are able to ‘execute’ neurons and links.
  • Each processor runs in it’s own thread.
  • Different types of neurons exist, each type with it’s own specific purpose. The major groups are:
    • regular neurons, which only have incoming, outgoing links and possibly ‘parent’ clusters.
    • Clusters, which are used to group together other neurons (they can have ‘child’ neurons).
    • value neurons, which are able to store integer, double or string values.
    • expressions, which can be executed by processors (they control execution flow of the processor).  
    • instructions, which define what the processors need to execute (usually, some operation on neurons).
    • sensory interface, which serve as the conduit to the outside world: they generate new neurons when receiving input and do something (like generate output) when neurons are sent to them from within the network.
  • neurons can group together into a compound object, to represent complex info.
  • A compound type defines which links and children should be present in a compound object. Example:
    • An Object is a compound type used to represent a single instance of knowledge (a synset in wordnet).
  • A processor’s purpose is to translate a series of input neurons, received from a sensory interface, to outputs.
  • A processor has the ability to split itself into multiple identical instances, with 1 single difference on each processor. It does this when there was some ambiguity and multiple processing paths are possible.
  • When a processor was split, it can return a ‘split-result’ before it finishes. When all the processors of the split have terminated, the split – finalizer code is started (in the processor that finished last), which can retrieve all the split-results, and continue processing from there.
  • Each split result can have a weight to make some more valid and others less.
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org