Introduction to Graph Grammars Fulvio DAntonio LEKS IASICNR

  • Slides: 36
Download presentation
Introduction to Graph Grammars Fulvio D’Antonio LEKS, IASI-CNR Rome, 14 -10 -03

Introduction to Graph Grammars Fulvio D’Antonio LEKS, IASI-CNR Rome, 14 -10 -03

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Graph grammars has been invented (in early seventies) in order to generalize (Chomsky) string

Graph grammars has been invented (in early seventies) in order to generalize (Chomsky) string grammars. The main idea was that of extending concatenation of strings to a “gluing” of graphs Algebraic approaches were developed at the Technical University of Berlin The action of gluing two graphs is a construction, in the category of graphs and graph morphisms, called pushout

Graph grammars: definition A graph grammar is a pair: GG = (G 0, P)

Graph grammars: definition A graph grammar is a pair: GG = (G 0, P) G 0 is called the starting graph and P is a set of production rules L(GG) is the set of graphs that can be derived starting with G 0 and applying the rules in P

A graph…

A graph…

Definition A pair (V, E) of finite sets : E V V E is

Definition A pair (V, E) of finite sets : E V V E is a set of ordered pairs of vertexes. Graphically we represent an edge (v 1, v 2) with an arrow starting in v 1 and ending in v 2

Another graph … This is a multigraph

Another graph … This is a multigraph

Another definition A pair (V, E) where V is a finite set, E is

Another definition A pair (V, E) where V is a finite set, E is a finite multiset with elements in V V E. g. V= v 1, v 2, …. , vn E = (v 1, v 2), …. , (v 1, v 2), …

Yet another graph … A a A b This is a labelled multigraph: elements

Yet another graph … A a A b This is a labelled multigraph: elements without a label are considered labelled with the null symbol

Yet another definition A pair (V, E) where: V is a finite set of

Yet another definition A pair (V, E) where: V is a finite set of pairs and E is a finite set of triples. Too complicated!

A more elegant definition (algebraic style) A graph is a tuple (V, E, s,

A more elegant definition (algebraic style) A graph is a tuple (V, E, s, t, l. V, l. E): V and E are two finite sets (V E= ) s, t : E V are two mappings indicating the source and the target of an edge l. V: V V e l. E: E E are two mappings from V and E in two finite sets of labels

Example E A B Notes: The edges are directed Two vertexes with the same

Example E A B Notes: The edges are directed Two vertexes with the same label Multiple edges (even with the same label!) between two vertexes

Example 2: Pacman graph (PG)

Example 2: Pacman graph (PG)

Graph morphism: informally speaking Given two graphs G and G’ we want to know

Graph morphism: informally speaking Given two graphs G and G’ we want to know if G’ “contains” G. We can try to draw a correspondence between every vertex (edge) of G and a vertex (edge) of G’ This correspondence is a graph morphism (if it respects some properties!)

Example: G is contained in G’ G’ G A E 3 2 B A

Example: G is contained in G’ G’ G A E 3 2 B A 1 3 A B 2 1 This is a correct graph morphism

Example 2 G’ G E 3 A 2 B A 1 B A 3

Example 2 G’ G E 3 A 2 B A 1 B A 3 2 B 1 This is not a correct graph morphism

Example 3 G’ G E E 2 E 4 A 3 1 B A

Example 3 G’ G E E 2 E 4 A 3 1 B A 1, 3 B This is a correct non-injective graph morphism 2, 4

Graph morphism Given G =(V, E, s, t, l. V, l. E) and G’=(V’,

Graph morphism Given G =(V, E, s, t, l. V, l. E) and G’=(V’, E’, s’, t’, l. V’, l. E’) a graph morphism is a pair ( 1, 2), 1: V V’, 2: E E’ such as: 1)labels are preserved i. e. l. V(vi) = l. V’( 1(vi)) etc. 2)incidence is preserved i. e. 1(s(ei)) = s’( 2(ei))) etc.

What is a pushout? (Very very informal) “Gluing” of two objects along a common

What is a pushout? (Very very informal) “Gluing” of two objects along a common substructure

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Graph grammars: Double pushout approach The format of a production rule is: p :

Graph grammars: Double pushout approach The format of a production rule is: p : L l K r R L, K, R are graphs and l, r are two (total) morphisms matching K, respectively, in L and R

Example move. Pacman : L K R

Example move. Pacman : L K R

Derivation Given: a graph G, a production p: L l K r R and

Derivation Given: a graph G, a production p: L l K r R and a graph morphism : L G 1)The context graph is obtained “deleting” from G all elements images of elements in L but not of elements in K (pushout complement) 2)The final graph is obtained “adding” to context graph all elements which don’t have a pre-image in K(pushout)

Example L K R move. Pacman : The match The graph G

Example L K R move. Pacman : The match The graph G

The match The context graph

The match The context graph

The match The final graph H G , p H G * , p

The match The final graph H G , p H G * , p Gn (reflexive symmetric and transitive closure)

Other rules in Pacman game Move. Ghost: Kill:

Other rules in Pacman game Move. Ghost: Kill:

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Single pushout approach The format of a production rule is: p : L r

Single pushout approach The format of a production rule is: p : L r R r is a partial graph morphism A single derivation step is modelled by a single-pushout diagram

Example 1 r 1 3 3 4 2 L R r is a partial

Example 1 r 1 3 3 4 2 L R r is a partial morphism

Difference between the two approaches Double-pushout approach requires two further conditions for a step

Difference between the two approaches Double-pushout approach requires two further conditions for a step derivation (dangling and identification condition) Single-pushout doesn’t requires such conditions Single pushout rules can model more situations than double pushout rules

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Summary Basic concepts Double pushout approach Single pushout approach Tools References

Progres PROGRES is an integrated environment for a very high level programming language which

Progres PROGRES is an integrated environment for a very high level programming language which has a formally defined semantics based on "PROgrammed Graph REwriting Systems" Agg AGG is a rule based visual language supporting single pushout approach to graph transformation. It aims at the specification and prototypical implementation of applications with complex graph-structured data.

Other tools Grace and Graceland Fujaba Atom 3

Other tools Grace and Graceland Fujaba Atom 3

Standards GXL (Graph Exchange Language) GTXL (Graph Transformation Exchange Language)

Standards GXL (Graph Exchange Language) GTXL (Graph Transformation Exchange Language)

References People: G. Rozenberg, A. Schurr, R. Heckel, G. Taentzer, P. Bottoni, F. Parisi-Presicce,

References People: G. Rozenberg, A. Schurr, R. Heckel, G. Taentzer, P. Bottoni, F. Parisi-Presicce, A. Corradini, H. Ehrig, H. G. Kreowsky. Theory: G. Rozenberg, editor. Handbook of Graph Grammars and Computing by Graph Transformation, Volume 1 -3: Foundations. World Scientific, 1997. Corradini, A. , Montanari, U. , Rossi, F. , Ehrig, H. , Heckel, R. , Löwe, M. Algebraic Approaches to Graph Transformation Part I: Basic Concepts and Double Pushout Approach Corradini, A. Concurrent Graph and Term Graph Rewriting Proc. CONCUR'96, LNCS Tools: Progres homepage: http: //www-i 3. informatik. rwthaachen. de/research/projects/progres/main. html Agg homepage: http: //tfs. cs. tu-berlin. de/agg/ Graceland homepage: http: //www. informatik. uni-bremen. de/theorie/GRACEland. html Fujaba homepage: http: //www. fujaba. de/ Atom 3: http: //atom 3. cs. mcgill. ca/ Standard: GXL: http: //www. gupro. de/GXL/