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

[daVinciLogo] - Online Documentation V2.1

Questions & Answers


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

Overview:


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