Technische Universität München,
Fakultät für Informatik
Genesys -
a Generic Editor System for Graphs
Welcome to the Genesys Home Page. Genesys is a project originating in a
diploma thesis
done in 1993/94 to design and implement a generic
graph editor.
The main feature of Genesys is its ability to generate textual
representations from graphs; it is ``generic'' in two ways:
- It allows to define the ``look'' of arbitrary kinds of graphs,
e.g. Petri nets or Entity/Relationship diagrams, using a simple graph
definition
language (GDL).
Given such a graph definition Genesys can instantiate an
editor for that particular kind of graph.
GDL also
allows to define certain restrictions for graphs,
like those found in Petri nets where edges (``arrows'')
may only connect different kinds of vertices.
- For each kind of graph an arbitrary number of translations into
different textual representations may be supplied.
These definitions are basically generative grammars quite similar to EBNF,
describing the text to be generated and providing access mechanisms to
the graph data.
Up to now a series of applications has been implemented using Genesys:
- Editing Entity/Relationship diagrams and translating them to
SQL schema definitions,
- Drawing inheritance trees and generating C++ class definitions
as well as the corresponding implementation stubs,
- Generating signatures from signature graphs drawn in Genesys,
- Generating C-programs from simple finite automata,
- Editing Petri nets,
- Generating adjacency matrices from graphs,
- Generating algebraic database specifications in
SPECTRUM
from Entity/Relationship diagrams, thus providing a formal semantics for
the Entity/Relationship model based on
Rudi Hettler's dissertation thesis
Entity/Relationship-Datenmodellierung
in axiomatischen Spezifikationssprachen.
Some information on the current status of Genesys:
Although considered a protoype, Genesys is currently a fully functional
stand alone application. Nevertheless, since the completion of the original
project a number of ideas for further development have come up, so we'd
rather like to see the current implementation of Genesys as a starting
point for its further evolution.
Genesys has been implemented using the C++ based toolkit InterViews,
version 3.1, from Stanford University. Another toolkit based on
InterViews, Unidraw (also developed at Stanford University), was used
to implement the graph editor parts of Genesys.
Franz Huber, 1995-05-08,
1996-09-14