"Watch What I Do" Chapter 12


Chapter
12

Chimera:
Example-Based Graphical Editing

David Kurlander

Introduction

Human beings are great problem solvers, but find repetitive tasks tedious. In contrast, computers usually must be taught how to perform new tasks, but then they can quickly repeat the steps on new data. Given that a computer's strength lies in its ability to perform tasks repetitively, it is especially frustrating that many computer interfaces require the people using them to repeat interaction steps many times to achieve their desired goals. By building interfaces that can automate repeated interaction steps, we leverage off of the strengths of computers to make these goals easier to attain.

This paper explores several new techniques to automate repetition in user interfaces. Repetition in interfaces can be local to a particular session, or more global in scope and span multiple sessions and possibly multiple users as well. Tasks repeated in multiple sessions tend to be more general than tasks encountered in a single session. Accordingly, global repetition often results when the interface lacks a command to address a commonly useful function, while local repetition usually addresses a less general problem. The techniques to be discussed here address both types of repetition. By incorporating new techniques to automate repetition in an application, the application designer makes an application more extensible. Extensibility is important in that it enables users to customize applications for tasks that they often perform, making them more efficient. Experienced users, or those with a particular technical skill, can also encapsulate their knowledge in a form that others might invoke, thereby benefiting the entire user population.



Chimera -- MatchTool 2

Uses and Users

Application domain: Graphical editing and interface editing

Intended users: End users

User Interaction

How does the user create, execute and modify programs? MatchTool 2 automates repetitive search and replace tasks. The user draws (or copies) in the search pane an example of a valid match, and then draws (or copies) in the replace pane an example exhibiting the desired changes. By setting checkboxes, the user specifies which properties of the search and replace pane objects are significant. Additional parameters, such as scale and rotation invariance, can be set to further control the search and replace process.

The user can specify relevant geometric features and tolerances in the search and replace patterns by editing constraints (in the Chimera editor, objects can be described in terms of constraints).
The user can create multiple rules and make any subset of them active at a given time. An active rule fires automatically whenever an instance of its search pattern occurs.

Feedback about capabilities and inferences:
Search and replace patterns are defined and displayed graphically in MatchTool 2. The search and replace panes are instances of the Chimera editor, and can use its built-in constraint facility to present an iconic view of the constraints.

Inference

Inferencing: None. The user edits data descriptions, pictures and constraints.

Program constructs: Repeated search and replace rules.

Knowledge

Types and sources of information:
The types of constraints include distance, slope, angle, and others.

Implementation

Machine, language, size, date:
Chimera runs on Sun Sparcstations, under the PostScript-based OpenWindows system. The code is a mix of Common Lisp, C, and PostScript. MatchTool 2 is 3K lines of commented Common Lisp (excluding the constraint solver). The initial graphical search tool was built in 1987. Constraints were added in 1991.

Notable Features


MatchTool 2 can be used to make repetitive changes to graphical properties, shapes, and geometric relationships. It can be used to create shapes defined by graphical grammars, and perform end-user-defined scene beautifications.

Chimera --
Constraints from multiple snapshots

Uses and Users

Application domain: Graphical editing and interface editing

Intended users: End users

User Interaction

How does the user create, execute and modify programs?
The user creates two or more pictures of a scene in different configurations, and takes "snapshots" of them. The system determines which geometric features of the objects remain the same throughout; these are inferred as constraints. When the user moves parts of the scene in the future, these constraints are invoked automatically. To eliminate a constraint, the user simply moves the part that was constrained and takes another snapshot. There is no need to add constraints, since the system remembers the relations that held true in all snapshots.

Feedback about capabilities and inferences: Inferred constraints can be displayed as icons attached to the affected parts, and their effects tested by manipulating objects with constraints turned on.

Inference

Inferencing:
The system generalizes by dropping constraints that do not apply to all examples.

Types of examples: Uses multiple examples.

Knowledge

Types and sources of information:
The snapshot mechanism can infer all of the geometric constraints incorporated in Chimera, a set based on constraints that have proven useful in other editors. The inferences are based purely on the geometry of the scene, and do not depend on domain knowledge describing an illustration's semantics.

Implementation

Machine, language, size, date:
Chimera runs on Sun Sparcstations, under the PostScript-based OpenWindows window system. The code is a mix of Common Lisp (25K lines), C (3K lines), and PostScript (2K lines). Of this, the code for inferring constraints from multiple snapshots is about 2K lines of Lisp code, and Chimera's other general constraint support is 2K lines of Lisp and 1.5K lines of C (these numbers include comments). 1990.

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