Playing Tag On The Information Superhighway

6 min read

I've been reading some of the reactions to Steve Hargadon's work in generating a list of session tags for NECC. It runs the gamut from those who think it's pretty darn great to those who are underwhelmed. For the record, I think it's a great idea because it has the potential to get a lot of people (ie, NECC attendees) thinking about applications of tags and metadata.

I was also struck by how unnecessarily laborious the process of creating that list must have been. I'm assuming/hoping that Steve was at least given a comma-separated list of all the presentations to speed his work along, or a spreadsheet with some calculated fields to automatically generate the html for the lists. However, if the NECC site had been built on Drupal, this list could have been automatically generated by the site itself.

Stephen Downes points out the main flaw in the NECC system:

The way it should have been done in the first place: each event has an associated URL. Blog posts, etc., can link to (or 'refer to') that URL. In the metadata (ie., the RSS) for an event URL (which now has the same status as a blog post, right?) you can add some event data ('start','finish','location') and indicate event structure ('parent').

For this post, I'm only going to address the mechanism of creating a better system for publicizing the actual event and the individual sessions. I'm not going to describe how to build the registration piece; while Drupal can handle this section as well, it's outside the scope of this post.

The end goal on this is a site that lists events by date, time, strand, presenter name, title, location. For this, we will also add presenter-generated tags -- these tags can be defined as needed by the presenter to give additional information about the presentation. Most importantly, the form will need to have a place for a bloggers' tag, the tag to be used by people who are writing about the event.

Creating a form within Drupal to handle this information is fairly simple. Drupal has a few different methods of creating events with date and time information, and the additional tags (location, theme, strand, and user-generated tags) can all be handled via Drupal's core taxonomy module.

Where it starts to get fun, however, is in linking out to tags and aggregating information about different sessions. A quick look at the usual suspects (Technorati, Google Blog Search, and Flickr) show that they are all "searchable" via urls. For this example, we will search for items about "dirigibles" -- needless to say, the tag can be switched to just about anything.

Within Drupal, there is a contributed module called Computed Field. This module can be used to take the value in one field, and perform some calculation based upon it. Using the computed field module, you could take the tag for a session, and automatically generate the appropriate url for the tag and feed on technorati, google blog search, and flickr.

However (and this is where it really starts to get fun) with some custom code, you could then take the url for the feed, and automagically add the feed to the aggregator within the same Drupal site.

But let's take this a step further: using one of the four options that currently exist for importing content into Drupal (aggregation, feedparser, leech, or simplefeed), these feeds could actually be imported into the Drupal site. Using this mechanism, it would be possible to display links to blog posts about a session on the same page as the session. This list of posts would change dynamically as more posts were written, and would remain after the session as an archive about the session, and reactions to it.

And to take this a step further, because the posts are being aggregated within the site, it would then be possible to generate another round of rss feeds, so that all of the blog posts about a session, a strand, a theme, etc, would be accessible in one place, thus cutting out the need for Pageflakes, or adding 15 new sources to your aggregator to get information on one subject.

Once the initial setup was complete, this system would work automatically in the background. From the perspective of a person administering the site, all they would have to do is enter in the tag for a specific session, and the rest would be triggered from there. For people wanting to get information about a session, they could either go to the page for that session, or subscribe to the feed for that session.

On that note, I'll be packing up shortly to head out to NECC -- I'm presenting on Saturday, and will be malingering around the Open Source area thereafter. If anyone would like more details about how to set up the site I described here, or just to talk in general, come on by. I'm looking forward to meeting up with folks in Atlanta -- some of whom I've had the good fortune to meet in person already, others whom I've only met virtually. For those of you whom I haven't met personally, I'll be the bald guy with the laptop case.

See you there!

,