W3C home > Mailing lists > Public > public-cwm-talk@w3.org > April to June 2010

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

From: Tim Berners-Lee <timbl@w3.org>
Date: Tue, 20 Apr 2010 13:59:06 -0400
Cc: Olivier Rossel <olivier.rossel@gmail.com>, Semantic Web <semantic-web@w3.org>, public-cwm-talk@w3.org
Message-Id: <D8C876A6-7CC8-49F0-BEED-82E2944A23C5@w3.org>
To: Jakub Kotowski <jakubkotowski@gmx.net>

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.

> and I am not
> sure how the LIST[] expression would be translated to N3 (see for
> example rule eq-diff2).


N3 has list syntax like   ( "joe" "alan" "nick").
To have a names on you'd have to say 

	h =  (e1 e2 e3 e4 e5 e6).

in smushing mode  (cwm --closure=e) where the = (owl:sameAs) is smushed down  a single node,
or else

	h rdf:first e1; rdf:rest (e2 e3 e4 e5 e6)
  



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

> 
> What is your use case?
> 
> I'm CCing the cwm mailing list perhaps someone will know more.

Tim

> 
> Jakub
> 
> 
>> 
>> 
>> On Mon, Apr 19, 2010 at 4:25 PM, Jakub Kotowski <jakubkotowski@gmx.net> wrote:
>>> Dear Olivier,
>>> 
>>> Olivier Rossel schrieb:
>>>> Is there a reference list of all the rules to be implemented by a
>>> rules engine
>>>> to be fully compliant with RL?
>>> The rules are given already in the spec:
>>> http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules
>>> 
>>>> Or, even better, a reference implementation of OWL2-RL for an existing
>>>> rules engine?
>>> I don't know about any _reference_ implementation but there are some
>>> initial implementations - I know Ivan Herman made one and there are
>>> other (such as the SAOR reasoner [2]) that are close to OWL 2 RL which
>>> partly implement the pD* [1] semantics.
>>> 
>>> Regards,
>>> Jakub
>>> 
>>> 
>>> [1] http://linkinghub.elsevier.com/retrieve/pii/S1570826805000144
>>> [2]
>>> http://axel.deri.ie/presentations/20081029saor_ISWC_btriples_challenge.pdf
>>> 
>> 
> 
> 
> 
Received on Tuesday, 20 April 2010 17:59:09 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 20 April 2010 17:59:15 GMT