- From: Dan Connolly <connolly@w3.org>
- Date: Thu, 08 Jun 2006 13:00:38 -0500
- To: Mark Birbeck <mark.birbeck@x-port.net>
- Cc: 'public-rdf-in-xhtml task force' <public-rdf-in-xhtml-tf@w3.org>, public-swbp-wg@w3.org
On Thu, 2006-06-08 at 17:56 +0100, Mark Birbeck wrote: > Hi Karl/Dan, > > (Hope you don't mind me rolling your email in with this one, Dan. :) > > > Le 06-06-08 à 22:01, Mark Birbeck a écrit : > > > RDFa can therefore be used *today* for simple metadata structures > > > (rel="tag", for example), but provides many mechanisms to get more > > > advanced, should you need it. By being built on HTML metadata > > > principles it takes a generic approach--i.e., any language can be > > > marked up and interpreted by any RDFa parser, without > > having to know > > > anything about the language being parsed. > > > > Could you give a document which > > > > 1. uses a subset of possible RDFa features > > 2. is a valid document HTML 4.01 or XHTML 1.0 > > http://validator.w3.org/ > > > > I think that would help to have concrete test cases for everyone. > > Sure. The following page uses a subset of RDFa, and validates as XHTML 1.0 > Strict: > > <http://www.w3.org/> > > Near the bottom of the page you'll see this: > > <a > rel="Copyright" > href="/Consortium/Legal/ipr-notice#Copyright" > shape="rect" > >Copyright</a> > > which is perfectly 'correct' RDFa. What RDF triples does it produce? What code can I use to see? I'm pretty sure the author didn't know that it produced any RDF triples. I just installed Elias's RDFa parser from http://torrez.us/archives/2006/06/05/453/ http://svn.rdflib.net/trunk/ revision 783. It produces, among other things: <> <http://www.w3.org/Copyright> <http://www.w3.org/Consortium/Legal/copyright-documents> . and I'm sure the author didn't mean to use http://www.w3.org/Copyright as an RDF property name. > Unfortunately, this page also uses @rel in a slightly 'awkward' way. Each > news item is marked up as follows: > > <a > rel="details" > title="Experts Share Perspectives on Web Standards at > Fundamentos Web 2006" > href="/News/2006#item101" > shape="rect" > >News archive</a> > > @rel is being used here to indicate to a GRDDL transform that the value in > the @href attribute is the URI of an rss:item, i.e., the *subject* of a > statement. This technique of ignoring existing semantics provided by the > document in favour of some specific, context-based interpretation, is not > dissimilar to the approach taken by microformats. Huh? ignoring semantics provided by the document? Those _are_ the semantics of the document. I know because I personally negotiated that markup with Susan Lesch and company who write it. the rel="details" says that between http://www.w3.org/ (or some part of it) and /News/2006#item101 is "details". In a sense, it's saying: <http://www.w3.org/#item23> <http://www.w3.org/#details> <http://www.w3.org/News/2006#item101>. The GRDDL transformation just relates that to a more standard RDF idiom, using the RSS vocabulary. > RDFa takes a different approach, in that it tries to preserve the hooks that > HTML has for semantic information, but of course builds on them since we > need more. So in the case of @rel we have the following definition in HTML > 4.01: > > This attribute describes the relationship from the > current document to the anchor specified by the href > attribute. The value of this attribute is a > space-separated list of link types. [1] Exactly; the relationship between http://www.w3.org/ and /News/2006#item101 is "details". > In RDF terms, @rel is playing the role of a predicate (or list of > predicates) between the document as subject, and the value in the @href > attribute as object. RDFa did not 'invent' the use of @rel and @rev, but > rather documented how it should be interpreted by a parser that is looking > for RDF triples. > > RDFa uses this predicate 'hook' to good effect, by recommending mark-up such > as this: > > This document is licensed under a > <a rel="license" > href="http://creativecommons.org/licenses/by-sa/2.0/"> > Creative Commons License > </a> > > This example is not changing the HTML 4.01 meaning, in that @rel provides a > predicate for the document. But defining what triples are generated when > parsing this is incredibly powerful well, in the Copyright case above, it seems to be _too_ powerful; i.e. the mapping seems to generate triples that the author didn't mean. > (it's what Ben once described as > "bridging the clickable and semantic webs"), and you don't need to go > anywhere else to know what this means. > > Now, we know very well that you will often want to make statements about > things that aren't in the document, and that is why we introduced @about. Of > course it's an _extension_ to XHTML, but we think it is a minor one to make > given the benefits that it gives us. The alternative is to have absolutely > no knowledge of the meaning of statements without reading one or more > external GRDDL transforms. This means that: > > * you always have to look elsewhere for the meaning; > > * you have to ignore the HTML meaning of @rel > because it has now been hijacked to be as vague > as @class; No, there's no hijacking going on. > * as microformats are finding now, you may find you > get vocabularies not playing well together. > > So the full mark-up for an RSS news item on the W3C home page (ready for > GRDDL) is as follows: A full example would give a media type and any relevant namespace declarations. I'd like it to be in HTTP space so that I can GET it with running code. That's why I suggested an attachment. > <div id="x20050714a" class="item"> > <h3>Experts Share Perspectives on Web Standards ...</h3> > > <p> > <span class="date">2006-06-06:</span> > The W3C Spanish Office... > > <span class="archive"> > ( > <a > rel="details" > title="Experts Share Perspectives on Web Standards at > Fundamentos Web 2006" > href="/News/2006#item101" > shape="rect" > >News archive</a> > ) > </span> > </p> > </div> When I put that markup in /home/connolly/src/rdflib/trunk/,rdfa.html I get one triple out of Elias's parser: <> <file://home/connolly/src/rdflib/trunk/details> <file://home/News/2006#item101> . That's sorta close to what I sketched above... <http://www.w3.org/#item23> <http://www.w3.org/#details> <http://www.w3.org/News/2006#item101>. If we correct for base URI, we get <http://www.w3.org/> <http://www.w3.org/details> <http://www.w3.org/News/2006#item101>. but the subject is wrong and the # before details is missing. The W3C webmaster-in-chief, TimBL, is never going to make an RDF property called http://www.w3.org/details , I can assure you ;-) > In this mark-up the @rel attribute (set to "details") as defined by HTML > 4.01, *should be* establishing a relationship between the current document > and the external news story, but GRDDL is overriding this, and in fact is > making the value in the @href the *subject* of the statements. > > RDFa proposes that the @about attribute provides us with a *generic* way of > addressing these extremely common use cases, such as RSS feeds. This > particular example might look like this: > > <div > id="x20050714a" class="item" > about="http://www.w3.org/News/2006#item101" That'll get a thumbs down from the HTML validation service, no? I don't even think it's allowed by the text of the XHTML 1.0 spec without being namespace qualified. > <h3>Experts Share Perspectives on Web Standards ...</h3> > > <p> > <span class="date">2006-06-06:</span> > The W3C Spanish Office... > > <span class="archive"> > ( > <a > rel="link" > title="Experts Share Perspectives on Web Standards at > Fundamentos Web 2006" > href="/News/2006#item101" > shape="rect" > >News archive</a> > ) > </span> > </p> > </div> > > As you can see, the @about attribute sets the context for subsequent @rel > and @rev values. (Note also that the @rel value changed from "details" to > "link", since it can now represent what it *really* is in RSS, a predicate > called 'link' with a value of the item's URI.) > > Of course I'm ignoring the namespace issues because they become relevant > only when you want to be sure that your statements are globally unique. And > we've picked quite a complicated example, which will also need the @property > attribute from RDFa. I'm happy for you to pick any example you like. But please pick an example where (a) the document conforms to one of the XHTML 1.x specs; preferably, it gets a thumbs-up from the validation service (b) there's some code that generates RDF triples from it (c) the triples were meant by the author You brought up rel="tag", so I'm particularly interested in an example using that idiom. > But that does not affect the key point which is that RDFa's use of @rel and > @rev is *already standard*, No, I don't agree that producing <> <http://www.w3.org/Copyright> <http://www.w3.org/Consortium/Legal/copyright-documents> . from rel="Copyright" is already standardized. > and what's more *preserves* rather than > overriding that standard. > > So, to sum up: > > 1. RDFa encourages @rel and @rev to be used as intended by HTML, and not to > overload this attribute, or ignore its semantics. It's interpretation should > be as a predicate on the current document, with @href providing the resource > that is the object. As explained above, I don't agree. RDFa seems to interpret @rel and @rev in a way that is not what XHTML 1.x authors intend. > 2. RDFa suggests also that namespaces are used to qualify the predicates > provided by @rel and @rev, if your statements need to be part of RDF-world. > > These two steps would still allow a document to be validated. "would?" under what circumstances? I'm asking for an example that does validate, not one that would validate. > 3. RDFa also proposes that the @about attribute is a convenient way to > 'qualify' or 'scope' the use of @rel and @rev, that builds on the spirit of > the original HTML specification of those attributes. I'm struggling to see how that's relevant to your claim that... | RDFa can therefore be used *today* for simple metadata structures | (rel="tag", for example) > 4. RDFa proposes the use of @property to provide predicates for text items, > such as rss:title in the above example. > > These steps take us out of standard HTML territory, but are easily added > with XHTML 1.1 modules. I look forward to an example test case and running code. > Regards, > > Mark > > [1] <http://www.w3.org/TR/REC-html40/struct/links.html#adef-rel> > -- Dan Connolly, W3C http://www.w3.org/People/Connolly/ D3C2 887B 0F92 6005 C541 0875 0F91 96DE 6E52 C29E
Received on Thursday, 8 June 2006 18:00:54 UTC