figure 1: the Polaris user interface. analysts construct table-based displays of data by dragging fields from the database schema onto
shelves throughout the display. a given configuration of fields on shelves is called a visual specification. the specification unambiguously
defines the analysis and visualization operations to be performed by the system to generate the display.
used to generate the database queries for statistical analysis.
3. GeneRatinG GRaPhics
The visual specification consists of three components: (a) the
specification of the table configuration, (b) the type of graphic
inside each pane, and (c) the details of the visual encodings
(for more details, see17). We discuss each of these in turn.
A=domain(A)={a ,...,a }
1n
P ={P}
3. 1. table algebra
We define an algebra as a formal mechanism to specify table
configurations. When analysts place fields on shelves, as
shown in Figure 1, they are implicitly creating expressions
in this algebra.
A complete table configuration consists of three separate
expressions in this table algebra. Two of the expressions
define the configuration of the x and y axes of the table, partitioning the table into rows and columns. The third expression defines the z-axis of the table, which partitions the
display into layers. The x, y, and z expressions form clauses
in the language.
The operands in this table algebra are the names of the
ordinal and quantitative fields of the database. We will use
A, B, and C to represent ordinal fields and P, Q, and R to represent quantitative fields. We assign sequences of values to
each field symbol in the following manner: to ordinal fields
we assign the members of the ordered domain of the field,
and to quantitative fields we assign the single element set
containing the field name.
Ordinal and quantitative fields generate tables with
different structures. Ordinal fields partition the table into
rows and columns using headers, whereas quantitative
fields generate axes.
A valid expression in our algebra is one or more field symbols with operators between each pair of adjacent symbols,
and with parentheses used to alter the precedence of the
operators. The operators in the algebra are cross (×), nest
(/), and concatenation (+), listed in order of precedence. The
precise semantics of each operator is defined in terms of its
effects on sequences.
concatenation: The plus operator concatenates two
sequences:
A+B ={a ,...,a }+{b ,...,b }
1n1m
={a ,...,a ,b ,...,b }
1n1m
A+P ={a ,...,a }+{P}
1n
={a ,...,a ,P}
1n
P+Q = {P}+{Q}
= {P,Q}
cross: The cross operator performs a Cartesian product of
elements in the two sequences:
nest: The nest operator is similar to the cross operator, but
it only creates sequence entries for which there exist records