Focusing on the drawing, not on graphics.
- Many different types of graph representations are used in the industry, with a number of
graphic peculiarities strictly related to their semantics. However, most of such representations have
a common drawing type : organization charts, genealogy trees, object-oriented inheritance
trees, for instance, have different graphics but a common hierarchical drawing type.
Similarly, entity-relationship and data-flow-diagrams generally have both an orthogonal
- As a consequence, libraries focused on graphics tend to be specific to some kind of
applications (networking or software engineering or decision support), while GDT, being focused on
the drawing conventions adopted, rather than on their graphics, has a wider range of
- Moreover, it is our belief and experience that the major problem for application developers,
is not to draw nodes and edges with the proper icons, colors and line-styles (lots of
libraries already exist for doing that), but to generate the best drawings for their graphs,
minimizing the length of the edges, the number of crosses and bends along them, the total area of the
drawing, etc. A challenge requiring relevant expertise in the graph-drawing theory, and man/years of
effort for implementing efficient algorithms and data-structures.
- For the above-mentioned reasons, the GDT project is mainly focused on sophisticated
topology-based layout algorithms supporting the developer in getting the best drawing for his graph.
It is worth noting, however, that GDT still provides basic graphic capabilities (some different
shapes for nodes, colors, line types, labels, etc.) which are generally enough for research and the
average commercial application.
Delivering the right level of control and abstraction
- In order to effectively deliver graph-drawing functionality, it is essential to provide the
customer with methods compatible with his expertise and needs, for controlling the graph and the
layout process without getting overwhelmed by a counterproductive amount of details on algorithms and
- However, what is a counterproductive detail for the student who just wants to draw a schema of
its web-site, might be essential for the experienced application developer, who needs the maximum
level of control to deliver perfect drawings with his new decision-support business tool. In one
word, different users need a different level of control and abstraction with respect to the same
- With GDT, we deliver three different solutions globally addressing the needs of a wide
range of users, including expert and novice application developers, system integrators, academic
teachers and researchers, and people without any specific expertise. Each solution offers a different
balance between control and abstraction:
- A programming interface for application developers.
developers can take advantage of a fully object-oriented API (the GAPI) delivering them a very high
level of control on the graph internal data-structures, and on the automatic layout process.
- A configurable layout generator for system integrators.
Developers who need
to integrate an existing (legacy) application with additional graph-drawing capabilities, can rely on
a stand-alone batch layout generator (the BLAG) that can be simply interfaced by means of simple
ASCII files. Despite its black-box concept, the BLAG can be configured with
directives and constraints it read from a configuration file, and therefore still offers a level of
control on the layout process which is compatible with most commercial and research applications.
Researchers who need to test layout algorithms on a large set of graphs, can also launch the batch
generator within a simple script looping across the whole graph set (by the way, this is one of the
techniques we have used to test the GAPI itself).
- Interactive graphical shells for end-users.
End-users, even with no
programming expertise, can use some interactive drawing tools (as for example "gdtdemo" or "GRID")
we have developed as a user-friendly shell to most of the GAPI layout and drawing capabilities. Using
these tools, anyone interested in graph drawing, can easily create and edit a graph, set its basic graphical
features (colors, labels, nodes shape and size), interactively impose the required layout constraint
(if any), apply any of the available automatic layout algorithms, and interactively refine the drawing
if required. Consider, however, that these tools are just demos of GAPI and then they are not refined
as well as commercial tools often require.
Last update : July 31, 2002
Website design by INTEGRA Sistemi, www.IntegraSistemi.it