CallMom BASIC supports two modes of learning: persistent predicates and category learning. Persistent predicates retain a description of your profile attributes: name, age, gender and so on. As you chat with the bot, it gathers more and more specific profile information about you. These persistent predicate values are stored in the SD card on your device. Pandorabots does not collect your profile information.
Category learning refers to the capability for the bot to learn new patterns and responses. You can teach the bot to substitute nicknames for contact names, tell it to change its response to any input, and even train it to respond to questions about simple facts.
CallMom BASIC also includes an "Edit Brain" feature that allows you to manually enter new knowledge in AIML, or to modify or delete the AIML the bot stores through category learning.
The bot attempts to build a personal profile through conversation. If you tell the bot your age, for example, it will save it as the value of the "age" predicate. These values are stored in a file on your device's SD card, so that every time the app launches, it remembers your personal information.
If you have GPS enabled, the app will try to fill in the geographic predicates (city, country, street etc.) with values from location services. The app will try initially to guess your name and email address from your Google account.
The following table summarize many of the profile attributes saved by CallMom BASIC - ALICE 2.0.
favorite ice cream
favorite tv show
Once you teach the bot a familar name, such as your wife, son, or boyfriend's name, then you can use CallMom BASIC to communicate with that person by referrring to the familar name. If you say "Call my wife" before teaching the app your wife's name, it will ask for her name. Once the familiar names are learned, you can communicate with statements like:
Call my wife.
Tell my wife I'm running late.
What is the weather? Tell that to my wife.
Where is my boyfriend?
Tell my sister where I am.
"Category Learning" refers to teaching the bot to respond to new inputs. The basic unit of knowledge in AIML is called a "Category", and it consists of an input pattern and a response template. You can teach the CallMOM BASIC bot new categories through a variety of interactions, including teaching the bot new facts, training it to correct speech recognistion errors, and creating new responses to specific inputs.
You can teach the bot basic facts and then ask it questions about them. We are really just getting started with this feature in CallMom BASIC. You can expect that app upgrades will be able to learn a wider variety of facts and be able to respond to even more questions about them.
A mooncake is a Chinese pastry.
Is a mooncake a Chinese pastry?
What is a mooncake?
Monopoly is a board game.
What is Monopoly?
Is Monopoly a board game?
John thinks Mary is pretty.
What does John think?
Does John think Mary is pretty?
Who thinks Mary is pretty?
The speech recognition system is surprisingly accurate, but occasionally it fails to recognize words familiar to us, especially proper names. If you say "Call Shawn", the speech recognizer may detect your input as "Call Sean". Generally these errors are repeatable: every time you say "Shawn" it will detect "Sean". You can train the bot to overcome these errors by typing in a statement like:
Sean means Shawn
When I say Sean I mean Shawn Sean is spelled Shawn
It's important to note that training for speech error correction necessarily involves typing the inputs, rather than speaking them. If you try to say "Sean means Shawn", the speech recognizer will read it as "Sean means Sean".
You can teach the bot a new response to anything. If you don't like one of the bot's built-in replies, or you just want it to say something else, just say "bad answer" or "wrong answer". The bot will ask you what you want it to say instead. Next time you try the same input, it will respond with the reply you taught it.
Sometimes when you teach the bot a new reply, the results are unexpected or you'd like to further modify the response. CallMom BASIC allows you to dig deep into the bot's AIML knowledge base and make these changes with the Edit Brain feature.
|Teach the bot||Select Menu-->Settings||Edit the bot brain|
Every new category the bot learns through conversation can be edited with the Edit Brain feature. You can also use Edit Brain to add new AIML categories directly. Activate the Edit Brain feature from the Android Menu button.
The following table summarizes the fields and functions of the Edit Brain feature.
|Pattern||AIML input pattern -- should not be blank, must contain at least the wildcard *.|
|That||AIML that pattern -- should not be blank, must contain at least the wildcard *.|
|Topic||AIML topic pattern -- should not be blank, must contain at least the wildcard *.|
|Template||AIML response template, containing the bot's reply.|
|Prev/Next||Browse to previous/next learned category.|
|New||Create a new blank category.|
|Save||Save this category to bot brain.|
|Delete||Delete this category from bot brain.|
|Search||Search for a learned category containing the search term.|
For more information about AIML, consult: