Graph Rewriting - Implementations and Applications

Implementations and Applications

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:
    • GrGen.NET, the graph rewrite generator, a graph transformation tool emitting C#-code or .NET-assemblies
    • AGG, the attributed graph grammar system (Java)
    • GP (Graph Programs) 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++.
  • Tools that solve software engineering tasks (mainly MDA) with graph rewriting:
    • GReAT
    • VIATRA
    • Gremlin, a graph-based programming language (see Graph Rewriting)
    • PROGRES, an integrated environment and very high level language for PROgrammed Graph REwriting Systems
    • Fujaba uses Story driven modelling, a graph rewrite language based on PROGRES
    • EMorF, a graph rewriting system based on EMF, supports in-place model transformation and model to model transformation
  • Mechanical engineering
    • 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#.
    • booggie integrates GrGen.NET with a port-based metamodel definition and an OpenGL graph visualization based on Tulip
  • Biology
    • Design and implementation of a graph grammar based language for functional-structural plant modeling (other domains: graphics, architecture)
  • 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.

Read more about this topic:  Graph Rewriting