Yes. I can make a strong endorsement for Kodkod, a Java-based relational model finder. http://alloy.mit.edu/kodkod/ I used it fairly extensively last year to solve scheduling problems, and I've corresponded with its creator.
One problem with Datalog-style reasoners is that, because they want to guarantee a certain execution time, they give up much of the expressiveness of relational logic. Instead, Kodkod provides the correct interface to relational logic, and relies on an underlying SAT solver (such as MiniSat) to solve the problems in a reasonable amount of time. This has proven to be a good approach, because SAT solvers have been improving at a tremendous rate over the last 10 years, and are now blazingly fast. Another advantage of Kodkod over, say, FaCT++ or Pellet (which also provide open-world semantics) is that you are not tied into all the assumptions of the semantic web (OWL, RDF, XML, etc), which can get pretty clunky when all you want is an in-memory reasoner. You only have to be reasonably comfortable with relational logic (e.g. "for all x: Red x") to be able to use Kodkod. The only deficiency I found in Kodkod was that, because the author wanted to support an audience whose primary language was Java, the user must express their queries using a Java class-based syntax. But this seems like a perfect use of Clojure, which could provide a much more natural query syntax. On Thu, Feb 5, 2009 at 4:29 AM, Rich Hickey <richhic...@gmail.com> wrote: > > > On Feb 4, 5:22 pm, John Fries <john.a.fr...@gmail.com> wrote: > > Guaranteed-termination is very desirable. However, you can have > guaranteed > > termination with an open-world assumption just as well. And I think an > > open-world assumption does a better job of mimicking human reasoning. > > > > Do you have a specific reasoner/algorithm in mind? > > Rich > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---