W3C home > Mailing lists > Public > www-html-editor@w3.org > October to December 2004

XHTML2: Reject RDF/A

From: Bjoern Hoehrmann <derhoermi@gmx.net>
Date: Mon, 01 Nov 2004 19:24:07 +0100
To: www-html-editor@w3.org
Cc: public-rdf-in-xhtml-tf@w3.org
Message-ID: <41c26a21.619237406@smtp.bjoern.hoehrmann.de>

Dear HTML Working Group,

  I've read http://www.formsplayer.com/notes/rdf-a.html#div158715232 and
the motivation of this work is still not clear to me. The section states
the following:

[...]
  RDF/XML [58][RDF-SYNTAX] provides sufficient flexibility to represent
  all of the abstract concepts in RDF [59][RDF-CONCEPTS]. However, it
  presents two challenges; first it is difficult or impossible to
  validate documents that contain RDF/XML using XML Schemas or DTD's,
  which makes it difficult to import RDF/XML into other markup
  languages.
[...]

"RDF/A Syntax" does not work with DTDs either as it requires to have XML
Namespace declarations. For XML Schema, I do not really see any problem
that would be relevant. Validating "RDF/A Syntax" using XML Schema only
works in so far as that the artifical containers (meta, link, etc.) can
be validated, their content however can't. I thus fail to see how RDF/A
is considered an improvement in this regard.

[...]
  The second challenge is that the syntax of RDF/XML is too unwieldy for
  use as a mechanism for adding metadata to a document about the
  document itself.
[...]

That might be true, but the RDF/A syntax is much more complicated to me
than using the widely understood RDF/XML syntax. There is no obvious way
in which RDF/A can be used without understanding a whole lot of specs.

[...]
  The resolution is usually to 'hard-wire' attributes directly into the
  XML language, to represent specific concepts. For example, in XHTML
  1.1 and HTML there is a cite attribute. The attribute allows an author
  to add information to a document to indicate the origin of a quote.
  The following example comes from [HTML], although it has been
  reformatted as XHTML [XHTML]: 

  [...]

  The problem here is that we have had to add a specific attribute to
  designate citation, and further, both the browser and some metadata
  processor need to have knowledge of this attribute, and its position
  within the mark-up.
[...]

Here I fail again to see how this problem is solved by RDF/A, in order
to do something meaningful with the metadata the browser would still
need to have knowledge about whatever replaces the cite attribute, the
same goes for the "metadata processor" if it does more than generating
"triples" from the document. The RDF/A proposal in fact makes things
much worse as there is no obvious way for authors to encode specific
information and no obvious way for implementers to implement something
meaningful.

It further reduces the author's chances to make use of the meta data
himself e.g. by using sXBL, XSLT, scripting or CSS for the specific meta
data. With

  <blockquote cite="...">...

it is easy to write a style sheet like

  @media print
  {
    blockquote[cite]:after { content: "(Source: " attr(cite) ")" }
  }

With

  <blockquote xmlns:dc="...">
    <link rel="dc:source" href="..." />
    ...

that's pretty much impossible. CSS does not provide means to match on
QName attribute values (which would be required to select the relevant
<link> element) and at least with CSS < 3.0 it is neither possible to
place the value of the href attribute after the end of blockquote. With
CSS 3.0 this might become possible,

  @media print
  {
    blockquote > link /* ... */ { string-set: source attr(href) }
    blockquote[cite]::after { content: "(Source: " string(source) ")" }
  }

(If this works at all, if string(source) evaluates to an empty string if
there is no link child element and the content property value thus does
not fail it would render a broken "(Source: )" which is undesirable).

Inventing some quick ad-hoc syntax to match QName attribute values, a
new pseudo-class :qname-attr(name, namespace-prefix, value), this might
then become

  @namespace dc url(http://purl.org/dc/elements/1.1/);
  @media print
  {
    blockquote > link[href]:qname-attr(rel, dc, source)
    {
      string-set: source attr(href)
    }
    blockquote::after { content: "(Source: " string(source) ")" }
  }

And the style sheet would not work for other documents that use
something different than dc:source for the same purpose. This is
obviously much more complicated than the alternate solution which
is very odd for something set out to simplify things.

[...]
  Whilst this approach gives unlimited flexibility, it has not been
  widely adopted outside the RDF community. It is certainly more
  difficult for an SVG or HTML author to learn, and so their documents
  tend to contain little 'extra' metadata.
[...]

This is obviously wrong. First, HTML does not allow to embed RDF/XML,
neither does any XHTML Recommendation so far, so authors cannot use
the alternate syntax which means the complexity of the approach does
not hinder its adoption, it unavailability does.

Second, the vast majority of HTML authors is not looking for funny
ways to bloat their documents with "'extra' metadata". Adding such data
required additional effort for which there need to be good reasons to
convince them to do it. HTML authors don't add this meta data because
there are no such good reasons as the user agents relevant to them
(browsers and search engines) do not make use of such data. I do not
understand how RDF/A Syntax is going to change that, for the blockquote
cite case it seems pretty obvious that RDF/A further reduces the chances
of meaningful implementations.

It is further noteworthy that for authors already aware of RDF it is
certainly more difficult to learn RDF/A than to use RDF/XML directly,
and in case of SVG, the SVG community has in fact lots of experience
with using embedded RDF/XML in SVG. It seems in fact obvious that the
SVG approach is much easier to use,

  <rdf:Description about="http://example.org/myfoo"
    dc:title       = "MyFoo Financial Report"
    dc:description = "$three $bar $thousands $dollars $from 1998 ..."
    dc:publisher   = "Example Organization"
    dc:date        = "2000-04-11"
    dc:format      = "image/svg+xml"
    dc:language    = "en"
  >
    <dc:creator>
    <rdf:Bag>
      <rdf:li>Irving Bird</rdf:li>
      <rdf:li>Mary Lambert</rdf:li>
    </rdf:Bag>
    </dc:creator>

  </rdf:Description>

versus probably something like

  <head>
    <meta about="http://example.org/myfoo" property="dc:title"
          content = "MyFoo Financial Report" />
    <meta about="http://example.org/myfoo" property="dc:description"
          content = "$three $bar $thousands $dollars $from 1998 ..." />
    <meta about="http://example.org/myfoo" property="dc:publisher"
          content = "Example Organization" />
    <meta about="http://example.org/myfoo" property="dc:date"
          content = "2000-04-11" />
    <meta about="http://example.org/myfoo" property="dc:format"
          content = "image/svg+xml" />
    <meta about="http://example.org/myfoo" property="dc:language"
          content = "en" />

    <meta about="http://example.org/myfoo" property="dc:creator">
      <link rel = "rdf:Bag">
        <meta property="rdf:li" content = "Irving Bird" />
        <meta property="rdf:li" content = "Mary Lambert" />
      </link>
    </meta>

I thus do not buy the "unwieldy" cited in the motivation. Even if it
were more like

  <head>
    <meta property="dc:title"
          content = "MyFoo Financial Report" />
    <meta property="dc:description"
          content = "$three $bar $thousands $dollars $from 1998 ..." />
    <meta property="dc:publisher"
          content = "Example Organization" />
    <meta property="dc:date"
          content = "2000-04-11" />
    <meta property="dc:format"
          content = "image/svg+xml" />
    <meta property="dc:language"
          content = "en" />

    <meta property="dc:creator">
      <link rel = "rdf:Bag">
        <meta property="rdf:li" content = "Irving Bird" />
        <meta property="rdf:li" content = "Mary Lambert" />
      </link>
    </meta>

It should still be obvious that this syntax is much worse than RDF/XML,
the entire idea of encoding everything in attribute values is flawed,
I've already filed that as comments 

  http://www.w3.org/mid/418eabe3.466861160@smtp.bjoern.hoehrmann.de
  http://www.w3.org/mid/4184c275.318109327@smtp.bjoern.hoehrmann.de

on the latest XHTML 2.0 Working Draft. Thus, please reject the comment

  http://www.w3.org/mid/BE26E3E2-2C2B-11D9-837B-0003939247DC@mit.edu

made by the Semantic Web Best Practices and Deployment Working Group and
substantively re-work the meta data mechanisms in the latest XHTML 2.0
Working Draft to meet the needs of the HTML authoring community.

regards.
Received on Monday, 1 November 2004 18:24:59 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:17:54 GMT