CHI '95 ProceedingsTopIndexes
Short PapersTOC

Automatic Generation of Starfield Displays Using Constraints

Scott E. Hudson and Ian Smith
Graphics, Visualization & Usability Center, College Of Computing, Georgia Tech, Atlanta, GA 30332-0280
{hudson,iansmith}@cc.gatech.edu

© ACM


Abstract

In this paper we present an constraint-based approach to the automatic generation of starfield displays for use with dynamic query filters. This approach automatically transforms a specification of the data to be displayed into a dynamic query filter interface whose results are shown to the user in a starfield display. This transformation is accomplished by translating the data specification into a specification for a one-way constraint system and accompanying user interface objects. Both of these are compiled into fast, executable code to create a final program.

Keywords:

Starfield Displays, Visualization Techniques, Constraints, Graphical User Interfaces, Dynamic Query Filters, Automatic Generation.

Introduction

Previous work by Ahlberg and Schneiderman has shown starfield displays to be an effective tool for displaying the results of highly interactive queries, often called dynamic query filters [1]. A dynamic query filter is a filter which is applied to a set of data records and whose results are immediately visible. The starfield display shows the results of these queries by displaying an icon at an x,y location for each data record which passed "through" the filter.

The dynamic query filter is generated by a set of user interface components which produce values that can be compared to a field in a data record. For example, when forming a query which involves price, a range slider (a slider with two thumbs which generates a range as a value) may be used to quickly adjust the range of prices the user is interested in. As the user adjusts the slider's position (value), different records in the data set pass through the dynamic query filter, and thus different display points are lit up or turned off in the starfield display. Each query component produces a Boolean value when compared against some (fixed) field in the data record; a record is defined to pass through the filter if and only if all the query components result in a positive outcome. A query interface is a collection of components which can form a dynamic query filter over some data set and whose output is a starfield display.

EXAMPLE

An example StarGen input description is shown below:

    
type input_event icon = "star2.xbm" {    
  kind  "Kinds of Events:" :     
    enumset("Press", "Release", "Key");    
  value "Time":    
    range(0,941100);    
  dist "Distance From:":    
    distance("marker2.xbm", 1000);    
}; backdrop = "screen.xbm";    
The data corresponding to this description comes from an event log trace captured during an interactive session with a popular drawing tool. As can be seen from this example, this description consists primarily of a relatively standard data record description with a few extra annotations providing human readable titles and an appropriate background image. In this case, each record indicates (in addition to required x and y values) what kind of event occurred (either "Press", "Release", or "Key") and the time that the event was recorded. In addition, a distance query is specified allowing selection of objects within various distances away from a movable marker.

From this specification, the system generates the display shown in Figure 1: Starfield Display Of An Event Trace Log. The main window shows the starfield display with a sample screen dump as a backdrop to provide context. The smaller window near the bottom provides the query component controls. In this case, the query indicates that "Press" and "Key" events within the given time interval should be displayed. The distance query is currently not enabled, and hence does not affect the result. In general, the checkbox at the left of each query component indicates if it is to be enabled (used) or disabled (ignored), while the sliders and buttons to the right specify the actual query.

Using this display one can quickly move the slider to see how different regions of the interface under study are used over time -- whether there are clusters of activity and how spread out actions are over various intervals of time. If specific screen areas are of interest, the distance query can be used to limit the range of results.

APPROACH

Our approach to the automatic generation of starfield displays can basically be described in three stages. The user describes the format of the data to be queried and the StarGen compiler constructs a set of one- way constraints which can be used to query the data. Then the Eval/Vite constraint compiler [2] is used to translate these constraints to C++ code which is finally compiled into an efficient executable program.

Input To StarGen
StarGen accepts as input a set of specifiers which express the format of the data over which the dynamic query filter will be run, as well as control the nature of the final query components.

StarGen currently allows four types of specifiers:

Compiling Specifiers

The StarGen compiler reads in the specification of the data records and user interface components (detailed above) and outputs an Eval/Vite specification for the user interface and its semantics. This specification chiefly consists of a set of one-way constraints which when evaluated will result in the desired display. These one-way constraints compute a Boolean value which determines whether or not to display the icon corresponding to the data record. This visibility constraint is applied to each of the records that are read in by the final program at run-time. The StarGen output also specifies that the icon (if visible) should be displayed at the x,y location associated with the each particular record in the dataset, yielding a starfield display.

As an example of the type of one-way constraints generated by the StarGen compiler, consider in our example above which allows the Time field to range from 0 to 941,100. The generated constraint is:

    
star_is_visible::=   IF q.enabled THEN    
  (v<=q.slider.upper && v>q.slider.lower)     
ELSE 0;    
The value v here is the value of the time field in the current record, q is the query component, and q.slider is the range slider within that query component. This is compiled into optimized C++, which allows the system to (for example) automatically avoid computations associated with disabled query components.

PLANNED FUTURE WORK

Future work on StarGen includes the addition of new specifier types in the StarGen input specification. Some of the additions we have been considering are a string matcher (which would display a editable text field) and a minimum/maximum specifier which would compute the maximum or minimum value present in a data field and return a positive outcome for records which have values within some offset from the minimum or maximum.

An interesting observation about the StarGen system is that due to its underlying constraint system, it would be very easy to adapt to "live" data; data which was dynamically varying at run-time. We are considering augmenting the input language to StarGen slightly to allow the user to specify that their data may be dynamic.

References


1 Ahlberg C., Schneiderman B. Visual Information Seeking: Tight Coupling of Dynamic Query Filters with Starfield Display. In Proceedings Of CHI `94. p. 313-317.
2 Hudson S., Smith I. Practical System For Compiling One-Way Constraints Into C++ Objects. Georgia Tech Graphics Visualization And Usability Center Technical Report, 1994.