an algebra of hierarchical graphs

Post on 02-Jul-2015

2.383 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

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.

TRANSCRIPT

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

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

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

Networking scenario: visual approach

bus

Networking scenario: visual approach

bus

line

Networking scenario: visual approach

bus

line

ring

Networking scenario: visual approach

bus

line

ring

subnet

Networking scenario: visual approach

bus

line

ring

subnet

Networking scenario: visual approach

bus + refs

line + refs

ring + refs

subnet + refs

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Networking scenario: textual approach

host | host | host| host | host

host ; host ; host

< host ; host ; host ;host ; host >

[ host ; host ]

Networking scenario: textual approach

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

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

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

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

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

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

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

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

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

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

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

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

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

Main technical problem: representation distance

grammar, structuralcongruence, etc.

adjacency matrix,tuples, sets,morphisms

solution: graph algebras

very different syntax!

Main technical problem: representation distance

solution: graph algebras

similar syntax

similar syntax

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

The syntax of the graph algebra

D ::= Tx [G]

G,H ::= 0

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

the empty graph

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

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

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

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

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

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

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

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

Hierarchical graph isomorphism

Hierarchical graph isomorphism

Structural axioms characterise graph isomorphism

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

is equivalent to

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.

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

Typical structures are derived operators

(network) nesting

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

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.

Typical structures are derived operators

(network) sequential composition

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

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

The model of hierarchical graphs

intuitive visual representation

complex textual representation we are hiding

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

From graph terms to 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

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!

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

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

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

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

The algebra facilitates a modular implementation

Specificationlanguages

networks

pi-calculus

caspis

etc.

algebra

analysis

graphs

Graphformats

dot

GraphML

ExternalTools

The algebra facilitates a modular implementation

Specificationlanguages

networks

pi-calculus

caspis

etc.

algebra

analysis

graphs

Graphformats

dot

GraphML

ExternalTools

Implementation snapshot (a simple visualiser)

I Available at www.albertolluch.com/adr2graphs

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]

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]

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]

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]

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]

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]

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.

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.

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

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

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

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

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

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

Thanks for your attention

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.

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.

top related