| Dialog Builder |
Close examination of any complex speech application quickly reveals that similar dialog patterns, small and large, repeat themselves throughout the application. This suggests a high potential for reusability in application design and implementation. Unfortunately, the fact that almost any dialog must be adapted based on the context in which it occurs has so far made it difficult to achieve a significant level of reusability. Although different solutions have been proposed in the form of "reusable dialog components" (which typically encapsulate the complete dialog, prompts, and grammars for collecting an information token, e.g., a credit card) the reusability offered by such dialog components has in practice been very limited. For instance, there is usually no way to design dialog components from other components — either through inheritance or composition. Similarly, mechanisms for configuring a dialog are very limited. For instance, the dialog is usually "hard-coded", making it impossible to modify or override certain portions. Such limitations are readily apparent in today's large applications, which often exhibit an extensive amount of "copy-paste", making application development, testing, and maintenance — as well as dialog design specification — unnecessarily complex. The Nü Echo Dialog BuilderTM, an Eclipse-based, graphical environment for developing speech applications, was specifically developed in order to address this challenge. A graphical, pattern-based, dialog design approachThe Nü Echo Dialog BuilderTM completely transforms the process of designing and implementing dialogs by specifically orienting the design process around the identification, definition and reuse of hierarchical dialog patterns. This has been achieved by enabling dialog design to be done through inheritance and composition of dialog patterns. More specifically:
This dialog design approach provides several very important benefits. In particular:
Java runtimeThe Nü Echo Dialog BuilderTM produces a dialog specification in DSXML (Dialog Specification XML). This specification is used by the Nü Echo application platform runtime environment in order to execute the dialog. Any required support code — e.g., for implementing business logic, access back-end systems, or implementing complex semantic processing — can be written in Java and called from the dialog through embedded ECMAScript scripting. All resources (prompts, grammars) are uniquely identified and mapped to physical resources. These mappings can be easily overridden to provide alternate resources to the final application. A test-driven philosophyTests are an integral part of any software development activity and speech applications are no exception. That's why tests are at the heart of the Nü Echo approach to speech application development. For this reason, the Nü Echo Dialog BuilderTM and its associated runtime are based on a fully introspectable dialog model. This model exposes enough information to let the application developer implement dialog unit tests (using the JUnit test framework) that can be run without having access to a voice browser or even without running the application on a web server. These tests can be integrated directly in the build process, therefore ensuring the integrity of the application each time it is built. The dialog unit testing infrastructure can check the coverage of all unit tests and report which dialog states and transitions (in the entire application) have not been covered. In addition, dialog unit tests can target specific components or modules instead of the whole application, which allows tests to be written in parallel with the dialogs. Other test-related features include:
Main CharacteristicsInheritance-based — The ability to use dialog behavior inheritance is unique in the industry. It maximizes reusability, minimizes "copy-paste", and results in compact applications that are less bug-prone and easier to test and maintain. Visual editing — Most speech application development tools provide some form of graphical dialog design tool and the Nü Echo Dialog BuilderTM is no exception. However, the Nü Echo Dialog BuilderTM is absolutely unique in that it elevates visual dialog design to a new level by making it easy to visualize and manipulate dialog inheritance and composition. Mixed-initiative support — Listeners are special dialogs that "listen" to caller interactions in parallel to normal dialogs. They are mainly used for implementing global behaviors (like universal commands) or mixed-initiative dialogs. Packages — Dialogs can be organized in packages, much like in the Java programming language, to help cope with large sets of DSXML files. Platform independent — The DSXML dialog specifications produced by the Nü Echo Dialog BuilderTM are independent from any speech platform or operating system and can target VoiceXML, SALT, as well as native IVR platforms. Fully integrated with the Java programming language — Support code can be written in Java and called from the ECMAScript scripts embedded in the dialog specification. Logging and reporting — The DSXML runtime platform provides built-in detailed logging and reporting, and is supported by full-featured call analysis and reporting tools. |
Dialog Builder