Pursuit Screen Shots

Francesmary Modugno

Computer Science Department
Carnegie Mellon University

A visual shell (e.g., the Macintosh Finder) is a direct manipulation interface to a file system. Although such systems are easy to use, few provide mechanisms for end user programming. The Pursuit visual shell is exploring ways of providing programming capabilities in a way that is consistent with the direct manipulation paradigm.

To enable users to construct programs, Pursuit contains a Programming by Demonstration (PBD) system that constructs a program as users demonstrates its actions on real data. During the demonstration, the evolving program is represented in the Pursuit visual language. Unlike other visual languages, which explicitly represent operations and leave users to imagine data in their heads, Pursuit explicitly represents data objects with icons and implicitly represents operations by the visible changes to data icons.

The Pursuit visual language is based on the comic strip metaphor. Familiar icons represent data objects, such as files and folders. Sets of data objects are represented by overlaying two icons of the same type. For abstract sets of objects, graphical constructs called attributes are attached to set icons. Attributes constrain the properties of sets and indicate the underlying PBD system's inferences. The attribute in the second figure constrains the set to files that were edited TODAY. To identify an object, each icon is assigned a unique color. Although an icon's name, etc. may change throughout the script, its color remains the same.

Two panels are used to represent an operation. The prologue shows the data icons before the operation and the epilogue shows the data after. A program is a series of operation panels concatenated together, along with representations for loops, conditionals, variables and parameters. The second figure is an example of an explicit loop and conditional. The black box on the right edge of the prologue of the copy operation indicates that the program branches at this point. The first branch (labeled ``no errors'') is taken when the copy operation executes successfully. The lower branch is taken when the copy operation fails because a file with the output file name (copy-of-.tex in this case) already exists. The black and white icon on the lower branch represents a dialogue box. Clicking on it reveals the dialogue box displayed to the user when the program goes down that path.

Because two panels per operation can lead to space inefficient scripts, Pursuit contains heuristics for making programs more concise, such as combining two operations into a single composite panel (see the 3rd panel of the first figure). Clicking on the black shadow beneath composite panels reveals the panels for the individual operations.

Pursuit has an editor to enable users to change set attributes; copy, cut and paste operations; add loops and user-defined branches; and demonstrate unfinished paths. Edits are immediately propagated throughout the script to maintain consistency. The editor also helps insure that users do not create meaningless programs.

Francesmary Modugno and Brad A. Myers. Pursuit:Visual Programming in a Visual Domain. Carnegie Mellon University Technical Report CMU-CS-94-109.

For further information on Pursuit, contact

Francesmary Modugno (fmm@cs.cmu.edu)