W3C home > Mailing lists > Public > semantic-web@w3.org > October 2005

Re: why are properties decoupled from classes

From: Frank Manola <fmanola@acm.org>
Date: Wed, 26 Oct 2005 16:15:44 -0400
Message-ID: <435FE3F0.6060408@acm.org>
To: Jos de Bruijn <jos.debruijn@deri.org>
CC: semantic-web@w3.org

Jos de Bruijn wrote:
> Find some more comments inline :)

Ditto.

> 
snip
> 
> I definitely like the capability of RDF to capture semi-structured data.
> I would not want, like in a classical OO system, that every node in an
> RDF graph is typed and that only those properties which appear in the
> class definition may be used.
> 
> My point is that in most cases it does not make sense (at least to me)
> to describe (constraints on) properties outside of the context of a
> class.
> 

I think we're generally in agreement.  As you say, there are certainly 
lots of cases where it only makes sense to constrain properties as 
applied to a particular class.  Some of the OWL constraints are intended 
to be steps in this direction.  However, there are other cases where it 
can make sense to constrain properties more generally.  A lot of this 
depends on how you're modeling things when you define your vocabulary. 
See below.

> 
>>>Another example is the range constraint. One may want to use the same
>>>property for different classes, but with a slightly different range.
>>>It seems totally reasonable to say:
>>>age rdfs:range xs:nonNegativeInteger
>>>
>>>This seems to work quite well for the age (in years) of persons.
>>>However, this does not work for, for example, the age of particles in a
>>>particle accelerator.
>>>

This is a good point.  There certainly may be subtle (or not-so-subtle!) 
distinctions between the semantics of a general concept like "age" as 
applied to different kinds of things. However, remember that in RDFS 
you're not really defining *the* "age" property, but a *particular* 
"age" property, identified by a URI.  Best practices for modeling is a 
subject for separate (and lengthy!) discussion, but I could certainly 
see some possible justification for a model having, rather than one 
property with different class-based constraints, two different 
properties (say foo:age and bar:age, perhaps as subproperties of a more 
general one) for this example.  In that case, different range 
constraints on the two properties might be appropriate.  However, YMMV.
In any event, I think we agree that we want to be able to say exactly 
what we mean, without the language somehow forcing us to say more or 
less than that!

Cheers!

--Frank
Received on Wednesday, 26 October 2005 20:11:07 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:36:08 GMT