Re: rdf:value and RDF Schema (was: typed containers in RDF Schema)

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