Client-Side State-based Control for Multimodal User Interfaces David Junger <
[email protected]> Supervised by Simon Dobnik and Torbjörn Lager of the University of Göteborg Abstract This thesis explores the appeal and (ease of) use of an executable State Chart language on the client-side to design and control multimodal Web applications. A client-side JavaScript implementation of said language, created by the author, is then discussed and explained. Features of the language and the implementation are illustrated by constructing, step-by-step, a small multimodal Web application. Table of Contents Acknowledgments Introduction 1. More and more modality components 1.1 Multimodal Output 1.2 Multimodal Input 2. Application Control 2.1 Multimodal Architecture and Interfaces 2.2 Internal application logic 2.3 Harel State Charts 2.4 SCXML 2.5 Benefits of decentralized control 3. JSSCxml 3.1 Web page and browser integration 3.2 Implementation details 3.3 Client-side extras 3.4 Performance 4. Demonstration 4.1 The event-stream 4.2 The user interface 4.3 Implementing an output modality component 4.4 Where is the “mute” button? 5. The big picture 5.1 Related work 5.2 Original contribution 6. Future Work References Acknowledgments I learned about SCXML (the aforementioned State Chart language) thanks to Torbjörn Lager, who taught the Speech and Dialogue course in my first year in the Master in Language Technology. Blame him for getting me into this. Implementing SCXML was quite a big project for me. I would never have considered starting it on my own, as I have a record of getting tired of long projects and I was afraid that would happen again.