1. A method for improving search and retrieval of resources in a collaborative tagging system, the method comprising: identifying, using a computing system in communication with a plurality of computer accessible resources, relationships among a plurality of tags in the collaborative tagging system, the plurality of tags associated by a plurality of users with the plurality of resources, and the relationships among the plurality of tags comprising sub-tag relationships between given pairs of tags based on co-occurrence of those pairs of tags at a given resource and associative semantics, the associative semantics comprising common association between tags in each given pair of tags by the plurality of users; using the identified tag relationships based on tag co-occurrence statistics to create a hierarchy of tags, the hierarchy comprising a directed acyclic graph where nodes in the directed acyclic graph comprise tags and edges in the directed acyclic graph comprise the identified tag relationships; using the created hierarchy to infer additional tags for resources automatically, to increase a number of tags associated with each resource in order to increase a total number of resources uncovered by a tag-based search of the plurality of resources and to maximize the recall of a tag cloud comprising a plurality of tags; and using the tag hierarchies to include inferred tags in the description of each one of the plurality of resources, increasing the weight of top level tags in the hierarchy and removing lower level tags from the tag cloud.
11. The method of claim 1 , wherein the method of using the created hierarchy further comprises selecting root tags in the created hierarchy to be included in the tag cloud.