1. A method comprising: collecting, over a network, data relating to a plurality of keywords, wherein the data relating to keywords comprises a plurality of concept keywords, each concept keyword relating to one of a plurality of concepts and data relating to relationships among the plurality of concepts, data relating to a plurality of entity keywords, each entity keyword relating to one of a plurality of entities and data relating to relationships among the plurality of entities, and data relating to relationships between the plurality of entities and the plurality of concept keywords; storing, using at least one computing device, the data relating to a plurality of keywords, on a knowledgebase stored on a computer-readable medium, wherein the plurality of concept keywords and the data relating to relationships among the plurality of concepts is used to create a hierarchy of concept definitions having a plurality of typed and weighted concept-toconcept relationships with one another, and wherein the data relating to a plurality of entities is used to create a plurality of entity profiles, each entity profile relating to one of the plurality of entities, and wherein the data relating to relationships among the plurality of entities is used to create a plurality of a plurality of typed and weighted entity-to-entity relationships, and wherein the data relating to relationships between the plurality of entities and the plurality of concept keywords is used to create a plurality of typed and weighted entity-to-concept relationships.