The RDFnik community is not that large, but it's dynamic. My RDF.net essaylet from yesterday provoked a real flurry of commentary in other blogs and of incoming correspondence. Herein I address a few of the correspondents' issues and go fairly deep on some thoughts provoked by Sjoerd Visscher. (Warning: this last bit will be of interest only to the most deranged fringe of markup pedants.)
What They Said · I have previously held that a Weblog is a conversation with the world, and the conversational mechanics seem to work pretty well. My end of the conversation appears here, and the other half partly takes the form of incoming email (the ten seconds work required to discover my address keeps the volume very moderate). But the good stuff is mostly in other people's homes on the range, courtesy of Technorati, which sold me a watchlist whose nice RSS feed walks me through the world's rejoinders.
Given the convenience and effiency of this, I have to wonder whether Trackback is cost-effective.
Anyhow, here are some of the highlights of the conversation.
Aesthetic Disagreement · Several people piped up to say that they preferred the RDF/XML syntax more or less as it sat, to my RPV alternative. The ones who were polite and articulate about it included Jason Briggs and Sjoerd Visscher. Can't argue with that. Jason, amusingly, “had a horrible thought that if these kind of things make immediate sense to me, then it means I've been looking at XML for far too long.”
Why Are You Barking? ·
If a bark is a short sharp shout, then my proposed RPV tags like
PV probably qualify.
Russell Beattie, among
others, made this point. Hmm... what about if we change this:
<RPV> <R r="http://www.w3.org/TR/rdf-syntax-grammar"> <PV p="http://www.example.com/terms/editor" v="#Dave" /> <PV p="http://purl.org/dc/elements/1.1/title"> RDF/XML Syntax Specification (Revised) </PV> </R> </RPV>
<rpv> <resource r="http://www.w3.org/TR/rdf-syntax-grammar"> <property p="http://www.example.com/terms/editor" value="#Dave" /> <property p="http://purl.org/dc/elements/1.1/title"> RDF/XML Syntax Specification (Revised) </property> </resource> </rpv>
Yep, easier on the eye, initially at least.
The Challenge · Several people, including smart people, wrote in to say “I've been building this RDF-based thing that's really cool, I use it all the time.” Good on ya, one and all. Once it's ready for more than one person to use, get in touch: RDF.net could be yours.
One person amusingly wrote in to say “I'd like to take up the challenge, but RDF looks too hard. Do I really have to learn it?” Snicker.
It's the Syntax! Is Not! Is Too! · As predicted, several people held that it wasn't about the syntax at all. Along with the usual claims that the tools would take care of it, several people talked up the idea of autogenerating the RDF, or extracting it from ordinary XML. Danny Ayers pointed to SSR, and Sjoerd Visscher mentioned XR.
Sjoerd remarked, more generally, “The problem with RDF/XML is not the syntax, the problem is the whole idea of serializing semantics.” The second half of which sounds reasonable, but I still have a lot of trouble with the first half. This is getting tedious, I imagine an endless dialogue between TIM and RODOLFO.
TIM: RDF/XML syntax, blecch.
RODOLFO: People don't have to deal with the syntax, our excellent RDF-o-matic software will hide it.
TIM: The Web grew because people could deal with the syntax.
RODOLFO: Well, that's OK, because we can generate it automatically with things like SSR and XR.
TIM: The Web grew because people could generate it by hand, and did.
RODOLFO: Don't focus on the syntax, that's boring, focus on the semantic engineering and logic wrangling.
TIM: The Web was defined as a set of syntaxes and that's how most authors and many developers think of it to this day.
RODOLFO: But the payoff for doing semantics is going to be so high!
TIM: The payoff for doing the Web was amazingly high, because anyone could figure it out using View Source. It's the syntax dammit!
RODOLFO: Is not!
TIM: Is too!
Off-Topic, But Too Good to Miss · Sean Boisen has a Christian weblog named Blogos, which as names go is right up there, and he's a hypertext wrangler on a heroic scale, check out the New Testament Hyper-concordance, is that cool or what? Not an RDF app though I think. He gets in here because he echoes my RDF question, wondering if there's a Bible app that's going to change the world.
Markup Pedantry Starts Here · Sjoerd Visscher, whom I've already mentioned a couple of times, pointed out that RDF/XML can be quite a bit prettier than the example I used, which is the first complete example found in the RDF syntax specification.
He's got a point. But I'm still bothered by the fact that RDF/XML encourages the obscurantist deeply-nested mode, and as I looked at his example, there was something about it that bothered me that I just couldn't put my finger on for the longest time. Here's a snippet:
<rdfs:Resource rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"> <title xmlns="http://purl.org/dc/elements/1.1/"> RDF/XML Syntax Specification (Revised) </title> <editor> <rdfs:Resource rdf:about="#Dave" /> </editor> </rdfs:Resource>
Note that he's got
effect, it would be a bit more typical to have that bound to a prefix like
than defaulted, and you'd see:
<rdfs:Resource rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"> <ex:title xmlns="http://purl.org/dc/elements/1.1/"> RDF/XML Syntax Specification (Revised) </ex:title> <ex:editor> <rdfs:Resource rdf:about="#Dave" /> </ex:editor> </rdfs:Resource>
But even with that, I'll grant that Sjoerd's formulation is a lot more readable than RDF/XML normally is. So what's bothering me?
That's what bothers me.
ex:editor element is what, exactly?
It's a property.
OK, how do I know it's a property?
Well, because, per RDF rules, because of where it sits in the tree, you can
deduce that it must be a property.
But this is XML, the idea is that we use
to put labels on things saying what they are.
So why isn't there a tag there saying this is a property?
This thing is a property which has associated information such as identifier and value, so the most idiomatic XML way to mark it up is to keep the payload out of the element type, we have attributes and content for that:
<property p="http://www.example.com/terms/editor" value="#Dave" />
This idiom also reduces the scatter of namespace prefixes all over the text like dandruff on shoulders.
I feel better now. I don't expect this line of reasoning to convince everyone, but at least I have a coherent basis for why RDF/XML makes me so uncomfortable.
And I've already acknowledged fully that this is severe markup-theory-slinging territory. It's a dirty job, but somebody has to do it.