Re: move oneOf - should issue be opened? (was Re: Proposed response to Martin Merry, HP)

Jeremy Carroll wrote:

>Jos De_Roo wrote:
>
>>> - JH
>>>p.s. I am also assuming when we say "oneOf" we also include
>>>"hasValue" - is that correct?
>>>
>>
>> well in a sense I don't see the relation...
>>
>
>
>
><#p> owl:inverseOf <#invP> .
><#domainP> owl:equivalentClass _:r .
>_:r owl:onProperty <#p> .
>_:r owl:hasValue <#a> .
><#oneOfA> owl:equivalentClass _:r2 .
>_:r2 owl:onProperty <#invP> .
>_:r2 owl:someValuesFrom <#domainP> .
>
>entails
>
><#oneOfA> owl:oneOf [<#a>] .
                     ^(   ^)

OK, I think I now better understand what Jim meant with "heuristic"...
Suppose, just suppose that this is a recurring pattern
then we just write a rule

{: rdf:fyi :rule29o1.
 ?P owl:inverseOf ?Q.
 ?D owl:equivalentClass ?R.
 ?R owl:onProperty ?P.
 ?R owl:hasValue ?A.
 ?O owl:equivalentClass ?T.
 ?T owl:onProperty ?Q.
 ?T owl:someValuesFrom ?D}
 =>
{?O owl:oneOf (?P ?Q ?D ?R ?A ?O ?T).:skf.
 (?P ?Q ?D ?R ?A ?O ?T).:skf rdf:first ?A.
 (?P ?Q ?D ?R ?A ?O ?T).:skf rdf:rest rdf:nil}.

and then it's even cheap, just 38 steps to find the proof
(even in the presence of the other rdfs-, xsd-, owl-rules).

But of course there are an uncountable number of such rules
and therefore the selection is an issue, but there is hope ;-)


> owl:oneOf with non singleton RHS can be derived using unionOf.

Right, now I see the relation, thanks Jeremy.


--
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/


PS

  ?O owl:oneOf (?P ?Q ?D ?R ?a ?O ?T).:skf .

  is N3 shorthand for

  ?O owl:oneOf _:L0.
  _:L1 :skf _:L0.      # a Skolem function
  _:L1 rdf:first ?P.
  _:L1 rdf:rest _:L2.
  _:L2 rdf:first ?Q.
  _:L2 rdf:rest _:L3.
  _:L3 rdf:first ?D.
  _:L3 rdf:rest _:L4.
  _:L4 rdf:first ?R.
  _:L4 rdf:rest _:L5.
  _:L5 rdf:first ?A.
  _:L5 rdf:rest _:L6.
  _:L6 rdf:first ?O.
  _:L6 rdf:rest _:L7.
  _:L7 rdf:first ?T.
  _:L7 rdf:rest rdf:nil.

Received on Friday, 16 May 2003 16:59:08 UTC