In taking all of the recent discussion and experimentation with TrackBack and related interfaces, I thought it would be helpful to draft some suggestions for consideration for the next generation (NG) of the interface. This document and forum (more on that later) is meant to be a starting point to begin a productive discussion and further the constructive and valuable work being done thus far.
Since its introduction in June 2002 by Ben and Mena Trott, TrackBack has been gaining momentum as a means for creating distributed forms of communication, intertwinularity, manufactured serendipity and other social networks. In recent weeks experimentation and discussion of the interface has been catching on. With this, some of the shortcomings and limitations of the current specification (v1.1) have begun to come into focus.
The specification document need more clarification and refinement particularly as to where the specification ends and specific implementations begin. Additionally the specification would benefit by better addressing issues of extensibility and the reasonable expansion of its scope. These are some of the more specific proposal I have collected.
Make TrackBack even more RESTful. The original intention of the interface is to comply with the REST style of architecture. Version 1.0 did not fully comply with this stated goal and necessitated the release of version 1.1 (with the help of Paul Prescod) that brought it closer, but not completely, into compliance. The next version should continue down this road towards complete compliance. To that end:
- TrackBack should utilize standard HTTP messages for all replies (201 Created, 200 Success etc.) and depreciate the
proprietary
messaging scheme currently implemented. - Content negotiation (conneg) should be supported in addition to the query string switch currently in use. The query string switch would take precedence.
- In addition to the
application/x-www-form-urlencodedMIME-type, TrackBack should alternately accept an RSS item fragment with atext/xmltype, in the body of a POST.
Forge even closer ties with RSS. TrackBack already share a very close relationship, but more can be done them even closer together. I've already disclosed as one in the previous section. Other considerations include:
- Implement RSS field names and depreciate existing field name.
excerptwould becomedescriptpion.urlwould becomelink.blog_namewould becomedc:source. - Establish required fields for POSTs that coincide with the RSS 0.91 specification, the most widely deployed version of the format. In other words
title,link, anddescription.
Refine and expand auto-discovery options. Works fine though criticisms around that this is a hack and break standards compliance. The current practice isn't terribly efficient or plausible for more sophisticated uses. this area requires further discussion. Here are some cursory ideas.
- Use RSS structure instead of RDF. If TrackBack where to adopt closer ties with the RSS format as I have suggested this only seems to make sense. I'll just stop there with this one.
- Similar to RSS auto-discovery, TrackBack should make use of the
linktag to assist TrackBack client in discovering the URI associated to a web page. (Assuming HTTP messages are adopted, the 201 Created message returned to a successful ping should also return an RSS item fragment with all the pertinent meta data usually recovered extracted from the existing method. An alternate take would use thelinktag to point to an external file containing the RSS Item fragment. Yet another would be a hybrid of the two where Dublin Core tags are embedded in the HTML. - Specify the discovery and function of an optional TrackBack information service. The main purpose of this service is to make auto-discovery more efficient and scalable then grabbing an HTML page and scraping it. (Obviously there isn't enough detail here yet.)
A couple of other facets that should be addressed include:
- Multiple Pings per web page. Outlawed? Permitted, but not advisable? Just fine?
- TrackBack Ping ID guidance. There seems to be some confusion here and could use further clarification and refinement.
- FOAF and digital signatures. Should the concept be worked into the specification?
I've also created a This is a bit of a first in more ways then one. I've been using TrackBack here since almost day one, but have never used comments to experiment with them. (I've begun subtly tinkering with how MT's comments work to do something different then how they are commonly used.) Alas, I did not get around to following my own advice and implement comments AS TrackBack. Soon I promise.forum
to more directly discussing these proposals and share ideas.
Another place to discuss this and similar topics is the ucapi-discuss (Universal Canvas API) mailing list hosted by Yahoo. All encourage you to join, ask questions and participate in the discussions.
This is a list of resources and posts on the topic of TrackBack that I've collected recently. Its by no means a complete one. (Please don't be offended if I missed you.) In no particular order:
- TrackBack Technical Specification
- The TrackBack Development Weblog
- Cohesion (Sam Ruby)
- The universal canvas and RSS apps (DJ Adams)
- Trackback in the saddle again - a list of various TrackBack variants and implementations. (Ben Hammersley)
- XML::TrackBack
- Comments via TrackBack (Rael Dornfest)
- Mark Paschel's TBPY -- a standalone TrackBack CGI written in Python.
- TrackBack for Notifications (Scott Andrew)
- Whitepaper: Pingback vs TrackBack 1.1 (Ian Hickson)
- RESTLog Comments API (Joe Gregorio)
- Ridiculously Easy Group Forming
- Centralized TrackBack Aggregation for News and Links (PopDex)

this is the right way to go, IMHO. bringing TB and RSS together is good. I'd also like to see some standardization of the manual TBs are implements for non-MT systems. This might mean that each blogging engine can provide a common dialog for those using manual TBs. Also, i would suggest defining an RSS module to encapsulate trackback data in RSS/RDF (tb:) with a fall-back to RSS 0.9x-style title, links, description items.
yum. i like. je ne comprends pas the details of RSS version du jour, nor RDF, nor really XML, but i can recognise usability advantages when i see 'em. since i've been implementing all aspects of web logging from scratch, rather than using one of the existing engines, i'm very very interested in simple and reusable interfaces.
btw, a visible trackback-ng syndication link on this page would be nice, in addition to the autodiscovery link tag. the only currently visible syndication links are for other aspects of the site.
Very nice.
I would personally avoid FOAF
and digital signatures for the short term.
The big thing that needs to be fixed is
auto-discovery, the current use of RDF in
HTML comments is just wrong.
This is great. One note:
An advantage of RESTaliciousness is that you can build only a subset of what each users needs, rather than a superset of what all users need. This advantage means discplined choices about what _doesn't_ go into the spec.
FOAF, friendster, digID et cetera are not yet basked, and will bloat the spec. In addition, its not clear that these are even functions that _should_ be automated. Our brains are so optimized for managing reputation that FOAF as a prosthetic may be unecessary.
I'd make the design goal instead "Easy to layer ID systems on top of", and let that fight take place elsewhere.
Other than that, though, this looks terrific. Thanks for taking the time to write it up.
-clay
I agree with Clay - it's a great spec, and the "Easy to layer ID systems" design goal is perhaps wiser at this stage. However, I'll take issue with:
" Our brains are so optimized for managing reputation that FOAF as a prosthetic may be unnecessary."
In that he's totally right about our brains, but it's not what I want FOAF for. To me, reputation management is secondary to just being able to do fancy stuff with "your friend just said this" in the commenting system. I'm not sure FOAF has a single use anyway, but Reputation Management is more likely to be an emergent thing than an explicit use. At least for a while.