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

RE: Inheritance

From: Hans Teijgeler <hans.teijgeler@quicknet.nl>
Date: Wed, 6 Apr 2005 12:26:25 +0200
Message-Id: <200504061026.j36AQODw004189@vmx90.multikabel.net>
To: "'Jeen Broekstra'" <jeen@aduna.biz>
Cc: <semantic-web@w3.org>


Thanks for your response! I was rather naïve, huh?

When I understand this well, it is impossible to write something like a
catalog with RDF/RDFS, such as for a Volkswagen Passat where one has the
choice of engines, shift gear vs automatic, colors, etc, etc. Would one need
OWL for that, and can OWL do that? When I read the OWL documentation I doubt
that.In the process industry we must model esoteric things like pump curves
and multidimensional properties (our definition of property is totally
different). But again, I am a newcomer in this world of the Semantic Web, so
I may very well underestimate OWL.

With respect to the range and domain matter I found the impossibility to
define this locally very impractical to start with, with the results like
you described below ("but will infer that your dinnerTables are

I have been working with XML Schema for the last four years. The nice thing
about it is that you can create a schema as a template, and then generate an
XML file from it (it needs population of the undefined attributes). So I had
expected that RDF Schema could do the same, and produce skeleton RDF/XML
files. Nope!

I have downloaded Protégé a while ago, but unfortunately they just had a new
version with a completely different layout, but with the old user guide. So
it will take some time to plough through it. My problem with software always
is that I expect too much from it.

As to the browser subject: I read, much to my surprise, in Appendix A of the
Primer: "...RDF uses URIrefs only to identify things, while browsers also
use URIrefs to retrieve things." I was surprised, because why on earth would
you use a "Resource Description" Framework without being able to find that
description? So, a browser should be able to find the resource at its URI,
and then give me the information about that resource that I require. Again,
too naïve, I guess. 


-----Original Message-----
From: Jeen Broekstra [mailto:jeen@aduna.biz] 
Sent: woensdag 6 april 2005 11:28
To: Hans Teijgeler
Cc: semantic-web@w3.org
Subject: Re: Inheritance

Hans Teijgeler wrote:

> Assume we have:
> myclass:PassengerVehicle  rdf:Type  rdfs:Class 
> myclass:FourPassengerVehicle  rdfs:subClassOf myclass:PassengerVehicle 
> myclass:FourPassengerVehicle  myprops:seats  "4"

This is incorrect - or at least, probably not what you intended. Here, you
are assigning four seats to the *class* FourPassengerVehicle. This does
_not_ express that instances of this class have four seats.

> myclass:Volkswagen  rdfs:subClassOf  myclass:FourPassengerVehicle 
> myobjects:myCar  rdf:Type  myclass:Volkswagen
> then:
>     * does "normal" RDF/RDFS-compliant software "know" that all
>       instances of myclass:Volkswagen have 4 seats?
 >     * and does it know that myCar has four seats?

No. It does not even know that instances of FourPassengerVehicles have four

What you are looking for is a cardinality constraint. This is not
expressible in RDF/RDFS unfortunately, you will need OWL for this.

> or in other words: does specialization (rdfs:subClassOf) and typing
> (rdf:Type) actually and reliably lead to inheritance of properties?

It does, actually, but only in a very limited fashion, not in the way you
want it. Using rdfs:domain and rdfs:range properties can be coupled with
classes, and these are inherited.

In your example, you could add:

myprops:seats rdfs:domain myClass:PassengerVehicle.

...indicating that the seats property can be used on instances of
PassengerVehicle. It will by inference be true that it can also be used on
any instances of subtypes of PassengerVehicle.

An additional 'difficulty' if you are coming from an OO/closed-world mindset
is that in RDF, domain and range are not actual restrictions: 
if you have the above domain restriction, it is still perfectly legal to
define some instance of an entierely different class, say,
myClass:dinnerTable, and have its instances use the seats property. 
Most RDF processors will not interpret this as an error, but will infer that
your dinnerTables are PassengerVehicles.

...which may or may not be what you intended :)

> PS I have been unable to locate such "normal" software (IDE, 
> validators, browsers, etc.) that can be used without being a 
> programmer (I'm a data
> modeller) Any hints?

There are a couple of RDF/RDFS editors around. Most editing environments
actually deal with more powerful SW languages, like OWL, but are still
useful when only using RDF. Protege
(http://protege.stanford.edu/) is one.

As for browsers: I am not sure what you would expect such tools to do. 
There are no generalized RDF browsers that I am aware of, but if you explain
the type of functionality that you are after, I'm sure someone on this list
will pipe up :)


Jeen Broekstra          Aduna BV
Knowledge Engineer      Julianaplein 14b, 3817 CS Amersfoort
http://aduna.biz        The Netherlands
tel. +31(0)33 46599877  fax. +31(0)33 46599877
Received on Wednesday, 6 April 2005 10:26:42 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:44:52 UTC