Sisl: Several Interfaces, Single Logic

Modern interactive services incorporate automatic speech recognition and natural language understanding, and include touch-tone telephone interfaces, graphical user interfaces on the desktop and web-based interfaces using applets and HTML forms. Duplication is a problem in this context: there is a different service logic (i.e., the code that defines the essence of the service) for every different user interface to the service. Furthermore, to support natural language style interfaces, services must allow users freedom in input by supporting different orderings of information, partial information together with early error detection, correction of information, lookahead, and reverting back to earlier points in the service. Current approaches for multi-modal services are based on finite-state machines, every possible ordering of information must be described explicitly, and hence the resulting finite state machines are huge and impossible to maintain.

We have developed Sisl, an architecture and domain-specific language for structuring services with multiple user interfaces.  Sisl supports services with multiple interfaces based on graphics, web, touch-tone telephony, and automatic speech recognition with natural language understanding. Sisl allows the flexibility in inputs described above, and enables service providers to support multiple interchangeable interfaces to a single consistent source of service logic and data. Sisl service logics are based on a novel form of event-driven directed graphs, called reactive constraint graphs. These graphs can be specified through a XML mark-up language. Sisl is implemented as a library in Java, and automatically generates the variety of interfaces described above. Sisl is integrated with Java Server Pages, allowing the content of user interfaces to be separated from presentation.  This allows user interfaces to be customized or programmed by a third-party, without requiring changes to the Sisl service logic. Sisl also supports an extensive testing facility through integration with VeriSoft, a systematic state-space exploration tool.

Implementation and Availability

Sisl programs can be specified in a XML markup language. Sisl is implemented as a Java library, and is compatible with Java 1.1x and up. It includes infrastructure for web user interfaces based on the Java Servlet API, and automatic speech recognition interfaces based on the Java Speech API.  It also generates VoiceXML interfaces.

Please contact Lalita Jagadeesan if you would like a copy of Sisl, including the XML markup language.
 

Applications

We have applied Sisl in the following projects:

Papers

Related Work

The initial version of Sisl was written using Triveni, a framework and API that integrates threads and events in
concurrent object-oriented programming.
 

Educational Use

Sisl is being used in the course Comp 338/488: Interactive Services Programming at Loyola University Chicago since January 2000.
 
lalita@lucent.com

Last updated  March 25 2004 Copyright ŠLucent Technologies 2004. All rights reserved.