RDF Schema design pb: inheritance of properties (XML)

Leigh Dodds ldodds at INGENTA.COM
Wed Dec 1 09:36:58 CET 1999


> But there is an inheritance hierarchy that I don't know how to handle
> using W3C's specifications alone. A genus has properties values
> (e. g. flower/petals/color = 'white' ) that MUST be inherited by the
> species in this genus. The properties values of a genus CAN be
> overriden by some species in this genus.

I believe RDF handles this, see below.

> It seems that the "refines" property in XML Schema would bring the
> desired semantics, together with the "Schema Information Set
> Contribution: augmentations to instance information sets which follow as
> a consequence of schema-validation". But the uncomplete state of the W3C
> document makes me unshure.

Hmm, I'm not 100% sure either, but my feeling is that RDF is better
suited to this task than Schema.

As I understand things - we're looking to produce a generic schema for
capturing character data. In this case, "refines" could be used to extend
the schema to include attributes/elements from other disciplines.

RDF allows you to describe 'resources' independent of the structure
of the schema they conform to, and allows things like sub-classing.

> I don't see anything clearly specified in RDF and RDF Schema for
> inheritance of properties.

>>>From the RDF Schema spec : http://www.w3.org/TR/PR-rdf-schema/

"Classes themselves are often organised in a hierarchical fashion,
for example the class 'dog' might be considered a sub-class of 'animal'
which is a sub-class of 'organism' etc., meaning that any resource which is
of rdf:type 'dog' is ipso facto also of rdf:type 'animal' and so on. This
specification describes a property, rdfs:subClassOf, to denote such
relationships
between classes."

...and (describing subClassOf)...

"If class A is a sub-class of some broader class B, and B is a sub-class of
C,
then A is also implicitly a sub-class of C. Consequently, resources that are
instances of class A will also be instances of C, since A is a sub-set of
both B and C"

...and (describing subPropertyOf)...

"If the property biologicalFather is a sub-property of the broader
property biologicalParent, and if Fred is the biologicalFather of John, then
it is implied that Fred is also the biologicalParent of John."

I think these portions of the spec apply to the sort of 'inheritance' you
require - or am I missing a subtle difference here? If you wish to
provide default values for properties then I think this needs to be
addressed at an application level.

> Info. for computer men: biology has a hierarchic classification of
> species whose 4 lowest levels are: order family genus species

Heres an RDF example of this structure (I've kept it to the
lower 4 levels of the classification, ignoring Kingdom, Phylum, Class,
etc.).

<rdf:Description ID="Order">
<rdf:type
resource="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Class"/>
<rdfs:subClassOf rdf:resource="http://www.foo.com/taxonomy-schema#Class"/>
</rdf:Description>

<rdf:Description ID="Family">
<rdf:type
resource="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Class"/>
<rdfs:subClassOf rdf:resource="#Order"/>
</rdf:Description>

<rdf:Description ID="Genus">
<rdf:type
resource="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Class"/>
<rdfs:subClassOf rdf:resource="#Family"/>
</rdf:Description>

<rdf:Description ID="Species">
<rdf:type
resource="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Class"/>
<rdfs:subClassOf rdf:resource="#Genus"/>
</rdf:Description>

Here we can declare Chrysanthemum to be a subclass of species, forgive
me for not knowing the latin name...

<rdf:Description ID="Chrysanthemum">
<rdf:type
resource="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#Class"/>
<rdfs:subClassOf rdf:resource="#Species" />
</rdf:Description>

However, and this is where I'm still wrestling with RDF to an extent,
there are other ways to achieve this. For example, we may not need Genus and
Species
classes - instead modelling the Chrysanthemum genus as a class, and species
as subclasses.
Note that RDF does allow a resource to be a subclass of more than one class.

I can see a lot of work ahead in this area, and there seems to be a wealth
of
different ways to model the same ideas. I'm at present digging through the
literature to come up with some decent examples. (I hope the above was
vaguely
useful).

Cheers,

L.




More information about the tdwg-content mailing list