- 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