- 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