W3C home > Mailing lists > Public > www-rdf-logic@w3.org > April 2004

Re: Does Euler support owl:hasValue ?

From: Benjamin Nowack <bnowack@appmosphere.com>
Date: Thu, 15 Apr 2004 11:03:29 +0200
To: Seth Ladd <seth@picklematrix.net>
Cc: www-rdf-logic@w3.org
Message-ID: <PM-EH.20040415110329.275A8.1.1D@192.168.27.2>

On 15.04.2004 06:24:22, Seth Ladd wrote:
>
>
>>>I am trying to write some tests using owl:hasValue and run it through 
>>>Euler.  Unfornately, I'm not having much luck.  I am trying say "any 
>>>object that has a property "dc:subject" and a value of "foo" is an 
>>>instance of a :Foo class".  I do it with:
>>>
>>>:Foo a owl:Class ;
>>>     rdfs:subClassOf [ a owl:Restriction ;
>>>                       owl:onProperty dc:subject ;
>>>                       owl:hasValue^^xsd:string "foo" ] .
>>>
[...]
>I had originally constructed it that way due to how I read and 
>interpreted http://www.w3.org/TR/2004/REC-owl-guide-20040210/#hasValue. 
>  I'm not sure why that doesn't work, but your example (having the 
>anonymous class be the subclass of :Foo) does work.
hm, I'm not sure if it is allowed to directly state that an anonymous
class is an rdfs:subClassOf another class. the reference doc says
[[[
   The class owl:Restriction is defined as a subclass of owl:Class.
   A restriction class should have exactly one triple linking the
   restriction to a particular property, using the owl:onProperty
   property. The restriction class should also have exactly one 
   triple that represents the value constraint c.q. cardinality 
   constraint on the property under consideration [...]
]]]
but it may well be that you can do it in OWL Full or by using 
other notations which handle this internally. as Jos already 
pointed out, he is using reciprocal "rdfs:subClassOf"s, which
is semantically equal to an "owl:equivalentClass" axiom.

>Am I reading the example from the OWL guide incorrectly?

here is the example from the owl guide:
[[[
   hasValue allows us to specify classes based on the existence of
   particular property values. Hence, an individual will be a member
   of such a class whenever at least one of its property values is
   equal to the hasValue resource.

   <owl:Class rdf:ID="Burgundy">
     ...
     <rdfs:subClassOf>
       <owl:Restriction>
         <owl:onProperty rdf:resource="#hasSugar" />
         <owl:hasValue rdf:resource="#Dry" />
       </owl:Restriction>
     </rdfs:subClassOf>
   </owl:Class>

   Here we declare that all Burgundy wines are dry. That is, their
   hasSugar property must have at least one value that is equal to
   Dry.
]]]

yes, the first paragraph can quite easily be misunderstood:
in the second sentence the "such a class" means the anonymous
class described by the owl:Restriction , not the "Burgundy" 
class. put in other words, any individual with a 
hasSugar-property value of "Dry" is a member of the (unnamed)
"hasSugar=Dry"-class.
(then, in a *second* step, this anonymous "hasSugar=Dry"-class
is subclassed by "Burgundy". the second paragraph describes the
semantics: any "Burgundy" individual is also a "hasSugar=Dry"
individual, but not neccessarily the other way round; there may
be members of "hasSugar=Dry", which are not a member of the 
"Burgundy" class.)


best,
benjamin

--
Benjamin Nowack

Kruppstr. 82-100
45145 Essen, Germany
Received on Thursday, 15 April 2004 05:14:35 GMT

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