Graphs are used to model a large variety of important concepts, such as lay-outs and networks, expressions, relations and programs. A computational model arises when the replacement of fixed substructures of a graph by others is allowed - a graph transformation. The goal of the COMPUGRAPH working group was to demonstrate that graph transformation can provide a unifying framework for many aspects of computer science, and that the whole process of software production can be formally described in this framework.
The most important schools for graph grammars and graph transformation are currently located in Germany, the Netherlands, France, and Italy. COMPUGRAPH brought together researchers from these schools and enabled joint work and intensive cooperation. Research identified the common aspects and foundations of the different approaches, and worked on applications in case-studies.
The basic approaches of graph transformation are combined and unified. The resulting formalism will be applicable as a formal method in software engineering, as a model for distributed algorithms, as a tool for complexity analysis, and as a computational model for parallel systems. Potential applications are investigated in functional and logic programming, databases, knowledge representation, and formal reasoning. Work focused on specification, programming, and implementations based on graph transformation, together with the computational models and the algorithms required to implement such transformations.
APPROACH AND METHODS
Graph transformation generalises tree rewriting, the theoretical basis for functional and logic programming methods. In contrast to tree rewriting, this generalisation also allows the modelling of the efficiency aspects of current programming techniques. It is therefore possible to capture all relevant aspects of the software production cycle in the graph transformation model.
In order to work towards this, two subgoals have been defined:
1.The existing theories about, and approaches to graph transformation needed to be compared and, as much as possible, unified
2.The usefulness and practicality of computing by graph transformation needs to be demonstrated by work in three specific areas:
a.Concurrent computing, where graph transformation can serve as a model for concurrency, as concurrent modification steps are allowed.
b.Execution of algebraic specifications.
c.Efficient graph algorithms, which are necessary to demonstrate that graph transformation can itself be implemented efficiently.
PROGRESS AND RESULTS
The following results have been obtained:
1.A comparative study of most graph transformation approaches explored by the Working Group. Several papers have addressed questions of unification and generalisation for context-free as well as general rewriting.
2.Graph grammar models for actor systems, logic programs and concurrent constrained programming which allow "True Concurrency" aspects in all of these formalisms to be investigated on a unified basis. A graph-grammar-based notion of abstract transformati on system has been developed that generalises Petri-nets and graph grammars for relational structures.
3.A new graph-grammar based approach, "jungle evaluation", for the evaluation of expressions with shared substructures; and a theoretical framework for the execution of algebraic specifications by graph transformation systems, which shows that graph tran sformation can help if the programming of large applications is viewed as a rule-based activity.
4.Although many relevant properties of graphs are not efficiently decidable for arbitrary graphs, it was shown that many of these can be efficiently decided for classes of graphs which are generated by graph grammars; this implies that although computati on on some graphs may be expensive, the graphs occurring in transformation systems can be processed efficiently.
The COMPUGRAPH working group has provided comparative studies of different approaches and case studies that demonstrate the usefulness of graph transformation as a fundamental computing model. These results can serve as a basis for a future research and development project within ESPRIT, which might also address concrete implementations of graph rewriting and corresponding proof and development tools.
2333 CA/ 2 Leiden