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

Re: typed containers in RDF Schema

From: Brian McBride <bwm@hplb.hpl.hp.com>
Date: Mon, 06 May 2002 00:27:07 +0100
Message-Id: <5.1.0.14.0.20020506000510.00aa00a0@0-mail-1.hpl.hp.com>
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 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 21 September 2012 14:16:30 GMT