Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

A category-theoretic view of model-driven

1,126 views

Published on

The slides for my presentation during the 2014 edition of http://codegeneration.net/cg2014/programme/

Published in: Software, Technology
  • Be the first to comment

A category-theoretic view of model-driven

  1. 1. A category-theoretic view of model-driven Meinte Boersma DSL Consultancy April 10th, 2014 A CT view of MD DSL Consultancy
  2. 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. 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. 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. 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. 6. General introduction Definition 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. 7. A prototypical diagram A CT view of MD DSL Consultancy
  8. 8. Another diagram Commutativity: f g g ° f A CT view of MD DSL Consultancy
  9. 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. 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. 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. 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. 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. 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. 15. Observations arrows functions composition functional comp. “free” associativity A CT view of MD DSL Consultancy
  16. 16. Relations between categories ”Compare” categories with each other using . . . Definition 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. 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. 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. 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. 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. 21. The category of models Goal: a suitable category of models which answers our questions. Challenge: CT assumes little ⇒ CT gives little off-the-shelf. . . Idea: start with Mod = (directed) graphs with (general) mappings; then: retrofit. Note: Mod = Graph. A CT view of MD DSL Consultancy
  22. 22. An example model (Xcore=Ecore model) A CT view of MD DSL Consultancy
  23. 23. An example model - ”categorized” nodes edges payloads ⇒ nodes and edges require a payload (names, . . .) ⇐ retrofit! Arrows induce mapping of payloads through their base point. A CT view of MD DSL Consultancy
  24. 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. 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. 26. ”Going meta” - visualized model pre-meta model mappings Note: mapping can carry extra information A CT view of MD DSL Consultancy
  27. 27. ”Going meta” - formalized Definition 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. 28. Multiple meta models model pre-meta model is-a A CT view of MD DSL Consultancy
  29. 29. Multiple meta models model pre-meta model is-a also pre-meta also is-a A CT view of MD DSL Consultancy
  30. 30. The ultimate meta model A CT view of MD DSL Consultancy
  31. 31. Constraints Many constraints are not expressible by pre-meta notion. Just retrofit them to Mod where required! Definition 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. 32. ”Going meta” - with constraints Simply ”store” the constraints in M2 as part of it! Definition In Mod, a model M2 is meta for M1 if it is pre-meta and it satisfies all constraints in M2. A CT view of MD DSL Consultancy
  33. 33. Model transformations Now define the sub-category ModM2 := {M1 in Mod such that M2 is meta for M1} Definition 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. 34. Uncharted territory CT concepts untouched (by me): duality natural transformations adjointness A CT view of MD DSL Consultancy
  35. 35. Discussion Possible topics: semantics meta model evolution model merging . . .? A CT view of MD DSL Consultancy
  36. 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. 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. 38. End credits Meinte Boersma meinte.boersma@gmail.com Software value creator @ DSL Consultancy A CT view of MD DSL Consultancy

×