4. Visage Environment Main Components

The Visage interface environment strives to minimize the number of fundamentally different kinds of objects that must be understood by the user. As a first approximation, Visage may be thought of as having only two basic object types: elements and frames.

The term elements (more properly called "Visual Elements") refers to any atomically-manipulable graphical object in a Visage display. Examples of elements are bars in a bar chart, the text label of an axis, a point in a scatter chart, or a numeric value in a spreadsheet-like cell. Each visual element corresponds to an object in an underlying database. Note that this relationship is one-to-many: each element is associated with exactly one database object, but the same object may be represented by multiple elements. Some elements are atomic, but others are compound, i.e., made up of multiple elements bound together into a single entity. An example of the latter might be a cluster composed of a dot representing a city on a map, a text label naming it, and a gauge telling its population.

In a literal sense, all Visage displays are made up exclusively of collections of elements arranged to form the display. For example, the bar chart in Figure 3 is not a discrete "picture", but rather an arrangement of elements which can be broken apart by the user and separately manipulated. As the illustration shows, this makes it easy for the user to select some bars from the display (either removing them or--as in the case shown--duplicating them) and drag them to some other display. This ability to directly drag small units of data forms the basis of the information-centric approach to interface design described above.

Hints of this approach may be found in a few existing interfaces. For example, recent versions of Microsoft Word support the ability to drag selected text from one place in the document to another--thus bypassing the often criticized invisible clipboard as a mechanism for moving data around within an application (however text cannot be dragged onto the desktop or into other applications). The Macintosh system provides transparent drag-and-drop, which Netscape uses to enable images to be dragged from web page displays onto a desktop (though they are immediately hidden within files). Likewise, several visualization tools support representing data objects graphically and provide filtering, painting of linked displays, and related operations [4,6,8,10]. In Visage, these capabilities are promoted from special-purpose features to capabilities that can be used everywhere in the environment. It becomes part of the "basic physics" of the interface, empowering the user to directly perform unique actions that might otherwise require knowledge of numerous specialized interface "features."

Frames, the second basic object type, serve as pasteboards for elements. Strictly speaking, frames are themselves elements, but are sufficiently distinct in the user's model of the interface as to warrant separate treatment. Like windows in traditional GUI designs, frames provide a grouping function for related elements as well as a frame of reference for their arrangement. Unlike windows, however, frames are lightweight objects, easily created and destroyed, frequently manipulated by the user, and are themselves subject to the entire repertoire of direct-manipulation actions available for other elements (duplication, drag & drop, dynamic scaling, etc).

Another major function of frames is to serve as anchor points for scripts. The Visage user interface is highly scripted. Beyond the processing of basic user events, such as mouse-dragging and clicking, much of the high-level behavior of the system is controlled by user-accessible script rather than hard-coded methods. Although scripts may be attached to any element, most of the scripts of a typical interface are associated with frames. In the illustrated examples, it is the script of the "Bar Chart" frame that causes data dropped on that frame to be displayed as horizontal bars of certain lengths and locations. Similarly, scripts of the map frame cause the same data to be displayed in iconic form arranged by latitude and longitude. In this way, scripted frames may be composed to form highly customized applications environments, tailored to a particular user's needs.

The scripting environment provides another essential feature in support of the Visage's data exploration operations. Although the underlying database being explored may have many data values directly given, many other such values typically need to be derived in a very situation-specific manner. For example, in a transportation scheduling application, the database may contain attributes of a commodity such as gross weight and package weight. The user, however, may require a display of net shipping weight, which is not directly given. Visage allows the definition of scripts that compute these "derived attributes." Once defined, these scripts make available to the user data indistinguishable from that directly given in a database. Indeed, the total supply weight attribute in Figure 1 is a detailed script that reduces much database access and calculation to a single attribute. It is attached to a Visage data object representing the class, military unit, and is invoked when an instance of this class receives a message to return the value of this attribute. The script traverses relations between a unit, its subordinates, the supply quantities they possess and accesses attributes of supply classes to retrieve their individual weights to be accumulated.

Finally, scripting is the basis for delivering to the user the drill-down and roll-up data navigation features described above. For instance, our logistics application supports a "regrouping" operation which, in a single step, decomposes a supplied unit into a long list of its required inventory items and then regroups them by the supply points that provides those items. Such operations form the basis for very powerful incremental data navigation and summarization which would require complex queries in conventional database systems. The Visage scripting language is similar to HyperTalk and contains language features tuned to data navigation and aggregation functions (e.g. for stepping across links among objects, iterating over object sets and accumulating sums of values of quantitative attributes).

Collections of specialized frames are typically gathered together to form a coherent, highly-tailored work environment. Such environments may be augmented by scripted behaviors that add useful global features to the environment at large. An example of this is the fact that the painting of elements in our logistics environment is globally coordinated across all frames of the interface, thus greatly enhancing the user's ability to identify related information across displays. Similarly, dynamic query tools [1] are included in the environment, permitting the interactive control of the visual attributes of the elements of the display according to parametric aspects of the database. People may add sliders to frames to select a subset of objects and then drag the subset to other frames to focus on different attributes. DQ sliders are visual elements with scripted behavior. Dropping one on a visualization in a frame causes it to collect all the attributes of data objects currently displayed in the frame. Users may then select an attribute from these for performing filtering operations.

Frames and their contents may be freely scaled, either by direct manipulation or by script. A given frame may be shrunk to thumbnail size for temporary storage, or expanded to full-screen during a presentation. This capability enables the efficient and flexible usage of the available screen real estate. Scale control is also a useful feature in the creation of briefing slides.


Next Section: Incorporating Briefing Tools

Paper Index

Back to the Visage Home Page