"Watch What I Do" Chapter 19


A History of Editable Graphical Histories

David Kurlander
Steven Feiner


There are many general reasons to maintain application histories: they are useful for undo and redo; they allow users to examine the commands that have been performed in a session, and to communicate this information with others. There are also a number of application-specific uses: for example, they facilitate navigation through hypertext documents and provide an interface for modifying individual steps of simulations. In the domain of programming by demonstration, histories have additional uses. Many programming by demonstration systems are trace-based rather than effect-based; that is, they produce a generalized procedure from a command history rather than an evaluation of the effects of these commands. If the user is to be allowed to modify or debug the procedure by editing a command sequence, then there should be a means of visually representing the history. As discussed in Chapter 15, command histories also support the tasks of selecting operations to be included in these procedures, generalizing them, and generating error messages.

Representing histories of graphical applications presents a special challenge, since they deal with objects that may have no readily understood textual representation. Typically, textual applications use the spatial browsing technique to represent their histories. They list commands executed during a session, one after another in a sequence. However, commands in graphical applications may have no textual name, and may deal with graphical attributes and geometric properties that cannot be conveyed intuitively in textual terms. Thus many graphical applications instead rely on temporal reexecution to communicate their command histories. Such applications can be scrolled backwards in time, while the effects of the operations are played back on the application canvas. Essentially this provides an animation of the steps performed in a session. Temporal reexecution emphasizes the effects of the commands, while spatial browsing focuses on the commands themselves.

A disadvantage of temporal reexecution is that it provides little context. At any moment, the history represents only a single point in time. Editing such a representation is difficult, analogous to editing a textual document in a line editor. There is no structure to the presentation; all commands, no matter how trivial are represented at the same level. We have developed another technique, called editable graphical histories, that combines aspects of spatial browsing and temporal reexecution to represent sequences of graphical interactions without the above drawbacks. Editable graphical histories, like comic strips, represent a series of events by a sequence of graphical panels. Examples of editable graphical histories appear in Chapters 12 and 15. This chapter discusses how this representation has evolved from its initial implementation in the Chimera editor to its current form, the reasons for the changes, and how the histories might change in the future.

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