W3C home > Mailing lists > Public > www-rdf-interest@w3.org > May 2000

Re: RDF and polymorphism

From: Dan Brickley <danbri@w3.org>
Date: Thu, 4 May 2000 16:16:33 -0400 (EDT)
To: www-rdf-interest@w3.org
Message-ID: <Pine.LNX.4.20.0005041556120.22803-100000@tux.w3.org>
On Thu, 4 May 2000, Graham Klyne wrote:
> Another approach, I understand, is to define a new class with multiple 
> rdfs:subClassOf properties, and use that for the domain and/or range of a 
> property.

Yep, that'd be another modeling style that might appeal in some cases.

> (But I'm still not entirely clear when to use rdfs:subPropertyOf vs 
> rdfs:subClassOf.)

Does this attempt help?:
(some of this can sound a bit zen, "rdfs:class is an rdfs:class" etc...)

If you have a vocabulary resource such as dc:title that is a property,
ie. a member of the rdfs:Class rdf:Property, it is the sort of thing that
can used as a label on an arc (in the graph representation of RDF). It is
a particular type of binary relationship that can hold between resources.

If you have a resource such as wordnet:Person that is a class, ie. a
member of the rdfs:Class we call rdfs:Class, it is the sort of thing
that will itself have members or instances, eg. person-3343,
employee-234234 might be considered instances of that class.

Sometimes a modeler will decide to represent something as a relationship
type (eg. 'title','creator') and sometimes as a class of things
(eg. 'Person', 'Mammal'). This is similar to the "do I use elements or
attributes" question familiar from XML/SGML, except the mismatch between
the technology decisions and modeling style is somewhat gentler. There
decision here affects whether they express
"specialisation/generalisation" relationships using sub-class or
sub-property mechanisms.
 
When you want to express property specialisation relationships (eg. that
dc:creator is more specific than, but implies, the dc:contributor
relation), you're expressing a sub-property relationship between properties.

When you want to express class specialisation relationships (eg. that all
resources that are of rdf:type wordnet:Person are also of rdf:type
wordnet:Mammal), you use sub-class.

The difference is that there's no notion of an instance of
the property dc:contributor (exept perhaps its occurence in an RDF
statement) but there is a notion of an instance of the class 
wordnet:Person. So we have different relationships that do similar, but
distinct, work.

Dan

--
mailto:danbri@w3.org
Received on Thursday, 4 May 2000 16:16:35 GMT

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