- From: Dan Brickley <Daniel.Brickley@bristol.ac.uk>
- Date: Wed, 17 Jan 2001 16:03:55 +0000 (GMT)
- To: Dave Beckett <dave.beckett@bristol.ac.uk>
- cc: Dennis van der Laan <LaanD@vertis.nl>, www-rdf-interest@w3.org
Hi Dave, On Wed, 17 Jan 2001, Dave Beckett wrote: > > The question about the multiple inheritance of rdfs:ConstraintProperty I > > didn't understand either (is it me?). You end with "Why?", but why WHAT... > > Why is it the ONLY class that has multiple inheritance or why does it HAVE > > multiple inheritance? Either case, it looks clear to me. > > I said: > >> rdfs:ConstraintProperty is the only class that is a subclass of > >> two other classes. Why? > > To me it looks like an oddity in the rdf class hierarchy and is the > only part that means RDF schema implementations have to support > multiple inheritance. Maybe this is required anyway but it isn't > explicitly described. > > If it is so clear to you Dennis, why don't you explain it? "Multiple inheritance" in RDF is in large part forced on us by having a flat space of identifiers (or identifiable objects). If each thing that might have a URI name on the Web could only belong within a single class hierarchy, we'd find ourselves in an ugly namespace rush. There's only one URI space, yet we want (as per our plentiful rhetoric about mixing metadata from decentralised communities of expertise etc etc) to say lots of different sorts of things about those self-same resources. RDF has a built-in notion of type (rdf:type), which provides a handy "off the shelf" idiom for putting things into categories. Other modelling styles are of course possible, and can serve a similar end (eg. importing UML structures over top of nodes-and-arcs rdf, using library classification schemes, using dc:type etc etc). But rdf:type is RDF's standard way of expressing category membership. In that context, disallowing "multiple inheritance" (which I'm scare-quoting only because we don't specify inheritance machinery for property values, over-riding etc) raises certain problems: - banning multiple inheritance would mean that each Web-identifiable resource could only be categorised with rdf:type within a single class hiearchy (ontology/vocabulary). This pulls against our 'anyone can say anything about anything' pluralism and creates a race to be the first to type instances. - who to believe? If multiple sources assert rdf:type claims using disparate schemas, should we infer that someone is 'wrong' or that their class hiearachies are in fact intermingled. - fragmentation: if we constrained the use of rdf:type this way, chances are folk would create similar models but use ad-hoc properties similar to rdf:type. Does that help motivate the multiple inheritance approach? Dan
Received on Wednesday, 17 January 2001 11:05:48 UTC