Comments on RDFa in XHTML: Syntax and processing

Congratulations on the publication of the RDFa syntax and processing 
Candidate Recommendation [1] .  Although I have been looking at RDFa in 
part to inform redrafting of a W3C TAG Finding on the Self-Describing Web 
[2], these comments have not been reviewd by the TAG or by any other 
workgroup of which I am a member.  They also do not necessarily represent 
any corporate position or concerns of my employer, IBM.  So, just my 2 
cents.  With those caveats:

Substantive comments


The title of the draft refers to XHTML.  Section 3.10 says, somewhat 
confusingly:  "The aim of RDFa is to allow a single [RDF graph] to be 
carried in various types of document mark-up. However, this specification 
deals only with RDFa in XHTML"  This leaves it a bit unclear as to what it 
is from this Recommendation that might apply beyond XHTML.  After all, it 
says that everying in this specification is XHTML only.  Also, the 
abstract says:  "RDFa is a specification for attributes to be used with 
languages such as HTML and XHTML to express structured data."  That 
suggests applicability beyond XHTML, but only to HTML-family languages.

I suggest that the whole question of which sorts of languages are covered, 
and in particular whether there is any normative applicability to 
non-XHTML variants of HTML, should be clarified.


* Are you defining conformance for markup, a processor, or both?

The abstract says:  "This document is a detailed syntax specification for 
RDFa..."  (no mention of processors)

Section 4.3: defines conformance for a "processor", presumably a piece of 
software or maybe hardware, with requirements such as: "A conforming RDFa 
Processor MUST make available to a consuming application a single [RDF 
graph] containing all possible triples generated by using the rules in the 
Processing Model section. "  It also quite nearby says:  "This 
specification uses the term [default graph] to mean all of the triples 
asserted by a document according to the Processing Model section."

I tend to feel that specification of a lanuage and its mapping to things 
like default graphs is quite a different thing from the specification of a 
piece of software with certain required outputs.  Indeed, one can imagine 
lots of different software that would do useful things with RDFa but that 
would, for one reason or another, never bother to construct the entire 
default graph.  Is such software non-conforming?

Thus my preference, and its only a preference, would be to see the 
definition of default graph retained for reference by other 
specifications, but the definition of processor conformance moved either 
to a separate document or perhaps to a normative appendix of the syntax 
and processing document.  I think a more appropriate title for such a 
section might be: "Conformance requirements for general purpose RDFa 
processors", signalling that general purpose software that builds the 
whole graph is only one kind of useful software that you might want to 
deploy for RDFa.


Section 4.1:

"3. The start tag of the root element of the document must explicitly 
contain an xmlns declaration for the XHTML namespace [XMLNAMES]. The 
namespace URI for XHTML is defined to be

        Sample root element
        <html xmlns="" xml:lang="en">"

It's not entirely clear whether this requirement would be satisified by a 
different root element like this, since it does have an xmlns declaration 
for the XHTML namespace:

        <html xmlns:prefix="" xml:lang="en">"

This of course defines a completely different root element name, and I 
suspect it's not intended to be conforming.  Either way, I suggest that 
the rule be clarified.

Editorial Comments

Section 3.10:

        "is always an [URI reference]"
        "statement can be an [URI reference]"

Should those be "a" URI reference?  (could be my grammar is rusty, but it 
seems the same case as "a yellow banana" vs. "an yellow banana")


Section 4.1:

        "Such a document MUST meet all of the following critera:

        1. ...
        2. ...
        3. ...
        4. There SHOULD be a DOCTYPE
        5. There SHOULD be @version
        6. There SHOULD be @profile...."

The nesting of SHOULDs within a MUST seems odd.  I suggest you split this 
into two sets of clauses, one labeled as requirements that MUST be met, 
and a second with desideratat that SHOULD be attended to.

I hope these comments are helpful to you in carrying forward the work on 
RDFa.  Thank you very much.



Noah Mendelsohn 
IBM Corporation
One Rogers Street
Cambridge, MA 02142

Received on Thursday, 21 August 2008 21:26:45 UTC