spiro@a.gp.cs.cmu.edu (Spiro Michaylov) (12/03/89)
The following (rather old) post was recently brought to my attention, since I don't normally read this newsgroup: >From: brady@udel.edu (Joseph Brady) >Newsgroups: comp.ai.shells >Subject: Re: constraints in ES Shells >Keywords: constraints, trilogy >Message-ID: <7248@uklirb.UUCP> >Date: 3 Nov 89 22:24:53 GMT >Article-I.D.: uklirb.7248 > >The product 'trilogy' is a logic programming language that uses >constraints. I can find no other language that includes >constraints. 'trilogy' is not an expert system shell, however. > > >The product is marketed by Complete Logic Systems Inc, >741 Blueridge Ave, North Vancouver BC Canada, V7R 2J5, >telephone 604 986 3234. After looking at the original post that raised this issue, I'm not sure how relevant the above is to the original question, but I would like to at least correct one aspect of Mr Brady's message. Trilogy is one of a number of rule-based constraint languages languages that have been designed, studied, implemented and even used over the last three or four years. These are now commonly refered to as Constraint Logic Programming (CLP) languages. What these languages have in common is that the unification operation in traditional logic programming languages is replaced by the solving of more general constraints over a more general domain. They differ in the way in which they approximate the CLP scheme, which is their semantic model, and the domain and kinds of constraints they solve. All of them are quite Prolog-like. Some of them may take the definition of "constraints" much further than the AI community usually does. None of them are ES shells. Presently existing languages & systems (in alphabetical order to avoid a flamefest) include: CHIP: Constraints on small sets of integers. Also rational arithmetic and more. Particularly well suited to combinatorial problems, like those that arrise in telecommunications. Originates from the European Computer Research Center in Munich. Commercial version being developed by Bull (French computer company). CLP(R): Domain is uninterpreted functors over real arithmetic terms. Floating point approximation to reals is used. Particularly suited to problems needing both symbolic reasoning and arithmetic. Originates at Monash University, Australia, and has more recently floated to the USA. Available from Monash (cheap) and soon IBM (free) to research users, and by private negotiation with one or the other for commercial use. Prolog-III: Uninterpreted functors over booleans, rational arithmetic, and words. Rational arithmetic is done exactly. The resulting numerical soundness and the boolean constraints are the major strengths. Originates at the University of Marseille, France. (Now available for big bucks -- can't remember from where). Trilogy: Don't know much about it apart from what is in Mr Brady's post. I vaguely remember that you *don't* have to sell family members into slavery to be able to afford it, though. Other less well-known CLP languages include CAL, CLP*, CLP(sigma*), HCLP, Lambda Prolog, LOGIN, Prolog-II, and others that I hope I won't get flamed for forgetting. BTW, I should declare a vested interest: I'm closely involved with the CLP(R) effort. So, I don't know if all this is of any interest to this group, but if enough interest is expressed I can post more information about any aspect of this that people want to know about. Spiro Michaylov School of Computer Science Carnegie Mellon University (spiro@cs.cmu.edu)