welcome: please sign in
location: dialogs

dialogs.png

Dialogs

dialogs is an open-source module for natural language parsing and interpretation.

It is written in Python and, while not strictly required, is most useful in conjunction with an ontology server like oro-server.

1. Presentation

The figure below shows the Dialogs module architecture. The user's input is first pre-processed. For instance, "I'm" constructs are expanded into "I am" and then parsed.

The parser is a custom-made, rule-based (i.e. grammar-free) tool that extracts the grammatical structure from the user’s sentence. See the demos below for some sample output of the parser. The parser can be used as a stand-alone tool.

The Dialogs module

The result of the parsing is then sent to the interpretation module, the core of the component. Interpretation consists in three distinct operations: the sentence resolution (concepts grounding), the content analysis (what is the intent of the utterance: information, question or desire) and the statement building (translation into RDF statements).

The sentence resolution has three steps:

  1. pronouns and anaphora are replaced by, respectively, the correct speaker ID and the ID of the last object spoken about (extracted from the dialogue history),
  2. nominal groups are disambiguated and grounded (noun phrase resolution), and

  3. verbal groups are resolved as well, and their associated thematic roles are retrieved (verbal phrase resolution).

Interpretation tightly relies on the communication with the knowledge base. All the concepts the robot manipulates are stored in the ontology server and retrieved through logical queries, except for the verbs that are currently stored in a dedicated library (the action library on the diagram).

2. Publications

What are you talking about? Grounding dialogue in a perspective-aware robotic architecture, ROMAN 2011

@inproceedings{lemaignan2011what,
  author = {S\'everin Lemaignan and Raquel Ros and Rachid Alami and Michael Beetz},
  title = {What are you talking about? Grounding dialogue in a perspective-aware robotic architecture},
  booktitle = {20th IEEE International Symposium in Robot and Human Interactive Communication},
  year = {2011}
}

Dialogue in situated environments: A symbolic approach to perspective-aware grounding, clarification and reasoning for robots, Grounding Human-Robot Dialog for Spatial Tasks - RSS 2011 workshop (extended abstract)

@inproceedings{lemaignan2011dialogue,
  author = {Lemaignan, S. and Ros, R. and Alami R.},
  title = {Dialogue in situated environments: A symbolic approach to perspective-aware grounding, clarification and reasoning for robot},
  conference = {Robotics, Science and Systems, Grounding Human-Robot Dialog for Spatial Tasks workshop},
  year = {2011}
}

Anchoring interaction through symbolic knowledge, HRI Pioneers 2011 (extended abstract)

@inproceedings{lemaignan2011anchoring,
  author = {Lemaignan, S. and Sisbot A. and Alami R.},
  title = {Anchoring interaction through symbolic knowledge},
  booktitle = {Proceedings of the 2011 Human-Robot Interaction Pioneers workshop},
  isbn = {978-0-557-79488-1},
  year = {2011}
}

3. Demos

4. Browse the source

You can browse on-line the source code: Dialogs on CGIT

5. Installation

In most cases, you also want to install the oro knowledge base in order to use dialogs for anything useful. Check the oro installation notes. Note that dialogs needs the oro Python bindings (pyoro). Do not forget to install them as well.

5.1. Via robotpkg

The easiest way to install dialogs is through robotpkg:

robotpkg is a package management system for robotics module we use at the LAAS. It handles dependencies and compilation automatically. If you don't know it, have a look here.

Once installed, you can add the dialogs package very easily:

> cd $ROBOTPKG_BASE/speech/dialogs
> make update

Make also sure your PYTHONPATH includes the installation prefix.

Typically (with bash):

> export PYTHONPATH=$PYTHONPATH:$ROBOTPKG_BASE/lib/python2.6/site-packages

You may want to add this line to your .bashrc (or equivalent for other shells).

You're done!

5.2. From the sources

You can grab a snapshot of the sources on the public FTP: ftp://softs.laas.fr/pub/openrobots/dialogs/

Or, to get the latest version of dialogs, you can check-out the sources with GIT:

> git clone http://trac.laas.fr/git/robots/dialogs.git

dialogs uses the standard Python distutils mechanism:

> cd dialogs
> python setup.py install --prefix=$YOUR_PREFIX

Make also sure your PYTHONPATH includes the installation prefix.

Typically (with bash):

> export PYTHONPATH=$PYTHONPATH:$PREFIX/lib/python2.6/site-packages

6. Documentation

A lot of unit-tests are available. They probably provide the most up-to-date documentation. Check the *_test.py scripts in dialogs source.

OpenrobotsWiki: dialogs (last edited 2012-10-22 08:10:57 by slemaign)