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
-~----------~----~----~----~------~----~------~--~---

Reply via email to