It’s kind of a thing

June 19, 2002

Blogthreads: Following a weblog discussion

David Weinberger reports a weblog-thread software project currently in progress. The goal is to provide an easy way for readers to browse discussions between multiple weblog authors by collecting the sequence of messages automatically and presenting it in a useful fashion.

As it happens, Mr Weinberger’s earlier writing on the subject had gotten me thinking about how such automation could be done, and I came to the conclusion that the Usenet model of threading could be applied to weblogs. That is, if a weblog post references another post, then they are in the same thread and the latter comes earlier. Usenet messages indicate their references in their headers, but weblog posts can use simple hyperlinks. The only difficulty then lies in determining which links go with which posts.

For human readers, this is fairly simple, because there’s usually a visual clue which marks the beginning or end of a post. However, different weblogs mark the posts in different ways, which means that a program attempting to associate links with posts would need to be configured differently for each weblog it tried to read. Making things more confusing is the fact that posts can appear in multiple locations (the main page and the archives, for example), which can make it difficult to refer to them unambiguously.

These problems can both be solved in a simple fashion which requires minimal coding changes and no visual changes. The trick is to enclose each post in a div element, which provides an unambiguous start and end for each post while not affecting presentation. The “permalink” or permanent address of each post is marked using the “rel” attribute, which also does not affect visual appearance.

I’ve been trying to put together a document describing the coding convention for several months now (not continuously, mind you), but the announcement of another software project has given me the impetus to try again. Thus, I’m posting my web-thread coding convention even though I’m not completely satisfied with it. (Part of my problem is that I’ve been thinking about it for so long I can’t tell anymore what’s obvious and what needs more explanation.)

To see the coding convention in practice, check the source of this page. #