Re: disjoint classes in OWL

> [Jeff Lansing]
> Given the following OWL ontology (in an abstract syntax) is it possible 
> to determine anything about the overlap of the classes 'leg' and 'fin'?
> 
> Ontology(
>  Class(animal)
>  Class(part)
>  Class(fin
>   subclassOf(part))
>  Class(leg
>   subclassOf(part))
>  Class(fish
>   subclassOf(animal)
>   complementOf(restriction(has someValuesFrom (leg)))
>   restriction(has someValuesFrom (fin)))
>  Class(reptile
>   subclassOf(animal)
>   complementOf(restriction(has someValuesFrom (fin)))
>   restriction(has someValuesFrom (leg)))
>  ObjectProperty(has
>   domain(animal)
>   range(part))
>  DisjointClasses(fish reptile)
> )
> 
> Presumably, if the writer went to the trouble of putting in the 
> distinguishing restrictions, they ('fin' and 'leg') have to be different 
> classes, but that's just presupposition, and not implication.
> 

I think Lewis Carroll could have answered this one, possibly after a
quick glance at the Owl manual.  (Actually, translating your notation
into Owl requires a few extra subclass statements.  E.g., I think you
meant 
   Class(fish
     subclassOf(animal)
     subclassOf(complementOf(restriction(has someValuesFrom (leg))))
     subclassOf(restriction(has someValuesFrom (fin)))))

All you've said is that fish have fins and do not have legs, and
similarly for reptiles, mutatis mutandis.  So if there are any fish
there must be fins that are not legs, and if there are any reptiles
there must be legs that are not fins.  But nothing is said about
whether there are any things that are both fins and legs.

> But is 
> there anything more that can be said?

You can say 

   Class(fin
     subclassOf(part)
     disjointFrom(leg))

Is that what you meant?

-- 
                                             -- Drew McDermott
                                                Yale University CS Dept.

P.S. Thanks for the opportunity to say "mutatis mutandis."

Received on Friday, 30 January 2004 14:10:08 UTC