Re: MDA, OCL and prolog

Re: MDA, OCL and prolog

From: Daniel Jackson <>
Date: Thu, 18 May 2006 08:06:40 -0400
Message-Id: <>

This isn't quite an answer to your question, but it's related.

We have a language called Alloy that is very similar to OCL (see, and my book, links at 
~dnj). Our tool, the Alloy Analyzer, analyzes models by constraint  
solving. We're now looking into using Alloy as an constraint  
programming language. We have a new engine to allow it to be used as  
an API, and we're experimenting on a variety of problems: network  
configuration (done by Sanjai Narain at Telcordia), student course  
planning (a masters thesis in my dept), and telephone features (with  
Nokia and the W3C). Our technology is based on SAT and not Prolog,  
because it seems better suited to a relational language like Alloy  
(or OCL), and because is doesn't restrict us to Horn clauses -- we  
have aribtrary quantifiers and negation.


On May 18, 2006, at 3:34 AM, Jean-Marie Favre wrote:

> Bonjour,
> Basically the question is : is anybody have some references about work
> between OCL constraints and prolog (more generally constraint  
> programming) ?
> .
> We are starting with a student and a colleague expert in constraint  
> programming
> a study to evaluate the current state of the art between MDA/OCL  
> and the
> prolog technical space (here prolog is just an example, but at  
> least it clarify
> what we want). I mean OCL can serve both as a constraint language  
> and as
> a query language. In the MDA community, the emphasis being on code  
> generation
> nd direct executability, OCL is used to implement body of methods,  
> initial values, etc.
> That is, constraints of the form  self.X = ... where ... is an OCL  
> constraint are
> well support by tools. With this restriction OCL can be seen as a  
> language of expression
> or functional language. I guess that commercial tools based on OCL  
> like Bold from
> borland, really support this subset of OCL.
> On the other way around to specifiy software one can write  
> invariants, pre and post
> conditions but obviously you can  have arbitrary constraint such  
> as   self.X + self.Y < self.Z
> or whatever. The usual process is at some point to convert manually  
> these general
> constraints into expressions.
> They are some work that goes from MDA technical space to
> functionnal programming such as MDA to Maude (if I'm not
> wrong they are no such thing such as a constrain solver in this case)
> but what about   MDA <--> prolog for instance. My understanding
> is that OCL and let's say prolog  comes from different research
> communities, hence they are no so many work trying to join them.
> If MDA <--> Maude is a really nice merge (see for instance the  
> MOMENT project,
> what about MDA <--> prolog
> Thanks for any comments
> Jean-marie
> p.s. if neither a specialist of maude, nor prolog, nor constraint  
> programming.
> That's why I'm asking that question :-)
> -- 
> ====================================================
> Jean-Marie Favre
> ====================================================
> To remove yourself from this list please mail puml-list- 
> with a message containing the word "unsubscribe".
Received on Thu 18 May 2006 - 13:06:50 BST