[Contents] [Intro] [Reference] [Tutorial] [Questions [New [Index]
Overview -> Reference -> API Reference -> Transition Guide

daVinci API - Transition Guide

This document is a migration guide for transition to the daVinci V2.x API. It is intended for programmers who have implemented applications for the previous release daVinci V1.x.

Term Representation of Graphs

The syntax of daVinci graphs (term representation) has not been modified in V2.x, but the following important restriction has to be considered: In daVinci V2.x, all nodes and edges of a graph must have a unique node/edge-ID in the term representation. Node- and edge-ID's were called labels in former releases. A node/edge-ID is the l constructor in front of each n and e term in a term representation (see syntax). So please consider that the ID's are now mandatory.

New API Syntax

With version V2.x, the former V1.x API was subject to a major revision. Unlike the answers, which have been left untouched, all commands have got a new syntax and are now grouped into categories with respect to their semantic. For example, all commands dealing with graph transmission and updates are member of the graph category. Commands for calling the menu functions of the user interface can be found in the menu category and are further divided into sub-categories to reflect the menu they belong to, e.g. menu(layout(improve_all)) or menu(file(exit)).

This drastic modification of the API was neccessary to realize new features in daVinci V2.x (e.g. the multi-graph mode) and to simplify the use by structuring the API with intuitive categories. The former V1.x API has had a grown structure without a clear concept, so the time has come to put this in order.

Applications written for the daVinci V1.x API are still supported in backward compatibility mode which is automatically activated if an obsolete V1.x command is sent to the API. So usually, all V1.x applications should be able to communicate with daVinci V2.x without any modification.

Transform V1.x to V2.x API Commands

As soon as an application would like to use new features of daVinci V2.x, all commands sent to the API have to be in V2.x syntax, because most new features will not work in the compatibility mode.

Transition to the new API is easy. Unless the application does not use any new feature of daVinci V2.x (e.g. application icons, multi-graph mode, etc.), it will not receive new kinds of answers. The syntax of the answers that already exist in the previous V1.x API is left untouched. Moreover, the parameters of the commands, for example the term representation of a graph or the specification of application menus, have not been modified, too. So, the only task an application programmer has to do to migrate to the new API is transforming the commands to the new V2.x syntax according to the following rules. The list shows all V1.x API commands (in alphabetic order) and their replacement in the V2.x API.


daVinci V2.1 Online Documentation - Page update: June 15, 1998