Hierarchical categories and tagging in Pebble
I've been thinking about new functionality for Pebble 1.9 and tagging is something that's missing. Technorati tags have been around for quite a while now, but I've never really looked at them in any detail. There are a lot of great articles and blog entries about tagging, many of which say that tagging is great and many of which say that tagging is too informal unless governed by a hierarchy to give the tags context. I think I'm still sitting on the fence on this one - tagging has some very immediate benefits but it will be interesting to see how it pans out in the future. With more and more people tagging up content on the web, there's a very big chance that the number of distinct tags will explode and chaos will ensue.
Tagging blog entries
Anyway, people want to tag stuff up here and now, which is why tagging will be making an appearance in the next version of Pebble. Some users are already doing this by simply inserting their tags in the blog entry body, but built-in tagging support will make this easier. From an implementation perspective, there's an additional textfield on the blog entry page where you can specify a comma separated list of tags for your blog entry.
Tagging categories
While tagging individual blog entries is useful, I wanted to take this a step further by finding a way to make tagging as transparent as possible. For example, it would be great if all existing and new blog entries can be tagged up automatically, particularly since they are already organised into zero or more categories. There is definitely a relationship between categories and tags, both being useful in their own way. Think of categories as folders and tags as metadata (keywords).
Of course, the simplest way to realize this relationship is to tag blog entries with the names of the categories. In doing this, you have a one-to-one relationship between a category and a tag. Need to add a new tag? Add a new category. Many blogging systems support this simple notion, but it's easy to see how to improve it - why not tag the categories too? For example, my Pebble category could be tagged as "pebble" and "blogging". The net result of this is that I don't need to new create categories just because I want to tag a group of blog entries in a new way. Effectively, tagging at the category level gives you a way to bulk tag all entries that are associated with that category. The following screenshot illustrates how this works in Pebble. For any given category you can assign zero or more tags, all of which are picked up by blog entries associated with that category. Oh, and as with the current version of Pebble, you can still associate a blog entry with more than a single category.
Hierarchical categories and tag inheritance
The other major change for Pebble 1.9 is hierarchical categories. The current version only supports a single level of flat categories, although more than a single category can be associated with a blog entry. Adding hierarchical category support not only opens up new ways of organising blog entries but it also has some interesting benefits for tagging.
In Pebble, a sub-category can inherit all of the tags from all of its parent categories, right up to the root category. Taking an example from the screenshot above, through inheritance, the JUnit category effectively has the set of tags "junit", "automated+unit+testing", "java" and "simonbrown". To take another example, the following screenshot shows the tags that get picked up if you've written a blog entry, tagged it with "i18n" and associated it with the Pebble category.
Also want to associate this blog entry with the Java category? No problem, the additional tags get picked up automatically. Incidentally, from left to right, the tags are ordered from the most relevant (those at the blog entry level) to the least relevant (those at the highest level category).
Tagging at the root category level is interesting in itself because it provides a really easy way to tag *everything* on your blog with a common tag or tags. If you use something unique like a user or domain name, you also have an easy way to find all of your content across content aggregation sites that understand tagging. Perhaps not much use it you only have a single blog, but what if you have two?
Hopefully these new features make tagging as easy as possible, while still providing the flexibility to tag individual items where necessary. All of this functionality will be included with Pebble 1.9 and has been built by a combination of core enhancements and a new TechnoratiTagsDecorator plugin. Looking forward, it's possible to apply other strategies to tagging blog entries. For example, you could write a decorator that didn't take advantage of tag inheritance, or a decorator that actually tagged up blog entries using hierarchical tags mapped onto the associated category hierarchy. It's all good.
Re: Hierarchical categories and tagging in Pebble
Re: Hierarchical categories and tagging in Pebble
As for blogging clients, yes, something like "tags:" or perhaps wrapping them up inside a <tags>...</tags> block (this is how categories are supported with the Blogger API).
Simon is a hands-on software architect and a senior consultant at 

