Recently I noticed some interesting use of tags, around the web. On de.lirio.us I found people using the colon to give more meaning to tags, like license:gpl. Another famous one is the for:some_username in del.icio.us. All that triggered me.
We can use the fact that we have about the most powerfull 'tagging' engine there exists: Taxonomy in Drupal. To get all that tagging tags to a next level. For I often miss some options, in tags:
- Relations. How can I tell that rose is related to magnolia?
- Context. How can I tell that Rose belongs to the group Garden?
- Subclasses. How can define that Rose is a child of Flowers
- Importance. I might have much more interests in Roses, and thus want Rose to be more important.
We all have these in Drupal, in taxonomy. The exact same engine we use for freetagging!
- Relations. We can relate terms Rose and Magnolia
- Vocabularies. We can add the term Rose to the vocabulary Garden
- Hierarchies. We can define the term Flowers as parent of Rose
- Weights. We can give each term a weight
It is already possible to do o in the admin area, not very friendly and near impossible if you have a lot of tags, but it can be done. Meaning, that all the functions, code, databases etc are already in place, working and tested.
So I think all we need is to pull that power to the front-end, where we define the tags. In the textfield (autofilled) where we put "Rose, Garden" now.
- Relations. Rose<>Magnolia
- Vocabularies. Garden:Rose
- Hierarchies. Flowers/Rose
- Weights. Rose+4
All we need is to add these special characters to a small parsing engine and save the extracted data along with the $term to the database. And viola, We have the most powerfull tagging ssytem in the World. Try to beat that, wordpress, with your shiny layouts and Joe-Friendly installers, hah! :)