Graph Transformation for Specification and Programming

The framework of graph transformation combines the potentials and advantages of both, graphs and rules, to a single computational paradigm. In this paper we present some recent developments in applying graph transformation as a rule-based framework for the specification and development of systems, languages, and tools. After reviewing the basic features of graph transformation, we discuss a selection of applications, including the evaluation of functional expressions, the specification of an interactive graphical tool, an example specification for abstract data types, and the definition of a visual database query language. The case studies indicate the need for suitable structuring principles which are independent of a particular graph transformation approach. To this end, we present the concept of a transformation unit, which allows systematic and structured specification and programming based on graph transformation.

[1]  Gregor Engels,et al.  SQL/EER - syntax and semantics of an Entity-Relationship-based query language , 1992, Inf. Syst..

[2]  Hartmut Ehrig,et al.  Graph Grammars and Logic Programming , 1990, Graph-Grammars and Their Application to Computer Science.

[3]  Marko C. J. D. van Eekelen,et al.  Functional Programming and Parallel Graph Rewriting , 1993 .

[4]  Gheorghe Paun,et al.  Regulated Rewriting in Formal Language Theory , 1989 .

[5]  Berthold Hoffmann,et al.  Jungle Evaluation for Efficient Term Rewriting , 1988, ALP.

[6]  Gabriele Taentzer,et al.  Parallel and distributed graph transformation - formal description and application to communication-based systems , 1996, Berichte aus der Informatik.

[7]  Jan Willem Klop,et al.  Term Rewriting Systems: From Church-Rosser to Knuth-Bendix and Beyond , 1990, ICALP.

[8]  Francesca Rossi,et al.  Graph Processes , 1996, Fundam. Informaticae.

[9]  Andy Schürr,et al.  Defining and Parsing Visual Languages with Layered Graph Grammars , 1997, J. Vis. Lang. Comput..

[10]  William M. Farmer,et al.  Redex Capturing in Term Graph Rewriting , 1990, Int. J. Found. Comput. Sci..

[11]  A. Schfürr,et al.  Programmed graph replacement systems , 1997 .

[12]  Detlef Plump,et al.  Hypergraph rewriting: critical pairs and undecidability of confluence , 1993 .

[13]  Andy Schürr,et al.  Nondeterministic Control Structures for Graph Rewriting Systems , 1991, WG.

[14]  Grzegorz Rozenberg,et al.  On structured graph grammars. I , 1990, Inf. Sci..

[15]  P. Schönemann On artificial intelligence , 1985, Behavioral and Brain Sciences.

[16]  Hartmut Ehrig,et al.  Pragmatic and Semantic Aspects of a Module Concept for Graph Transformation Systems , 1994, TAGT.

[17]  Yves Métivier,et al.  Computing with Graph Rewriting Systems with Priorities , 1993, Theor. Comput. Sci..

[18]  Gregor Engels,et al.  A Hybrid Query Language for an Extended Entity-Relationship Model , 1996, J. Vis. Lang. Comput..

[19]  Peter Padawitz,et al.  Graph Grammars and Operational Semantics , 1978, Theor. Comput. Sci..

[20]  Hans-Jörg Kreowski,et al.  On structured graph grammars. II , 1990, Inf. Sci..

[21]  Gregor Engels,et al.  Syntax and Semantics of Hybrid Database Languages , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[22]  Hans-Jörg Kreowski,et al.  Is parallelism already concurrency? Part 1: Derivations in graph grammars , 1986, Graph-Grammars and Their Application to Computer Science.

[23]  Annegret Habel,et al.  Term graph narrowing , 1996, Mathematical Structures in Computer Science.

[24]  Andy Schürr PROGRESS: A VHL-Language Based on Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[25]  Azuma Ohuchi,et al.  Modularity in Noncopying Term Rewriting , 1995, Theor. Comput. Sci..

[26]  Horst Bunke,et al.  An Efficient Implementation of Graph Grammars Based on the RETE Matching Algorithm , 1990, Graph-Grammars and Their Application to Computer Science.

[27]  Reiko Heckel,et al.  Ensuring consistency of conditional graph rewriting - a constructive approach , 1995, SEGRAGRA.

[28]  Zena M. Ariola,et al.  Equational Term Graph Rewriting , 1996, Fundam. Informaticae.

[29]  Detlef Plump,et al.  Implementing Term Rewriting by Graph Reduction: Termination of Combined Systems , 1990, CTRS.

[30]  Jan Van den Bussche,et al.  GOOD: AGraph-Oriented Object Database System , 1993, SIGMOD Conference.

[31]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[32]  Andy Schürr,et al.  Rapid Programming with Graph Rewrite Rules , 1994 .

[33]  Hartmut Ehrig,et al.  Introduction to the Algebraic Theory of Graph Grammars (A Survey) , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[34]  John Hughes,et al.  Lazy Memo-functions , 1985, FPCA.

[35]  Detlef Plump,et al.  Simplification Orders for Term Graph Rewriting , 1997, MFCS.

[36]  Joost Engelfriet,et al.  Node Replacement Graph Grammars , 1997, Handbook of Graph Grammars.

[37]  Hartmut Ehrig,et al.  Parallelism of Manipulations in Multidimensional Information Structures , 1976, MFCS.

[38]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part I: Basic Concepts and Double Pushout Approach , 1997, Handbook of Graph Grammars.

[39]  Hartmut Ehrig,et al.  Graph Grammars with Application Conditions , 1986 .

[40]  Gabriele Taentzer,et al.  Amalgamated Graph Transformations and Their Use for Specifying AGG - an Algebraic Graph Grammar System , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[41]  Michael Löwe,et al.  AGG - An Implementation of Algebraic Graph Rewriting , 1993, RTA.

[42]  Cosimo Laneve,et al.  Comparing Lambda-calculus translations in Sharing Graphs , 1995, TLCA.

[43]  Detlef Plump Graph-Reducible Term Rewriting Systems , 1990, Graph-Grammars and Their Application to Computer Science.

[44]  Hans-Jörg Kreowski,et al.  On the Interleaving Sematics of Transformation Units - A Step into GRACE , 1994, TAGT.

[45]  Azriel Rosenfeld,et al.  Web Grammars , 1969, IJCAI.

[46]  Zena M. Ariola,et al.  Bisimilarity in Term Graph Rewriting , 2000, Inf. Comput..

[47]  Egon Wanke,et al.  PLEXUS: Tools for Analyzing Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[48]  Manfred Nagl Set theoretic approaches to graph grammars , 1986, Graph-Grammars and Their Application to Computer Science.

[49]  José Meseguer,et al.  Concurrent term rewriting as a model of computation , 1986, Graph Reduction.

[50]  Hartmut Ehrig,et al.  Graph-Grammars and Their Application to Computer Science and Biology , 1978, Lecture Notes in Computer Science.

[51]  Manfred Nagl,et al.  Graph-Grammars and Their Application to Computer Science , 1986, Lecture Notes in Computer Science.

[52]  Alberto O. Mendelzon,et al.  Hy+: a Hygraph-based query and visualization system , 1993, SIGMOD '93.

[53]  Hartmut Ehrig,et al.  Jungle Rewriting: an Abstract Description of a Lazy Narrowing Machine , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[54]  Azriel Rosenfeld,et al.  Graph Grammars and Their Application to Computer Science , 1990, Lecture Notes in Computer Science.

[55]  Berthold Hoomann,et al.  Term Rewriting with Sharing and Memo , 1992 .

[56]  Michael Himsolt GraphEd: An Interactive Tool For Developing Graph Grammars , 1990, Graph-Grammars and Their Application to Computer Science.

[57]  Jean-Pierre Jouannaud,et al.  Rewrite Systems , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[58]  Terrence W. Pratt,et al.  Pair Grammars, Graph Languages and String-to-Graph Translations , 1971, J. Comput. Syst. Sci..

[59]  Hartmut Ehrig,et al.  Graph-Grammars: An Algebraic Approach , 1973, SWAT.

[60]  Reiko Heckel,et al.  Algebraic Approaches to Graph Transformation - Part II: Single Pushout Approach and Comparison with Double Pushout Approach , 1997, Handbook of Graph Grammars.

[61]  Gabriele Taentzer,et al.  DIEGO, another step towards a module concept for graph transformation systems , 1995, SEGRAGRA.

[62]  Reiko Heckel,et al.  A compositional approach to structuring and refinement of typed graph grammars , 1995, Electron. Notes Theor. Comput. Sci..

[63]  Marko C. J. D. van Eekelen,et al.  Term Graph Rewriting , 1987, PARLE.

[64]  M. R. K. Krishna Rao Graph Reducibility of Term Rewriting Systems , 1995, MFCS.

[65]  John Staples,et al.  Computation on Graph-Like Expressions , 1980, Theor. Comput. Sci..

[66]  Tiziana Catarci,et al.  QBD*: A Graphical Query Language with Recursion , 1990, IEEE Trans. Software Eng..

[67]  Andrea Corradini,et al.  Hyperedge Replacement Jungle Rewriting for Term-Rewriting Systems and Programming , 1993, Theor. Comput. Sci..

[68]  Hans-Jörg Kreowski,et al.  Nested Graph Transformation Units , 1997, Int. J. Softw. Eng. Knowl. Eng..

[69]  M. J. Plasmeijer,et al.  Term graph rewriting: theory and practice , 1993 .

[70]  Detlef Plump,et al.  Collapsed Tree Rewriting: Completeness, Confluence, and Modularity , 1992, CTRS.

[71]  Martin Gogolla,et al.  Conceptual modelling of database applications using extended ER model , 1992, Data Knowl. Eng..

[72]  Andreas Schürr,et al.  Operationales Spezifizieren mit programmierten Graphersetzungssystemen - formale Definitionen, Anwendungsbeispiele und Werkzeugunterstützung , 1991, DUV Informatik.

[73]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[74]  Hans-Jörg Kreowski,et al.  Five Facets of Hyperedge Replacement Beyond Context-Freeness , 1993, FCT.

[75]  M. R. K. Krishna Rao,et al.  Modularity of Termination in Term Graph Rewriting , 1996, RTA.

[76]  Annegret Habel,et al.  Hyperedge Replacement: Grammars and Languages , 1992, Lecture Notes in Computer Science.

[77]  Detlef Plump,et al.  On Termination of Graph Rewriting , 1995, WG.

[78]  Annegret Habel,et al.  Characteristics of Graph Languages Generated by Edge Replacement , 1987, Theor. Comput. Sci..

[79]  Annegret Habel,et al.  Jungle evaluation , 1988, Fundam. Informaticae.

[80]  Grzegorz Rozenberg,et al.  On the structure of node-label-controlled graph languages , 1980, Inf. Sci..

[81]  Tobias Nipkow,et al.  Term rewriting and all that , 1998 .

[82]  Stefan Kahrs,et al.  Unlimp, Uniqueness as a Leitmotiv for Implementation , 1992, PLILP.

[83]  Detlef Plump,et al.  Critical Pairs in Term Graph Rewriting , 1994, MFCS.

[84]  George Angelos Papadopoulos,et al.  Dactl: an experimental graph rewriting language , 1990, J. Program. Lang..

[85]  Herbert Göttler,et al.  Graphgrammatiken in der Softwaretechnik: Theorie und Anwendungen , 1988, Informatik-Fachberichte.

[86]  John Lamping An algorithm for optimal lambda calculus reduction , 1989, POPL '90.

[87]  Michael Löwe,et al.  Algebraic Approach to Single-Pushout Graph Transformation , 1993, Theor. Comput. Sci..

[88]  Annegret Habel,et al.  Graph Unification and Matching , 1994, TAGT.

[89]  Detlef Plump,et al.  Termination of Graph Rewriting is Undecidable , 1998, Fundam. Informaticae.

[90]  Jan Willem Klop,et al.  On the adequacy of graph rewriting for simulating term rewriting , 1994, TOPL.

[91]  Marc A.A. Andries,et al.  Graph Rewrite Systems and Visual Database Languages , 1996 .

[92]  Ernst Denert,et al.  PLAN2D - Towards a Two-Dimensional Programming Language , 1974 .

[93]  Andy Schürr,et al.  GRAS, a Graph-Oriented (Software) Engineering Database System , 1995, Inf. Syst..

[94]  Horst Bunke Programmed Graph Grammars , 1978, Graph-Grammars and Their Application to Computer Science and Biology.

[95]  Reiko Heckel,et al.  Graph Grammars with Negative Application Conditions , 1996, Fundam. Informaticae.

[96]  J. Van Leeuwen,et al.  Handbook of theoretical computer science - Part A: Algorithms and complexity; Part B: Formal models and semantics , 1990 .

[97]  Andy Schürr,et al.  Graph Grammar Engineering with PROGRES , 1995, ESEC.

[98]  Berthold Hoffmann,et al.  Implementing term rewriting by jungle evaluation , 1991, RAIRO Theor. Informatics Appl..

[99]  Grzegorz Rozenberg,et al.  The Book of L , 1986, Springer Berlin Heidelberg.

[100]  Grzegorz Rozenberg An introduction to the NLC way of rewriting graphs , 1986, Graph-Grammars and Their Application to Computer Science.

[101]  Andy Schürr,et al.  Introduction to PROGRESS, an Attribute Graph Grammar Based Specification Language , 1990, WG.

[102]  Gregor Engels,et al.  Encapsulated hierarchical graphs, graph types, and meta types , 1995, SEGRAGRA.