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 public domain 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 tupac-amaru.informatik.rwth-aachen.de
[137.226.112.31]
in the file /pub/unix/GRAS521_3.tar.Z
For those without a Modula-2 compiler, the above mentioned file
contains all neccessary binaries (in dynamic and static libraries)
and executables for using the GRAS system by C application programs
on Sun4 workstations.
The current GRAS version supports:
- the manipulation of persistent attributed, directed node- and
edge-labeled graphs (including the creation of very long
attributes and of attribute indexes by means of so-called
external node names),
- 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.
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 under development.
Thus, the GRAS system may be considered to be the core of a object
based DBMS environment. The development of such an environment
based on a very high-level specifications language named PROGRES(S)
is under way (the underlying calculus of this specifcation language
are so-called PROgrammed GRaph REwriting Systems).
This environment will comprise the following tools:
- 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(S) specifications into sequences of GRAS procedure
calls,
- and a graph browser.
For further information/comments/... contact
an...@rwthi3.informatik.rwth-aachen.de
or ri...@rwthi3.informatik.rwth-aachen.de (for technical support).
Please use a 'GRAS521/3:' prefix in your subject line.
Our "regular" addresses are:
Dr. Andy Sch"urr (or Richard Breuer),
Lehrstuhl f"ur Informatik III,
University of Technology Aachen (RWTH Aachen),
Ahornstr. 55,
D-5100 Aachen
References
----------
Refer to the following publications for further info about GRAS, PROGRES(S),
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
/DG90/ Deiters, Gruhl: Managing Software Processes in the Environment
MELMAC, Proc. 4th Int. Symp. on Practical Software Development
Environments, SIGSOFT Notes, vol. 15-6, IEEE Computer Society
Press 1990, pp 193-205
/DHKPRS90/ Dewal, Hormann, Kelter, Platz, Roschewski, Sch"ope: Evaluation
of Object Management Systems. Memorandum 44, University
Dortmund, March 1990
/EHH89/ Engels, Hohenstein, H"ulsmann et al.: CADDY - Computer Aided
Design of Non-Standard Databases, in: /MSW90/, pp. 151-158
/HPRS90/ Hormann, Platz, Roschweski, Sch"ope: The Hypermodel Benchmark,
Description, Execution and Results. Memorandum 53, University
Dortmund, September 1990
/KSW92/ Kiesel, Sch"urr, Westfechtel: GRAS-A Graph-Oriented Database
System for Software Engineering Applications. Submitted for
publication
/LS88/ Lewerentz, Sch"urr: GRAS, a Management System for Graph-
Like Documents, in: Beeri, Schmidt, Dayal (eds.): Proc. of
the Third International Conference on Data and Knowledge Bases,
Morgan Kaufmann Publ. Inc. (1988), pp 19-31
/MK88/ M"uller, Klashinsky: Rigi - A System for Programming-in-the
Large, Proc. 10th Int. Conf. on Software Engineering, IEEE
Computer Society Press 1988, pp 80-85
/MSW90/ Madhavji, Sch"afer, Weber (eds.): Proc. 1st Int. Conf. on
System Development & Factories, Pitman Press 1989
/Nagl89/ Nagl (ed.): Proc. WG'89 Workshop on Graphtheoretic Concepts
in Computer Science, LNCS 411, Springer-Verlag (1989)
/Nagl90/ Nagl: Characterization of the IPSEN Project, in: /MSW90/,
pp 141-150
/NS91/ Nagl, Sch"urr: 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
/Sch"urr89/ Sch"urr: Introduction to PROGRES(S), an Attribute Graph Grammar
Based Specification Language, in: /Nagl89/, pp 151-165
/Sch"urr91/ Sch"urr: PROGRES(S): 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
/SZ91/ Sch"urr, Z"undorf: 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
/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,
1989
/Westfe91/ Westfechtel: Revisionskontrolle in einer integrierten Soft-
wareentwicklungsumgebung, Dissertation, RWTH Aachen, 1991
/Z"undorf89/ Z"undorf: Kontrollstrukturen f"ur die Spezifikationssprache
PROGRES(S), Diplomarbeit, RWTH Aachen, 1989
Postscriptum:
Note, our specification language PROGRES(S) is different from the well-known
4-th generation DBMS language PROGRESS and shouldn't be used to specify
vacuum cleaners.
Andy, May 1992
We changed the distribution from one huge tar.Z file to 4 huge tar files :).
Besides, two files GRAS521_3_1.README and GRAS521_3_1.CONTENTS are
available.
Before getting all the stuff, get GRAS521_3_1.README, GRAS521_3_1.CONTENTS,
and GRAS521_3_1.man.tar.Z to check whether it is suitable for you.
BTW, GRAS is not released in the public domain, but as freeware (well, nearly
the same, I think). A copy of the GNU Library General Public License as
published by the Free Software Foundation, is shipped with GRAS.
Gruezi,
Ricki
--
e-mail: ri...@rwthi3.informatik.rwth-aachen.de | E.vil N.ever D.ies
mail : R. Breuer, Brunssumstr. 6, 5100 Aachen, Germany | (Overkill)