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:
- As a service creation framework for call processing applications for a
family of Lucent programmable switches.
- Multi-modal interfaces to information exploration and presentation, that
provide natural language guidance to the user. In particular, we have
integrated Sisl with the toolset for information visualization, and have
written an application in which users can explore organizational information
in a Lucent database using queries such as "How has department (favorite
department number) grown over time?"
- Multi-modal access, including automatic speech recognition and natural
language understanding, in collaborative systems.
Papers
- T. Ball, C. Colby, P. Danielsen, L. Jagadeesan, R. Jagadeesan, K. Laufer,
P. Mataga, K. Rehor. Sisl: Several
Interfaces, Single Logic. In the International Journal of
Speech Technology, 3(2): 93-108, June 2000. Kluwer Academic Publishers.
- P. Godefroid, L. Jagadeesan, R. Jagadeesan, K. Laufer.
Automated Systematic Testing for Constraint-Based Interactive Services.
In ACM SIGSOFT International Symposium on the Foundations of Software Engineering,
November 2000.
- K. Cox, R. Grinter, S. Hibino, L. Jagadeesan,D. Mantilla.
A Multi-Modal Natural Language Interface to an Information Visualization Environment.
In International Journal of Speech Technology, 4(3): 297-314, Jul 2001. Kluwer Academic Publishers.
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.