Visual Query Interface

This section discusses the Visual Query interface of DEVise:

Visual Query Introduction

In a database environment, users ask their questions by formulating queries over the underlying database. The query output are the answers to these questions. The same questions can be asked over and over on different sets of input data. The same principle applies when graphics is used to represent data. The difference is that visual queries are formulated using a graphical user interface, against graphical data.

When formulating visual queries, users start with a set of input data. Graphical representations of the input data are generated, perhaps through extensive experimentations. Users would navigate the data to look for places of interest. Sometimes users might need additional help by looking at the original data represented by the graphics. The state of the visualization environment forms a visual query. Just like a database query, the visual query can be saved, and applied over and over to different sets of input data.

A visual query is constructed by manipulating the system components in DEVise to create component instances and interconnections. These components are derived from a model of visualization. The visual query interface manipulates these components to allow the user to specify what data is to be visualized, how data is to be visualized, and where to place the graphics on the display.

Session

The state of each visual query is a session. Sessions are accessed from the Session menu, with the following menu items:

How to represent data

The following commands are used to specify what the user wants to visualize:

Structured Interface

The structured interface takes the user step by step to construct a visualization, from the initial data to the final window, using a point and click interface. When using the structured interface, a sequence of dialogue boxes appear, asking the user for information relevant only to each step. The steps are described in the model of visualization, and are summarized here:
  1. Import a file as TData through a file selector dialogue box interface.
  2. Create GData by defining a mapping.
  3. Select a view to display the GData. Select the initial visual filter for the view.
  4. Select a window to display the graphics.

Edit Mapping

The ``View/Edit Mapping'' menu allows the user to experiment with the mapping of a GData in the view. A dialogue box appears, allowing the user to re-edit the mapping. The dynamic nature of editing the mapping is valuable during data exploration because the effectiveness of graphics may vary for different locations in the data, and for different zoom factors as well.

Controlling Shape Size

Sometimes the size of shapes are so small that they appear as single pixels when drawn inside a view:

Controlling the actual size of pixel sized shapes is done via keyboard commands directed at a view. The '+' key increases the size of shapes, while the '-' key decreases the size of the shapes.

What to Visualize

There are many ways to specify what the user wants to look at:

Control Panel Widgets

The widgets on the control panel are mainly used for navigating the data. The ``current view'' text widget () displays the name of the view that the user wishes to navigate. User commands initiated from the control panel widgets are applied to the current view. The user selects a view as the current view by clicking inside its boundary with the left mouse button. Interactions with widgets for navigation are translated into changing the visual filter of the current view. The widgets used for navigation are as follows:

Layout vs. Display Modes

DEVise has two modes of operation:layout and display modes. Users toggle between these two modes by clicking at the button. In the layout mode, the user constructs mappings and views and decides where to place views in windows without having the graphics update in the window. The windows are eventually updated when the user switches into display mode.

Placing DEVise in the layout mode is a time saver when large amounts of data are involved. The layout mode allows the user to construct a visual query without waiting for the graphics to be updated. Otherwise, adding a view in a window may cause all other views already in the same window, together with linked views in other windows, to be updated simultaneously. may take a long time.

Axes

DEVise gives the users to turn the display of view axes on/orr. This is accessed through the ``View/Toggle X Axis'' and the ``View/Toggle Y Axis'' menus.

Mouse and Keyboard Events

The default interpretation of the events are:

History Window

The history window is accessed by clicking the `history' button on the control panel. A history of changes to the visual filter of the current view are displayed.

Users can go back to places previously visisted by clicking in a history window entry, and then clicking the `use' button on the control panel. Users can also mark or unmark places of interest by clicking in the `mark' column of the history window. The marked entries are preceded by an `*'. Because the history window has a finite size, old history entries are replaced by new ones after the size of the history window reaches it maximum. However, marked entries are never replaced.

Visual Link

Visual links are used to link the axes of multiple views, so that scrolling or zooming one synchronously scrolls or zooms all linked views. The ``View/Link'' menu brings up a dialogue box that allows the user to select a link for the current view. The dialogue box also allows the user to create new links, and to examine views that belong to existing links. The ``View/Unlink'' menu allows the user to dissociate a view from a link.

Cursor

click here for an example.

Cursors are used to display the boundaries of one view relative to another. Clicking in the destination view moves the cursor to the clicked region, at the same time changing the visual filter of the source view. The cursor menu is used to access cursors:

Switch TData

As the user experiments with the mapping of a GData, and navigates through scrolling or zooming, the user might come across a location of interest in the data. there are cases where the user wants to see what the same location looks like for a different set of input data. The is accomplished through the ``View/Switch TData'' menu. this is a time save by eliminating the need to use the structured interface again, when the only difference is that a different input is being used.

Duplicate Window

Consider a window consisting of a set of linked views. As the user navigates the views, he or she might come across a location of interest. One way to save this location is to mark it in the history window. However, the user may also want to compare two separate locations. This is most easily accomplished by making a copy of the window so that the two may be placed side by side for comparison. This is done by choosing the ``Window/duplicate Window'' menu.

After duplicating the window, the user is provided with two identical windows. The user can use the first window as a reference point, while using the second window for further navigation to find other places of interest. The alternative is to recreate the window by using the structured interface. But this may take a long time.

Data Querying

As the user navigates the data, there might be places where information about the records used to generate the graphics becomes important for understanding. Pressing down on the middle button may be used to query the data that underly the mouse. As a result, a pop-up window appears, giving the user information about the data records, including attribute names and values. (Click for an example) In the event that there is too much information to fit in a pop-up window, the information is displayed textually on the user's terminal.

Where to Place graphics

Views and windows are the means throught which the user decides to place graphics. First, views can be removed from windows to reduce clutter, or be moved to other windows for side by side comparison with other views. These functions are accessed through the ``View/Remove from window'' and ``View/move to window'' menus. When placed within the same window, the positions of views may also be swapped using the ``View/Swap position'' menu.

Windows are responsible for arranging views inside their boundaries. Different placement strategies may be implemented. Currently, DEVise only places the views vertically within a window. In addition, DEVise relies on the window manager of particular implementations for moving a window to a different locations on the display, for changing the size of a window, or for turning the window into an icon.

Command Summary

Thus far, the user interface commands supported by DEVise were presented grouped by function: whether they address the how, what, or where issues of visualization. We now summarize these commands by grouping them according to form:

Menus

There are five groups of menus: Session, Visualize, View, Cursor, and Window. We now describe each one in turn, beginning with the Session menu. Recall that the state of each visual query is a session. The session menu deals with saving and restoring visual queries:

The ``Visualize'' Menu is used to start the structured query interface that helps users construct visualizations using a series of dialogue boxes.

The ``View'' menu is used to operate on views. Most of the menu items require that the current view be specified by clicking in the view with the left mouse button. The menu items are:

The ``Cursor'' menu is used to operate on cursor:

The ``Window'' menu operates on windows:

Widgets

The control panel widgets are as follows:

The history window widgets are as follows:

Keyboard and Mouse Events

Moving the mouse repositions the mouse pointer to different parts of the display. If the pointer falls within a view, mouse and keyboard events may be used to invoke commands on the view. These commands are intercepted either by the cursor inside the view Valid commands also have the side effect of making the view under the pointer current view of the control panel.

If the view under the mouse pointer is the destination view of a cursor, then mouse events may be used to operate the cursor. The effective areas are under the X axis, or to the left of the Y axis. Clicking anywhere along the effective area moves the cursor to the new location, updating the source view at the same time. Additional mouse events are intercepted by the view as follows:

Keyboard events are also intercepted by the view as follows: