Hi Usman,
I do not think that in their current form tags are what you need.
Tags do not execute a generic action when you click them.
Whenever you click on a tag it is added to a list of tags that is actually maintain by a tree/lis morph model and then the
tree/list is asked to update itself. Whenever a list/tree is updates only those elements that have a tag contained
by the tree/list are displayed.
To get more insight into how this works have a look in the GLMTreeMorphNodeModel class in the 'callbacks' category.
#buttonForTag:filter: is used to render the button and #toggleFilteringByTag: is executed when you click the button.
There is a more complex logic to get the tags of an element as in table presentations each column can have it's own tags.
Hope this helps.
Let me know if you have any other questions.
Cheers,
Andrei