Visualization in DEVise is divided into stages, each stage supported by components responsible for the functions of that stage. The component design is essential to providing the following functionalities of DEVise:
The stages of creating a visualization are as follows:
The input file is provided by the user. It is stored on disk in
ascii format. An example of an ascii file containing sin(time) and cos(time) might
look like:
# time sin cos
0.000000.2 1.000000.2 0.000000.2
0.017453.2 0.999848.2 0.017452.2
0.034906.2 0.999391.2 0.034898.2
0.052358.2 0.998630.2 0.052334.2
...
schema
The schema file describes the layout of an ascii input file.
It is used to convey: name and type of attributes, characters that
separate the attributes in the file, and characters that should be
ignored while reading the file. For our example file, the schema file looks
like:
type Sensor ascii
comment #
whitespace ' '
attr time double
attr sin double
attr cos double
The first line names the file type: Sensor. All sensor files have
data stored in the same format. More than one file type can be imported
into DEVise, each having its own schema file. For example, we can also
create a Stock file type to read information about stock prices, with data
stored in a different format. The second line tells DEVise to ginore
lines that start with '#'. The third line tells DEVise that the
attributes in the file are separated by white spaces. (DEVise
can also read files separated by delimineters, such as '10,20,20'.)
The remaining lines describe attribute names and types.
TData
A Textual Data (TDAta) is the representation used by DEVise to access files (or other types of input data). Once a file is imported into DEVise as a tdata, the user uses the tdata to create visualizations. Different types of input files are input into DEVise and treated uniformly as TData.
After selecting the file type, the user is asked to enter an alias
for the tdata. The default name is the name of the input file,
stripped of its path information. After entering the alias, the
file is imported as TData into DEVise.
Mapping
A mapping converts TData attributes into graphical data (GData) attributes. The user decides how tdata is visualize by selecting the tdata attributes that map onto the the x, y, color and shape gdata attributes. (More attributes will become available in a future implementation.) Notice that a TData can be visualized in more than one way by creating more than one mapping.
For our example, we can create the following example mappings:
sin_vs_time:
x <-- time
y <-- sin
cos_vs_time:
x <-- time
y <-- cos
sin_vs_cos
x <-- cos
y <-- sin
Once a mapping is created, it can be used on all TData with the
same file type.
GData
The graphical data (gdata) is the graphical representation of the
tdata. It consists of attributes: x, y, color, pattern, size, orientation,
shape, and shape specific attributes.
Visual Filter
A visual filter defines a query over the graphical data
attributes of the gdata. Our implementation supports range query
over the X and Y GData attributes. Use visual filter to specify portions
of GData to be viewed.
View
A view is used to display those gdata that fall within the range
of the visual filter. Currently we have two types of views: Scatter
and SortedX. The Scatter view is used to draw a scattered plot.
The SortedX view implements optimizations used to reduce the time
used to draw the gdata if the X attribute is sorted.
Window
A window provides the screen real estate used by views to draw the gdata. It it also responsible for arranging views in its boundaries. Currently, we only have WinVer that arranges the views vertically inside window boundaries.
A view can be removed from a window to reduce clutter, or be moved to another window so that related views are brought together for comparison.
Windows may be duplicated, a very handy feature.
A cursor can also be used to display the X/Y boundaries of one view
within another view. A cursor contains both a source view
and a destination view.
The source view is where the cursor fetches information
about the current view X/Y axes boundaries. The boundaries
of the source view are drawn as line segments in the axes
of the destination view. Click in the axes area of the destination view
to move the source view (by changing its visual filter)
to the location clicked.
Link
A link is used to link visual filters so that updating one
synchronously updates all linked visual filters. We have implemented links
for linked axes, either linked x and/or y axes. However, a link in theory
can be used on any of the of the graphical attributes:
x, y, color, size, pattern, orientation, and shape.
Cursor