1 / 36

Introduction to Graph Grammars - PowerPoint PPT Presentation

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.

Related searches for Introduction to Graph Grammars

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Introduction to Graph Grammars' - johana

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Introduction toGraph Grammars

Fulvio D’Antonio

LEKS, IASI-CNR

Rome, 14-10-03

• Basic concepts

• Double pushout approach

• Single pushout approach

• Tools

• References

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

• 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

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

This is a multigraph

• A pair (V,E) where V is a finite set, E is a finite multiset with elements in VV

E.g.

V= v1,v2,…., vn

E = (v1,v2),….,(v1,v2),…

A

Yet another graph …

a

b

This is a labelled multigraph: elements without a label are considered labelled with the null symbol 

A pair (V,E) where:

V is a finite set of pairs and E is a finite set of triples.

Too complicated!

• A graph is a tuple (V,E,s,t,lV,lE):

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

lV: V V e lE: E E are two mappings from from V and E in two finite sets of labels

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

• 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

E

A

3

3

A

2

B

2

A

B

A

1

1

This is a correct graph morphism

Example 2

G’

G

E

3

A

3

2

2

B

A

B

A

1

1

This is not a correct graph morphism

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

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

• 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

• movePacman :

L

R

K

• 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)

R

K

Example

• movePacman :

The match

The graph G

The context graph

The final graph H

G  ,p H

G * ,p Gn (reflexive symmetric and transitive closure)

MoveGhost:

Kill:

• Basic concepts

• Double pushout approach

• Single pushout approach

• Tools

• References

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

1

1

r

3

3

4

2

4

2

L

R

r is a partial morphism

• 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

• Basic concepts

• Double pushout approach

• Single pushout approach

• Tools

• References

• 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

Atom3

• GXL (Graph Exchange Language)

• GTXL (Graph Transformation Exchange Language)

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/