Re: Implementing OWL2-RL with a RETE rule engine.

On Tue, 2010-04-20 at 13:59 -0400, Tim Berners-Lee wrote:
> On 2010-04 -19, at 15:29, Jakub Kotowski wrote:
> 
> > Dear Olivier,
> > 
> > Olivier Rossel wrote:
> >> do you think that cwm's architecture is suitable as a rule engine for OWL2RL?
> > 
> > I'm not an expert on cwm (or OWL for that matter) but I think that most
> > OWL 2 RL rules are expressible in N3 rules. You would have to come up
> > with a way to translate the rules with "false" in the head
> 
> Typically, one generates a triple putting something into class :Error and then checking the result for that.

I tend to look for { ?X owl:differentFrom ?X }, but yes, something like
that.


> > Anyway, by directly translating the OWL 2 RL rules into N3 you maybe
> > would be able to do OWL 2 RL reasoning using cwm but it probably
> > wouldn't be very efficient or scalable (e.g. materializing all
> > owl:sameAs triples probably isn't the best thing to do).
> 
> cwm has a mode (cwm --closure=e) in which it smushes together two nodes 
> which are owl:sameAs each other.  That could help a little.
> 
> It may well not be scalable, but playing with the rules may be
> useful.

I see "RETE" in the subject... there are a few cwm-work-alikes
that have RETE engines and grok N3:

  http://code.google.com/p/fuxi/

  http://www.mindswap.org/~katz/pychinko/

Euler (http://www.agfa.com/w3c/euler/ ) is sometimes
really fast, too.


-- 
Dan Connolly, W3C http://www.w3.org/People/Connolly/
gpg D3C2 887B 0F92 6005 C541  0875 0F91 96DE 6E52 C29E

Received on Tuesday, 20 April 2010 18:42:21 UTC