100 likes | 225 Views
A Standard Metalanguage for VoiceXML Applications. Ian Sutherland ian.sutherland@oracle.com. Definition and Motivation. VoiceXML metalanguage describes an entire VoiceXML application , not just a dialogue. Metalanguage document includes the following: server-side logic
E N D
A Standard Metalanguage for VoiceXML Applications Ian Sutherland ian.sutherland@oracle.com
Definition and Motivation • VoiceXML metalanguage describes an entire VoiceXML application, not just a dialogue. • Metalanguage document includes the following: • server-side logic • dynamic VoiceXML generation • interaction with backend components, such as databases, transaction servers, and computation servers • Primary problems addressed: • application server portability • support for useful voice abstractions
Motivating Example: Flight Reservation • Database access for user profiles • Multi-threading on server to make db access while interacting with the caller • Disambiguation based on n-best and user profile • Access to db and computation servers to determine available flights • Access to transaction servers to book a flight • Adaptive dialog managed by external dialog engine
Oracle's VoiceXML Metalanguage • Model/View/Controller pattern • Standard languages • Languages in the process of standardization • XML and UML • Existing server-side technologies
View • VoiceXML 2.0/1 plus extension tags • Implementation-independent RDC • Oracle Voice Dialog Objects to collect various types of data, place outbound calls, navigate lists, etc. • JSTL-like tags to refer to dynamic server-side data • XML Schema typing of data passed to and received from the pages
Controller • State Chart XML (SCXML) with extensions • HTTP request/response events • Dynamic data passed to/received from view pages • Invocation of backend functions • Creation of backend objects • XML/XPath-based data model with minor extensions for modifying XML data • XML Schema for typing data model, interfaces to model and view
Model • WSDL to specify abstract interfaces • SOAP and HTTP bindings • Additional bindings for OO APIs, creation of backend objects (e.g. beans) • XML Schema typing for interfaces
Role in Speech Platform Architectures Metalanguage Interpretation Transaction Server HTTP SOAP VoiceXML Interpreter API Database Server Objects/ APIs Application server Other Servers
Implementation • Interpreted directly, compiled to existing technology, or compiled to stand-alone service • Server-specific WSDL bindings can be deferred to interpretation/compilation, and invocation code generated automatically • Model, View, and/or Controller can be replaced by other technologies
Future Work • Track changes in SCXML • Development tools • Interpreters for/compilers to existing platforms • Co-ordination with W3C Voice Browser Working Group