RE: DAML+OIL: Questions & Improvements.

Hi Dany,

On January 26, King . Dany writes:
> Hello Ian,
> 
> Thanks for your comments...  I agree that RDF is a meta-language; however
> it's purpose is to describe resources on the web.  DAML+OIL, on the other
> hand, is meta-language for defining ontologies.  DAML+OIL could be
> implemented in a number of ways.  At the moment, the DAML+OIL is being
> implemented with RDF.  It is my understanding that the use of RDF is for
> syntax only, because the semantics of DAML+OIL differs greatly from mere
> resource description. Thus, the root DAML+OIL ontology should contain the
> primitives of the meta-language used to define it (rdfs:Class, rdf:Property,
> rdf:ID, etc.).  However, instances of DAML+OIL (ontologies built using the
> DAML+OIL meta-language and their resulting instances) should only contain
> DAML+OIL primitives (see question @@ in original email). Although there is a
> 1 to 1 mapping on many  of the DAML+OIL primitives to the RDF primitives
> (this is true only because RDF syntax is being used), there is at least one
> case which has no mapping: the concept of a class.

The thinking behind the use of RDFS is that it already has the basic
elements of an ontology language - classes, properties, constraints,
and subclass and subproperty relations - and that DAML+OIL should
clarify (semantically) and extend (in some respects) what is there
already. DAML+OIL tries to maximise backwards compatibility by using
as much of RDFS as possible and only extending it where necessary. For
example, DAML+OIL uses the RDFS subClassOf relationship to (partially)
order the classes in an ontology. The advantage with this is that a
DAML+OIL ontology is partly accessible to any agent that understands
RDFS. The reason for defining the daml equivalent classes and
properties was simply to save users from having to use namespace
prefixes (in which they fail anyway, unless the ontology is defined in
the same namespace as the daml+oil language definition).

> An RDF class is both structurally and semantically different from a DAML+OIL
> class.   The base class in RDF is a "rdfs:Resource" which is of "rdf:type",
> "rdfs:Class".  In RDF there is no concept of a "NoResource", the complement
> of the base class.  Semantically speaking, in DAML+OIL the base class is
> "Thing" which is defined as being the union of "Nothing" and the complement
> of "Nothing".  Syntactically speaking, "Thing", "Nothing", and the
> complement of "Nothing" are built from "rdfs:Class".   Thus, using
> "rdfs:Class" to instantiate a DAML+OIL class doesn't make sense.
> Conceptually I agree that every modeled concept in DAML+OIL is a "Thing",
> however this must be explicitly defined in the syntax.  Otherwise, there
> would be no need to define a DAML+OIL "Thing" in the first place.    

An RDFS class can be anything from a simple class of objects up to the
paradoxical class of all classes. DAML+OIL gives a semantics to the
simplest incarnation of rdfs:Classes (classes of objects), each of
which is an instance of rdfs:Class in its capacity as the class of
classes. Two classes that are often of particular interest are the
empty class and the class of all objects, and in daml+oil.daml it is
asserted that these classes are equivalent to Nothing and Thing
respectively, both of which are otherwise ordinary DAML+OIL
classes. In fact there is no need to define Thing (or Nothing) as the
union (intersection) of any class and its complement can be used
instead - Thing and Nothing are simply provided as a syntactic
convenience. So if by "base class" you mean the class which is a
superclass of all daml+oil classes, then that is daml+oil:Thing; if
you mean the class of classes that is the type of all daml+oil
classes, then that is rdfs:Class.

> Also, I agree that every modeled concept in DAML+OIL should be a subclass of
> the base class, "Thing".  However, this should be an inherited property of
> every modeled concept. In other words, there should be no need to explicitly
> define a subClassOf relation to a "Thing".  In Solution B, I described a
> means of instantiating DAML+OIL concepts by using "Thing".  Per RDF syntax,
> concepts modeled in this way would be of "rdf:type", "Thing".  Though it is
> not a subClassOf relation, it may be as close as the RDF syntax will allow
> us to get.  One way to implement it may be to add a subClassOf relation of
> "Thing" to "Thing".  That is, make "Thing" a subclass of "Thing".  Hence
> everything of "rdf:type", "Thing" would be a subclass of "Thing".  (see
> attachment: Thing2.ppt, Solution B prime, figure 4)

Every modeled concept in DAML+OIL is a subClassOf Thing by
definition. It is true that this may not be explicit, but this can be
the case for DAML+OIL subClassOf relations in general (i.e., they can
be implied from the semantics). If you want to make this particular
relationship explicit, simply assert it for every class in the
ontology (or for every class that isn't already asserted to be a
subClassOf some other class). It is easy to get a tool to do this - in
fact if you use OilEd to design your ontologies you can choose to add
explicit subClassOf relations for all subsumption relations implied by
the semantics. Asserting daml+oil classes to be of type Thing makes
Thing a class of classes, and thus no longer a daml+oil class (in the
sense that daml+oil provides no semantic interpretation for such a
class).

Regards, Ian

Received on Saturday, 27 January 2001 12:13:35 UTC