The interactive Graph Visualization System daVinci V1.4
=======================================================

							Michael Froehlich,
							Mattias Werner, 
							University of Bremen

daVinci is a universal, generic visualization system for generating high-
quality drawings of directed graphs. Graphs are frequently applied in 
computer applications as a general data structure for representing objects 
and relationships between them. They are used to implement hierarchies, 
dependencies, networks, configurations, dataflows, etc. Although graph 
visualization is accepted as indispensable for many domains, the use of 
this technique is not very common in today's computer applications. 
Frequently, a user has to deal with uncomfortable textual interfaces or 
poor ad-hoc drawings of graphs. The reason for this deficit is the great 
effort to implement a satisfying graph layout. In software development 
projects there is often a lack of personnel resources or money to realize 
these "auxiliary features". Furthermore, flexible and powerful graph 
visualization tools, which are reusable and easy to integrate with 
applications, are hard to find. These facts were the motivation for 
developing the interactive graph visualization system daVinci. The primary 
aim was to create a universal system that could be used by arbitrary 
applications as a user interface to display directed graphs in many 
different visualization styles.

One fundamental concept of daVinci is the separation from an application 
that is using the visualization system as a user interface for graphs. The 
connected program is exclusively responsible for controlling the graph 
structure, and the only task of the visualization system is to display this
graph on the screen. So daVinci is different from conventional graph 
editors, because the system is not able to alter the graph structure 
directly by itself. Each modification must be done by the application 
which controls the development of a graph. For this purpose, an application 
interface is provided for bidirectional communication with the connected 
program. An application, using this communication mechanism, can provide 
the user a powerful graphical user interface for directed graphs without 
implementing visualization techniques and layout algorithms. Furthermore, 
the user has full control to the application by interacting with the
visualization of a graph: Clicking on a node and selecting a menu in
daVinci may trigger an operation in the connected application.

The most important features of daVinci V1.4 are:

  - Automatic layout for hierarchical representations of directed graphs 
    with edge crossing minimization and bend reduction.
  - Support for cyclic graphs and graphs with multiple edges.
  - Alternative layout method for optimal representations of trees.
  - Interactive fine-tuning operations for layout customization.
  - Many attributes for nodes and edges available (e.g. setting colors, 
    patterns, shapes, text, fonts, etc.).
  - Icons available for using any kind of image (in X11-bitmap format) for 
    drawing graph nodes.
  - Interactive abstractions (e.g. collapsing subgraphs, hiding edges).
  - High-quality scaling to any rate without losing the interactive 
    capabilities.
  - PostScript interface for printing and exporting visualizations.
  - Application interface for connecting an arbitrary program which 
    generates graphs and controls their development. The interface provides 
    commands for sending graphs, adding menus to daVinci's user interface, 
    starting dialogues with the user, activating visualization operations, 
    etc. On the other side, the application is informed about user events 
    in daVinci such as selection of nodes, edges or menus. 
  - Interactive graph editor available. This separate program can be 
    connected to daVinci's application interface.

daVinci is developed by the Institute for Formal Methods in Software-
Engineering at the University of Bremen, Germany, since the end of 1992. 
The authors are Michael Froehlich and Mattias Werner. daVinci is written in 
the pure functional language ASpecT, developed at the University of Bremen 
also. The OPEN LOOKTM compliant user interface of daVinci is implemented 
in C using the window toolkit XView. As a result of the surprising worldwide 
approval, daVinci is now a widely used system for visualization of graphs. 
More than 500 educational and commercial sites all over the world are 
already using the tool. The system is available free of charge for non-profit 
use and can be downloaded from several ftp servers in Europe, North America, 
Japan and Australia.

daVinci is an OPEN LOOK program, available for Sun SPARCstations (with SunOS 
4.1.x and Solaris 2.x), HP 9000 workstations (with HP-UX), IBM RS6000
workstations, or PC's (with Linux or FreeBSD). Ports to other UNIX platforms 
are possible, but not available at this time. The system can be downloaded 
together with the documentation, manual pages, examples and tools by 
anonymous ftp from:

  ftp.Uni-Bremen.DE (134.102.228.2) 
  in directory: /pub/graphics/daVinci
  
The daVinci project is very interested in your opinion and experiences with 
the system. Reports about existing applications of daVinci, suggestions for 
new features and even criticisms are very welcome. You can contact the 
authors by sending an e-mail to 

  daVinci@Informatik.Uni-Bremen.DE. 
