Re: Some thoughts on the semantics of domain and range (was: Re: RDFS bug "A property can have at most one range property")

From: Dan Brickley <>
Subject: Re: Some thoughts on the semantics of domain and range (was:   Re:             RDFS    bug "A property can have at most one range property")
Date: Thu, 14 Sep 2000 10:13:31 +0100 (BST)

> For eg: take the authors/Persons/Documents example. We can say
> domain(author,Document).
> Someone else might subsequently grumble that this was a bad bit of
> modelling, since (say) Songs can also have an author. Now if they want
> to re-use the 'author' relation on some resource of type Song, it'll
> (with conjunctive semantics) imply that their song is also a document.
> And for sake of this exammple, people don't like that. So they go create
> a new similar-but-not-the-same property s2:songAuthor. Since this was
> before rdfs:subPropertyOf, this was seen as a bad thing, so we weakened
> (voided) the semantics of rdfs:domain to encourage property re-use at
> the expense of supporting inference.
> So, the argument at the time was that disjunctive semantics will lessen
> this tendency to have lots of redundantly similar properties (author,
> s2:songAuthor, s3:technicalAuthor). From what I've seen of RDF
> implementations, people (including yourself) are often assuming the spec
> says the expected thing, rather than what it actually says. Combine that
> with the existence of rdfs:subPropertyOf, which provides some basis for
> hanging together hierarchical families of similar-but-not-the-same rdf
> properties (author, songAuthor, techAuthor etc), and I think there's a
> case to be made for tightening the semantics of rdfs:domain.

The solution to this problem that has been used in many frame systems and
throughout the description logic community is to have the range of a
property to be specified piecewise.  In each domain of interest you state
what the range of the property is for that domain.

For example, you would state that author relates Document to Person and
elsewhere that author relates Song to Person.  You can also state that
author relates Bar to Foo, if that is what is appropriate for the author of

Now in this scheme there is no global domain or range for author (yet).  If
you have a new kind of thing you can give it an author property and
determine what the appropriate range for author is in this domain.
As far as typing goes, you can easily determine that the author of a
Document is a Person. 

This scheme extends quite easily to subdomains, subranges, and
subproperties.  If you have a special kind of domain, say EnglishDocument,
you can state that the author of an EnglishDocument has to be an
EnglishSpeaker.   If EnglishDocument is a subclass of Document, then
authors of this kind of document also are authors of a Document and thus
must also be Person, even if EnglishSpeaker is not a subclass of Person.

You can add global domains and ranges to this localized scheme if you want,
but then their main purpose is to prevent properties being used outside the
initial domain.  Under this purpose, the conjunctive semantics is entirely
appropriate if you want to allow for multiple domains and ranges.
However, the restriction to a single domain and range is also defensible.

Peter Patel-Schneider 

Received on Friday, 15 September 2000 08:32:02 UTC