intermodeling, queries and kleisli categories zinovy diskin, tom maibaum, krzysztof czarnecki...
TRANSCRIPT
![Page 1: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/1.jpg)
Intermodeling, Queries and Kleisli categories
Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki
McMaster University,University of Waterloo
![Page 2: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/2.jpg)
NECSIS and MDE
• Network for Engineering of Complex Software-Intensive Systems for Automotive Systems – Eight Canadian research institutions– Three industrial partners (GM Canada, IBM
Canada, and Malina Software)
WADT'12 Query languages are Cartesian monads 2
![Page 3: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/3.jpg)
Intermodeling (termed coined by Guerra et al, at MoDELS’10):
• What: Specification and maintenance of intermodel relations (techniques and tools)
• Why: Modeling is multimodeling
3Query languages are Cartesian monads
M2
M3
M1
R23
R12
R13
R123
WADT'12
![Page 4: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/4.jpg)
Why intermodeling, cont’d
4Query languages are Cartesian monads
M2
M3
M1
R23
R12
R13
R123
WADT'12
Scenarios:• Consistency• Sync/change propagation • Merge
There is much more to R’s than name correspondence!
![Page 5: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/5.jpg)
Contents
• Specifying intermodel relations is difficult• Main features of our framework by examples• Q-mappings at work: Model merge• Formalization via Cartesian monads • Summary: model management via algebra
(or, colors of model management)
Query languages are Cartesian monads 5WADT'12
![Page 6: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/6.jpg)
Specifying intermodel relations is not easy
s:Student name=Mr. Lee
bdate=01/01/1990
a: Woman -Actor name=Ann
age = 21
Model S Model A=
?
semanticrelativism
homonymy
?
?
WADT'12 6
The indirect link problem
The Domain: Ms. Ann Lee, 01/01/1990, a student and an
actor
Query languages are Cartesian monads
“part of”
![Page 7: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/7.jpg)
Contents
• Specifying intermodel relations is difficult• Main features of our framework by examples• Q-mappings at work: Model merge• Formalization via Cartesian monads • Summary: model management via algebra
(or, colors of model management)
Query languages are Cartesian monads 7WADT'12
![Page 8: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/8.jpg)
Query languages are Cartesian monads /30
Indirect links via direct Q-links(Kleisli’s idea)
• Replace indirect links by direct links into derived elements (computed by queries, Q-links)
s: Student name = Ms.Lee bdate = 01/01/90
a: Actor name = Ann age = 22
Model AModel S +
WADT'12
=
=?
/age = 2012-1990 = 22
![Page 9: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/9.jpg)
But first relate metamodels
Query languages are Cartesian monads 13
f Metamodel, AMetamodel S+
Student name: {Ms,Mr} x Str bdate: Int3
/age = Q(bdate) : Int
WADT'12
Actor name = Str age = Int
f: f Model, A: AModel S+: S+
S: Student name = Ms.Lee bdate = 01/01/90 /age = exec Q(01/01/90) = 22: Int
a: Actor name = Ann age = 22
![Page 10: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/10.jpg)
Query languages are Cartesian monads /30
Q-links vs. semantic relativism, 1
Student name: {Mr, Ms} x Str
Metamodel S Actor
name: Str
Metamodel A
Woman Man
?
WADT'12
Common intermodeling jargon: 1-to-M(any) linkWe say indirect 1-M link
![Page 11: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/11.jpg)
/30
Q-links vs. semantic relativism, 2
Student name: {Mr, Ms} x Str
Metamodel S Actor name: Str
Metamodel A+
Woman Man
WADT'12
/title = Q1(W-M typing)
Query languages are Cartesian monads
![Page 12: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/12.jpg)
/30
Student name: {Mr, Ms} x Str
Metamodel S Actor name: Str
Metamodel A+
Woman Man
WADT'12
/title = Q1 (W-M typing) /tname = Q2 (name, /title)
An indirect 1-M link x <---> {y1,…, ym } is replaced by a direct 1-1 q-link x <---> Q(y1,…, ym)
Q-links vs. semantic relativism, 3
Query languages are Cartesian monads
![Page 13: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/13.jpg)
13
Student name: {Mr, Ms} x Str
Metamodel S Actor name: Str
Metamodel A+
Woman Man
WADT'12
/title = Q1 (W-M typing) /tname = Q2 (name, title)
m
S A
A+ = Q(A)
mi
Q-links and asymmetry of mappings
m is an ordinary total mapping consisting of pairs of elements.
S is a view of A
Query languages are Cartesian monads
![Page 14: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/14.jpg)
14/36
ActorMetamodel A+
Woman Man
WADT'12
/title = Q2 (W-M typing)
m
Derived-derived case. Partial mappings.
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
S A
S+ = Q1(S)
i1 m2
m1
A+ = Q2(S)
i2
Query languages are Cartesian monads
x
x
![Page 15: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/15.jpg)
15/36
ActorMetamodel A+
Woman Man
WADT'12
/title = Q1 (W-M typing)
From partial mappings to spans(Reifying intermodel links)
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
S A
S+ = Q1(S)
i1
m2
A+ = Q2(S)
i2
Query languages are Cartesian monads
Metamodel R Person title: {Mr, Ms}
Rm1
![Page 16: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/16.jpg)
Contents
• Specifying intermodel relations is difficult• Main features of our framework by examples• Q-mappings at work: Model merge • Towards formalization via Cartesian monads • Summary: model management via algebra
(or, colors of model management)
Query languages are Cartesian monads 16WADT'12
![Page 17: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/17.jpg)
General pattern for merge
FASE'12 28/36
M+
A
r1
B
C
D
R1
R2...
r2Colimit
. .
. Color Legend: Black -- given Green --- discovery/heuristics/AI Blue --- pure algebra!
Intermodeling, Queries, and Kleisli categories
…
![Page 18: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/18.jpg)
Intermodeling, Queries, and Kleisli categories
Merge via colimit: Example
FASE'12 23/36
ActorMetamodel A+
Woman Man
/title = Q2 (W-M typing)
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
Metamodel R
? (Person) name: {Mr, Ms} x Str
Metamodel M+
Woman Man
/title = Q1 (name) = Q2 (W-M typing)
R2M
Person title: {Mr, Ms}
S2MA2M
R2S R2A
![Page 19: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/19.jpg)
Intermodeling, Queries, and Kleisli categories
Merge via colimit cont’d
FASE'12 23/36
ActorMetamodel A+
Woman Man
/title = Q2 (W-M typing)
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
Metamodel R
********
**** R2M
Person title: {Mr, Ms}
S2MA2M
R2S R2A
? (Person) name: {Mr, Ms} x Str
Metamodel M
Woman Man
Q1 (name) = Q2 (W-M typing)
![Page 20: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/20.jpg)
/30
Another version of intermodel span
Person title: {Mr, Ms} x Str
Metamodel R Actor
Metamodel A
Woman Man
R2A
/MsPerson/MrPerson
FASE'12FASE'12
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
R2S
? (Person) name: {Mr, Ms} x Str
Metamodel M+
/title = Q1 (name)
/MsPerson /MrPerson
Q2(/title)
S2M
A2M
Q2(title)
![Page 21: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/21.jpg)
Normalized merge
21/36
Person title: {Mr, Ms} x Str
Metamodel R Actor
Metamodel A
Woman Man
R2A
/MsPerson/MrPerson
FASE'12FASE'12
Student name: {Mr, Ms} x Str
Metamodel S+
/title = Q1(name)
R2S
? (Person) name: {Mr, Ms} x Str
Metamodel M
********
Q2(title)
Intermodeling, Queries, and Kleisli categories
![Page 22: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/22.jpg)
General pattern for merge
FASE'12 28/36
M+
A
r1
B
C
D
R1
R2...
r2Colimit
. .
. Color Legend: Black -- given Green --- discovery/heuristics/AI Blue --- pure algebra!
Intermodeling, Queries, and Kleisli categories
…
![Page 23: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/23.jpg)
Three colors of model management
Discovering (heuristics + AI): Model diff/matching/alignment
Execution (pure algebra): Model merge/update propagation
Mixture: Weaving Green and Blue in one algorithm/module often results in Red
FASE'12 Intermodeling, Queries, and Kleisli categories
![Page 24: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/24.jpg)
Intermodeling, Queries, and Kleisli categories
But…
• Algebraic techniques work well if the universe of models and Q-mappings between them is a category
• We need to define composition of Q-mappings• It is not trivial
24/36FASE'12
![Page 25: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/25.jpg)
Query languages are Cartesian monads
Q-mappings as Kleisli mappings
WADT'12 27/36
A B
Q(B)
fiQ
A B*******
m = (Q, f)A B
m
A B
Q(B)
fiQ
Thick (extensional) notation
Thin (formula) notation
Ordinary mappings
Q-mappings
![Page 26: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/26.jpg)
Query languages are Cartesian monads
Problem of Q-mapping composition
26/36
BD
Qf(AD) Qg(BD)
CDfD gD
gSfS
AS BS
Qf(AS )
CSfS
gS
Qg(BS )
CBAf g
qExeSchemas (data & query/view definitions) S stands for “the schema part”
Instances (data and query execs) Subindex D stands for “the Data part”
Typing mapping (t is “the typing part”)
?
?At
Bt
CtqExe
AD
AS BS CSMetamodels (or schemas)WADT'12
Models and their maps
Qf(At)Qg(Bt)
![Page 27: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/27.jpg)
Query languages are Cartesian monads
Solution: first, we manage syntax (the easy part)
AD BD
Qf(AD) Qg(BD)
CDfD gD
AS BS
Qf (AS)
CSfS
gS
Qg#( Qf (AS))
fS#
subst Qg (BS)
typing
CBAf g
WADT'12
Schemas (data & query/view definitions) S stands for “the schema part”
Instances (data and query execs) Subindex D stands for “the Data part”
?
![Page 28: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/28.jpg)
Query languages are Cartesian monads
Solution: second, we manage semantics(the difficult part)
AD BD
Qf(AD) Qg(BD)
CDfD gD
AS BS
Qf (AS)
CSfS
gS
Qg#( Qf (AS))
fS#
subst Qg (BS)
typing
CBAf g
WADT'12
Schemas (data & query/view definitions) S stands for “the schema part”
Instances (data and query execs) Subindex D stands for “the Data part” Qg
#(Qf(AD))
qExe
fD#
monot
Fortunately, many useful queries are monotonic (e.g., SPJ)
![Page 29: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/29.jpg)
Intermodeling, Queries, and Kleisli categories
Some formal details1) Simple (no-queries) model translation from one metamodel to
another (retyping) can be specified by a categorical construct called fibration, p: Mod -->MMod (by def).
2) A monotonic query language is specified by a monad over the fibration 1), Q: Mod-->Mod, Qdef: MMod-->MMod, p:Q-->Qdef. This monad is Cartesian! (by def)
3) Models and Q-mappings form the Kleisli category of the monad in 2)• Corollary. If the cat of models and simple mappings is closed
wrt. merge, then the cat of models and Q-mappings is closed wrt. merge as well.
4) Theorem. Model translations determined by Q-mappings (= view mechanism) again form a fibration. That is, querying followed by retyping is compositional. 33/36 FASE'12
![Page 30: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/30.jpg)
Query languages are Cartesian monads
Summary• A (vast?) majority of intermodel relationships
can be specified by Q-mappings• With Kleisli construction, models and Q-
mappings between them form a category, i.e., a universe of well-defined algebraic operations
• Model management scenarios include two basic stages:– Discovery of Q-mappings between models;– Execution of an algebraic operation over models and
mappings• Weaving green into blue often results in red
WADT'12
![Page 31: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/31.jpg)
Query languages are Cartesian monads
THE END
WADT'12 /30
![Page 32: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/32.jpg)
Query languages are Cartesian monads
s:Student name=Mr. Lee a: Woman -Actor
name=Ann
Model S Model A
WADT'12 9
Solution 1: Annotate indirect links with correspondence rules
(= expressions attached to links)
If s = a, then if s.name.title = Mr, then a.class = Man, else a.class = Woman
=
Conflict!
![Page 33: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/33.jpg)
Query languages are Cartesian monads
Solution 1: another sample
s:Student name=Mr. Lee bdate=01/01/1990
a: Woman -Actor name=Ann age = 21
Model S Model A=
WADT'12 10
if s = a, then if s.bdate.month&day current.month&day then a.age = 2012 s.bdate.year - 1, else a.age = 2012 – p.bdate.year
Conflict!
![Page 34: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/34.jpg)
Query languages are Cartesian monads /30
Problems of Solution 1
M1 M2
• Partially ad hoc• Or, use something universal, say, OCL or FOL, but• Network structure is collapsed into one big model • Mapping composition problem (well recognized
in the DB literature, Bernstein et al.)WADT'12
M3 …R12 R23 …
… … …R13 ?
![Page 35: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/35.jpg)
Query languages are Cartesian monads
Grand statement
• Many (all?) 1-M indirect links are nothing but hidden 1-1 Q-links:
A basic element of one model can be derived in another model and vv.
• Semantic relativism = Basic-Derived correspondence (= Q-links)
WADT'12 /30
![Page 36: Intermodeling, Queries and Kleisli categories Zinovy Diskin, Tom Maibaum, Krzysztof Czarnecki McMaster University, University of Waterloo](https://reader030.vdocuments.net/reader030/viewer/2022032802/56649e0e5503460f94af79d3/html5/thumbnails/36.jpg)
Query languages are Cartesian monads
Grand indeed?
• What’s about M-M links, or the derived-derive case?
WADT'12 /30