1. A method for searching, comprising: transforming a plurality of document identifiers for documents and their associated set of user generated tags comprising un-annotated and annotated content of the documents and annotations independent of content into a set of URL/TAG pairs; identifying one or more errors within the user generated tags; correcting the one or more errors; constructing a bigraph using the set of URL/TAG pairs; using the bigraph to compute tag profiles and document profiles using spreading activation for the document identifiers and tags in the set of URL/TAG pairs, wherein the tag profiles and document profiles are computed using spreading activation iteratively as vectors A as follows: A ⁡ [ 1 ] = E ; A ⁡ [ 2 ] = α ⁢ ⁢ M ⋆ A ⁡ [ 1 ] + β ⁢ ⁢ E ; ⋮ A ⁡ [ n ] = α ⁢ ⁢ M ⋆ A ⁡ [ n - 1 ] + β ⁢ ⁢ E ; where: A[ 1 ], A[ 2 ],. .. A[n] are iteratively computed profile vectors of document identifiers and tags; E is a unit vector representing a tag or document entry node; M is a matrix representation of the bigraph arranged by column or row according to the selected entry node; α and β are parameters for adjusting spreading activation; for a selected tag or document, identifying the tag profile or the document profile associated with the selected tag or document, respectively; arranging by relevance those tags or documents in the identified tag profile or document profile associated with the selected tag or document, respectively; ranking the document profile of the selected document against other document profiles to identify similar profiles of other documents; identifying for output the other documents of the similar profiles ranked above a predefined threshold; and augmenting the other documents of the similar profiles above the predefined threshold by propagating the user generated tags of the selected document to the other documents.