Labels vs. Hierarchy

One of the big design choices that Google made when they created Gmail was to drop the idea of folders (or at least user definable folders) and to supply a flexible labeling system instead. My mail filters apply labels to mail from various lists and Gmail makes it easy to view mail with a particular label. If you look at, you’ll see that they came to a similar conclusion as Google. When you add links, you can apply any number of labels to them and easily retrieve links by label later. After using both of these systems, I’m completely sold on the idea that labels should take the place of hierarchical systems for organizing information a lot of the time. I don’t want a file system that is based on labels, but for many other things, labels make sense. One thing that’s worth mentioning is that labels work best alongside a robust search capability.

Maybe I’m missing something, but it seems to me that it’s not quite that simple. The big advantage of hierarchy is that you get parent/child relationships as part of the package, this works wonderfully for systems like Blosxom where you may want to browse a general topic (say “Technology”), or you may be interested in something specific (say “Technology/Software/Blosxom/Plugins). The big advantage with labels is that it’s trivial for items to belong to multiple categories (say “Perl”, “Blog Software” and “Blosxom”).

The downside of hierarchies is that the structure, especially a filesystem based structure, makes applying multiple labels much harder (eg. something can’t exist in two directories without symlinks and that opens a whole new can of nastiness). The downside of labels is that every item has to be tagged with all relevant labels as there is no inheritance from the parent item, this gets tiresome e.g. all “Blosxom” posts should inherently belong to the “Software” and “Perl” labels as well).

I’ve also found that label systems (for example this wiki uses labels to categorize pages) seem harder to browse then hierarchy based systems. I’ve partially attributed this to why wiki sites tend to get ignored, labels just aren’t as human friendly a way to browse information.

It seems that the best of both worlds would be to use labels to annotate each item, but to organize your labels in a hierarchy. Thus you can browse your content hierarchically while maintaining the power of labels and the inheritance of hierarchy.

Leave a Reply