Users can specify "parent" relation between tags so that to organize tags into a tree structure.
When one message is assigned a certain tag, also assign all the ancestor tags.
Reason:
Users can start with a coarse grained tagging strategy. i.e. a few tags.
Later if the user want better ranking, he may need to do finer-grained tagging. In the hierarchical way, previous tagging and preference relation can still be used to train RPR. Users do not suffer sudden drop of relevance when shifting to new tagging strategy.
Functions to implement:
Reason: