Just type and get a response from Socialbot.
Socialbot isn't designed to fool people, like many "chatbots." Fooling
isn't easy, and it's not very useful. Instead Socialbot uses animation
and natural dialog to give and receive socially relevant information
such as learning and remembering your name.
Figure 1. Socialbot does math.
Figure 2. Socialbot works from a rough map of world geography and estimates distances the way a person would.
Figure 3. Socialbot initiates conversation to get data. He can recall it later.
Figure 4. Socialbot makes inferences and categorizes.
Socialbot can do many things. The dialog
below exemplifies how Socialbot can respond to and recall user demographic
information. Other uses might include exchanging goods and
services and chatting as a character in a virtual world, or performing
movement actions and reporting sensor observations when embodied in the
personal robot. Notice how much is gathered,
queried, inferred and recalled.
Socialbot relies on "behaviors." Each
behavior is a short set of instructions designed to handle a specific
task. Usually, a behavior is triggered when the user's input contains
something it can understand and use. If triggered, the behavior will
invoke inferences, do calculations, remember facts and perform other
"functions" before generating output. Socialbot has access to a library
of common knowledge as well, such as typical names, countries, animals, and so on.
Here is an example formatted in XML (eXtensible Markup Language) for learning and
recalling the user's age:
Besides processing factual information,
behaviors orient Socialbot's identity and agenda. Or a behavior may be
"hidden" - over time, for example, a behavior might quietly track a
pattern in the user's personal values. Socialbot comes pre-configured with
hundreds of behaviors, including behaviors for use with the Internet and
supervised and autonomous function of the ER1 robot. It
is worth the time to create your own behaviors for Socialbot.
Executing behaviors is one thing; holding
a coherent conversation is another. This is particularly important if many
behaviors (immediate and queued) compete for attention. When a user inputs
something, all behaviors are tested in linear order from first to last.
In the full version of Socialbot, all triggered behaviors are processed but
Socialbot only visibly outputs a few. Socialbot automatically juggles, integrates and paces itself. This
weaving process relies on proprietary algorithms. Thus, behaviors you
script are the "pieces" that Socialbot puts together. In the limited version,
the first triggered behavior that procudes a response is output, and that's it.
The approach described here for the Socialbot scripting
language is the exclusive property of Dario Nardi. It is illegal to use this approach for
any purpose other than with Socialbot without the express consent of Dario