- From: Niklas Lindström <lindstream@gmail.com>
- Date: Wed, 9 Jan 2008 23:06:31 +0100
- To: RDFa <public-rdf-in-xhtml-tf@w3.org>
Hi, I noticed a misleading thing in my examples, so just to be clear: I don't really do <body about="..."> anywhere, but set the base URI -- so the @id thing works as expected. I can do that, or write out @about="/publication#section-1" etc. of course. (I wrote out the explicit "/publication" since otherwise my first example with explicit reverse relations would look "misleadingly" terse (@resource=""), and it isn't always the current document URI I speak about -- especially not in "parts of parts" relations -- e.g. <#chapter> ex:hasPart <#note>). (.. Since we primarily indend to use XHTML2 (with <section> and other goodies), I can also use @xml:base instead of <base>, which is quite nice (I know I should use base URI:s with care though). But I digress. ;) ) Best regards, Niklas On Jan 9, 2008 6:20 PM, Niklas Lindström <lindstream@gmail.com> wrote: > Hi all! > > I obviously got the current behaviour of @instanceof backwards (I'm > afraid I've been out of the loop for about a month). It is clear to me > now that it will *not* type a chained @resource, only the present > @about or generated bnode. I don't dispute this (and am terribly sorry > for speaking up before reading up on the more than month-old > discussions). > > > The cause of my concern is a use case in my current work, which I'd > like to describe here for your advice. (Btw., this is the project > mentioned in <http://rdfa.info/2007/10/02/rdfa-in-use-in-government/>.) > > We are using RDFa to describe legal documents (the real publications, > not the xhtml information resources, which are representations *about* > those) with properties and references, and *their parts* (chapters, > articles) -- to be able to talk about, reference and analyze those in > detail. > > I need to establish a relation between such a document and its parts > (@id:d fragments). I will only talk about "top level parts" here, but > parts within parts would follow this same logic as well (articles > within chapters, advice sections within articles etc). > > These are the triples I want (I use a simplified made-up vocabulary > here since ours is tightly bound to swedish legal concepts): > > </publication> ex:section <#section-1> . > <#section-1> a ex:Section . > </publication> ex:appendix <#appendix-a> . > <#appendix-a> a ex:Appendix . > > Consider this skeleton example, with typed subjects in place but none > of the needed composition relations: > > <body about="/publication"> > <div id="section-1" about="#section-1" instanceof="ex:Section"> > </div> > <div id="appendix-a" about="#appendix-a" instanceof="ex:Appendix"> > </div> > </body> > > Until I realized that @instanceof now only applies to the subject > resource, I had been using this markup: > > <body about="/publication"> > <div id="section-1" rel="ex:section" resource="#section-1" > instanceof="ex:Section"> > </div> > <div id="appendix-a" rel="ex:appendix" resource="#appendix-a" > instanceof="ex:Appendix"> > </div> > </body> > > Since this no longer works, I can mainly think of three solutions, > given here with some criticism of each: > > > ------------------------------------------ > 1. Duplicated container relations > ------------------------------------------ > > <body about="/publication"> > <div id="section-1" about="#section-1" instanceof="ex:Section"> > <span rev="ex:section" resource="/publication"/> > </div> > <div id="appendix-a" about="#appendix-a" instanceof="ex:Appendix"> > <span rev="ex:appendix" resource="/publication"/> > </div> > </body> > > [+] short type declaration > [+] quite clear semantics, id and about seem "correlated", the div is > "about" its content > [-] has to repeat the container resource when giving the relation to the part. > > > ------------------------------------------ > 2. Verbose type (and possibly odd semantics) > ------------------------------------------ > > <body about="/publication"> > <div id="section-1" rel="ex:section" resource="#section-1"> > <span rel="rdf:type" resource="ex:Section"/> > </div> > <div id="appendix-a" rel="ex:appendix" resource="#appendix-a"> > <span rel="rdf:type" resource="ex:Appendix"/> > </div> > </body> > > [+] saves repetition of container resource > [-] verbose type declaration (sacrificed type shorthand in favour of > non-repeated container resource) > [-] perhaps odd, since the identified div "carries the relation to itself". > > > ------------------------------------------ > 3. Hanging rels, with artificial div:s > ------------------------------------------ > > <body about="/publication"> > <div rel="ex:section"> > <div id="section-1" about="#section-1" instanceof="ex:Section"> > </div> > </div> > <div rel="ex:appendix"> > <div id="appendix-a" about="#appendix-a" instanceof="ex:Appendix"> > </div> > </div> > </body> > > [+] saves repetition of container resource > [-] artificial wrapping div ("div-itis"), may not work at all in some > cases due to doctype or "conventional" restrictions, editing tools and > similar. > > > IMHO, neither of these are ideal. Perhaps hanging rels (#3) is "best", > but it can cause problems due to the power of hanging (which is > currently debated), and not the least due to the mentioned "divitis" > which can become really messy. I would have preferred to describe > parts of a document and their relations in a very compact way, since > RDFa does it so well for descriptions of many other things. Granted, > it's still readily possible of course, and there is obviously more > than one way to achieve my need. > > I can imagine the next step for me could be something like hGRDDL > instead (although it doesn't exist even in working draft form yet), to > achieve the terseness and DRYness I desire. > > > .. One crazy thought I had was to "kidnap" e.g. @role > (<http://www.w3.org/TR/xhtml-role/>) for this, to establish both the > relation between parent container and part, and while I'm at it > perhaps also the repetition of the fragment id in @about (since @role > is reasonably about the element itself (that fragment of the > document), at least by default -- the "overloading" with @about > *could* affect the semantics I suppose). It'd look like: > > <body about="/publication"> > <div id="section-1" role="ex:section" instanceof="ex:Section"> > </div> > <div id="appendix-a" role="ex:section" instanceof="ex:Appendix"> > </div> > </body> > > Admittedly, I *really* force the semantics of @role here to mean: "the > role of an element is the relation from its container to it" and maybe > I should just use a @class and hGRDDL). Apart from that, this solution > would fit this specific case perfectly. :) > > > But I wonder, aren't use-cases like this likely to be a common use for > RDFa? I've always thought so (at least cases like <h1 > property="dc:title"> very much suggests it). Am I missing something? > Or am I just trying to get too much of the RDFa goodness at the > expense of its generality? > > What do you think? > > Best regards, > Niklas >
Received on Wednesday, 9 January 2008 22:06:42 UTC