When people criticize RDFa without much experience really working with it, I tend to ignore the comments, because they’re usually out to prove some subjective point about what they think the Web should be like (“prefixes are ugly!” “Yahoo’s RDFa support was broken once so clearly RDFa sucks!”…). But when Jeni writes about RDFa, given her extensive work in this area, it’s important stuff to read.
In the end, while I do believe there is room to improve RDFa, I disagree with most of Jeni’s core points. I fear she has been fooled by some in the HTML5 community who have highly opinionated views of the Web and believe, based on very partial data and hasty conclusions, their opinions to be fact. I’ll focus on a few issues:
“It’s unquestionable, really, that prefixes are a source of problems”. The claim here is that because of indirection and copy-and-paste, mistakes might be made. True. But the same goes for CSS. In fact, the copy-and-paste situation for CSS, which often depends on a separate file, sometimes the DOM hierarchy, and let’s not forget browser differences, is actually far more complicated than RDFa’s. One response I’ve heard to this argument is “yeah, well, I would redesign CSS, too.” Hmmm.
(It’s all about feedback: if the publisher can get rapid feedback that their markup is buggy, then the markup will be fixed. I think we need to do more work in this arena with RDFa, starting with tools like the RDFa Fragment Parser.)
“resolving URLs to determine meaning is thought to be dangerous by some” [paraphrased]. What exactly is the Web, then? If you start reading this blog post not knowing about “RDFa”, you can click on the link. If the link is dead, you probably won’t cry about it, you’ll just try again later. That’s the thing with a distributed Web: some resources might not be up all the time. That’s okay, we just go on with partial information. Even so, using URLs for extensibility is a clear win: anyone can publish a URL, which means anyone can publish a vocabulary to mark up their photo titles, song durations, and copyright licenses. No central approval needed. Take a look at microformats: they have had great early success, but lately it’s taken a very long time to get new vocabularies out the door… because central control doesn’t scale well to specialized/advanced communities. What would the Web look like if every web site had to be centrally approved and deemed non-redundant before proceeding? Don’t be scared of URLs, you’re already using them.
(Jeni makes the argument that raw, un-prefixed URLs should be usable in RDFa. I agree that this could be helpful, and we’re exploring that possibility.)
“so why not just stop arguing and use the spare time and energy doing?”. Come on, Jeni, you must know about Creative Commons’s use of RDFa to turn the Creative Commons Deed into a loosely coupled semantically aware app? And Yahoo’s implementation of RDFa in SearchMonkey? And Google’s Rich Snippets and the recently released Google Image Search with RDFa support so anyone can get their image metadata into Google Image Search? And the UK government who apparently can’t get enough of RDFa. This canard must end. There are many RDFa implementations in the real world by the Web’s biggest organizations. They are only just starting to explore the full power of RDF, but that’s okay because the power of RDF is incremental, providing advantages along the way. From the start, the architecture for extensibility is there.
And that’s really the key point. All of these important adopters of RDFa were able to get past the “issues” that some in the HTML5 Working Group are complaining about. In fact, for the most part, the first I ever heard of these “issues” was in the HTML5 working group.
So yes, Jeni’s blog post is a rather accurate description of how people feel, but it fails to point out that many of these feelings are deeply subjective and very poorly justified. Prefixes are a bit complex, but they’re not too complex (and they don’t pose any serious technical challenge either.) Using URIs is a good idea even when servers are not always up. We’re seeing a number of RDFa-based applications popping up all over the world.
In other words, at this point, If HTML5 fails to specify how to include RDFa markup, then the HTML Working Group has failed to capture real-world usage. (And as a member of the HTML Working Group, I would bear some of that responsibility, of course.)