W3C home > Mailing lists > Public > semantic-web@w3.org > March 2005

Re: fast inferencing with jena and "?"

From: Ray Racine <rracine@adelphia.net>
Date: Mon, 21 Mar 2005 19:32:23 -0500
To: Damian Steer <damian.steer@hp.com>
Cc: Danny Ayers <danny.ayers@gmail.com>, semantic-web@w3.org, Leo Sauermann <leo@gnowsis.com>
Message-Id: <1111451543.5268.45.camel@aragon.racine>

On Mon, 2005-03-21 at 11:15 +0000, Damian Steer wrote:

> The jena forward-chaining reasoner is an implementation of Rete, btw.

Outside of hard coding, the Rete algo is just about optimal.  Over the
last year a buddy of mine from work has been working on and off on a
Rete implementation in Java based on the Rete/UL algo.  Which is based
on some Rete optimizations for huge rule sets in SOAR.
http://sitemaker.umich.edu/soar

SOAR has been been through a number of rewrites over the years with
extensive optimizations.  Funny enough, unlike the typical Clips/Jess
implementations SOAR is inherently "quad" based (context/state + triple)
long before quads became SW fashionable.

Anyway, his Rete implementation contains many of the SOAR optimizations.
We typically test it in the > 100K production rules and > 100K
facts/triples regularly and is capable of more.  Its roughly 3x faster
then Jess as well as being internally triple based.

But what is really interesting and unique for non-commercial Rete, is
the fact that his implementation is multi-threaded.  A multi-threaded
Rete can support for example parallel "queries" of a working memory
which involve LHS matching and RHS side assertion simultaneously as if
each was serially independent.  You could also start for a common Rete
and apply two different sets of rules in a different context on two or
more threads simultaneously, yet share the common base fact set.  Think
"core set of facts", apply two or more different "belief systems" of
rules in parallel for example. We call it multiscoped.

It also has a full blown embedded Scheme scripting interpreter to allow
for arbitrary join condition experimentation. ( The excellent
http://sisc.sf.net )

I believe he is trying to do some kind of GPL for non-commercial use
approach which may be an issue. Outside of OPS/J it may very well be the
fastest Java Rete implementation around.

You also might consider Drools at http://drools.org which is
unencumbered.

If anyone sends me an email I'll forward it to him at work and hook you
up.


Ray
Received on Tuesday, 22 March 2005 04:57:50 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:41:45 UTC