User Interface Service Software Developerís Guide - Hitech Projects
User Interface Service Software Developerís Guide - Hitech Projects
User Interface Service Software Developerís Guide - Hitech Projects
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
January 2008<br />
Public<br />
Fallback solutions: a lightweight subscription mechanism may be developed specifically for the<br />
DM<br />
3.3.3.3 Dialogue Manager Internals<br />
The dialogue manager is mainly composed of a blackboard that contains all user inputs and<br />
system outputs. Regarding system outputs, a controller checks every current output requests<br />
on the blackboard and actually realizes them. This give possibility to solve conflicting outputs<br />
on the same terminal, by writing dedicated blackboard knowledge sources that detect and<br />
handle such conflicts.<br />
Regarding user inputs, the fundamental UI services like speech recognition simply publish<br />
these inputs onto the blackboard, while more advanced UI services shall first subscribe to<br />
such events, update/merge them, or even build new interaction events, and publish them back<br />
on the blackboard. Advanced UI services can thus handle conflicting user inputs, or solve<br />
ambiguous inputs.<br />
Other user inputs clients, typically applications, can thus simply call the subscribe method of<br />
the Dialogue Manager and describe the types of user events they are interested in. These<br />
clients actually use the same procedure than any classical context consumer, where the<br />
details of the user events are encompassed within the SPARQL query.<br />
The main advantage of this blackboard architecture is its flexibility, which makes the<br />
development of new advanced UI functionalities easy to realize and to integrate. The<br />
blackboard functionality is not directly implemented by the Dialogue Manager Amigo service.<br />
The actual blackboard is provided by the PEGASUS framework. The Amigo service provides<br />
integration into Amigo and easy-to-use interfaces for other Amigo services.<br />
3.3.3.3.1 PEGASUS<br />
This section provides only a short insight into the architecture of the PEGASUS framework.<br />
The complete overview along with a lot of examples and a developer guide for various<br />
programming languages is available in the document “Pegasus-Manual.pdf”, which is available<br />
at gforge.<br />
The PEGASUS framework introduces an abstract manner of describing a system that consists<br />
of:<br />
• Objects of functionality within data contexts<br />
• Communication of objects through trigger concepts and data structures<br />
In the context of this framework, a PEGASUS object implements the following concepts:<br />
• Data Storage<br />
• Triggers<br />
• Functional parts<br />
In PEGASUS, XML is used for the representation of data. A scope of a piece of data reaches<br />
from a simple XML element to whole XML trees. In every PEGASUS project, one master<br />
application has to hold and maintain the so-called main tree. This tree can be read,<br />
manipulated and even extended by other PEGASUS applications. These applications can use<br />
subscriptions to be notified upon the change of the arbitrary parts of the XML tree. The main<br />
XML tree basically represents the blackboard in PEGASUS. Since various PEGASUS<br />
applications may concurrently access parts of the XML tree, the framework has to make sure,<br />
that all applications, at all time, are working on the same data. For this purpose, PEGASUS<br />
uses distributed XML trees. Access to XML elements is only allowed through PEGASUS’s API,<br />
which handles the steps needed for concurrent and distributed read and write access on XML<br />
elements. This way, application developers can ignore the fact that the XML elements they are<br />
Amigo IST-2004-004182 85/114