360 likes | 710 Vues
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. Graph grammars.
E N D
Introduction toGraph Grammars Fulvio D’Antonio LEKS, IASI-CNR Rome, 14-10-03
Summary • Basic concepts • Double pushout approach • Single pushout approach • Tools • References
Graph grammars 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 = (G0,P) G0 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 G0 and applying the rules in P
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 (v1,v2) with an arrow starting in v1 and ending in v2
Another graph … This is a multigraph
Another definition • A pair (V,E) where V is a finite set, E is a finite multiset with elements in VV E.g. V= v1,v2,…., vn E = (v1,v2),….,(v1,v2),…
A A Yet another graph … 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 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,t,lV,lE): V and E are two finite sets (VE=) s,t : E V are two mappings indicating the source and the target of an edge lV: V V e lE: E E are two mappings from from V and E in two finite sets of labels
B Example E A B A Notes: The edges are directed Two vertexes with the same label Multiple edges (even with the same label!) between two vertexes
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!)
B Example: G is contained in G’ G’ G E A 3 3 A 2 B 2 A B A 1 1 This is a correct graph morphism
B Example 2 G’ G E 3 A 3 2 2 B A B A 1 1 This is not a correct graph morphism
B Example 3 G’ G E E 2,4 4 A E 3 2 1,3 B A 1 This is a correct non-injective graph morphism
Graph morphism Given G =(V,E,s,t,lV,lE) and G’=(V’,E’,s’,t’,lV’,lE’) a graph morphism is a pair (1,2), 1:V V’, 2: E E’ such as: 1)labels are preserved i.e. lV(vi) = lV’(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 substructure
Summary • Basic concepts • Double pushout approach • Single pushout approach • Tools • References
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 • movePacman : L R K
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)
L R K Example • movePacman : The match The graph G
The match The context graph
The match The final graph H G ,p H G * ,p Gn (reflexive symmetric and transitive closure)
Other rules in Pacman game MoveGhost: Kill:
Summary • Basic concepts • Double pushout approach • Single pushout approach • Tools • References
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 1 r 3 3 4 2 4 2 L R r is a partial morphism
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
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.
Fujaba Other tools Grace and Graceland Atom3
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, 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-i3.informatik.rwth-aachen.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/GRACEland.html Fujaba homepage:http://www.fujaba.de/ Atom3:http://atom3.cs.mcgill.ca/ Standard: GXL: http://www.gupro.de/GXL/