- 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
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 UTC