- From: Garret Wilson <garret@globalmentor.com>
- Date: Wed, 12 Jun 2002 16:13:50 -0700
- To: "patrick hayes" <phayes@ai.uwf.edu>
- Cc: <www-rdf-comments@w3.org>
Patrick, ----- Original Message ----- From: "patrick hayes" <phayes@ai.uwf.edu> To: "Garret Wilson" <garret@globalmentor.com> Cc: <www-rdf-comments@w3.org> Sent: Tuesday, June 11, 2002 3:31 PM Subject: Re: rdf:value and RDF Schema (was: typed containers in RDF Schema) > >Now, with a *descriptive* RDF Schema, it gets worse---the RDF Schema says > >that, whatever you might think about this RDF instance, the rdf:Bag is > >really of rdf:type Person. > > Right, that is what it says. But that seems to me to be kind of > obvious. How else could it possibly be interpreted? You SAID that the > range of the property was foo:Person, and then you SAID that the > value of the property on something was a bag. It follows inexorably, > from the usual meaning of 'range', that you have said that the bag is > a foo:Person. If you didn't mean that, why did you say it? I *did* say (using RDF Schema) that the rdf:range of dc:creator is foo:Person, but let's suppose that I *didn't* say that the there is a resource with a dc:creator of type rdf:Bag---let's suppose that someone *else* created an instance that made that assertion. If RDF Schema were prescriptive (as I'm finding out it's not), then that person would be wrong---their instance would not match my RDF Schema. (In other words, their instance would be syntactically correct but logically incorrect---sort of a "pigs can't fly" sort of thing.) I'm coming to the realization (through your help, and through the help of others) that RDF Schema is merely descriptive, not prescriptive. It is assertive rather than constraining. It's an "everyone is right" sort of language: if my RDF Schema says that dc:creator has a range of foo:Person and then someone creates an RDF instance that has an rdf:Bag as the object of dc:creator, then both are correct: the rdf:Bag must also be a foo:Person. (I'm still not convinced of how useful this is, but for now I'm just trying to accept that...) This brings up some interesting issues: 1. Is using a range of foo:Person for dc:creator semantically the same as using an rdf:type on the object? That is, if I have: a) <rdfs:Property rdf:about="&dc;creator"> <rdfs:range rdf:resource="&foo;Person"/> ... <rdf:Description> <dc:creator> <rdf:Description rdf:about="urn:x-my-object"> ... Is that the same as simply having (with no RDF Schema): b) <rdf:Description> <dc:creator> <foo:Person rdf:about="urn:x-my-object"> If the RDF Schema really asserts that the object of dc:creator will be a foo:Person, then isn't that semantically equivalent to the object having an rdf:type="&foo;Person"? Or does RDF Schema just *sort of* assert the type of the object? I'm just trying to find the implications of this new "RDF Schema is descriptive" way of thinking. In other words, RDF Schema's rdfs:range either says what the object *should be* (in which case it is prescriptive and constraining), or it says what the object *is* (in which case it is descriptive and assertive). The other alternative, I suppose, is that rdf:range says what the object *might be*. (Guess which of these I hope it doesn't say...) 2. If RDF Schema says what the object *is*, then what about multiple rdf:ranges? ( http://www.w3.org/TR/2002/WD-rdf-schema-20020430/ hints that this might be possible.) If a property has two ranges defined, then is the object of the property automatically understood to have *two* types, or does it mean that each of the objects has one of the two types? Thanks for helping me explore this further. Garret
Received on Wednesday, 12 June 2002 19:15:29 UTC