- From: Manu Sporny <msporny@digitalbazaar.com>
- Date: Mon, 28 Sep 2009 18:03:07 -0400
- To: HTMLWG WG <public-html@w3.org>
Henri Sivonen wrote: > What does RDFa use @version for? What happens in XHTML if there is no > @version? RDFa was designed to use @version and @profile to trigger processing behavior. Right now, there is only one processing behavior across all languages, so it's unnecessary, but this is probably going to change in the near future. Philip Taylor wrote: > So less than 2% of pages that apparently use RDFa use @version. > This has not yet triggered the end of the world, so presumably RDFa in > practice works fine without @version. Yes, RDFa does and should always work just fine without @version, @profile or rel="profile". However, the purpose of @version isn't to "make RDFa work", it's to ensure that the proper processing behavior is applied to an author's page. More on this below... Henri Sivonen wrote: > If things go wrong and in the future there is a need to signal > versioning, that bridge can be crossed then and versioning syntax > added. Then let me demonstrate that the problem is more concrete and visible than some on here seem to think using one particular example: The RDFa Task Force is seriously considering the following change based on in-the-wild authoring practices. Currently, the following markup: <h2 property="dc:title"><em>Lord of the Flies</em></h2> outputs the following triple: <> <http://purl.org/dc/elements/1.1/title> "<em xmlns=\"http://www.w3.org/1999/xhtml\">Lord of the Flies</em>"^^<http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral> . This coupled with all of the nuances associated with generating XMLLiterals make this a problematic default behavior (well outside the needs of novice authors). Basically, if there is a child element for an object literal, the literal is assigned a datatype of XML Literal and includes all HTML markup. The default behavior should probably be this: <> <http://purl.org/dc/elements/1.1/title> "Lord of the Flies". So, when authors don't specify a datatype of "rdf:XMLLiteral", the markup syntax isn't preserved and a plain literal is generated, instead. I think we'd like to make this change in RDFa 1.1 because the usage data shows that the second is the more desired outcome. The problem is that we need a mechanism that would protect authors that want to keep the RDFa 1.0 spec behavior. We don't want to require authors that have already marked up XMLLiterals using the RDFa 1.0 syntax to have to go back and change their documents, but we do want to provide this better behavior moving forward. There is no way to cause this switch to occur unless there is some mechanism that is capable of triggering the new behavior. Currently, that trigger is either @version or @profile in XHTML+RDFa. Jonas Sicking wrote: > However the version *identifier* seems like something > you can wait with until version 2. Simply let the absence of a version > identifier identify that version 1 is used. But that's completely counter to what HTML5 is doing, isn't it? It's not what most of these languages do. The HTML5 spec assumes that, barring any version specifiers, that the author is using the latest version of HTML (version 5) or XHTML (version 5). I believe the same is true for SVG and I know the same is true for RDFa. Without a version specifier, the parser assumes the latest version of the language. To summarize: * We'd like to change the default behavior of RDFa regarding XMLLiterals in RDFa 1.1 - we can't do this unless there is @profile, rel="profile", @version, or some other extended processing behavior signaling mechanism. * We'd like to ensure that web languages have the capability to make incompatible changes to match authoring behavior or fix past language design mistakes. * We'd like to do this in a way that is backwards and forwards compatible and unify that mechanism for SVG, MathML, HTML, XHTML and RDFa. * We'd like to protect authors that are currently implementing RDFa 1.0. We'd like to give them the choice on when to switch their triples to RDFa 1.1... if ever. * We'd like to be lenient by making @version and @profile a SHOULD and not a MUST. By not specifying either, you are signalling to the user agent to use the most recent version of any features found in the document. -- manu -- Manu Sporny (skype: msporny, twitter: manusporny) President/CEO - Digital Bazaar, Inc. blog: The Pirate Bay and Building an Equitable Culture http://blog.digitalbazaar.com/2009/08/30/equitable-culture/
Received on Monday, 28 September 2009 22:03:33 UTC