M.Sc Thesis

M.Sc StudentSamuel Lior
SubjectDomsago- a Spoken Programming Language as a Step
Towards Personal Assistant Programming
DepartmentDepartment of Computer Science
Supervisor ASSOCIATE PROF. Joseph Gil
Full Thesis textFull thesis text - English Version


Modern improvements in speech analysis, together with chatbot technology, gave rise to Intelligent Personal Assistants. These are programs with conversational interfaces that allow their users to execute simple tasks, query useful information, control smart devices, and more. Unlike a human assistant, however, these assistants cannot learn new things through conversation. Improvements can only be made through special applications or by programming new skills from scratch.

Composing a sequence of premade operations into a single operation is rather standard in other domains of computing: The shell interface of operating systems, from DOS’s batch language to Unix various shells, we find scripts, of sequencing and invoking simpler commands. These scripts make it possible to write simple “programs” without resorting to actual programming in a general purpose programming languages. This work explores the idea of employing the idea of scripting to personal assistants. The challenge here is in adapting the technical restrictions of standard scripts to the world of spoken instructions given in a natural language.

The difficulties of constructing such a language are:

• We want to communicate with our assistants in a natural language. However, natural languages are ambiguous by nature. Each sentence is conveying information not only through words but also through speech stops, tonal changes, and context.

• In contrast, to be used for programming this scripting language must be well structured, unambiguous, and impervious to subtext.

• Programming currently resides in text, while conversation mainly in voice and speech.

Although we feel these mediums to be interchangeable, the transition between them is rarely straightforward in many regards.

This research proposes such a scripting language based on Esperanto, leveraging its simplicity for ease of parsing. I also describe a prototype for a similar English-based interpreter.