Section: Software
Tulip: a scalable Graph Visualization Framework
Participants : David Auber [ correspondant ] , Jonathan Dubois, Ludwig Fiolka, Morgan Mathiaut, Patrick Mary.
See also the web page http://www.tulip-software.org .
Most of our work requires experimentation and validation. To this end, our group uses the Tulip graph visualization framework designed and developed by David Auber [25] . Tulip offers a C++ plug-in mechanism easing the development and adjunction of new algorithms (computing graph statistics, graph drawing or graph clustering). This actually is a main feature of the Tulip platform [29] . We do however experiment with other information visualization platforms such as the InfoVis Toolkit developed at INRIA [51] and prefuse [59] both based on Java technology.
Tulip implements astute data structures, data management and filtering/inheritance mechanisms. Its rendering engine relies on OpenGL, while its GUI rests on Trolltech's QT library. The main interaction paradigm offered by Tulip is the computation and direct manipulation of graph hierarchies, making it unique among all available graph visualization platforms such as Pajek [35] [47] , [55] [49] , [50] and others.
Tulip's architecture eases the construction of stand-alone and specialized applications. An application targeted at domain specific data can be realized through the selection of building blocks (data structures, existing plug-ins), customization/development of a QT-based GUI, and adjunction of specific plug-ins. Tulip's popularity is confirmed by its (approximately) 1000 downloads / month since it was ported on sourceforge. Tulip is also shipped with several Linux releases. Its unique C++/Linux plug-in mechanism has recently been the focus of a short article in a wide audience French magazine [29] .
We can list several applications that were built from Tulip:
-
EVAT was explicitly designed for the navigation and comparisons of huge trees (file systems, classification of species) and won our team a second place at the InfoVis Annual Contest [28] ;
-
SWViz implemented a specific hierarchical clustering algorithm for multilevel visualization and navigation of small world networks (social networks, software re-engineering graphs, etc.) [26] ;
-
ARNa implements an astute planar graph drawing algorithm capable of producing drawing of RNA secondary (2D) structures that mimics hand made drawing by biologists; the software is moreover designed to support the visual comparison of two RNA structures, finding the most common substructures and deciding of a best viewpoint on the drawings [53] ;
-
Tulip again was second place at the InfoVis Annual Contest in 2004, helping to explore and understand the organization and evolution of an information space made from InfoVis publications, author, topics, over the past ten years [46] .
We should also mention the use of Tulip framework without declining it into a specific application by other research teams. The Sorenson Molecular Genealogy Foundation studies population genealogy from a molecular biology perspective [76] , where graph clustering is astutely used to trace back genealogy from DNA data. Roman et al . [78] use Tulip to support their work on many-assets market modelling. Because of its plug-in mechanism, and of its openness, Tulip has been adopted by quite a large part of the Linux community - it is actually distributed in several Linux releases. Lately, Tulip was used to visualize and analyze a medieval social network [37] (see also http://blogs.zdnet.com/emergingtech/?p=928 ).
Additionally, although Tulip was originally intended to be used by a single user on a desktop workstation, its modular architecture allows us to explore its use in a collaborative setting [33] [32] [31] .
Perspectives
Our team develops and uses Tulip for its own needs. Tulip is more than just a visualisation application, although the framework is shipped with an already usable user interface. Tulip has received much attention from the scientific community [23] [25] .
Software modules from Tulip can be used separately to build customized applications requiring acute graph data management or basic graph visualization algorithms. Based on C++, OpenGL and QT from Trolltech, it makes use of the full capabilities of standard desktop computers now equipped with high-end graphics hardware.
We already have listed applications that were built from Tulip. Our work with geographers within the ANR project SPANGEO should lead to the development of a specific application dedicated to the visualization and navigation of spatial graphs in quantitative geography. This should allow us to enter the scene in the field of social network analysis, competing with Pajek [47] , for instance.
Part of Tulip's evolution will certainly rely on our ability to feed the framework with new algorithms and visualization techniques, as it has been the case since now. But there is a more challenging evolution we wish to address.
At the moment, Tulip appears as a rich collection of algorithms easing experimentation with large graphs. The next step is the construction of a development kit « à la Eclipse »(Eclipse is an open source SDK primarily developed and maintained by IBM, originally intended for the Java developer community. Its success basically emerges from its ability of integrating various plug-ins, offering services such as name completion and easy editing, code versioning, debug, etc.), enabling users to switch between perspectives, going from a pure algorithmic perspective to a task-centered one. A perspective here must be understood as a collection of GUI tools and associated plug-ins just as what can be found for Eclipse.
Selecting a “file system” perspective could bring together specific graph drawing algorithms and graph statistics, graph clustering algorithms, relevant interactors, etc. Other perspectives are possible: social network analysis, RNA comparisons, software re-engineering or software visualization, etc. We are confident that our experience in designing domain specific application from Tulip will help.
This subproject is a real challenge in itself in that it will most certainly require the adoption, development and/or adjustment of a taxonomy for data, tasks and/or application domains from which perspectives « à la Eclipse » can be defined [69] [45] [66] [81] [43] [34] [42] [60] [88] [52] [86] [64] .
It will most certainly require the development of a more ambitious type of plug-in, that we might call “domain specific” plug-in, or “task-oriented” plug-in, meaning that it combines proper algorithmics, drawing and interaction relevant for a given application domain or given type of tasks offering, a kind of bouquet of more elementary plug-ins combining into a visualization environment .
The actual architecture of Tulip, assembling independent modules, seems ready for this type of evolution without requiring a total rewrite of the framework. A web service project (Tulip plugin manager web service(See the URL sourceforge.net/projects/tulip-plugin-ws/.)) has already been created on sourceforge with that mid and long-term evolution of Tulip in mind.
We also should underline the impact and benefit of such an approach for the industry, easing the adoption or integration of Tulip's technology into their own. The development of perspectives could also evolve into commercial products some Eclipse perspectives already are.