NAOqi Interaction engines - Dialog Lexicon
What is dialog lexicon ¶
dialog lexicon is a dictionary of Concepts . Its goal is to make the writing of Dialogs easier.
For further details, see: Dialog topic .
Why is dialog lexicon an interesting resource ¶
We provide this resource in order to make the writing of interactions in QiChat easier.
Dialog based interactions can be divided into two main groups:
- what the robot says;
- what the robot understands.
Although it is quite easy to make the robot say anything, understanding the answer is much more difficult.
This is where Concepts prove to be useful. Concepts comprise synonyms for specific answers (stand-alone concepts) and ready-made grammatical structures (patterns) to broaden the spectrum of what the robot can understand.
So, instead of having to build huge lists by yourself, you can use Aldebaran’s predefined ones.
- the ~yes concept comprises more than seventy different ways to tell the robot that you agree, like “yes”, “sure”, “alright”, “let’s do it”, etc. Same for the ~no concept;
- the ~can_you concept is a ready-made grammatical structure that allows you to understand a great variety of questions regarding the capacity of the robot to do something, like “Can you dance?”, “Do you know how to dance?” or “Will you please dance?”. This is possible by writing “ ~can_you dance” where “dance” can be replaced by any action of your choice, depending on your needs. This way, you could also write “ ~can_you do pushups”.
A short list of the most used concepts ¶
|~yes||Let the robot knows you agree.|
|~no||Let the robot knows you disagree.|
|~repeat_it||Let the robot knows you want him to repeat what he said.|
|~i_didnt_understand||Let the robot knows you didn’t understand what he said.|
|~i_dont_know||Let the robot knows you don’t know what he is talking about or that you have no opinion on the matter.|
|~can_you||“ ~can_you dance” -> “Can you dance?”|
|~what_is||“ ~what_is a robot” -> “What is a robot?”|
|~you_are||“ ~you_are cute” -> “You are cute.”|
|~are_you||“ ~are_you intelligent” -> “Are you intelligent?”|
|~i_am||“ ~i_am feeling good” -> “I’m feeling good.”|
|~who_is||“ ~who_is Barack Obama” -> “Who is Barack Obama?”|
|~do_you_have||“ ~do_you_have a brother” -> “Do you have a brother?”|
|~i_want_to||“ ~i_want_to play with you” -> “I want to play with you.”|
|~can_i||“ ~can_i touch your head” -> “Can I touch your head?”|
How to use dialog lexicon in QiChat ¶
In a dialog topic, you can import the lexicon by adding include: lexicon_enu.top right after the header of the topic:
topic: ~my_own_topic() language: enu include: lexicon_enu.top
Be careful to import the lexicon in the right language. If you want to use the lexicon in a French topic, you will have to write include: lexicon_frf.top.
Note: at the moment, only English and French (and Japanese in a lesser way) have lexicons available.
Once the lexicon has been included, you can use Concepts in your QiChat rules:
u:(~i_am happy) I’m glad to hear that! u:(~can_you dance) Do you want me to dance? u1:(~yes) Okay, let’s dance! u:(~no) Let’s do something else then!
Dynamic concepts ¶
Dynamic concepts are automaticaly filled.
Robot name is the robot name. For example Pepper or NAO or Romeo.
topic: ~name() language: enu include: lex_frf.top u:(who ~are_you) ~i_am $Dialog/MyRobotName
My Robot name is the robot name given on robot web page.