87
An algebra of hierarchical graphs (and its applications) Alberto Lluch-Lafuente (based on a collaboration Pisa/Leicester within the Sensoria project) Department of Computer Science, Universit` a di Pisa Software Engineering for Service-Oriented Overlay Computers Job Market Seminars IMT Lucca, May 25 2009

An Algebra of Hierarchical Graphs

Embed Size (px)

DESCRIPTION

We de fine an algebraic theory of hierarchical graphs, whose equational part characterises graph isomorphism, i.e. it is formed by a sound and complete set of axioms equating two terms whenever they represent the same hierarchical graph. Our algebra can thus be understood as a high-level language for describing graphs with a nested structure, and is then particularly suited for the visual speci cation of process calculi with inherently hierarchical features such as sessions, transactions or locations. We illustrate our approach by encoding CaSPiS, a recently proposed session-centered calculus.

Citation preview

Page 1: An Algebra of Hierarchical Graphs

An algebra of hierarchical graphs(and its applications)

Alberto Lluch-Lafuente(based on a collaboration Pisa/Leicester within the Sensoria project)

Department of Computer Science, Universita di PisaSoftware Engineering for Service-Oriented Overlay Computers

Job Market SeminarsIMT Lucca, May 25 2009

Page 2: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 3: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 4: An Algebra of Hierarchical Graphs

The structure of data, programs and all that

We observe 1) composition, 2) containment and 3) references.

I Programs (e.g. Pascal)

1. control flow2. scopes3. variables

I Data (e.g. XML)

1. element list2. tag hierarchy3. references

I Other examples:I file system navigationI workflows (BPEL)I diagrams (UML)I etc.

Page 5: An Algebra of Hierarchical Graphs

The structure of data, programs and all that

We observe 1) composition, 2) containment and 3) references.

I Programs (e.g. Pascal)

1. control flow2. scopes3. variables

I Data (e.g. XML)

1. element list2. tag hierarchy3. references

I Other examples:I file system navigationI workflows (BPEL)I diagrams (UML)I etc.

Page 6: An Algebra of Hierarchical Graphs

The structure of data, programs and all that

We observe 1) composition, 2) containment and 3) references.

I Programs (e.g. Pascal)

1. control flow2. scopes3. variables

I Data (e.g. XML)

1. element list2. tag hierarchy3. references

I Other examples:I file system navigationI workflows (BPEL)I diagrams (UML)I etc.

Page 7: An Algebra of Hierarchical Graphs

The structure of data, programs and all that

We observe 1) composition, 2) containment and 3) references.

I Programs (e.g. Pascal)

1. control flow2. scopes3. variables

I Data (e.g. XML)

1. element list2. tag hierarchy3. references

I Other examples:I file system navigationI workflows (BPEL)I diagrams (UML)I etc.

Page 8: An Algebra of Hierarchical Graphs

The structure of modern data, programs and all that

Modern systems increase the relevance of containment and theinterplay with composition and references becomes more subtle.

E.g. Nested...

I Transactions

I Locations

I Sessions

I Membranes

I Etc.

Page 9: An Algebra of Hierarchical Graphs

The structure of modern data, programs and all that

Modern systems increase the relevance of containment and theinterplay with composition and references becomes more subtle.

E.g. Nested...

I Transactions

I Locations

I Sessions

I Membranes

I Etc.

Page 10: An Algebra of Hierarchical Graphs

The structure of modern data, programs and all that

Modern systems increase the relevance of containment and theinterplay with composition and references becomes more subtle.

E.g. Nested...

I Transactions

I Locations

I Sessions

I Membranes

I Etc.

Page 11: An Algebra of Hierarchical Graphs

The structure of modern data, programs and all that

Modern systems increase the relevance of containment and theinterplay with composition and references becomes more subtle.

E.g. Nested...

I Transactions

I Locations

I Sessions

I Membranes

I Etc.

Page 12: An Algebra of Hierarchical Graphs

The structure of modern data, programs and all that

Modern systems increase the relevance of containment and theinterplay with composition and references becomes more subtle.

E.g. Nested...

I Transactions

I Locations

I Sessions

I Membranes

I Etc.

Page 13: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 14: An Algebra of Hierarchical Graphs

Networking scenarioLet us consider a simple networking scenario with some structure:

I topology (e.g. line, bus, ring, etc.)

I nesting (e.g. home sub-network, etc.)

I references (e.g. file sharing, services, etc.)

Page 15: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus

Page 16: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus

line

Page 17: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus

line

ring

Page 18: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus

line

ring

subnet

Page 19: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus

line

ring

subnet

Page 20: An Algebra of Hierarchical Graphs

Networking scenario: visual approach

bus + refs

line + refs

ring + refs

subnet + refs

Page 21: An Algebra of Hierarchical Graphs

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Page 22: An Algebra of Hierarchical Graphs

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Page 23: An Algebra of Hierarchical Graphs

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Page 24: An Algebra of Hierarchical Graphs

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Page 25: An Algebra of Hierarchical Graphs

Networking scenario: textual approach

< host ; host(a) ; host ; host(a) ; host >

Page 26: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 27: An Algebra of Hierarchical Graphs

Two trends to formal textual and visual specifications

Algebraic

I Termshost(a) | host(b)

I Operations·|· : Bus× Bus→ Bus

I Axiomsx | y ≡ y | x

I Rewrite ruleshost(x) −→ host

elements

vocabulary

equivalence

dynamics

Graph-based

I Graphs (diagrams)flat, hierarchical, etc.

I Graph compositionsUnion, tensor, etc.

I Homomorphismsisomorphism, etc.

I Transformation rules

Page 28: An Algebra of Hierarchical Graphs

Two trends to formal textual and visual specifications

Algebraic

I Termshost(a) | host(b)

I Operations·|· : Bus× Bus→ Bus

I Axiomsx | y ≡ y | x

I Rewrite ruleshost(x) −→ host

elements

vocabulary

equivalence

dynamics

Graph-based

I Graphs (diagrams)flat, hierarchical, etc.

I Graph compositionsUnion, tensor, etc.

I Homomorphismsisomorphism, etc.

I Transformation rules

Page 29: An Algebra of Hierarchical Graphs

Two trends to formal textual and visual specifications

Algebraic

I Termshost(a) | host(b)

I Operations·|· : Bus× Bus→ Bus

I Axiomsx | y ≡ y | x

I Rewrite ruleshost(x) −→ host

elements

vocabulary

equivalence

dynamics

Graph-based

I Graphs (diagrams)flat, hierarchical, etc.

I Graph compositionsUnion, tensor, etc.

I Homomorphismsisomorphism, etc.

I Transformation rules

Page 30: An Algebra of Hierarchical Graphs

Two trends to formal textual and visual specifications

Algebraic

I Termshost(a) | host(b)

I Operations·|· : Bus× Bus→ Bus

I Axiomsx | y ≡ y | x

I Rewrite ruleshost(x) −→ host

elements

vocabulary

equivalence

dynamics

Graph-based

I Graphs (diagrams)flat, hierarchical, etc.

I Graph compositionsUnion, tensor, etc.

I Homomorphismsisomorphism, etc.

I Transformation rules

Page 31: An Algebra of Hierarchical Graphs

Goal statement

The spirit of our research is

”to conciliate algebraic and graph-based specifications”

The work presented in this talk has the goal to

”Equip algebraic specifications with a graphicalrepresentation that is

I IntuitiveI Easy to defineI Easy to prove correct

Page 32: An Algebra of Hierarchical Graphs

Goal statement

The spirit of our research is

”to conciliate algebraic and graph-based specifications”

The work presented in this talk has the goal to

”Equip algebraic specifications with a graphicalrepresentation that is

I IntuitiveI Easy to defineI Easy to prove correct

Page 33: An Algebra of Hierarchical Graphs

Main technical goal: mapping coherent wrt. equivalence

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

Page 34: An Algebra of Hierarchical Graphs

Main technical goal: mapping coherent wrt. equivalence

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

Page 35: An Algebra of Hierarchical Graphs

Main technical goal: mapping coherent wrt. equivalence

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent

Page 36: An Algebra of Hierarchical Graphs

Main technical goal: mapping coherent wrt. equivalence

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent

Page 37: An Algebra of Hierarchical Graphs

Main technical goal: mapping coherent wrt. equivalence

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent isomorphic

Page 38: An Algebra of Hierarchical Graphs

Main technical problem: representation distance

grammar, structuralcongruence, etc.

adjacency matrix,tuples, sets,morphisms

solution: graph algebras

very different syntax!

Page 39: An Algebra of Hierarchical Graphs

Main technical problem: representation distance

solution: graph algebras

similar syntax

similar syntax

Page 40: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 41: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0

| x | t(x) | G || H | (νx)G | D(y)

the empty graph

Page 42: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0 | x

| t(x) | G || H | (νx)G | D(y)

a node called x

Page 43: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0 | x | t(x)

| G || H | (νx)G | D(y)

an edge labelled with t attached to x

Page 44: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0 | x | t(x) | G || H

| (νx)G | D(y)

parallel composition: disjoint union up to common nodes

Page 45: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0 | x | t(x) | G || H | (νx)G

| D(y)

declaration of a new node x

Page 46: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]G,H ::= 0 | x | t(x) | G || H | (νx)G

| D(y)

graph G with interface of type T exposing x

Page 47: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]G,H ::= 0 | x | t(x) | G || H | (νx)G | D(y)

a nested graph attached to y

Page 48: An Algebra of Hierarchical Graphs

The syntax of the graph algebra

D ::= Tx [G]G,H ::= 0 | x | t(x) | G || H | (νx)G | D(y)

a nested graph attached to y

Page 49: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 50: An Algebra of Hierarchical Graphs

Hierarchical graph isomorphism

Page 51: An Algebra of Hierarchical Graphs

Hierarchical graph isomorphism

Page 52: An Algebra of Hierarchical Graphs

Structural axioms characterise graph isomorphism

G || H ≡ H || G (PARALLEL1)G || (H || I) ≡ (G || H) || I (PARALLEL2)

is equivalent to

Page 53: An Algebra of Hierarchical Graphs

Structural axioms characterise graph isomorphism

G || H ≡ H || G (PARALLEL1)G || (H || I) ≡ (G || H) || I (PARALLEL2)

G || 0 ≡ G (NODES1)(νx)(νy)G ≡ (νy)(νx)G (NODES2)

(νx)0 ≡ 0 (NODES5)(νx)G ≡ (νy)G{y/x} if y 6∈ fn(G) (NODES3)Lx [G] ≡ Ly [G{y/x}] if |y | ∩ fn(G) = ∅ (NODES4)

G || (νx)H ≡ (νx)(G || H) if x 6∈ fn(G) (NODES5)Lx [(νy)G](z) ≡ (νy)Lx [G](z) if y 6∈ |x | ∪ |z | (NODES6)

x || G ≡ G if x ∈ fn(G) (NODES7)

These axioms are rather standard and thus intuitive to thosefamiliar with algebraic specifications.

Page 54: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 55: An Algebra of Hierarchical Graphs

Typical structures are derived operators

(network) nesting

[X ] def= SubBusp[X (p)], with X : Bus

Page 56: An Algebra of Hierarchical Graphs

Typical structures are derived operators

(network) parallel composition

X | Y def= Busp[X (p)|| Y (p)]

Axiom Busx [G](y) ≡ G{y/x} gets rid of associativity andcommutativity.

Page 57: An Algebra of Hierarchical Graphs

Typical structures are derived operators

(network) sequential composition

X ; Y def= Linein,out [(νmid) X (in,mid) || Y (mid , out)]

Page 58: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 59: An Algebra of Hierarchical Graphs

The model of hierarchical graphs

intuitive visual representation

complex textual representation we are hiding

Page 60: An Algebra of Hierarchical Graphs

The model of hierarchical graphs

intuitive visual representation

complex textual representation we are hiding

Linein,out[(ν mid)host(in, mid) ;SubLinein,out[(ν mid)

host(in, mid) ;host(mid, out) ;

] (mid,out)]

Page 61: An Algebra of Hierarchical Graphs

From graph terms to graphs

Page 62: An Algebra of Hierarchical Graphs

From graph terms to graphs

Formal definition

JxK = 〈〈x , ∅,⊥〉,⊥, ∅, {x}, ∅〉Jl(x)K = 〈〈|x |, e, e 7→ x〉,⊥, ∅, |x |, ∅〉

J(νx)GK = 〈GG, IG,XG,FG \ x , ∅〉J0K = 〈∅,⊥,⊥, ∅, ∅〉

JG || HK = 〈GG ⊕ HH, IG ⊕ IH,XG ⊕ XH,FG ∪ FH, ∅〉JLx [G]K = 〈〈FG, e

′, e′ 7→ 〈x〉, e′ 7→ GG, IG,XG〉, e′ 7→ idFG ,FG \ x , x〉JD(x)K = 〈GD{VD/x}, ID,XD{VD/x},FD ∪ |x |, ∅〉

if D : L ∧ flatL 6∈≡d

JD(x)K = 〈ID(e){x/FID(e)}, IID(e),XID(e),FID(e) ∪ |x |, ∅〉

if D : L ∧ flatL ∈≡d

Page 63: An Algebra of Hierarchical Graphs

From graph terms to graphs

the algebra is offering...eq X | Y = Bus[p . p | X{p} | Y{p}]

1 self-contained line of codevs

13 lines full of auxiliary functions!

Page 64: An Algebra of Hierarchical Graphs

Main result: coherence for the graph algebra

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent isomorphic

Page 65: An Algebra of Hierarchical Graphs

Outline

IntroductionOn structural issuesA simple scenarioGoal statement

An algebra of hierarchical graphsA syntax for hierarchical graphsIdentifying equivalent graphsExpressing typical structuresHiding the complexity of hierarchical graphs

Conclusion

Page 66: An Algebra of Hierarchical Graphs

Main application of the result: encodings are facilitated

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent isomorphic

Page 67: An Algebra of Hierarchical Graphs

Main application of the result: encodings are facilitated

network1

host(a)| host| [ host | host(a)]

network2

host| [ host | host(a)]| host(a)

graphterm1

Bus[ p .host(p,a)| host(p)...]

graphterm2

Bus[ p .host(p)...| host(p,a)]

graph1

graph2

congruent congruent isomorphic

Page 68: An Algebra of Hierarchical Graphs

The algebra facilitates a modular implementation

Specificationlanguages

networks

pi-calculus

caspis

etc.

algebra

analysis

graphs

Graphformats

dot

GraphML

ExternalTools

Page 69: An Algebra of Hierarchical Graphs

The algebra facilitates a modular implementation

Specificationlanguages

networks

pi-calculus

caspis

etc.

algebra

analysis

graphs

Graphformats

dot

GraphML

ExternalTools

Page 70: An Algebra of Hierarchical Graphs

Implementation snapshot (a simple visualiser)

I Available at www.albertolluch.com/adr2graphs

Page 71: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 72: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 73: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 74: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 75: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 76: An Algebra of Hierarchical Graphs

Applications (general)

Modelled with the algebra

I Networktopologies [BL09]

I Process calculi [GLB]

I Workflows [GLB]

Modelled without the algebra

I Service modellinglanguage [BLME07]

I UML4SOAprofile [BLME07]

I Architecturalstyles [BLM08]

Page 77: An Algebra of Hierarchical Graphs

Applications (service oriented calculi)

CaSpiS (sessions)I Nesting of sessions

I Sharing of sessionchannels

Sagas (transactions)

I Nesting of transactions

I Workflow constructs

Activity A has invoked two servicesS1, S2 creating two nested sessionswith channels a, b.

Page 78: An Algebra of Hierarchical Graphs

Applications (service oriented calculi)

CaSpiS (sessions)I Nesting of sessions

I Sharing of sessionchannels

Sagas (transactions)

I Nesting of transactions

I Workflow constructs

A saga as an ordinary workflowcompensated with another workflow.

A workflow as saga withoutcompensation flow.

Page 79: An Algebra of Hierarchical Graphs

Related work

GS-Graphs [CG99]

I syntactical structure, algebraicpresentation

I flat (hierarchy-as-tree)

Ranked Graphs [Gad03]

I node sharing, calculi encoding

I no composition interface, flat

Hierarchical Graphs [DHP02]

I basic model, compositioninterface

I no node sharing, no algebraicsyntax

Page 80: An Algebra of Hierarchical Graphs

Related work

GS-Graphs [CG99]

I syntactical structure, algebraicpresentation

I flat (hierarchy-as-tree)

Ranked Graphs [Gad03]

I node sharing, calculi encoding

I no composition interface, flat

Hierarchical Graphs [DHP02]

I basic model, compositioninterface

I no node sharing, no algebraicsyntax

Page 81: An Algebra of Hierarchical Graphs

Related work

GS-Graphs [CG99]

I syntactical structure, algebraicpresentation

I flat (hierarchy-as-tree)

Ranked Graphs [Gad03]

I node sharing, calculi encoding

I no composition interface, flat

Hierarchical Graphs [DHP02]

I basic model, compositioninterface

I no node sharing, no algebraicsyntax

Page 82: An Algebra of Hierarchical Graphs

Related Work

Bigraphs [JM03]

I nesting + linking

I 2 overlapping structures,complex syntax, no compositioninterface, flat

Graph Algebra, SHR [CMR94]

I basic algebra

I flat, no composition interface

Page 83: An Algebra of Hierarchical Graphs

Related Work

Bigraphs [JM03]

I nesting + linking

I 2 overlapping structures,complex syntax, no compositioninterface, flat

Graph Algebra, SHR [CMR94]

I basic algebra

I flat, no composition interface

Page 84: An Algebra of Hierarchical Graphs

Concluding remarks

The graph algebra . . .

I Grounds on widely-accepted models;

I Hides the complexity of hierarchical graphs;

I Enables proofs by structural induction;

I Extends ADR with node sharing and serves as primitivealgebra for ADR;

I Simplifies the modelling of process calculi;

I Offers a technique for complementing textual and visualnotations in formal tools;

I Has been evaluated on calculi, networks, etc.

I Natural implementation in Maude (support for theoremproving, model checking, simulation, etc.)

Page 85: An Algebra of Hierarchical Graphs

Thanks for your attention

Page 86: An Algebra of Hierarchical Graphs

Credits and references I

Roberto Bruni and Alberto Lluch Lafuente.

Ten virtues of structured graphs.In Invited paper at the 8th International Workshop on Graph Transformation and Visual ModelingTechniques (GT-VMT’09), Electronic Communications of the EASST, 2009.To appear.

Roberto Bruni, Alberto Lluch Lafuente, and Ugo Montanari.

Hierarchical Design Rewriting with Maude.In Proceedings of the 7th International Workshop on Rewriting Logic and its Applications (WRLA’08),Electronic Notes in Theoretical Computer Science. Elsevier, 2008.To appear.

Roberto Bruni, Alberto Lluch Lafuente, Ugo Montanari, and Emilio Tuosto.

Service Oriented Architectural Design.In Proceedings of the 3rd International Symposium on Trustworthy Global Computing (TGC’07), volume4912 of Lecture Notes in Computer Science, pages 186–203. Springer, 2007.

Andrea Corradini and Fabio Gadducci.

An algebraic presentation of term graphs, via gs-monoidal categories. applied categorical structures.Applied Categorical Structures, 7:7–299, 1999.

Andrea Corradini, Ugo Montanari, and Francesca Rossi.

An abstract machine for concurrent modular systems: CHARM.Theoretical Compututer Science, 122(1&2):165–200, 1994.

Frank Drewes, Berthold Hoffmann, and Detlef Plump.

Hierarchical graph transformation.Journal on Computer and System Sciences, 64(2):249–283, 2002.

Page 87: An Algebra of Hierarchical Graphs

Credits and references II

Fabio Gadducci.

Term graph rewriting for the pi-calculus.In Atsushi Ohori, editor, Proceedings of the 1st Asian Symposium on Programming Languages and Systems,volume 2895 of Lecture Notes in Computer Science, pages 37–54. Springer, 2003.

Fabio Gaducci, Alberto Lluch Lafuente, and Roberto Bruni.

Graphical representation of process calculi via an algebra of hierarchical graphs.Manuscript available at http://www.albertolluch.com/papers/adr.algebra.pdf.

O. H. Jensen and R. Milner.

Bigraphs and mobile processes.Technical Report 570, Computer Laboratory, University of Cambridge, 2003.

Note: Some figures have been borrowed from the Internet and the referred papers.