Staging Mixed-Initiative Dialogs by Program Generation and Transformation

Specifying and implementing flexible human-computer dialogs, such as those used in ATMs, airport and train kiosks, and apps for smart phones and similar devices, is challenging because of the numerous and varied directions in which each user might steer a dialog, all of which must be captured in a specification and implementation of it. The purpose of this research is to improve dialog specification and implementation. To do so we enriched a notation based on concepts from programming languages, including currying and partial evaluation, for specifying a variety of unsolicited reporting, mixed-initiative dialogs in a concise representation which serves as a plan for implementing the dialog. We also built a dialog mining system which extracts specifications in this notation from dialog requirements. To demonstrate that the structure of a dialog specification in this notation provides a design for its implementation, we built a system which automatically generates an implementation (called a stager) for it given its representation in this notation. This resulted in a dialog modeling toolkit which automates the process of specifying and implementing dialogs. These results provide a proof of concept and demonstrate the promise of studying dialog specification and implementation from a programming languages perspective. The ubiquity of dialogs in domains such as banking and travel, education, and health care, combined with the increased use of smart phones as personal computing devices and the proliferation of apps for them, provide a fertile landscape for the application of these results.

[1]  Naren Ramakrishnan,et al.  Mixed-initiative interaction = mixed computation , 2001, PEPM '02.

[2]  Matthias Felleisen,et al.  Automatically Restructuring Programs for the Web , 2004, Automated Software Engineering.

[3]  Manuel A. Pérez-Quiñones,et al.  The Staging Transformation Approach to Mixing Initiative , 2003, IJCAI 2003.

[4]  Christian Queinnec,et al.  The influence of browsers on evaluators or, continuations to program web servers , 2000, ICFP '00.

[5]  Mark Green,et al.  A survey of three dialogue models , 1986, TOGS.

[6]  Jesper Jørgensen,et al.  SIMILIX: A Self-Applicable Partial Evaluator for Scheme , 1998, Partial Evaluation.

[7]  Neil D. Jones,et al.  An introduction to partial evaluation , 1996, CSUR.

[8]  David R. Karger,et al.  User interface continuations , 2003, UIST '03.

[9]  Mitchell Wand,et al.  Essentials of programming languages , 2008 .

[10]  Scott F. Smith,et al.  Type-specialized staged programming with process separation , 2009, WGP '09.

[11]  Manuel A. Pérez-Quiñones,et al.  Conversational collaboration in user-initiated interruption and cancellation requests , 1996 .

[12]  Naren Ramakrishnan,et al.  Staging transformations for multimodal web interaction management , 2003, WWW '04.

[13]  Graham Hutton,et al.  Programming in Haskell , 2007 .

[14]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[15]  Sasa N. Malkov Customizing a functional programming language for web development , 2010, Comput. Lang. Syst. Struct..

[16]  S. Shieber,et al.  Linguistic side effects , 2005 .

[17]  Naren Ramakrishnan,et al.  Mining Web functional dependencies for flexible information access , 2007, J. Assoc. Inf. Sci. Technol..

[18]  David Frohlich,et al.  MIXED INITIATIVE INTERACTION , 1991 .