About GUESS

GUESS is an exploratory data analysis and visualization tool for graphs and networks. The system contains a domain-specific embedded language called Gython (an extension of Python, or more specifically Jython) which supports the operators and syntactic sugar necessary for working on graph structures in an intuitive manner. An interactive interpreter binds the text that you type in the interpreter to the objects being visualized for more useful integration. GUESS also offers a visualization front end that supports the export of static images and dynamic movies.

Because GUESS is Jython/Java based you can also construct your own applications and applets without much coding. GUESS is distributed as GPL and makes use of a number of great open source packages and contributions. Feel free to explore the website and download the application or read on for more details.

GUESS was developed and is maintained by Eytan Adar (originally at Hewlett-Packard). The previous version of the system, Zoomgraph, is still available for download at the HP website.

GUESS Features

GUESS is a database driven system that allows nodes and edges to include attributes beyond basic display features (we support continuous, categorical, and binary attributes). The Gython language gives you access to these properties without typing in database queries, For example:

Color all people in the HR department blue:

(dept == 'HR').color = blue

Find all communication edges between HR and Finance and color them red:

((dept == 'HR')-(dept == 'finance')).color = red

Or hide all edges corresponding to two-hybrid protein interactions:

(interaction == 'two-hybrid').visible = false

Change the width of all edges with a load > 3:

(load > 3).width = 4

The GUESS visualization component is a zoomable interface to large graphs allowing for the visualization of graphs and networks on an infinite plane with infinite (smooth) zoom. Try the applet to get a sense of this. The (recommended) interface is based on Piccolo, but you can also swap the interface with others systems (initial support for Prefuse and TouchGraph).

GUESS supports dynamic and time sensitive data and allows you to animate graph states (see the movie pages for an example). Complete cinematographic control over nodes, edges, and the camera for more powerful dynamic graph visualization.

Using GUESS you can import standard formats (Pajek, GML) and export a wide variety of image types (GIF,PNG,EPS,PDF,JPG,SVG...)

By making use of JUNG, as well as other systems, we support various layout algorithms and graph analysis commands (including some unique to GUESS).

For those interested in more extended statistical support, GUESS also talks to R.

Thanks

I am very grateful for the support I received from Bernardo Huberman and others at HP Labs where I originally worked on GUESS. In particular: David Feinberg was instrumental in the initial coding and Joshua Tyler who wrote the very first version of Zoomgraph.

The amount of great code out in the open source community is amazing. Full credits are distributed with the source, but in particular I want to point to: