W3C home > Mailing lists > Public > www-webont-wg@w3.org > May 2003

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

From: Jos De_Roo <jos.deroo@agfa.com>
Date: Fri, 16 May 2003 22:58:16 +0200
To: "Jeremy Carroll <jjc" <jjc@hplb.hpl.hp.com>
Cc: Dan Connolly <connolly@w3.org>, Ian Horrocks <horrocks@cs.man.ac.uk>, Jeremy Carroll <jjc@hpl.hp.com>, www-webont-wg@w3.org, Jim Hendler <hendler@cs.umd.edu>
Message-ID: <OF209C3F3C.10CC11B0-ONC1256D28.007007F8-C1256D28.007332A5@agfa.be>


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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:58:00 GMT