1. A method for constructing database queries for searching at least one database, comprising: receiving a user entered search string, the search string comprising one or more words; identifying a first node in an ontology based on the one or more words of the search string, the first node being related to at least one of the one or more words in the search string, wherein the ontology includes at least one node representing a concept and at least one node representing an attribute of the concept; constructing a first database query based on the identified first node in the ontology, the first database query comprising one or more attributes associated with the first node, and a respective value, from the search string, for each of the one or more attributes; after constructing the first database query, searching at least one database using the first database query; identifying, based on a frequency of occurrence of a pair of user events, a second node in the ontology, the second node associated with the first node, the second node representing a concept not represented by the received search string, wherein a first user event of the pair of user events corresponds to the first node and a second user event of the pair of user events corresponds to the second node, and wherein for each occurrence of the pair of user events, the first user event and the second user event occur within a predetermined time period; constructing a second database query based on the identified second node; after constructing the second database query, searching at least one database using the second database query; and outputting results of the searching.
23. The method of claim 1 , wherein the first node and the second node are identified prior to searching any database with either the first database query or the second database query.