- From: Brian McBride <bwm@hplb.hpl.hp.com>
- Date: Mon, 06 May 2002 00:27:07 +0100
- To: "Garret Wilson" <garret@globalmentor.com>, <www-rdf-comments@w3.org>
At 07:18 03/05/2002 -0700, Garret Wilson wrote:
[...]
>But writing the following schema, while technically correct, confuses the
>semantics of what is happening by making it appear that one can simply use
>an rdf:Seq or an rdf:Alt for "xpackage:procession". It also leaves out the
>semantics of the type of values that can be used with rdf:Alt.
>
><rdf:Property rdf:ID="procession">
> <rdfs:range rdf:resource="&rdf:Seq"/>
> <rdfs:range rdf:resource="&rdf:Alt"/>
></rdf:Property>
I'm not with you here Garret. What's the confusion exactly. This says
that the range of procession must be a resource which is both of type
rdf:Seq and rdf:Alt. That is not what you want. This is just wrong.
What you might try is:
<rdf:Property rdf:ID="procession">
<rdfs:range>
<rdfs:Class rdf:about="#ProcessionValue">
...
</rdfs:Class>
</rdfs:range>
</rdf:Property>
<rdf:Description rdf:about="&rdf;Seq">
<rdfs:subClassOf rdf:resource="#processionValue"/>
</rdf:Description>
<rdf:Description rdf:about="&rdf;Alt">
<rdfs:subClassOf rdf:resource="#processionValue"/>
</rdf:Description>
This says that the value of the procession property is a ProcessionValue
and that rdf:Seq is a ProcessionValue and rdf:Alt is a
ProcessionValue. Thats what you want to say about the range.
RDF Schema provides no way to restrict the values of a container.
>In reality, we're simply trying to say that one can use a single rdf:Seq or
>a list of alternate rdf:Seqs.
What you can say is that you can use an rdf:Seq or an rdf:Alt.
>I'm not sure that an rdfs:collectionRange (which would apply to the members
>of a collection, as others have suggested) would be a good idea, because
>technically, it's not correct---a collection is a *class*, not a property,
>and therefore doesn't have a range. What we're trying to specify is an
>rdfs:collectionMemberRange, which is a *really* deep range specification, to
>say the least. It introduces all sorts special casing for collections that
>aren't valid for other classes.
>
> > You could also define your own subclass of bag, bagOfStrings
>
>...or in this example, our own subclass of an rdf:Alt, altOfSeqs (horrors
>:) ). But this would require special semantics of the processor to recognize
>that altOfSeqs is only restricted to rdf:li that have ranges of
>rdf:Seq---nothing would actually be constrained by the RDF Schema.
>Technically what is needed is a subclass of rdf:li (seqOnlyMember?) that has
>a range of rdf:Seq, and then somehow subclass rdf:Alt to say that it only
>has as properties seqOnlyMember, not normal rdf:li.m
The WG has considered this and decided against rdf schema doing this sort
of thing. Have you had a look at daml+oil?
> > or you could add a property to an ordinary bag to indicate the type of its
> > membership.
>
>...actually, we would have to indicate the range of each of its members
That is what I meant - sorry if it was not clear.
>---we
>don't want to change the fact that the rdf:Alt, in this example, holds
>rdf:li----we just want to say what their range is.
>
> > The WG will consider this. I'd appreciate your comments on whether
> >
> > a) you need a standardized solution to this problem
>
>Yes. Part of the buy-in we've been trying to get in the Open eBook Forum for
>RDF is that it brings about a standardized structure for talking about
>metadata---that it keeps us from writing our own framework to specify how
>resources relate. (There has been, and still is, a large group that would
>rather write a packing structure from scratch in XML rather than using RDF.)
>
> > b) it needs to be in rdf schema rather than an ontology language built
>on top
>
>Others have stated that this sort of thing is out of scope because RDF
>Schema is meant to be simple---what I'm proposing is much too
>complicated---and I had started to agree. I believe, however, that its
>complications are overshadowed by two other important points: this use case
>is *very* common, and it's analogous to features already in RDF Schema.
>
>Let me state a subset of the use case this way: it is frequently desirable
>to specify that a property can have a single, particular class as its
>object, or that the property can have a single list of alternates of that
>same particular class as its object.
>
>Commonality: this pattern is seen over and over. Analogy: if an rdf:range
>can be specified by a schema, it seems analogous that the schema can specify
>that an alternate list of that same rdf:range can be specified.
That is a good point. There is a strong feeling that RDF containers in
general need reworking. We have an issue on the issues list for this. The
WG has decided to postpone this to a future working group. I think I'd
like to link this thread in as input to that work.
Brian
Received on Monday, 6 May 2002 12:38:09 UTC