TR: SHOE, DAML : Conflicting definitions of "Thing" ?

In the framework of the ongoing European project MOSES, we want to use the
university ontology:
http://www.cs.umd.edu/projects/plus/DAML/onts/univ1.0.daml
And linked reference ontologies:
http://www.cs.umd.edu/projects/plus/DAML/onts/docmnt1.0.daml
http://www.cs.umd.edu/projects/plus/DAML/onts/base1.0.daml
http://www.cs.umd.edu/projects/plus/DAML/onts/general1.0.daml

In the last one, you find the class "Thing" defined as a subclass of
"PhysicalObject"

<Class ID="Thing">
  <label>thing</label>
  <subClassOf resource="#PhysicalObject" />
</Class>

<Class ID="PhysicalObject">
  <label>physical object</label>
  <subClassOf
resource="http://www.cs.umd.edu/projects/plus/DAML/onts/base1.0.daml#SHOEEn
tity" />
</Class>

And at http://www.cs.umd.edu/projects/plus/DAML/onts/base1.0.daml

<Class ID="SHOEEntity">
  <label>SHOE Entity</label>
  <subClassOf resource="#Entity" />
  <comment>The preferred ancestor category of all SHOE categories defined
outside this ontology.</comment>
</Class>

<Class ID="Entity">
  <label>Entity</label>
  <comment>The preferred ancestor category of all SHOE categories.  Do not
subcategorize from this category--use SHOEEntity instead.</comment>
</Class>

So, clearly the subclassification we get from all that is as following:

Entity > SHOEEntity > PhysicalObject > Thing

On the other end, Thing is defined as the "Top Class" by DAML+OIL

In http://www.w3.org/TR/daml+oil-reference

"Two class names are already predefined, namely the classes daml:Thing and
daml:Nothing. Every object is a member of daml:Thing, and no object is a
member daml:Nothing. Consequently, every class is a subclass of daml:Thing
and daml:Nothing is a subclass of every class."

This seems consistent with OWL
http://www.w3.org/TR/2003/WD-owl-features-20030331/

"There is a built-in most general class named Thing that is the class of
all individuals and a superclass of all OWL classes."

So I suppose "Entity" is a subclass of daml:Thing? Or are they considered
equivalent?

In any case to avoid loops we have clearly to make "daml:Thing" and the
PhysicalObject subclass "Thing" distinct. But the terminology is
potentially confusing.
Have people already noticed that as an issue? If yes, how has it been
solved?

Thanks for your knowledgeable feedback

Bernard Vatant
Senior Consultant
Knowledge Engineering
Mondeca - www.mondeca.com
bernard.vatant@mondeca.com

Received on Thursday, 24 April 2003 11:52:03 UTC