12.01.2014 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!