categories - Category Theory list
 help / color / mirror / Atom feed
From: Zinovy Diskin <zdiskin@gsd.uwaterloo.ca>
To: Dusko Pavlovic <dusko@kestrel.edu>, <categories@mta.ca>
Subject: Re: patenting colimits?
Date: Sat, 30 May 2009 08:07:22 -0400	[thread overview]
Message-ID: <E1MB9j3-0004GD-9q@mailserv.mta.ca> (raw)

On Fri, May 29, 2009 at 3:57 PM, Dusko Pavlovic <dusko@kestrel.edu> wrote:

> i designed two tools which people who built them built on top of eclipse,
> and i must admint that i managed to completely miss those categorical ideas.
> eclipse is very handy, but some simple class hierarchies often become
> unrecognizable in its straitjacket. i am probably not the only one who would
> be curious to learn more about category theory behind eclipse :)
>

well, I've overstated it a little bit because of the context. What I
actually meant was Eclipse Modeling Framework (EMF) --  one of the
several top-level projects constituting Eclipse.

The core idea of EMF is that a majority of complex structures called
models can be presented as lax functors m: EC  --> mRel, where EC is
the category freely generated by some graph EM called the Ecore
metamodel, and mRel is bicategory of finite sets and finite
multirelations (spans) between them. However, not every such functor
is a valid model because the metamodel EM is actually a sketch, EC is
the theory generated by EM and m should be a functor preserving the
structure (using Makkai's rather than classical sketches is much more
technically convenient here).

Models are used for code generation, and code is just another model.
For example, a Java program is a morphism p: JC-->mRel with JC being
the theory generated by the Java metamodel sketch JM. So, code
generation would be a case of the  change of base situation if we had
a theory morphism e2j: JC-->EC (generated by a Kleilsi arrow JM-->EC).
The real situation is much more complicated because e2j is a span EC
<-- o --> JC rather than a functor.

This is a rough picture. Metamodels and models appearing in practice
are big, and therefore are designed and stored in fragments called
packages. Gathering them together (virtually via the so called package
merge)  is an operation based on taking colimits of the diagram
specifying package relationships. Code generation/change of base in
the presence of packages gives rise to sheaves. And so on.

Of course I did  not mean that Eclipse developers explicitly used
categorical ideas. Relations between software systems like Eclipse and
cat. theory are like relations between physical phenomena and their
mathematical models.

Z.



>> Another
>> example is the use of open source software for commercial products by
>> such giants as IBM.
>
> i hope that you are right that it is a good thing that IBM supports the open
> source. i also hope that it is a good thing that Exxon, Chevron and BP
> support the alternative sources of energy, and that Philip Morris supports
> the teen culture.
>
> -- dusko
>

although a part of Eclipse but an important one. Here is what the EMF
Book [1] says (pages 4-5):
<<
The development work in Eclipse is divided into several top-level
projects, including the Eclipse Project, the Modeling Project, the
Tool Project, and the Technology project.
....
The Eclipse Modeling Project is the focal point for the evolution and
promotion of model-based development technologies at Eclipse. At its
core is EMF, which provides the basic framework for modeling. Other
modeling sub-projects build on top of the EMF core, providing such
capabilities as model transformation, database integration, and
graphical editor generation...


[For admin and other information see: http://www.mta.ca/~cat-dist/ ]


             reply	other threads:[~2009-05-30 12:07 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-30 12:07 Zinovy Diskin [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-06-02 10:38 Dusko Pavlovic
2009-06-02  8:51 Till Mossakowski
2009-05-29 19:57 Dusko Pavlovic
2009-05-29  1:24 Toby Bartels
2009-05-28 21:07 Dusko Pavlovic
2009-05-28 15:49 Uwe.Wolter
2009-05-28  7:15 David Espinosa
2009-05-27 19:33 Toby Bartels
2009-05-27 19:22 Toby Bartels
2009-05-27 16:18 mjhealy
2009-05-27 16:12 David CHEMOUIL
2009-05-27 16:08 Steve Vickers
2009-05-27 11:29 zoran skoda
2009-05-27  7:28 David CHEMOUIL
2009-05-27  6:21 soloviev
2009-05-27  3:29 Zinovy Diskin
2009-05-27  2:53 David Spivak
2009-05-26  4:46 Dusko Pavlovic
2009-05-26  1:20 Eduardo J. Dubuc
2009-05-26  0:04 Toby Bartels
2009-05-26  0:04 Greg Meredith
2009-05-25 23:53 Michael Barr
2009-05-25 21:11 Toby Bartels
2009-05-25 18:53 Vaughan Pratt
2009-05-25 13:35 Ronnie Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E1MB9j3-0004GD-9q@mailserv.mta.ca \
    --to=zdiskin@gsd.uwaterloo.ca \
    --cc=categories@mta.ca \
    --cc=dusko@kestrel.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).