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
