I had a small chat with Jens on how to use Trackback pings for gathering Weblog feedback for our upcoming event, the 20th Chaos Communication Congress. We had several ideas, one is using it just for getting feedback on any kind of report about the event, the other is to provide a trackback notification for specific lectures of the three-day event.
Then I had a look at the Trackback specification to see how I can include the trackback information in HTML. The inventors suggest encoding the information in RDF and to include the RDF – separated by its namespace – in XHTML. So that it looks like this:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.foo.com/archive/12345/" dc:identifer="http://www.foo.com/archive/12345/" dc:title="Foo Bar" trackback:ping="http://www.foo.com/tb.cgi/12345" /> </rdf:RDF>
While I agree this not a bad way of doing it, there are some problems. First, as noted in the specification as well, some browsers might not handle the separate name-space well and tend to render the code instead of ignoring it. I am not sure which browsers are affected by this but I can assume it is the usual suspects. So MT suggests the code should be put in comments instead. Well, nice trick but this totally breaks the basic idea that the information should be easy to parse: if it is hidden in a comment, the information has to be stripped „by hand“ without the help of the XML parser.
So I want to propose an alternative to this, which provides the same information to the world but makes encoding a bit less dramatic. It only works if there is a single trackback for the whole URI (the page) as it can‘t be included multiple times. But it finds it place where I think it belongs anyway: the HTML header.
My idea is to use HTML <meta> tags to do the job. Here is the same trackback information as above but encoded in much simpler fashion:
<link rel="schema.trackback" href="http://madskills.com/public/xml/rss/module/trackback/" /> <meta name="trackback.ping" content="http://www.foo.com/tb.cgi/12345" />
Oops? So simple? Where has all the information gone? Well. I think everything is here: the described URI that the
rdf:about attribute refers to is implicit in my example as it refers to the URI of the document. The same goes for the
dc:identifier (which is the same) and the title (which is the title of the document). The name-space gets introduced by the
link element that defines the „trackback“ prefix. The Trackback Ping URI is defined by the
meta element that uses that name-space prefix.
Simple. Maybe too simple, I am not sure but maybe some tech wiz might comment on this. I think it is a clean approach and should work once implemented.