

Re: The war of the worlds: HTML vs. RDF

From: Toby A Inkster <tai@g5n.co.uk>
Date: Sat, 10 Jan 2009 16:44:58 +0000
Message-Id: <85614A79-E0E4-402A-8D2B-0BC46D66FCB7@g5n.co.uk>
To: tom@tommorris.org, public-html@w3.org

Tom Morris wrote:

> You can do that already with HTML 4 and XHTML 1.x using GRDDL. GRDDL
> no longer works in HTML 5 as the profile attribute has been removed.
> (We get some nonsense about GRDDL still working but just not
> 'requiring' profile. This is nonsense. It's a bit like saying that
> you've taken the wheels off the car but it still works because you can
> turn the engine on.)

I think much of this nonsense has arisen because GRDDL effectively  
uses the profile attribute for two purposes, and that has gotten  
people confused. By taking care of one of the purposes in HTML5, it  
has been assumed that GRDDL will thus work in HTML5; tick it off the  
list; done; taken care of.

GRDDL uses the profile attribute firstly as a flag which says "this  
page has some GRDDL transformations linked from it". HTML5 has said  
that all pages may have GRDDL transformations linked from them, thus  
this flag is not needed in HTML5. Fair enough, you can say "this  
works in HTML5 without requiring a profile" and that will work. It  
introduces incompatibilities between how GRDDL is processed in HTML5  
and how it is processed in earlier versions of (X)HTML, which is  
annoying (particularly as XHTML does not require a DOCTYPE, so there  
is no easy way of differentiating between XHTML5 and earlier versions  
of XHTML) but still doable.

But GRDDL uses the profile attribute in another manner: a GRDDL agent  
is supposed to loop through all the page's profiles, perform an HTTP  
request for each one, and use the data it finds in them. If you say  
"this works in HTML5 without requiring a profile" then that is  
clearly nonsense. To loop through the profiles, there has to be some  
profiles! rel="profile" does work as a substitute here, but again it  
introduces inconsistencies between HTML5 and previous versions of (X) 

This syntax change for linking to profiles seems to be an entirely  
gratuitous one: if profiles are going to be allowed, then why change  
the syntax for them? As an analogy, there are many very good  
arguments both ways for dropping or retaining the <b> and <i>  
elements, but to suggest renaming them instead to <bold> and <italic>  
would be silly - even if the unabbreviated names would be clearer,  
the headaches caused by the syntax change would be massive.  
Similarly, rel="profile" does seem like a slightly nicer syntax than  
the profile attribute, but that small advantage comes at a cost of  
breaking compatibility with existing tools that use profiles.

Toby A Inkster
Received on Saturday, 10 January 2009 16:45:42 UTC
