Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our User Agreement and Privacy Policy.

Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising. If you continue browsing the site, you agree to the use of cookies on this website. See our Privacy Policy and User Agreement for details.

Successfully reported this slideshow.

Like this presentation? Why not share!

- A similarity based learning algorit... by LeMeniz Infotech 623 views
- Nhanhapkhauvaphanphoidanorganlongqu... by Long Quân Piano 219 views
- HAB-Brochure by Karan Bhalla 157 views
- Presentación curso ABP by MCarmenGbogarra 231 views
- Kailua Kona - The Place Where Fun B... by Kailua Kona 167 views
- การประชุมวิชาการทางสัตวศาสตร์แห่งชา... by กิตติพงษ์ กุมภาพงษ์ 1079 views

1,126 views

Published on

No Downloads

Total views

1,126

On SlideShare

0

From Embeds

0

Number of Embeds

63

Shares

0

Downloads

35

Comments

0

Likes

2

No embeds

No notes for slide

- 1. A category-theoretic view of model-driven Meinte Boersma DSL Consultancy April 10th, 2014 A CT view of MD DSL Consultancy
- 2. About me Owner/founder of DSL Consultancy Creator of Experienced in Xtend; Xtext, guerilla warfare... ...still learning category theory! A CT view of MD DSL Consultancy
- 3. Agenda What is Category Theory? General introduction to CT Why category theory for MD*? Finding the category of models Discussion and conclusion A CT view of MD DSL Consultancy
- 4. What is category theory Category theory is an abstraction of mathematics itself that allows many intricate and subtle mathematical results [...] to be stated, and proved, in a much simpler way than without the use of categories. (Wikipedia) =⇒ Raising the level of abstraction! A CT view of MD DSL Consultancy
- 5. Characteristics of category theory 1. capture essential complexity and separate it from the incidental one 2. leave out unnecessary/technical details until you need them 3. lots of diagrams and ”chasing” those A CT view of MD DSL Consultancy
- 6. General introduction Deﬁnition A category C consists of: objects, usually denoted with capitals arrows, each having a source and a target object: S f −→ T a composition operation ◦ on arrows such that for arrows f , g: 1. (identity) for every object X, an identity arrow idX exists such that for every arrow S f −→ T: idT ◦ f = f ◦ idS 2. (associativity) if A f −→ B, B g −→ C and C h −→ D, then h ◦ (g ◦ f ) = (h ◦ g) ◦ f A CT view of MD DSL Consultancy
- 7. A prototypical diagram A CT view of MD DSL Consultancy
- 8. Another diagram Commutativity: f g g ° f A CT view of MD DSL Consultancy
- 9. Examples of categories - from mathematics: Set Description of Set: objects: sets arrows: S f −→ T are functions: f : S → T composition: composition of functions identity arrows: idX (x) = x ∀x ∈ X A CT view of MD DSL Consultancy
- 10. Examples of categories - from mathematics: Rel Description of Rel: objects: sets arrows: S f −→ T are binary relations: f ⊆ S × T composition of A f −→ B and B g −→ C: (a, c) ∈ g ◦ f ⇐⇒ (a, b) ∈ f and (b, c) ∈ g for some b ∈ B identity arrows: idX = {(x, x) | x ∈ X} Pub exercise: verify category laws A CT view of MD DSL Consultancy
- 11. Examples of categories - from mathematics: Graph A graph consists of a set of nodes a set of edges functions (σ, τ) mapping edges to its source resp. its target node An arrow in Graph is a mapping of nodes and edges that respects source and target nodes of edges. Note: this sounds oddly familiar... A CT view of MD DSL Consultancy
- 12. Examples of categories - from programming: Html Description of Html: objects: instances of HTMLElements arrows: invocations of JavaScript functions that take and return HTMLElements composition: function composition identity: A CT view of MD DSL Consultancy
- 13. Examples of categories - from programming: Jqry Description of Jqry: objects: values of $(...) arrows: invocations of members of $.fn composition: function composition identity: Note: Html and Jqry look rather alike... A CT view of MD DSL Consultancy
- 14. Examples of categories - summary objects arrows composition Set sets functions from source to target sets composition of functions Rel sets binary relations between two sets ”connecting transitively” Graph graphs mappings from source to target graph, re- specting source and target nodes of edges ”following the mapping” Html HTMLElements invocations of appropriate JS functions functional composition Jqry $(..) invocations of members of $.fn invocation chaining Hask Haskell types Haskell functions the . operator A CT view of MD DSL Consultancy
- 15. Observations arrows functions composition functional comp. “free” associativity A CT view of MD DSL Consultancy
- 16. Relations between categories ”Compare” categories with each other using . . . Deﬁnition A functor F : C −→ D maps {objects | arrows} of C to {objects | arrows} of D such that (identity) F(idS ) = idF(S) with S an object of C (composition) F(f ◦ g) = F(f ) ◦ F(g) for arrows f , g of C A CT view of MD DSL Consultancy
- 17. Examples of functors the power set functor P : Set −→ Set the ”graphing” functor Cat −→ Graph monads are special kinds of functors on Hask the ”wrapping” functor Html −→ Jqry: A CT view of MD DSL Consultancy
- 18. Types of functors functor type property endo- C = D covariant F(S) F(f ) −→ F(T) contravariant F(S) F(f ) ←− F(T) for every arrow S f −→ T A CT view of MD DSL Consultancy
- 19. Why category theory for MD*? Bad reason: because the hipsters are doing it! ”Don’t you see: a monad simply is an endofunctor arising as the composition of two adjoint functors with two natural transformations, really!” A CT view of MD DSL Consultancy
- 20. Why category theory for MD*? To try and give answers to the following: 1. What is a model? 2. What is a meta model? 3. Model transformations 4. Discussion: semantics, meta model evolution, etc. A CT view of MD DSL Consultancy
- 21. The category of models Goal: a suitable category of models which answers our questions. Challenge: CT assumes little ⇒ CT gives little oﬀ-the-shelf. . . Idea: start with Mod = (directed) graphs with (general) mappings; then: retroﬁt. Note: Mod = Graph. A CT view of MD DSL Consultancy
- 22. An example model (Xcore=Ecore model) A CT view of MD DSL Consultancy
- 23. An example model - ”categorized” nodes edges payloads ⇒ nodes and edges require a payload (names, . . .) ⇐ retroﬁt! Arrows induce mapping of payloads through their base point. A CT view of MD DSL Consultancy
- 24. Types of model arrows What types of arrows can we think of? model transformations type systems queries is-a’s: ”going meta” A CT view of MD DSL Consultancy
- 25. Arrows between models - caveats Note: not all {source | target} {nodes | edges} need to be mapped each arrow is a transformation between a particular source and target model a model transformation that works on a class of models is a (covariant) functor ⇐= requires some formalization A CT view of MD DSL Consultancy
- 26. ”Going meta” - visualized model pre-meta model mappings Note: mapping can carry extra information A CT view of MD DSL Consultancy
- 27. ”Going meta” - formalized Deﬁnition In Mod, a model M2 is pre-meta for M1 if an ”is-a” arrow f exists that maps all source nodes and edges. model pre-meta model is-a A CT view of MD DSL Consultancy
- 28. Multiple meta models model pre-meta model is-a A CT view of MD DSL Consultancy
- 29. Multiple meta models model pre-meta model is-a also pre-meta also is-a A CT view of MD DSL Consultancy
- 30. The ultimate meta model A CT view of MD DSL Consultancy
- 31. Constraints Many constraints are not expressible by pre-meta notion. Just retroﬁt them to Mod where required! Deﬁnition A constraint in M2 is a predicate function on models M1 for which M2 is pre-meta. A CT view of MD DSL Consultancy
- 32. ”Going meta” - with constraints Simply ”store” the constraints in M2 as part of it! Deﬁnition In Mod, a model M2 is meta for M1 if it is pre-meta and it satisﬁes all constraints in M2. A CT view of MD DSL Consultancy
- 33. Model transformations Now deﬁne the sub-category ModM2 := {M1 in Mod such that M2 is meta for M1} Deﬁnition A model transformation is a functor T : ModM2 −→ ModM2 that respects the constraints of M2. Post-conference exercise: what about F(f )? A CT view of MD DSL Consultancy
- 34. Uncharted territory CT concepts untouched (by me): duality natural transformations adjointness A CT view of MD DSL Consultancy
- 35. Discussion Possible topics: semantics meta model evolution model merging . . .? A CT view of MD DSL Consultancy
- 36. Conclusion CT provides a nice, tech-independent language for MD Comes with its own semantics and ”API” It still makes us work (”answers”) CT-approach can be taken much further - see article references A CT view of MD DSL Consultancy
- 37. More information Books: 1. Lawvere and Schanuel, Conceptual Mathematics 2. Simmons, An Introduction to Category Theory 3. Mac Lane, Categories for the Working Mathematician Articles: 1. Diskin and Maibaum, Category Theory and Model-Driven Engineering: From Formal Semantics to Design Patterns and Beyond 2. Diskin and Wolter, A Diagrammatic Logic for Object-Oriented Visual Modeling Blogs and video lectures by John Bender A CT view of MD DSL Consultancy
- 38. End credits Meinte Boersma meinte.boersma@gmail.com Software value creator @ DSL Consultancy A CT view of MD DSL Consultancy

No public clipboards found for this slide

Be the first to comment