On Mon, Apr 1, 2013 at 1:07 PM, David Jordan <[email protected]> wrote:
>
> Thanks for this input. This is not my code, nor is it how I would have 
> expressed things. I am working with another person, doing a joint Jena eval, 
> this is something he put together. He is out this week, but I am presenting 
> this stuff Wednesday.
>
> I agree that numWheels should just be a functional property. I'll come up 
> with an alternative model that I think is simpler. All he is really wanting 
> to demonstrate is that IF you create a motorcycle, that the property 
> :numWheels will have a value of 2, based on a hasValue constraint on the 
> property. Can this be done without the use of an equivalent class?

Yes, the subclass axiom

Motorcycle subClassOf (value numWheels 2)

will licit the OWL inference

IF x a Motorcyle THEN x a (value numWheels 2),

and from

x a (value numWheels 2)

x numWheels 2 .

The reason I noticed the equivalent class axiom is that often times it
can signify a modeling error, particularly if the domain of the
property at hand has a domain that is more general than the equivalent
class.  That didn't sound all that clear, so here's an example:  given
a property, say, hasNumberOfTeeth that has domain Animal.  We want to
assert that humans have 32 teeth, and that Humans are a subclass of
Animal.  So in defining Human we'd have

Human subClassOf Animal
Human subClassOf (value hasNumberOfTeeth 32)

so if we know that something is a Human, we know it's an animal and
that it has 32 teeth.  However, if we described Human with

Human subClassOf Animal
Human equivalentClass (value hasNumberOfTeeth 32)

then *anything* with 32 teeth is now a Human (since the classes are
equivalent), and that's not right, since, for instance

Giraffe subClassOfAnimal
Giraffe subClassOf (value hasNumberOfTeeth 32)

and Giraffe and Human should be disjoint.

//JT

Reply via email to