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