W3C home > Mailing lists > Public > www-rdf-interest@w3.org > December 1999

Re: Saying anything about anything: Comments on Harle & Fensel

From: Stefan Decker <stefan@db.stanford.edu>
Date: Wed, 29 Dec 1999 12:04:19 -0800
Message-Id: <4.2.0.58.19991229113608.015fa9c0@db.stanford.edu>
To: www-rdf-interest@w3.org

 >Stefan Decker wrote:
 >> However, there is one problem with in RDFS with properties:
 >> in RDFS a property belongs to exactly ONE class.
 >> This limits the value of schemas (ontologies).
 >
 >It isn't true :
 >
 >RDF schema forbid morethan one RANGE for properties

Ops, i mixed Domain and Range in my last email.
I had the correct argumentation in mind, but screwed up
with writing it down. Sorry for the confusion.
Now the correct version:

 >(which means that property color should always have values in class Color)
 >but as many DOMAINS as needed, not necessarily declared in the same 
RDF >model...
Sure. The problem comes when properties describe a "role", which can
be filled by different ranges for different classes.
Let me give again the "childOf"-Example (hopefully correct now...)

Classes:
--------
mammals
       dog
       human

('dog' and 'human' are subclasses of 'mammals')

property
--------
    hasChild

I would like to say:
a) hasChild : Domain: dog -> Range: dog
    hasChild : Domain: human -> Range: human

hasChild describes a "Role" which can have different ranges
for different domains.

This can not be reflected in RDFS. Instead one has to write:
(b)  hasChild : Domain: dog -> Range: mammal
                 Domain: human -> Range: mammal

Given the following instance definitions:

bobby : human
lassy : dog

(bobby is a instance of human and lassy is a instance of dog).

then

bobby  -hasChild-> lassy)

is perfectly valid given the schema.
Errors like this can not be detected using the RDF schema.

Instead one has to ensure that a property is unique for each domain
(e.g. by adding a class-prefix), which is redundant
(and this was the main point in the paper).
(e.g. something like hasHumanChild, hasDogChild).

The problem is, that a property can only be used in one class, but is
globally visible for all classes.

There is also another disadvantage of this approach:
a schema should not only be usable to check definitions for errors, but also
to derive new knowledge and to complete knowledge.
This is especially true on the web, where incomplete information is quite 
common.
An example:
Given the following instance data:

    stefan : human
     and
    stefan hasChild jana

and nothing more is known about jana, given schema (a) it is possible
to derive, that jana is human. This is not possible using schema (b).


Hope i got it correct this time....

Ciao,
	Stefan
 >
 >That is, if someone created a class Color = { red, orange, yellow, 
green, >blue, purple, white, black }
 >and a property color with ColorPen as domain, you still can add domain 
Car if >you want to.
 >
 >What you can't do is have a color property pointing to an instance of 
YOUR >class RGBcode.
 >unless you make RGBcode subclassOf Color, which sounds not so bad...


 >
 >  Pierre-Antoine
Received on Wednesday, 29 December 1999 15:09:48 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:51:42 GMT