[whatwg] Fuzzbot (Firefox RDFa semantics processor)

Toby A Inkster mail at tobyinkster.co.uk
Sun Jan 11 04:01:58 PST 2009

Calogero Alex Baldacchino wrote:

> The concern is about every kind of metadata with respect to their
> possible uses; but, while it's been stated that Microforamts (for
> instance) don't require any purticular support by UAs (thus they're
> backward compatible), RDFa would be a completely new feature, thus  
> html5
> specification should say what UAs are espected to do with such new
> attributes.

RDFa doesn't require any special support beyond the special support  
that is required for Microformats. i.e. nothing. User agents are free  
to ignore the RDFa attributes. In that sense, RDFa already "works" in  
pretty much every existing browser, even going back to dinosaurs like  
Mosaic and UdiWWW.

Agents are of course free to offer more than that. Look at what they  
do with Microformats: Firefox for instance offers an API to handle  
Microformats embedded on a page; Internet Explorer offers its "Web  
Slices" feature.

> For what concerns html serialization, in particular, I'd consider  
> some code like [...] which is rendered properly

Is it though? Try adding the following CSS:

	span[property="cal:summary"] { font-weight: bold; }

And you'll see that CSS doesn't cope with a missing ending tag in  
that situation either.

If you miss out a non-optional end tag, then funny things will happen  
- RDFa isn't immune to that problem, but neither is the DOM model,  
CSS, microformats, or anything else that relies on knowing where  
elements end. A better comparison would be a missing </p> tag, which  
is actually allowed in HTML, and HTML-aware RDFa processors can  
generally handle just fine.

> considering RDFa relies on namespaces (thus,
> adding RDFa attributes to HTML5 spec would require some features from
> xml extensibility to be added to html serialization).

RDFa *does not* rely on XML namespaces. RDFa relies on eight  
attributes: about, rel, rev, property, datatype, content, resource  
and typeof. It also relies on a CURIE prefix binding mechanism. In  
XHTML and SVG, RDFa happens to use XML namespaces as this mechanism,  
because they already existed and they were convenient. In non-XML  
markup languages, the route to define CURIE prefixes is still to be  
decided, though discussions tend to be leaning towards something like:

<html prefix="dc=http://purl.org/dc/terms/ foaf=http://xmlns.com/foaf/ 
<address rel="foaf:maker" rev="foaf:made">This document was made by  
<a href="http://joe.example.com" typeof="foaf:Person"  
rel="foaf:homepage" property="foaf:name">Joe Bloggs</a>.</address>

This discussion seems to be about "should/can RDFa work in HTML5?"  
when in fact, RDFa already can and does work in HTML5 - there are  
approaching a dozen interoperable implementations of RDFa, the  
majority of which seem to handle non-XHTML HTML. Assuming that people  
see value in RDFa, and assuming that the same people see value in  
using HTML5, then these people will use RDFa in HTML5. The question  
we should be discussing is not "should it work?" (because it already  
does), but rather, "should it validate?"

Toby A Inkster
<mailto:mail at tobyinkster.co.uk>

More information about the whatwg mailing list