W3C home > Mailing lists > Public > public-rif-wg@w3.org > March 2010

Re: ACTION-733 started: my very belated OWLRL-RIF review

From: Dave Reynolds <dave.e.reynolds@googlemail.com>
Date: Tue, 02 Mar 2010 16:14:38 +0000
Message-ID: <4B8D396E.2080109@gmail.com>
To: Axel Polleres <axel.polleres@deri.org>
CC: RIF <public-rif-wg@w3.org>
Hi Axel,

On 19/02/2010 14:46, Axel Polleres wrote:
> Hi all,
>
> I just realise that my formerly proposed correction for (* eq-diff2 *) also needs to be carried over to the appendix of
> http://www.w3.org/2005/rules/wiki/OWLRL
>
> cf. http://www.w3.org/2005/rules/wiki/OWLRL#Appendix:_OWL_2_RL_to_RIF_translation
>
> the template rule for
>
> (?a rdf:type owl:AllDifferent)
> (?a owl:members ?l)
>
> in Section 7.2 templateRules algorithm has the same problem that and needs to be changed likewise!

Thanks. I hadn't updated that section since there was some question 
about whether to retain it but I've fixed it now.

Dave

>
> cheers,
> Axel
>
> On 15 Sep 2009, at 09:34, Axel Polleres wrote:
>
>> Sorry, I had completely delayed this... here my first few comments (upto end of section 4.3), the rest to follow shortly...
>>
>>
>>
>> 1)
>> the suggestion of rif:error as a unary predicate is a good idea, but conflicts with the use of rif:error as a 0-ary prediacte in the RDF-OWL-compatibility document [1]
>>
>> 2)
>> I am afraid there is a problem with rule (* eq-diff2 *)... It does not prevent that ?x and ?y bind to the SAME member of the list, where no inconsitency should apply... the solution is to extend the memeber predicate with an index. and let the rule apply to differently indexed members only, i.e. :
>>
>>
>>   Group (
>>    Forall ?list ?hd (
>>      _member(?list ?hd 0 ) :- ?list[rdf:first ->  ?hd] )
>>
>>    Forall ?list ?tl ?x (
>>      _member( ?list ?x External( func:numeric-add( ?i+1 ) ) ) :- And( ?list[rdf:rest ->  ?tl] _member(?tl ?x ?i) ) )
>>   )
>>
>> then (* eq-diff2 *) can be rewritten to:
>>
>>    Forall ?x ?y ?l (
>>     rif:error("AllDifferent") :- And (
>>         ?l[rdf:type ->  owl:AllDifferent]
>>         _member(?l ?x ?i) _member(?l ?y ?j)
>>         External( pred:numeric-not-equal ( ?i ?j ) )
>>         ?x[owl:sameAs->?y] ) )
>>
>> And analogously for   (* prp-adp *) and (* cax-adc *)
>>
>>
>>
>> 3)
>> Haskey -->  HasKey
>>
>>
>>
>>
>>
>>
>> 1. http://www.w3.org/TR/rif-rdf-owl/#Appendix:_Embeddings_.28Informative.29
>>
>>
>>
>>
>>
>>
>>
>> --
>> Dr. Axel Polleres
>> Digital Enterprise Research Institute, National University of Ireland, Galway
>> email: axel.polleres@deri.org  url: http://www.polleres.net/
>>
>>
>>
>
>
Received on Tuesday, 2 March 2010 16:15:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 March 2010 16:15:35 GMT