Implementation considerations for a dialogue manager in IMIX
We wish to make a selection of existing software for implementing the
internals of the dialogue manager. We start with the data structure of the
dialogue state. The dialogue manager maintains a multimodal dialogue history
and a knowledge state. It should be easy to manipulate and transfer these
data structures. We chose Java as our main platform.
Some requirements:
Handling multiple hypotheses with confidence values.
- Tagging utterance data and building reference structures.
- Inference.
- XML.
We pass messages using XML throughout IMIX. Easy transformation of internal
data structures from and to xml trees would make life easier for us, both in
terms of external specification and implementation.
Some possible data structures:
- Prolog or similar database.
We wish to incorporate some level of knowledge and inference. Information
could be stored in a prolog-like database (as a set of tuples which can be
pattern-matched), a full Prolog engine is an option, or maybe we wish to use
another inference system (they typically use the same kind of "set of tuples"
representation). It seems useful to have easy conversion between Prolog and
XML.
I would prefer a Java Prolog engine rather than a java/prolog interface at
this point in development. It is likely such an engine will only provide
basic features. Do we need an extensive engine such as Sicstus?
Some Java Prolog-like engines:
- Feature structures.
Feature structures would be useful for handling the multimodal input. A basic
Prolog DB is likely to be too flat for this. Unification can be usefully
applied.
Feature structures for Java:
Some systems that can be considered:
- trindikit (information state approach)
- DenK (multimodal)
- SmartKom (multimodal)
- Comic (multimodal)