an algebra of hierarchical graphs
DESCRIPTION
We define 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 specication 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.