[Contents] [Intro] [Reference] [Tutorial] [Question [New [Index]
Overview -> Questions & Answers

[daVinciLogo] - Online Documentation V2.0.3

Questions & Answers


This document describes solutions for frequently asked questions about daVinci V2.0.x.

Overview:


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