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