I would like to explain an idea I have before I try to implement it. I wouldn’t doubt if this idea has been done before but I can’t find any Rails implementations of it.
I want to support a tag hierarchies on Hey! Heads Up. Tag hierarchies will result in implicit tagging, which most people do in their heads anyway. Examples of implicit tagging will probably help:
1. Something tagged ‘hockey’ should also be tagged ‘sport’
2. Something tagged ‘MacBook’ should also be tagged ‘Apple’
3. Something tagged ‘Rails’ should also be tagged ‘Ruby’
“Why would I want all of these generalized implicit tags on my stuff?“, you might ask. In Hey! Heads Up you can view your item lists by tag. If I wanted to read all of the sports items I’d have to go through hockey, football, baseball, golf lists individually.
I could support AND-ing these tags together in the URL — and I want support that, as well as support OR — but just being able to say “give me everything tagged ‘sport’” would be much cleaner.
Tagging is a personal thing and it seems like everyone does it differently. That’s one of the advantages of tagging over a predefined hierarchy. But a lot of people don’t like to be redundant. If I tag something with ‘hockey’ I’m not going to explicitly tag it with ‘sport’ as well.
When tagging replaced hierarchies as the new way to classify/organize things in the “Web 2.0” world, we lost something. We lost the implicit nature of hierarchies because tags are a flat taxonomy. The upside is that now it’s easier to classify things with tags that are orthogonal subjects — like ‘hockey’ and ‘book’. But the hierarchical nature of each subject that was so handy is lost, so my hockey book wouldn’t be classified with ‘sport’ and ‘book’.
How do I support a tag hierarchy taxonomy? I could make a global taxonomy for Hey! Heads Up and force implicit tags on people but that doesn’t sound right.
A better solution is allowing people to create their own tag hierarchies. Then they can make the hierarchies for certain subjects as detailed as they want them to be. Every orthogonal subject would have its own tag hierarchy — the subjects wouldn’t be linked together at the top of the taxonomy.
Sure it’s more work for people to set up but people who care about it will think it is worth it. People already set up tagging (labelling) for web applications like Gmail in advance. For everyone else, tag hierarchies will be optional and regular tagging will still be supported.
If Gmail had label hierarchies, I would definitely use them. But perhaps I’m in the minority.
How I implement tag hierarchies on the back-end isn’t that important to this discussion but it could result in a new Rails plugin, if there isn’t already one out there.