- From: Garret Wilson <garret@globalmentor.com>
- Date: Sun, 9 Jun 2002 20:19:08 -0700
- To: <www-rdf-comments@w3.org>, "Brian McBride" <bwm@hplb.hpl.hp.com>
Brian, ----- Original Message ----- From: "Brian McBride" <bwm@hplb.hpl.hp.com> To: "Garret Wilson" <garret@globalmentor.com>; <www-rdf-comments@w3.org> Sent: Sunday, June 09, 2002 3:17 AM Subject: Re: rdf:value and RDF Schema (was: typed containers in RDF Schema) > At 09:38 07/06/2002 -0700, Garret Wilson wrote: > > [...] > > > ><rdf:Description> > > <dc:creator> > > <rdf:Description> > > <rdf:value rdf:resource="urn:x-people:jane-doe"/> > > <oebps:role>annotator</oebps:role> > > </rdf:Description> > > </dc:creator> > ></rdf:Description> > > > [...] > However, I don't feel comfortable with the way this is modeled, though I'm > finding it hard to say why. > > The question I am having trouble answering is what is the difference > between the resource denoted by the b-node that is the value of the > dc:creator property, and the resource identified by > urn:x-people:jane-doe. Well, let's say I have another work (urn:x-books:book2) that has the same dc:creator of urn:x-people:jane-doe---but in this case, Jane is the author, not the annotator. If the b-node above is the same as urn:x-people:jane-doe, then there's a big problem: Jane Doe would be listed as the annotator of urn:x-books:book2, even though she's the *author* of that work. That is, once a non-b-node Jane Doe gets an oebps:role, she *always* has that role. The construct above would, I believe, allow a situational role to be defined: Jane Doe has this role only in the context of this relationship. > Have you considered and rejected defining a subproperty of dc:creator e.g. > eobps:annotator? There are a few problems with this, not least of when entails management of a controlled vocabulary. Subproperties hide the fact (without having the schema present) that the relationship is dc:creator. It also makes the ontology designer lose control of the range of values that can be used. I've talked about these sort of problems offline with Patrick Stickler, and there doesn't seem to be an easy fix without using blank nodes as I have done above. Let's talk about another common example: linking stylesheets. I'd like to say that urn:x-xmldocs:doc1 has a stylesheet of urn:x-css:stylesheet1. I'd also like to say that the stylesheet has a certain title as used in this context. (In other words, I'm duplicating the well-established semantics of <xhtml:link> and <?xml-stylesheet>.) If I were not to use blank nodes, I would have a title defined for the stylesheet in *every* instance. Using blank nodes, however, I can do the following: <rdf:Description rdf:about="urn:xmldocs:doc1"> <xmlprop:style> <rdf:Description> <rdf:value rdf:resource="urn:x-css:stylesheet1"/> <dc:title>_Alice in Wonderland_ on a Small Device</dc:title> </rdf:Description> </dc:creator> </rdf:Description> This allows the stylesheet to have the title *only* in this context. This sort of construct is needed all the time for qualified Dublin Core (see http://www.dublincore.org/documents/dcq-rdf-xml/ ). It's a hideous syntax, but it appears to be the only way to express contextual properties. (If there's a better way, please *please* let me know.) From your previous message, though, my biggest question has been answered: to an RDF Schema processor, an rdf:value of a b-node will be considered equivalent to a non-b-node object. Garret
Received on Sunday, 9 June 2002 23:20:46 UTC