daVinci - Questions & Answers
Overview ->
Questions & Answers
- Online
Documentation V2.0.3
Questions & Answers
This document describes solutions for frequently asked questions about
daVinci V2.0.x.
Overview:
- Availability:
- License:
- System Features:
- Graph Layout:
- 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.0.3. 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.0.x 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.uni-bremen.de/pub/graphics/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.
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,
but do not expect this in the very next future.
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.0.x 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: 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.
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 never get API-answer 'node_double_click'. Are double-clicks working?
-
A: Yes. Make sure that you do not move the mouse between the
first and the second click on a node or edge. Further, the value of your X-resource
multiClickTime: (double-click time interval) should not be too small.
It is usually defined in file ~/.Xdefaults. daVinci uses a
sufficent interval when you do not set this resource explicitely.
- 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.
- Q: I get error "Couldn't initialize Tcl/Tk interpreter: version mismatch"!
-
A:
You get this error message in daVinci V2.0 - V2.0.3 when you have
installed Tcl7.5/Tk4.1 (or higher) and try to send Tcl/Tk scripts to
daVinci's API with command
tcl(eval(...)) or
tcl(eval_file(...)).
The daVinci
Tcl/Tk interface
is based on Tcl7.4/Tk4.0 and does not work with a newer release of Tcl/Tk.
A simple work-around is to set two environment variables to isolate
daVinci from your local Tcl/Tk installation:
For csh users:
% setenv TCL_LIBRARY $DAVINCIHOME/lib/tcl
% setenv TK_LIBRARY $DAVINCIHOME/lib/tk
For sh users:
% TCL_LIBRARY=$DAVINCIHOME/lib/tcl; export TCL_LIBRARY
% TK_LIBRARY=$DAVINCIHOME/lib/tk; export TK_LIBRARY
Graph Editor Application:
- Q: Can I insert self edges with the graph editor?
-
A:
No, the graph editor does not support self-edges, because daVinci
does not support selection of self-edges at the moment (selection
would be ambigous in case of multi-self-edges).
You have to insert them manually. Save the graph and use the formatterm
tool before loading the ASCII representation of the graph in your favorit
texteditor. Inserting some missing self-edges by hand is not very difficult
(and not elegant either). :-(
Problems:
- Q: What can I do if the user interface hangs in daVinci V2.0.2?
-
A:
In daVinci V2.0.2, there is
bug
26-V2.0 which may block the user interface after closing the first (initial)
graph window in
multi-view mode. In this
case, the user interface ignores all mouse events (e.g. menu operations or
node selections). To get control back in this situation, use a keyboard
operation in the daVinci window such as Alt-f (opens the File menu).
Afterwards, mouse events are enabled as usual.
- 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 IBM AIX 3.x and 4.x,
whereby the 4.x binary may crash on AIX 3.x 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.0.x 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: I cannot start daVinci V2.0.x on DEC UNIX. There are errors from /sbin/loader!
-
A:
Users of DEC UNIX (OSF/1) have reported problems to start daVinci.
They've always got an error message ".../sbin/loader: Fatal
Error: lazy_text_resolve: symbol cos should not have any
relocation entry". In this case set environment variable LD_BIND_NOW to a
non-null value:
For csh users:
setenv LD_BIND_NOW yes
For sh users:
LD_BIND_NOW=yes; export LD_BIND_NOW
With this setting daVinci should work as expected.
Help System / Online Documentation:
- 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.0.x 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.
For the people who must have this fight: a PostScript version of the daVinci
V2.0.x online documentation is available by ftp:
ftp://ftp.uni-bremen.de/pub/graphics/daVinci/papers/daVinci_V2_doc_in_ps.tar.gz.
(178 pages, 610kB compressed, 13MB after decompression!)
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.0.3 Online Documentation - Page update: Nov 22, 1996