Object-Orientation FAQ


GRAS - A Graph-Oriented Database System for SE Applications
Copyright (C) 1987-1993  Lehrstuhl Informatik III, RWTH Aachen
See the GNU Library General Public License for copyright details.
Contact Adresses:
    Dr. Andy Schuerr
    Lehrstuhl fuer Informatik III,
    University of Technology Aachen (RWTH Aachen),
    Ahornstr. 55,
    D-5100 Aachen
Email to
GRAS is a database system which has been designed according
to the requirements resulting from software engineering
applications. Software development environments are composed
of tools which operate on complex, highly structured data.
In order to model such data in a natural way, we have selected
attributed graphs as GRAS' underlying data model.
A first prototype of the GRAS (GRAph Storage) system - described
in /BL 85/ - was already realized in 1985. Since this time
gradually improving versions of the system have been used at
different sites within the software engineering projects
IPSEN /Na 90/, Rigi /MK 88/, MERLIN /DG 90/, and CADDY /EHH 89/.
Based on these experiences, almost all parts of the original
prototype have been redesigned and reimplemented.
Thus, nowadays a stable and efficiently working single-process
version of the system GRAS with interfaces for the programming
languages Modula-2 and C is available as free software for Sun
workstations (the GRAS system itself is implemented in Modula-2
and consists of many layers which might be reusable for the
implementation of other systems):
  Via anonymous ftp from ftp.informatik.rwth-aachen.de
  in directory /pub/unix/GRAS in file gras.<version-no>.tar.Z.
  There are several files containing documentation, sources, binaries,
  application examples, and libraries. All binaries are for Sun/4
  machines. Sun/3 binaries are shipped only if explicitly requested.
  You have to use the following sequence of operations for installing
  the GRAS system at your site:
  1) 'ftp ftp.informatik.rwth-aachen.de' (with login name "anonymous"
     and password equal to your mail address).
  2) 'cd pub/unix/GRAS' (for changing the current directory).
  3) 'binary' (command for changing ftp mode).
  4) 'get gras.<version-no.>' (use 'ls' for finding the currently used
      GRAS version nr.).
  5) 'bye' (for exiting ftp).
  6) 'uncompress gras.<version-no>.tar'.
  7) 'tar xvf gras.<version-no>.tar' (creates a subdirectory GRAS_2 for
     the Modula-2 implementation of GRAS including its C-interface).
  8) Follow the instructions in file GRAS_2/README.
The current version has programming interfaces for Modula-2 and C
and supports:
  - the manipulation of persistent attributed, directed node- and
    edge-labeled graphs (including the creation of very long
    attributes and of attribute indexes).
  - the manipulation of temporary/volatile generic sets/relations/lists,
  - the coordination of graph accesses by different GRAS applications
    (multiple-read/single-write access with graphs as lock units),
  - error recovery based on shadow pages and forward logs,
  - nested transactions and linear undo/redo of arbitrarily long
    sequences of already committed graph modifying operations based
    on forward and backward logs,
  - event-handling (with certain kinds of graph-modifications
    as events and graph-modifying transactions as event-handlers),
  - primitives for version control comprising the capability
    for efficiently storing graphs as forward/backward deltas to
    other graphs,
  - and primitives for declaring graph schemes and for incremental
    evaluation of derived attributes.
Furthermore, tools for (un-)compressing graphs and a X11R5-based
graph browser are part of this release.
A multi-process version of the system GRAS supporting the inter-
action of multiple client and multiple server processes within
one local area network is nearby completion (version 6.0/0).
Thus, the GRAS system may be considered to be the core of a graph
oriented DBMS environment. The development of such an environment
based on a very high-level specifications language named PROGRES
is under way (the underlying calculus of this specification language
are so-called PROgrammed GRaph REwriting Systems).
This environment will comprise the following tools (a prerelease
of this environment might be made available upon request):
  - a syntax-directed editor for graph schemes, graph rewrite rules,
    and sequences of graph rewrite rules,
  - an incrementally working consistency checker,
  - an incrementally working compiler&interpreter translating
    PROGRES specifications into sequences of GRAS procedure
    calls (for C as well as for Modula-2),
  - and an "enhanced" graph (scheme) browser.
Refer to the following publications for further info about GRAS, PROGRES,
and related topics:
/BL85/          Brandes, Lewerentz: A Non-Standard Data Base System within
                a Software Development Environment. In Proc. of the Workshop
                on Software Engineering Environments for Programming-in-the-
                Large, pp 113-121, Cape Cod, June 1985
/DHKPRS90/      Dewal, Hormann, Kelter, Platz, Roschewski, Schoepe: Evaluation
                of Object Management Systems. Memorandum 44, University
                Dortmund, March 1990
/Feye92/	Feye A.: Compilation of Path Expressions (in German), Diploma
		Thesis, RWTH Aachen (1992)
/Hoefer92/	Hoefer F.: Incremental Attribute Evaluation for Graphs (in
		German), Diploma Thesis, RWTH Aachen (1992)
/HPRS90/        Hormann, Platz, Roschweski, Schoepe: The Hypermodel Benchmark,
                Description, Execution and Results. Memorandum 53, University
                Dortmund, September 1990
/KSW92/ *       Kiesel, Schuerr, Westfechtel: GRAS, A Graph-Oriented Database
                System for (Software) Engineering Applications. Proc. CASE 93,
		Lee, Reid, Jarzabek (eds.): Proc. CASE '93, 6th Int. Conf. on
		Computer-Aided Software Engineering, IEEE Computer Society
		Press (1993), pp 272-286
		Also:  Technical Report AIB 92-44, 
/Klein92/	Klein P.: The PROGRES Graph Code Machine (in German), Diploma
		Thesis, RWTH Aachen (1992)
/Kossing92/	Kossing P.: Modelling of Abstract Syntax Graphs for normalized
		EBNFs (in German), Diploma Thesis, RWTH Aachen (1992)
/LS88/          Lewerentz, Schuerr: GRAS, a Management System for Graph-
                Like Documents. In Proceedings of the Third International
                Conference on Data and Knowledge Bases, Morgan Kaufmann
                Publ. Inc. (1988), pp 19-31
/Nagl89/        Nagl (ed.): Proc. WG'89 Workshop on Graphtheoretic Concepts
                in Computer Science, LNCS 411, Springer-Verlag (1989)
/NS91/          Nagl, Schuerr: A Specification Environment for Graph Grammars,
                in Proc. 4th Int. Workshop on Graph-Grammars and Their
                Application to Computer Science, LNCS 532, Springer-
                Verlag 1991, pp 599-609
/Schuerr89/     Schuerr: Introduction to PROGRES, an Attribute Graph Grammar
                Based Specification Language, in: /Nagl89/, pp 151-165
/Schuerr91a/ *  Schuerr: PROGRES: A VHL-Language Based on Graph Grammars,
                in Proc. 4th Int. Workshop on Graph-Grammars and Their
                Application to Computer Science, LNCS 532, Springer-
                Verlag 1991, pp 641-659
		Also:  Technical Report AIB 90-16
/Schuerr91b/	Schuerr: Operational Specifications with Programmed Graph
		Rewriting Systems: Theory, Tools, and Applications,
		Dissertation, Deutscher Universitaetsverlag (1991) (in German)
/SZ91/ *        Schuerr, Zuendorf: Nondeterministic Control Structures for
                Graph Rewriting Systems, in Proc. WG'91 Workshop in Graph-
                theoretic Concepts in Computer Science, LNCS 570, Springer-
                Verlag 1992, pp 48-62
		Also: Technical Report AIB 91-17
/Westfe89/      Westfechtel: Extension of a Graph Storage for Software
                Documents with Primitives for Undo/Redo and Revision Control.
                Technical Report AIB Nr. 89-8, Aachen University of Technology,
/Westfe91/      Westfechtel: Revisionskontrolle in einer integrierten Soft-
                wareentwicklungsumgebung, Dissertation, RWTH Aachen, 1991
/Zuendorf89/    Zuendorf: Kontrollstrukturen fuer die Spezifikationssprache
                PROGRES, Diplomarbeit, RWTH Aachen, 1989
/Zuendorf92/ *  Zuendorf A.: Implementation of the Imperative/Rule Based
                Language PROGRES, Technical Report AIB 92-38, RWTH Aachen,
                Germany (1992)
/Zuendorf93/ *  Zuendorf A.: A Heuristic Solution for the (Sub-) Graph
                Isomorphism Problem in Executing PROGRES, Technical
                Report AIB 93-5, RWTH Aachen, Germany (1993)
* : All reports marked with an asterisk are available via anonymous ftp from
    ftp.informatik.rwth-aachen.de in directory /pub/reports/... .
See also PROGRES documentation.
[See also APPENDIX E]

This document was translated by ms2html v1.8 on 01.06.95.