daVinci - Questions & Answers
Overview ->
Questions & Answers
- Online
Documentation V2.1
Questions & Answers
This document describes solutions for frequently asked questions about
daVinci V2.1.x.
Overview:
- Availability:
- License:
- System Features:
- Graph Layout:
- Term Representation (daVinci's external Graph Format):
- Application Programmer Interface (API):
- Graph Editor Application:
- Problems:
- Help System / Online Documentation:
- More Information:
Availability:
- Q: What is the current release of daVinci and where can I get it?
-
A:
The current release is daVinci V2.1. Informations about
downloading daVinci
by ftp can be found in the online documentation.
- Q: Is daVinci available for MS-Windows?
-
A:
No, not at the moment. Although the daVinci V2.1 user interface is
implemented in Tcl/Tk, which is also available for Microsoft Windows 95 and NT,
some parts of the source code are not portable per se (e.g. the highly optimized
drawing engine, which is based on Xlib, and the API which currently implemented
with UNIX pipes). Because of limited resources, it is not possible for the
daVinci project to go ahead with a MS-Windows port at the moment.
Further, the port cannot be done by a third party due to the need of fundamental
modifications in the daVinci kernel.
- Q: Can I get the sources of daVinci?
-
A:
Sorry, but only the binary distribution of daVinci is public available.
First of all, the system is written in the pure functional language ASpecT
which is automatically translated to C. The generated C-code is more or less unreadable
for a human being and functional languages are not yet mainstream. Moreover, the ASpecT
language is almost unknown for people outside University of Bremen. So the sources
are of minor use for most programmers. Second, the daVinci project would
like to keep the sources for a potential commercial exploitation of the
daVinci software in the future.
- Q: Where can I get daVinci for my UNIX brand?
-
A:
There are binary distributions available for all major UNIX platforms. Check the
online documentation for details about
downloading daVinci.
If you miss support for a particular UNIX operating system and have some time,
then maybe you can help yourself and other people by doing the port on your own.
All you have to do is
asking the daVinci developers
for the compilation scripts. The only requirement for the port is that a C-compiler
(gcc prefered) and Tcl7.4/Tk4.0 is installed on your computer.
- Q: Your ftp-server is too slow. Are there any mirrors?
-
A:
You can try the US mirror
(ftp://ftp.wustl.edu/graphics/graphics/packages/daVinci)
if transmission from University of Bremen
(ftp://ftp.tzi.de/tzi/biss/daVinci),
the primary server for daVinci,
is too slow. There are even more mirrors, but it may take some time to see a new
release there. So check if the release is up-to-date. You can find more mirror server
by using the xarchie tool which may be installed on your computer
(ask your system administrator if not).
License:
- Q: We are a company. Do we have to pay for a commercial license?
-
A:
This depends on what you want to do. daVinci is licensed free of charge for
non-profit use (refer to the
license).
So companies and other institutions can use the software for free
for these kinds of application, e.g. to develop internally used software which is
never given to customers (customers are people who pay a company or institution
for their products or service). Bundling daVinci with other freeware
software packages (which are available for no cost) is also considered as non-profit
use.
But if daVinci is used for developing commercial software (which is not
given for free to a third party), or if print-outs of daVinci graphs
are presented to customers (e.g. for prototypes or advertising) or if
daVinci is bundled with non-free software, then a commercial license is
required. Please
write an e-mail
to the daVinci project to get the conditions of a commercial license.
System Features:
- Q: Does daVinci allow manipulation of a graph?
-
A:
Yes and no. There are a lot of interactive functions in daVinci to
manipulate the visualization of a graph, e.g. scaling, abstractions,
fine-tuning, etc. But there is no way to directly manipulate the structure
of a graph, so daVinci is not a graph editor. This is one of the fundamental
concepts of daVinci to be as generic as possible.
The structure of a graph has to be controlled by an external application program
which can be connected to the daVinci
API.
One application program, bundled with each distribution, is the
graph editor which allows you to interactively edit a graph currently
visualized with daVinci (e.g. by adding and removing nodes and edges).
Informations
about the graph editor
can be found in the online documentation.
- Q: Is it possible to send daVinci graphs to a plotter?
-
A:
In daVinci you can save a graph in PostScript format. If your plotter
understands PostScript, it will work. If not, you need to find a converter from
PostScript to your printer/plotter format.
Graph Layout:
- Q: Is it possible to draw cyclic graphs?
-
A:
Yes, although daVinci gives you a hierarchical graph layout with
levels of nodes and directed edges between them, the system is also able
to handle cyclic graphs (by transforming them internally into acyclic
graphs).
- Q: How can I get edge labels?
-
A:
Sorry, but edge labels (i.e. a text next to an edge in the visualization) are
currently not supported. The daVinci project knows about the strong user
demand for edge labels, but this feature requires fundamental modifications to the
layout engine which is not possible with the current development resources. Edge
labels are still on the list for a future version of the daVinci system.
At the moment there is a sufficient
work-around for edge labels
(by using graphical object "text") which is described in the online
documentation.
- Q: Are nested graphs (i.e. a graph node is a box including another graph) supported?
-
A:
No, not at the moment. This is also a feature scheduled for one of the next versions. We will tell you a secret. Parts (although still very buggy) of this new
feature are already integrated in daVinci V2.1. Please contact the
daVinci developers for informations how to test this feature.
- Q: Is it possible to specify the root nodes in a graph visualization?
-
A:
In most cases, the root nodes of the
term representation
are also the root nodes in the graph visualization. But if there
are some edges pointing to a root of the term representation or
if the graph is cyclic, then daVinci may choose another
node as root and the term representation root becomes an ordinary
node with parents. The user currently has no influence on this
behaviour.
- Q: Nodes drawn as circles don't have a common radius. Can I change this?
-
A:
The width and height of graph nodes in the visualization depends on the
text extension of each individual node. It is currently not possible in
daVinci to specify the width and height of a node. All you can
do is using one common length for all node strings (e.g. by filling up
strings with spaces) and using font family Courier (refer to term
representation,
node attributes).
Term Representation (daVinci's external Graph Format):
- Q: Can I use two sets of nodes and edges instead of the term representation?
-
A:
The
term representation
is the only graph format currently supported by daVinci, so it is not
possible to write down the nodes first and then the edges (or vice versa).
For a work-around, you can use the
API
of daVinci V2.1 which has a command
graph(update(...))
for updating an already loaded graph. Graph updates are nodes and edges that should
be added or removed. So first you have to remove a probably loaded graph
by sending API-command
menu(file(new))
and then you can send the new graph by specifying its node and edges in the format
of the graph(update(...)) command.
- Q: How do we add comments to a daVinci term representation file?
-
A:
Inline comments are not allowed in the daVinci
term representation.
But you can write whatever you want at the end of a term
representation, i.e. behind the last ']'. daVinci will simply
stop reading the file as soon as the end of the graph term is found.
- Q: Is it possible to load a graph in adjacency matrix format?
-
A:
The
term representation
is the only graph format currently supported by daVinci, so it is not
possible to load a graph in adjacency matrix format. A converter from matrix to
term representation format is not extremely difficult (a great exercise for students
:-), so maybe some daVinci user is interested to write such a tool. Please
inform the daVinci project by
e-mail
in this case.
- Q: How large can the string of a node or edge ID be, so daVinci can differ them?
-
A:
There is no restriction in length for node or edge identifiers in the
term representation graph format. But the longer the labels are, the
slower the performance will be, because daVinci calculates a
hash value for each ID and if two IDs have the same hash value, then
each time IDs have to be compare character by character.
Corollary: better choose short node or edge IDs in order to get better
performance.
- Q: Where can I find the documentation of the status file format?
-
A:
Status files
are only generated by daVinci itself. They
contain the complete system state and can be loaded in a later session
to restore a previous one. There is no documentation of the status file
format, because no other program except daVinci is supposed
to read these files. In fact, even the daVinci developers do
not have a documentation at hand, because a status file is simply a
dump of the complete internal data structure of daVinci that can
be reloaded easily. Further, the status file format is changed
with each daVinci release because of new features, so a backward
compatibility mode is needed to read old files.
Application Programmer Interface (API):
- Q: Can I connect daVinci and my program written in XXX by using the API??
-
A:
daVinci has an application programmer interface (API) which is independent
from a particular programming language. The communication between a connected
application and daVinci is done via UNIX pipes. Refer to the
API reference
in the online documentation for details.
- Q: Is it possible to construct graphs directly from a program written in XXX?
-
A:
First you have to connect your application program to the daVinci API.
This is described in the
API reference.
Then your application has to construct the graph in
term representation
format and send it to daVinci for visualization by using API-command
graph(new(...)).
- Q: I get selection answers after sending commands, but before receiving the 'ok'!
-
A:
Yes, this is the way it should be. Some users are confused about the
communication behaviour
of the API. The daVinci developers would like to clarify that API
communication between daVinci and an application is asynchronous,
so both processes can send messages at any time. The absence of hand-shaking
in the API protocol has the following consequence: generally, each API command
is directly
confirmed
with an answer (mostly ok). After receiving an API command, daVinci
does not send any other answers (e.g. selection events) until the command
is completely executed and confirmed with the corresponding answer.
But this does not mean that for the application, the confirmation answer will
directly follow after sending a command to the API. Answers for
event notification
may occur at any time, even if a command is not yet confirmed! The reason is
that the event may have happened in the time interval after a command is send
by the application, but before the command is received by daVinci.
For daVinci, the event answer is then sent to the application before
receiving the next command (which blocks sending of event answers). But for the
application, the event answer is received from daVinci before getting
the confirmation answer for the command.
Corollary: your daVinci application should expect to receive
event answers at any time, even if a command, sent to the API, is not yet
confirmed with the corresponding answer.
Graph Editor Application:
- Q: Can I insert self edges with the graph editor?
-
A:
Yes, starting with grapheditor V2.1 and daVinci V2.1 you can insert self edges. Please refer to the graph editor documentation for further informations.
Problems:
- Q: I always get a core dump after starting daVinci. What is going wrong?
-
A:
First of all, make sure that you are using the right binary for the operating system you
currently use. For example, there are different binaries for Linux SuSe and Redhat,
whereby the Redhat binary may crash on Suse and vice versa. You can test a binary
with the standard file command to see if it is recognized by your platform.
Test the daVinci binary and some other binary (where you are sure that it
works) with file to see if both outputs match.
Otherwise you might have found a bug in daVinci. Please contact the
developers by
e-mail
and describe your problem and your configuration in detail to get help.
- Q: daVinci crashes with "X Error: Bad alloc". What can I do?
-
A:
Either you are working with extremely large graphs or your computer has not enough
memory. The error comes from the X-client which was not able to allocate memory
for a new pixmap. Try to reduce memory consumption by starting daVinci with
option -nocache or set
this option in the general settings dialog.
- Q: I get an error "Tk: can't read "tk_version": no such variable"
after starting daVinci.
-
A:
You have probably started daVinci remote on another computer without setting
the DISPLAY environment variable there. DISPLAY has to be set on the remote computer
to point to the X-Window display where you want to see the output. For example if you
are sitting in front of computer bloodyslow and want to start daVinci
remote on server fastaslightning then you have to do the following procedure:
% xhost fastaslightning
fastaslightning being added to access control list
% rlogin fastaslightning
... (login messages from fastaslightning)
For csh users:
% setenv DISPLAY bloodyslow:0
% daVinci
For sh users:
% DISPLAY=bloodyslow:0; export DISPLAY
% daVinci
You can also use an option to let daVinci redirect the display:
% daVinci -display bloodyslow:0
- Q: I cannot start daVinci V2.1 on SunOS 4. There are errors from ld.so!
-
A:
Tcl/Tk has some specific problems with obsolete X Window releases prior than
X11R5, so the loader complains about missing functions in the shared X11 library.
The development of the BSD based SunOS was stopped by Sun in 1991, so the default in all
SunOS 4.1.x releases is only X11R4. It is recommended to install X11R5 or X11R6 in
order to use daVinci.
- Q: Does daVinci have any problems with the year 2000?
-
A:
No. As long as your operating system handles the year 2000 correctly,
no date related malfunction will happen in all releases of daVinci
after January 1, 2000. Look at the
Year 2000 Information Center
for more information about the millennium bug.
Help System / Online Documentation:
- Q: daVinci doesn't talk with Netscape. What can I do?
-
A:
If you press the Help button in a daVinci dialog window or use
the Help/ menu and nothing
happens in Netscape then check the Netscape command specified in menu
General Settings dialog
(which is usually 'netscape').
Locate this Netscape command (e.g. with 'which netscape') and look at that
file. If it is a shell script installed by your system administrator, then
make sure that the script passes the arguments to Netscape. This can be
done in the following way:
#!/bin/sh
exec <filename_of_netscape_binary> $*
Otherwise daVinci cannot tell Netscape about the document
requested by the user.
- Q: What can I do if Netscape cannot find a file after starting the help system?
-
A:
Open the
General Settings dialog
with menu
Options/General Settings...
and look at the content of field Online Documentation:. This specifies
the URL-prefix which is passed to Netscape. It should point to the topmost
directory of the daVinci online documentation, usually located in
directory $DAVINCIHOME/docs (do not use shell variables such as
$DAVINCIHOME in the dialog, Netscape does not understand this).
Change the URL-prefix in the dialog to point to the online documentation,
press Apply and save the options with menu
Options/Save Options.
If this does not work, remove your options file with rm ~/.daVinci
and start daVinci again.
- Q: I need to print a paper version of the documentation. Is it available?
-
A:
The HTML online documentation of daVinci V2.1 is written as a hypertext.
For example terms are not defined at first occurance, they are hyperlinks to the place
where the term is described in detail. So it is very difficult and inconvenient
to read this text in a linear manner on paper. It is strongly recommended
to read it online with a WWW browser such as Netscape Navigator.
More Information:
- Q: Are any papers available about daVinci?
-
A:
See [FM94b] and [FW95] in the
daVinci bibliography.
Both papers are available by ftp, the URL's can be found in the bibliography.
You can also
cite the daVinci online documentation
which has URL
http://www.informatik.uni-bremen.de/~davinci/docs/
- Q: Is there a mailing list?
-
A:
Yes, you can subscribe or unsubscribe to the mailing list by sending an
e-mail
to the daVinci developers. At the first use daVinci will
automatically ask the user to subscribe to the mailing list, so usually there is no
need to do this manually.
- Q: Where can I find a paper about the layout algorithm(s) used in daVinci?
-
A:
The graph layout algorithms implemented in daVinci are described in the
concepts document
of the online documentation. The original papers where the algorithms are described
are [STT81] (for graph layout) and [Juu94] (for tree layout), refer to the
daVinci bibliography
which is part of the online documentation. Note that both algorithms have been
slightly improved in daVinci.
daVinci V2.1 Online Documentation - Page update: July 13, 1998