# SoftBank Robotics documentation What's new in NAOqi 2.8?

# Semantic Engine - What NAO knows

Prerequisite: Autonomous Life: ON - Basic Channel: ON

Warning

Semantic Engine is an experimental feature, it is not active by default. To activate it, use _enableSemanticFallback method of ALDialog.

## NAO can learn!

Thanks to his Semantic Engine, NAO is able to:

- keep in mind some information,
- acquire new information, and
- use this knowledge in order to answer your questions and requests.

Note

For now, NAO has a short-term memory, persistent from startup to shut-down. He will forget all his knowledge each time he reboots.

## Test NAO’s ability to learn

When chatting with NAO, try to make some simple assertions, then question him.

Example:

    Human: Paul likes to play video games.
    Human: what does Paul like?
    Robot: Paul likes to play video games.

Tips:

You can also use “I” and “you”.

    Human: I like chocolate.
    Human: what do I like?
    Robot: You like chocolate.

You can change your mind!

    Human: Paul likes to play video games
    Human: what does Paul like?
    Robot: Paul likes to play video games.
    Human: Paul doesn't like to play video games
    Human: what does Paul like?
    Robot: Paul likes nothing particular.

NAO is able to follow conditional assertions.

Syntax:

    if/when/whenever <condition> , <affirmation>

Example:

    Human: If Paul likes chocolate, Paul likes banana
    Robot: OK, Paul likes the banana if he likes chocolate.
    Human: Does Paul like banana
    Robot: I don't know if Paul likes the banana.
    Human: Paul likes chocolate
    Human: Does Paul like banana
    Robot: Yes, Paul likes the banana.

## Question NAO about his perceptions

You can question NAO about his perceptions.

Example:

<the human doesn’t touch NAO’s left hand>

    Human: is your left hand touched?
    Robot: No, my left hand is not touched.

<the human touches NAO’s left hand>

    Human: is your left hand touched?
    Robot: Yes, you touch my left hand.

## Train NAO

On your request, NAO is able to perform some basic actions.

Example:

    Human: raise your left hand.

<NAO raise his left hand>

For further details, see: Make NAO move.

You can also teach him new actions.

Syntax:

    <infinitive command to define> means <set of infinitive(s) command(s) to do>

Example:

    Human: to salute means to say hello
    Robot: OK, to salute means to say hello.
    Human: salute
    Robot: Hello

NAO is also able to learn how to react in some circumstances.

Syntax:

    if/when <condition> , <command>

Example:

    Human: if I am happy, raise your left hand
    Robot: OK, I will raise my left hand if you are happy.
    Human: I am happy
    <robot raises his left hand>
    Human: I am happy
    <robot doesn't raise his left hand>

Glossary Site map Index Support Contact Legal Notices