tagged by Dexter and not impressed

Haibane.info is now running version 2.3.1. The 2.3.x upgrade brings tag functionality to the WordPress core. At present I only have one tag, “wordpress” – I need to sit down and think about a strategy for making best use of this functionality. As it turns out, it also breaks my blog in an interesting way… and leaves me highly skeptical of whether tags are meaningfully different from categories at all, despite the prevailing dogma that insists they are truly separate things.

The lack of tag functionality in WP has hardly stopped users from using them; most simply downloaded a plugin like Ultimate Tag Warrior (now deprecated) and went on merrily tagging as before. However, I was not interested in using these kinds of plugins because I figured that it would be redundant with the existing category functionality built-in to WP from the start. The implementation of categories was, essentially, identical to tags – you could assign multiple cats to a post, you can view all posts from a specific cat, you could even get a per-cat RSS feed. The only problem was that cats were not indexed as tags by third party tag aggregators like Technorati – until I realized that it was easy to trick Technorati into looking at my vats as tags, by setting the category URL “base” appropriately. On most WP blogs, to view all posts in given category you would do it via URL like so:

http://www.haibane.info/topic/stranger-than-fiction/

However, by making the appropriate change under the Options:Permalinks menu, you can define the category base to be any string you desire, so I chose it to be “tag” as follows:

http://www.haibane.info/tags/stranger-than-fiction/

Experienced WP mavens such as Lorelle at this point are turning white as a sheet. The mantra has always been, Tags Are Not Categories. But the benefits of ignoring the dogma were awesome; my blog’s categories were automatically treated as tags by Technorati.

And so, I merrily blogged on, having done the impossible; I was the great Uniter. Until WordPress 2.3 came along.

Now, a digression. Lorelle, one the WP community’s major personalities, has written volumes about tags, and the overall sense I get is that she is a skeptic. I share that view to some extent; the fundamental advantage of tags is that they are a standardized keyword system. Tags are identical to keywords, or at least the lines between them are increasingly blurred; which is why I find her insistence that cats are not tags to be puzzling. She summarizes the sole benefits of tags thus:

  • To provide additional keywords to help search engines and tag services add up your keyword counts and classify your post content.
  • To provide additional navigation on your site, like an index reference, helping the user find related post content.
  • To provide additional information and resources by linking to off-site services, such as Technorati, del.icio.us, or other off-site search engines or tag services.

Note that items 1 and 3 are somewhat redundant. But all of these can be achieved with categories as well, if the user enforces a discipline on themselves. Ultimately, a gigantic cloud of tags is as useless as an enormous list of categories, but either one applied consistently and selectively results in a genuinely useful categorization that then can be leveraged for navigation and aid search engines in classification.

I would argue that there is a more fundamental difference between cats and tags that the WP developers seem to have missed, which is the communal taxonomy nature of tags. A category is an author-defined keyword, whereas the best tag systems are the ones where the readers are the ones who impose the classification. For an example of tags done properly, look at Daily Kos, where any user can tag anyone else’s diary. The argument against this sort of thing is essentially “it will lead to chaos” – and to some extent, it has, since the tag cloud for DK is truly immense – but consider that the same argument could be made against Wikipedia‘s “anyone can edit this page” philosophy. What happens is that the community itself self-organizes; on Wikipedia there are all sorts of conventions that have emerged (no trivia, proper sourcing, “disputed” article designations, etc) and on DK the community itself polices tag use, creates tag conventions of its own, and regularizes the common ones. It is this social taxonomy aspect that is missing from the WordPress implementation, and which really limits tags to nothing more than glorified keywords or categories.

So, back to me and my blog. The bottom line was that after upgrading to Dexter, my permalink scheme broke. If anyone tries to access a category via the URL above with the category base “tag”, they now find that they get a 404 instead of the list of posts. This is because WP 2.3 seems to reserve the URL base “tag” for tags alone; there must be some kind of confusion in the database. I’ve submitted this issue as ticket #5279 on WordPress trac accordingly, with a request for resolution in v2.3.2.

It is also worth noting that the WP developers provided a handy conversion tool for turning selected categories into tags, but there is no reverse action possible. If you turn a cat into a tag and then decide (for whatever reason) that this was an error, you’re stuck. (I’ve filed a request for reverse conversion as ticket #5282.) It should also be noted that with tags you can do cool things like tag intersections and unions via URL, but this functionality is missing from categories (ticket #5281). Given these two facts, it’s almost a no-brainer that you might as well ditch your categories entirely and just embrace tags completely; the lack of reverse conversion and the extra navigation functionality of tags create a powerful incentive to abandon cats entirely, all the preaching about tag vs cat dogma aside.

What’s the bottom line? I will not convert any of my cats to tags since there’s no way to undo the process. I need to see what the response is to my tickets on WordPress Trac to decide how best to proceed; I might end up simply converting all my cats into tags t maximize functionality (since I still don’t see any genuine difference).

However it’s clear what the ideal situation would be for tags to be of genuine use (and have a clean differentiation from categories) to WP bloggers and readers alike:
– tags and cats should be unified at the permalink and URL level so that tag unions and intersections can be performed with either, and both are recognized as “tags” by external systems such as Technorati.
– tags should be editable by registered users of the blog. The access level of who can edit the tags (subscriber, contributor, author, etc) should be up to the blog admin (even allowing non-registered users to edit tags if so desired).
– cats should remain under the exclusive control of the blog admin and authors.

This will create two sets of taxonomies per blog; one defined by the author, and one by the readers. Both however will be treated as taxonomies in their own right by external search engines like Technorati. Whether these taxonomies remain distinct or merge into a single taxonomy is a continuum of choice that is entirely up to the blog admin.

Until then, there’s simply not much point in investing any effort into laboriously assigning every post with both cats and tags.