W3C home > Mailing lists > Public > public-rif-comments@w3.org > April 2012

Questions concerning the OWL 2 RL in RIF Document

From: Hendrik Marx <marx.hendrik@googlemail.com>
Date: Fri, 30 Mar 2012 15:36:54 +0200
Message-ID: <CADU_cF+g9yCk-rgoFOVbcdMHqCD5tEEWDBa-pQPNFZ4Or5XOUQ@mail.gmail.com>
To: public-rif-comments@w3.org
Hello,

I have a few questions concerning
http://www.w3.org/TR/2010/NOTE-rif-owl-rl-20100622/#Appendix:_OWL_2_RL_to_RIF_translation.

In the table with the Translation of the OWL Pattern into RIF some of
the rules appear to be incorrect or presented in a way I don't
understand:

The Rule #prp-adp with the Pattern (?l rdf:type
owl:AllDisjointProperties) is translated to:

for(?x in ?l) {
 for(?y in ?l, != ?x) {
   {$
 Forall ?p1 ?p2 (
   rif:error() :- And (
       ?x[?p1->?y ?p2->?y]) )
   $}
 }
}

should that not rather be:

for(?x in ?l) {
 for(?y in ?l, != ?x) {
   {$
 Forall ?o ?v (                   (*changed*)
   rif:error() :- And (
       ?o[?x->?v ?y->?v]) )     (*changed*)
   $}
 }
}

this would in my understanding correspond to this:


T(?x, rdf:type, owl:AllDisjointProperties)
T(?x, owl:members, ?y)
LIST[?y, ?p1, ..., ?pn]
T(?u, ?pi, ?v)
T(?u, ?pj, ?v)

from here: http://www.w3.org/TR/owl2-profiles/#Axioms_3 , Table 5., row: prp-adp

and to the rule:

 (* <#prp-adp> *)
 Forall ?x ?y ?o ?v ?l ?ix ?iy ?r (
   rif:error() :- And (
       ?r[rdf:type -> owl:AllDisjointProperties]
       ?r[owl:members -> ?l]
       External(pred:list-contains(?l ?x))   ?ix =
External(func:index-of(?l ?x))
       External(pred:list-contains(?l ?y))   ?iy =
External(func:index-of(?l ?y))
       External( pred:numeric-not-equal ( ?ix ?iy ) )
       ?o[?x->?v ?y->?v]) )


from here: http://www.w3.org/TR/2010/NOTE-rif-owl-rl-20100622/#Appendix:_OWL_2_RL_ruleset_-_presentation_syntax.

Pretty much the same issue in #cax-adc:

should

for(?x in ?l) {
 for(?y in ?l, != ?x) {
   {$
 Forall ?c1 ?c2 (
   rif:error() :- And (
       ?x[rdf:type->?c1 rdf:type->?c2]) )
    $}
 }
}


not rather be:

for(?x in ?l) {
 for(?y in ?l, != ?x) {
   {$
 Forall ?something (
   rif:error() :- And (
       ?something[rdf:type->?x rdf:type->?y]) )
    $}
 }
}

in correspondence to:

T(?x, rdf:type, owl:AllDisjointClasses)
T(?x, owl:members, ?y)
LIST[?y, ?c1, ..., ?cn]
T(?z, rdf:type, ?ci)
T(?z, rdf:type, ?cj)

from here: http://www.w3.org/TR/owl2-profiles/#Axioms_3 , Table 7., row: cax-adc

?
Received on Sunday, 1 April 2012 12:23:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sunday, 1 April 2012 12:23:35 GMT