W3C home > Mailing lists > Public > www-rdf-comments@w3.org > July to September 2002

Re: RDF Issue rdfs-clarify-subClass-and-instance

From: graham wideman <graham@wideman-one.com>
Date: Sat, 31 Aug 2002 02:55:10 -0700
Message-Id: <4.1.20020831004821.00a13f40@sunstroke.sdsu.edu>
To: Frank Manola <fmanola@mitre.org>
Cc: Brian McBride <bwm@hplb.hpl.hp.com>, www-rdf-comments@w3.org, phayes@ai.uwf.edu


Sorry I didn't realize your were understanding my point in previous email, but nice to hear that you do.

Sounds like at this point you concur that *if* the RDFS-processing portion of the app is *required* to "execute" rdfs2-forward (and thus add "Garfinkle is a Book") *then* this defeats the ability to use rdfs:domain as part of constraint checking. Good.

But you make the very interesting assertion that RDFS in fact *doesn't* say that this input must be interpreted this way, and point to the discussion in MT 4.3 as support.

I must say, I had read MT 4.3 and was sufficiently unable to make sense of it that I assumed that it had gotten disrupted in editing. I genuinely don't understand what this paragraph means:

>"For example, one view of domain and range assertions is that they 
>should be viewed as *constraints* on the legality of assertions 
>involving a property.  On this view, the rules rdfs2 and rdfs3 would be 
>most naturally seen as applying backwards, and rdfs2 would be better 
>phrased as 'If aaa [rdfs:domain] zzz, then if xxx is NOT [rdf:type] zzz, 
>then xxx aaa yyy is illegal', and similarly for rdfs3.  However, this is 
>the same inference, differently phrased, as that expressed by the rule 
>in the table above." 

"the same"? What's the same? We have:

Forward: Instance Garfinkle appears with an author property. Books have author. Therefore Garfinkle is a Book.

Backwards: Books have author. Garfinkle in not a Book. Therefore "Garfinkle has author" is illegal".

In once case Garfinkle is legal, in the other he's not. Employing one view the receiving system accepts the data (and places Garfinkle in a particular class to boot!); employing the other it rejects the data.  Of course there are even other paths that an app *could* take, like assuming that Cats have authors.

If the goal of RDFS is to facilitate sharing of information, then surely RDFS has to specify the semantics here. Otherwise it's up to individual system developers to negotiate with each other, which completely undermines RDFS even bothering with a Schema.

I therefore thought that the rules were a prescription.  If they are not a prescription, then what's the point?

For what it's worth, the Primer (2002-08-23) states emphatically: "any resource that has an ex:author property is an instance of class ex:Book", and reinforces this in the subsequent paragraph that this can lead to unexpected situations. The Primer does *not* say: "if you wish, your application could infer class from property, or it could check whether this property is permitted on the class that the instance claims to belong to" (and then point out the interoperabilty issues *that* would lead to!).

The presumably normative document on this, "RDF Vocabulary Description Language 1.0: RDF Schema" (2002-04-30) is rather ambiguous on this subject, refering to the MT.

Concrete Cases
To put it another way, do the following examples say that Wealth or Nations is a Book written by Adam Smith in a way that every RDFS-savvy reader agent will accept?   Ie: is the rdf:type optional while still guaranteeing that all readers will regard the instance as a member of Book? 

Example 1:

<rdf:Description rdf:ID="Book">
  <rdf:type rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>

<rdf:Description rdf:ID="author">
  <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:domain rdf:resource="#Book"/> 

<rdf:Description rdf:ID="title">
  <rdf:type rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property"/>
  <rdfs:domain rdf:resource="#Book"/> 

<rdf:Description rdf:ID="1234">
  <rdf:type rdf:resource="#Book"/>
  <ex:title>Wealth of Nations</ex:title>
  <ex:author>Adam Smith</ex:author>

Example 2:
Same except for the instance:

<rdf:Description rdf:ID="1234">
  <ex:title>Wealth of Nations</ex:title>
  <ex:author>Adam Smith</ex:author>


At the moment I don't see how RDFS can *avoid* taking a position on whether apps must infer class from property if RDFS expects to facilitate communication. (And of course, I think they should not make this inference, because it undermines the point of Schema.)

So, still scratching the head...


Graham Wideman
Resources for programmable diagramming at:
Received on Saturday, 31 August 2002 05:55:42 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:44:00 UTC