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.
This tool is integrated into Network Workbench as of version 0.9.0.
- Source Code: http://graphexploration.cond.org/download.html#source
- GUESS documentation: http://harambeenet.org/guess/guide/GUESSQuickRef.pdf
- Binaries: http://graphexploration.cond.org/download.html
- Home Page: http://graphexploration.cond.org/
- Documentation: http://graphexploration.cond.org/documentation.html
Pros & Cons
This tool is perfect for most tasks involving visualizing and exploring networks. It is not well suited for large networks however (>20,000 nodes). Some attribute is reserved for GUESS. it is not allow to be used. See the above warning for more information.
CNS-Specific GUESS Enhancements
Implemented in Java, has a console that allows end-users to script in Jython.
The documentation page explains a lot on how to use it.
- GUESS was developed and is maintained by Eytan Adar
- Bernie Hogan and Jeffrey Wong created the GraphModifier front-end used in the NWB version
- Adar, Eytan and Miryung Kim, "SoftGUESS: Visualization and Exploration of Code Clones in Context," ICSE 2007, PDF (524kb)
- Adar, Eytan, "GUESS: A Language and Interface for Graph Exploration," CHI 2006, PDF (524kb)
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.
- This is an awesome tool for visualizing and exploring network data, well worth the time to learn! -bh2