fbpx
Wikipedia

Graph rewriting

In computer science, graph transformation, or graph rewriting, concerns the technique of creating a new graph out of an original graph algorithmically. It has numerous applications, ranging from software engineering (software construction and also software verification) to layout algorithms and picture generation.

Graph transformations can be used as a computation abstraction. The basic idea is that if the state of a computation can be represented as a graph, further steps in that computation can then be represented as transformation rules on that graph. Such rules consist of an original graph, which is to be matched to a subgraph in the complete state, and a replacing graph, which will replace the matched subgraph.

Formally, a graph rewriting system usually consists of a set of graph rewrite rules of the form , with being called pattern graph (or left-hand side) and being called replacement graph (or right-hand side of the rule). A graph rewrite rule is applied to the host graph by searching for an occurrence of the pattern graph (pattern matching, thus solving the subgraph isomorphism problem) and by replacing the found occurrence by an instance of the replacement graph. Rewrite rules can be further regulated in the case of labeled graphs, such as in string-regulated graph grammars.

Sometimes graph grammar is used as a synonym for graph rewriting system, especially in the context of formal languages; the different wording is used to emphasize the goal of constructions, like the enumeration of all graphs from some starting graph, i.e. the generation of a graph language – instead of simply transforming a given state (host graph) into a new state.

Graph rewriting approaches edit

 
Top: Example graph rewrite rule (optimization from compiler construction: multiplication with 2 replaced by addition). Bottom: Application of the rule to optimize "y=x*2" into "y=x+x".

Algebraic approach edit

The algebraic approach to graph rewriting is based upon category theory. The algebraic approach is further divided into sub-approaches, the most common of which are the double-pushout (DPO) approach and the single-pushout (SPO) approach. Other sub-approaches include the sesqui-pushout and the pullback approach.

From the perspective of the DPO approach a graph rewriting rule is a pair of morphisms in the category of graphs and graph homomorphisms between them:  , also written  , where   is injective. The graph K is called invariant or sometimes the gluing graph. A rewriting step or application of a rule r to a host graph G is defined by two pushout diagrams both originating in the same morphism  , where D is a context graph (this is where the name double-pushout comes from). Another graph morphism   models an occurrence of L in G and is called a match. Practical understanding of this is that   is a subgraph that is matched from   (see subgraph isomorphism problem), and after a match is found,   is replaced with   in host graph   where   serves as an interface, containing the nodes and edges which are preserved when applying the rule. The graph   is needed to attach the pattern being matched to its context: if it is empty, the match can only designate a whole connected component of the graph  .

In contrast a graph rewriting rule of the SPO approach is a single morphism in the category of labeled multigraphs and partial mappings that preserve the multigraph structure:  . Thus a rewriting step is defined by a single pushout diagram. Practical understanding of this is similar to the DPO approach. The difference is, that there is no interface between the host graph G and the graph G' being the result of the rewriting step.

From the practical perspective, the key distinction between DPO and SPO is how they deal with the deletion of nodes with adjacent edges, in particular, how they avoid that such deletions may leave behind "dangling edges". The DPO approach only deletes a node when the rule specifies the deletion of all adjacent edges as well (this dangling condition can be checked for a given match), whereas the SPO approach simply disposes the adjacent edges, without requiring an explicit specification.

There is also another algebraic-like approach to graph rewriting, based mainly on Boolean algebra and an algebra of matrices, called matrix graph grammars.[1]

Determinate graph rewriting edit

Yet another approach to graph rewriting, known as determinate graph rewriting, came out of logic and database theory.[2] In this approach, graphs are treated as database instances, and rewriting operations as a mechanism for defining queries and views; therefore, all rewriting is required to yield unique results (up to isomorphism), and this is achieved by applying any rewriting rule concurrently throughout the graph, wherever it applies, in such a way that the result is indeed uniquely defined.

Term graph rewriting edit

Another approach to graph rewriting is term graph rewriting, which involves the processing or transformation of term graphs (also known as abstract semantic graphs) by a set of syntactic rewrite rules.

Term graphs are a prominent topic in programming language research since term graph rewriting rules are capable of formally expressing a compiler's operational semantics. Term graphs are also used as abstract machines capable of modelling chemical and biological computations as well as graphical calculi such as concurrency models. Term graphs can perform automated verification and logical programming since they are well-suited to representing quantified statements in first order logic. Symbolic programming software is another application for term graphs, which are capable of representing and performing computation with abstract algebraic structures such as groups, fields and rings.

The TERMGRAPH conference[3] focuses entirely on research into term graph rewriting and its applications.

Classes of graph grammar and graph rewriting system edit

Graph rewriting systems naturally group into classes according to the kind of representation of graphs that are used and how the rewrites are expressed. The term graph grammar, otherwise equivalent to graph rewriting system or graph replacement system, is most often used in classifications. Some common types are:

Implementations and applications edit

Graphs are an expressive, visual and mathematically precise formalism for modelling of objects (entities) linked by relations; objects are represented by nodes and relations between them by edges. Nodes and edges are commonly typed and attributed. Computations are described in this model by changes in the relations between the entities or by attribute changes of the graph elements. They are encoded in graph rewrite/graph transformation rules and executed by graph rewrite systems/graph transformation tools.

  • Tools that are application domain neutral:
    • , the attributed graph grammar system (Java)
    • GP 2 is a programming language for computing on graphs by the directed application of graph transformation rules.
    • GMTE, the Graph Matching and Transformation Engine for graph matching and transformation. It is an implementation of an extension of Messmer’s algorithm using C++.
    • GrGen.NET, the graph rewrite generator, a graph transformation tool emitting C#-code or .NET-assemblies
    • GROOVE, a Java-based tool set for editing graphs and graph transformation rules, exploring the state spaces of graph grammars, and model checking those state spaces; can also be used as a graph transformation engine.
    • Verigraph, a software specification and verification system based on graph rewriting (Haskell).
  • Tools that solve software engineering tasks (mainly MDA) with graph rewriting:
    • eMoflon, an EMF-compliant model-transformation tool with support for Story-Driven Modeling and Triple Graph Grammars
    • EMorF a graph rewriting system based on EMF, supporting in-place and model-to-model transformation
    • Fujaba uses Story driven modelling, a graph rewrite language based on PROGRES
    • Graph databases often support dynamic rewriting of graphs
    • GReAT
    • Gremlin, a graph-based programming language (see Graph Rewriting)
    • Henshin, a graph rewriting system based on EMF, supporting in-place and model-to-model transformation, critical pair analysis, and model checking
    • PROGRES, an integrated environment and very high level language for PROgrammed Graph REwriting Systems
    • VIATRA
  • Mechanical engineering tools
    • GraphSynth is an interpreter and UI environment for creating unrestricted graph grammars as well as testing and searching the resultant language variant. It saves graphs and graph grammar rules as XML files and is written in C#.
    • Soley Studio, is an integrated development environment for graph transformation systems. Its main application focus is data analytics in the field of engineering.
  • Biology applications
    • Functional-structural plant modeling with a graph grammar based language
    • Multicellular development modeling with string-regulated graph grammars
  • Artificial Intelligence/Natural Language Processing
    • OpenCog provides a basic pattern matcher (on hypergraphs) which is used to implement various AI algorithms.
    • RelEx is an English-language parser that employs graph re-writing to convert a link parse into a dependency parse.
  • Computer programming language

See also edit

References edit

Citations edit

  1. ^ Perez 2009 covers this approach in detail.
  2. ^ "A Graph-Oriented Object Model for Database End-User Interfaces" (PDF).
  3. ^ "TERMGRAPH".

Sources edit

  • Rozenberg, Grzegorz (1997), Handbook of Graph Grammars and Computing by Graph Transformations, vol. 1–3, World Scientific Publishing, ISBN 9810228848.
  • Perez, P.P. (2009), Matrix Graph Grammars: An Algebraic Approach to Graph Dynamics, VDM Verlag, ISBN 978-3-639-21255-6.
  • Heckel, R. (2006). Graph transformation in a nutshell. Electronic Notes in Theoretical Computer Science 148 (1 SPEC. ISS.), pp. 187–198.
  • König, Barbara (2004). Analysis and Verification of Systems with Dynamically Evolving Structure. Habilitation thesis, Universität Stuttgart, pp. 65–180.
  • Lobo, Daniel; Vico, Francisco J.; Dassow, Jürgen (2011-10-01). "Graph grammars with string-regulated rewriting". Theoretical Computer Science. 412 (43): 6101–6111. doi:10.1016/j.tcs.2011.07.004. ISSN 0304-3975.
  • Grzegorz Rozenberg, ed. (Feb 1997). Foundations. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 1. World Scientific. doi:10.1142/3303. ISBN 978-981-02-2884-2.
  • Hartmut Ehrig; Gregor Engels; Hans-Jörg Kreowski; Grzegorz Rozenberg, eds. (Oct 1999). Applications, Languages and Tools. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 2. World Scientific. doi:10.1142/4180. ISBN 978-981-02-4020-2.
  • Hartmut Ehrig; Hans-Jörg Kreowski; Ugo Montanari; Grzegorz Rozenberg, eds. (Aug 1999). Concurrency, Parallelism, and Distribution. Handbook of Graph Grammars and Computing by Graph Transformation. Vol. 3. World Scientific. doi:10.1142/4181. ISBN 978-981-02-4021-9.

graph, rewriting, computer, science, graph, transformation, graph, rewriting, concerns, technique, creating, graph, original, graph, algorithmically, numerous, applications, ranging, from, software, engineering, software, construction, also, software, verifica. In computer science graph transformation or graph rewriting concerns the technique of creating a new graph out of an original graph algorithmically It has numerous applications ranging from software engineering software construction and also software verification to layout algorithms and picture generation Graph transformations can be used as a computation abstraction The basic idea is that if the state of a computation can be represented as a graph further steps in that computation can then be represented as transformation rules on that graph Such rules consist of an original graph which is to be matched to a subgraph in the complete state and a replacing graph which will replace the matched subgraph Formally a graph rewriting system usually consists of a set of graph rewrite rules of the form L R displaystyle L rightarrow R with L displaystyle L being called pattern graph or left hand side and R displaystyle R being called replacement graph or right hand side of the rule A graph rewrite rule is applied to the host graph by searching for an occurrence of the pattern graph pattern matching thus solving the subgraph isomorphism problem and by replacing the found occurrence by an instance of the replacement graph Rewrite rules can be further regulated in the case of labeled graphs such as in string regulated graph grammars Sometimes graph grammar is used as a synonym for graph rewriting system especially in the context of formal languages the different wording is used to emphasize the goal of constructions like the enumeration of all graphs from some starting graph i e the generation of a graph language instead of simply transforming a given state host graph into a new state Contents 1 Graph rewriting approaches 1 1 Algebraic approach 1 2 Determinate graph rewriting 1 3 Term graph rewriting 2 Classes of graph grammar and graph rewriting system 3 Implementations and applications 4 See also 5 References 5 1 Citations 5 2 SourcesGraph rewriting approaches edit nbsp Top Example graph rewrite rule optimization from compiler construction multiplication with 2 replaced by addition Bottom Application of the rule to optimize y x 2 into y x x Algebraic approach edit The algebraic approach to graph rewriting is based upon category theory The algebraic approach is further divided into sub approaches the most common of which are the double pushout DPO approach and the single pushout SPO approach Other sub approaches include the sesqui pushout and the pullback approach From the perspective of the DPO approach a graph rewriting rule is a pair of morphisms in the category of graphs and graph homomorphisms between them r L K R displaystyle r L leftarrow K rightarrow R nbsp also written L K R displaystyle L supseteq K subseteq R nbsp where K L displaystyle K rightarrow L nbsp is injective The graph K is called invariant or sometimes the gluing graph A rewriting step or application of a rule r to a host graph G is defined by two pushout diagrams both originating in the same morphism k K D displaystyle k colon K rightarrow D nbsp where D is a context graph this is where the name double pushout comes from Another graph morphism m L G displaystyle m colon L rightarrow G nbsp models an occurrence of L in G and is called a match Practical understanding of this is that L displaystyle L nbsp is a subgraph that is matched from G displaystyle G nbsp see subgraph isomorphism problem and after a match is found L displaystyle L nbsp is replaced with R displaystyle R nbsp in host graph G displaystyle G nbsp where K displaystyle K nbsp serves as an interface containing the nodes and edges which are preserved when applying the rule The graph K displaystyle K nbsp is needed to attach the pattern being matched to its context if it is empty the match can only designate a whole connected component of the graph G displaystyle G nbsp In contrast a graph rewriting rule of the SPO approach is a single morphism in the category of labeled multigraphs and partial mappings that preserve the multigraph structure r L R displaystyle r colon L rightarrow R nbsp Thus a rewriting step is defined by a single pushout diagram Practical understanding of this is similar to the DPO approach The difference is that there is no interface between the host graph G and the graph G being the result of the rewriting step From the practical perspective the key distinction between DPO and SPO is how they deal with the deletion of nodes with adjacent edges in particular how they avoid that such deletions may leave behind dangling edges The DPO approach only deletes a node when the rule specifies the deletion of all adjacent edges as well this dangling condition can be checked for a given match whereas the SPO approach simply disposes the adjacent edges without requiring an explicit specification There is also another algebraic like approach to graph rewriting based mainly on Boolean algebra and an algebra of matrices called matrix graph grammars 1 Determinate graph rewriting edit Yet another approach to graph rewriting known as determinate graph rewriting came out of logic and database theory 2 In this approach graphs are treated as database instances and rewriting operations as a mechanism for defining queries and views therefore all rewriting is required to yield unique results up to isomorphism and this is achieved by applying any rewriting rule concurrently throughout the graph wherever it applies in such a way that the result is indeed uniquely defined Term graph rewriting edit Another approach to graph rewriting is term graph rewriting which involves the processing or transformation of term graphs also known as abstract semantic graphs by a set of syntactic rewrite rules Term graphs are a prominent topic in programming language research since term graph rewriting rules are capable of formally expressing a compiler s operational semantics Term graphs are also used as abstract machines capable of modelling chemical and biological computations as well as graphical calculi such as concurrency models Term graphs can perform automated verification and logical programming since they are well suited to representing quantified statements in first order logic Symbolic programming software is another application for term graphs which are capable of representing and performing computation with abstract algebraic structures such as groups fields and rings The TERMGRAPH conference 3 focuses entirely on research into term graph rewriting and its applications Classes of graph grammar and graph rewriting system editGraph rewriting systems naturally group into classes according to the kind of representation of graphs that are used and how the rewrites are expressed The term graph grammar otherwise equivalent to graph rewriting system or graph replacement system is most often used in classifications Some common types are Attributed graph grammars typically formalised using either the single pushout approach or the double pushout approach to characterising replacements mentioned in the above section on the algebraic approach to graph rewriting Hypergraph grammars including as more restrictive subclasses port graph grammars linear graph grammars and interaction nets Implementations and applications editGraphs are an expressive visual and mathematically precise formalism for modelling of objects entities linked by relations objects are represented by nodes and relations between them by edges Nodes and edges are commonly typed and attributed Computations are described in this model by changes in the relations between the entities or by attribute changes of the graph elements They are encoded in graph rewrite graph transformation rules and executed by graph rewrite systems graph transformation tools Tools that are application domain neutral AGG the attributed graph grammar system Java GP 2 is a programming language for computing on graphs by the directed application of graph transformation rules GMTE the Graph Matching and Transformation Engine for graph matching and transformation It is an implementation of an extension of Messmer s algorithm using C GrGen NET the graph rewrite generator a graph transformation tool emitting C code or NET assemblies GROOVE a Java based tool set for editing graphs and graph transformation rules exploring the state spaces of graph grammars and model checking those state spaces can also be used as a graph transformation engine Verigraph a software specification and verification system based on graph rewriting Haskell Tools that solve software engineering tasks mainly MDA with graph rewriting eMoflon an EMF compliant model transformation tool with support for Story Driven Modeling and Triple Graph Grammars EMorF a graph rewriting system based on EMF supporting in place and model to model transformation Fujaba uses Story driven modelling a graph rewrite language based on PROGRES Graph databases often support dynamic rewriting of graphs GReAT Gremlin a graph based programming language see Graph Rewriting Henshin a graph rewriting system based on EMF supporting in place and model to model transformation critical pair analysis and model checking PROGRES an integrated environment and very high level language for PROgrammed Graph REwriting Systems VIATRA Mechanical engineering tools GraphSynth is an interpreter and UI environment for creating unrestricted graph grammars as well as testing and searching the resultant language variant It saves graphs and graph grammar rules as XML files and is written in C Soley Studio is an integrated development environment for graph transformation systems Its main application focus is data analytics in the field of engineering Biology applications Functional structural plant modeling with a graph grammar based language Multicellular development modeling with string regulated graph grammars Artificial Intelligence Natural Language Processing OpenCog provides a basic pattern matcher on hypergraphs which is used to implement various AI algorithms RelEx is an English language parser that employs graph re writing to convert a link parse into a dependency parse Computer programming language The Clean programming language is implemented using graph rewriting See also editGraph theory Shape grammar Formal grammar Abstract rewriting a generalization of graph rewritingReferences editCitations edit Perez 2009 covers this approach in detail A Graph Oriented Object Model for Database End User Interfaces PDF TERMGRAPH Sources edit Rozenberg Grzegorz 1997 Handbook of Graph Grammars and Computing by Graph Transformations vol 1 3 World Scientific Publishing ISBN 9810228848 Perez P P 2009 Matrix Graph Grammars An Algebraic Approach to Graph Dynamics VDM Verlag ISBN 978 3 639 21255 6 Heckel R 2006 Graph transformation in a nutshell Electronic Notes in Theoretical Computer Science 148 1 SPEC ISS pp 187 198 Konig Barbara 2004 Analysis and Verification of Systems with Dynamically Evolving Structure Habilitation thesis Universitat Stuttgart pp 65 180 Lobo Daniel Vico Francisco J Dassow Jurgen 2011 10 01 Graph grammars with string regulated rewriting Theoretical Computer Science 412 43 6101 6111 doi 10 1016 j tcs 2011 07 004 ISSN 0304 3975 Grzegorz Rozenberg ed Feb 1997 Foundations Handbook of Graph Grammars and Computing by Graph Transformation Vol 1 World Scientific doi 10 1142 3303 ISBN 978 981 02 2884 2 Hartmut Ehrig Gregor Engels Hans Jorg Kreowski Grzegorz Rozenberg eds Oct 1999 Applications Languages and Tools Handbook of Graph Grammars and Computing by Graph Transformation Vol 2 World Scientific doi 10 1142 4180 ISBN 978 981 02 4020 2 Hartmut Ehrig Hans Jorg Kreowski Ugo Montanari Grzegorz Rozenberg eds Aug 1999 Concurrency Parallelism and Distribution Handbook of Graph Grammars and Computing by Graph Transformation Vol 3 World Scientific doi 10 1142 4181 ISBN 978 981 02 4021 9 Retrieved from https en wikipedia org w index php title Graph rewriting amp oldid 1077289437, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.