Data & Visual Abstraction


Posted on Junl 02, 2008


Data Tables & Visual Abstraction.

Data Tables and Visualization Abstraction should be the most important part of whole prefuse. They represent the informational data and corresponding displayable visual properties. Java classes for Visual Abstraction are extended from those for Data Tables, so that programmer can manipulate Data Tables and their Visual Abstraction in a natural way. Pipeline and Package Overview should be kept in mind when further exploring prefuse in detail. The Quick Figures menu from left sidebar may be helpful.

To understand the structure of Java classes in prefuse, the UML class diagram is used for this purpose. Especially the inheritance and realization relations would be represented. The following figure illustrates an example of a class diagram.

Class diagram example.
Class diagram example.

Again, the Java package used for Data Tables is prefuse.data; for Visual Abstraction is prefuse.visual.
At first I would show the basic concept and structure between prefuse.data and prefuse.visual.

Basic structure of Data Tables and Visual Abstraction.
Basic structure of Data Tables and Visual Abstraction.
  • Every piece of information (data) is represented as a Tuple.
  • A TupleSet consists of one to many Tuples.
  • A TupleSet (or VisualTupleSet) is similar to a table in database, and a Tuple (or VisualItem) is similar to an entry of such table.
    • A TupleSet (or VisualTupleSet) has a metadata to define the attributes of its columns, for examaple, name, type and default value of columns. (Such metadata is stored in prefuse.data.Schema.
    • A Tuple (or VisualItem) is a unique entry in a TupleSet (or VisualTupleSet). A Tuple consists of attribute vlaues which are exactly defined by the metadata of the storing TupleSet.
    • Illustration of a TupletSet with metadata and Tuples.
  • The schema of TupleSet and the values of Tuple are mostly defined and assigned according to input Source Data.
  • VisualTupleSet extends from TupleSet. It holds the schema from its extended TupleSet and has also a extra schema for visual attributes, for example, position, size ...etc.
  • VisualItem extends from Tuple. It holds the data values as Tuple does and it contains additionally visual attribute values.


The following figure shows the detail of the prefuse.data.

Data Tables (prefuse.data) in detail.
Data Tables (prefuse.data) in detail.
  • Edge and Node are two special Tuple. They can represent the data which has the tree or graph meaning.
  • TableTuple, TableEdge and TableNode are prefuse default implementing Tuple.
  • Table, Graph, Tree are typical implementing TupleSet.
  • Graph and Tree are implemented with composite Tables.


The following figure shows the detail of the prefuse.visual.

Visual Abstraction (prefuse.visual) in detail.
Visual Abstraction (prefuse.visual) in detail.
  • TableVisualItem, TableEdgeItem and TableNodeItem are typical implementing VisualItem.
  • VisualGraph, VisualTree and VisualTable are typical implementing VisualTupleSet.


The following figure shows the detail of both prefuse.data and prefuse.visual.

Data Tables (prefuse.data) and Visual Abstraction (prefuse.visual) in detail.
Data Tables (prefuse.data) and Visual Abstraction (prefuse.visual) in detail.
  • Many classes from prefuse.visual extend the classes from prefuse.data.
  • SearchTupleSet from prefuse.data.search can be used for dynamic query (e.g. user search or query interaction).

0 comments: