Todd Blanchard has just released ObjectiveCLIPS (), a new open source project for Cocoa development on Mac OS X. ObjectiveCLIPS combine Cocoa and Core Data together with CLIPS (the original NASA’s artificial intelligence engine) and F-Script, a high-level scripting language for Cocoa. Now, Cocoa developers can design rule-based applications around their Core Data object models. The inference engine can reason about rules and apply them when needed. ObjectiveCLIPS is easily embeddable in applications.
It’s one of those things you have to do a month of research to truely appreciate though. I always take these things with a grain of salt until someone says “oh, and here’s this app I whipped up in ObjectiveCLIPS.. it’s 40 lines of code and it does [amazing thing that usually takes thousands of lines of code].” Which, really, this guy should have done..
It does look interesting. Anyone can say how it compares to say, prolog?
For anyone who is interested in a tool like this for Java, there’s a great RETE rule engine called drools (http://drools.codehaus.org). You can specify semantics in embedded java, in grovvy and even create your own domain-specific language and use it. In the next version you will even be able to model rule systems with an Excel file.
How dose this compare to prolog? Man that sucks, Prolog is a logical programming language and LISP is afunctional. Prolog isn’t realy all that usefull for real world programming (exeptions like visualprolog exitst but almost nobody uses it) compared to LISP that is usefull for normal programming but few people want to use (still has more users then most niche languages).
Personaly i find it cool that you can embed F-Script in your CLISP code but I gues this will limit you terget audiece since they will need to know LISP and Smalltalk.
CLIPS is not CLISP. CLIPS is (judging from its web site) a rule-based AI engine quite comparable to Prolog, but with extensions for procedural or object-oriented rules.
<p>And CLIPS uses a LISP syntax. Apperently they wanted to emplement a production system in LISP, but because of the cost of really good LISP tools (Allegro is expensive, but very good!) and because of the difficulty of integrating LISP code with other languages, they decited to write the production system in C, but apperently they kept the LISP syntax.</p>
<p>I bet if they were implementing this today, they wouldn’t have nearly as many problems, as many LISP environments have better support for integrating with other languages today than in the past.</p>
“Prolog isn’t realy all that usefull for real world programming”
You sincerely never had to work with linguistic analyse if you said that.
“Prolog isn’t realy all that usefull for real world programming”
You really need to get out more often!
I work at a major airline reservation system, we use prolog build and search for flight availability and pricing thousands of times a second though a database consisting of millions of flights.
Nope, I have nothing to do with linguistic analysis, and even if Prolog is useful there I wouldn’t write a game or spreadsheet in it.
it just has a LISP syntax.
CLIPS itself is a well known and popular forward chaining-based AI engine. What seems really cool with ObjectiveCLIPS is its deep integration with the Mac OS X objects. I’d be interested to know more about this.
SOPE also includes a rule engine which is inspired by the WebObjects DirectToWeb rule engine. Might be interesting in the Cocoa context as well:
http://sope.opengroupware.org/en/docs/snippets/rulesystem.html