"Watch What I Do" Chapter 21

Chapter
21

PBD Invocation Techniques:
A Review and Proposal

David S. Kosbie
and
Brad A. Myers

Introduction

The other chapters in this book describe a great diversity of PBD systems. These apply PBD technology to such varied problems as macro creation, picture neatening, widget building, and general-purpose programming. Together they indicate the potential power and relevance of PBD to most end-user tasks. While it is true that these systems use many different and seemingly incongruent paradigms, most in fact share a common structure:

* Program Creation: By some demonstrational technique, the end user creates a program (or a script). The term "program," as used in this chapter, does not refer to the abstract procedure that the end user demonstrates, but to the concrete internal representation that the PBD system generates. This program may never be displayed to the user. It may not even have an explicit symbolic representation! However, at some level, it must exist. After all, PBD is Programming by Demonstration, and what is programming without a program?

* Program Invocation: Once created, the program must be invoked. That is, the PBD system must determine that the program should be executed. Often, this is in response to an explicit end-user action, but this need not be the case. For instance, the PBD system might automatically invoke programs whenever it infers that it is appropriate. Nevertheless, some invocation technique must exist -- otherwise, of what use is the program?

* Program Execution: In this final step, the PBD system must effect the changes which it inferred from the end user's demonstration during program creation (that is, it must "run" the program).

To date, researchers have focused mainly on program creation. Thus, while their systems exhibit an impressive array of distinctive and useful creation techniques, most also use simplistic invocation mechanisms. A notable exception is Richard Potter's work on invocation, both in his Triggers system and his notion of "Just-in-Time" programming (Chapters 17 and 27). Nevertheless, there is evidence that a shift in priorities, giving more serious consideration to the invocation phase, might reap significant rewards for the entire PBD field. To demonstrate this point, we propose two new techniques:

* Generalized Event-Based Invocation; and

* Program Invocation by Demonstration.

These techniques, which are being pursued as part of the KATIE project [Kosbie 93], should significantly empower PBD systems. By reviewing what techniques are presently used, and proposing exciting new alternatives, this chapter is intended to focus the research community on the importance of PBD invocation.


back to ... Table of Contents Watch What I Do