57. A system for constructing a database query for searching at least one database, comprising: an input device configured to receive a user entered search string, the search string comprising one or more words; a processor, communicatively coupled to the input device, configured to perform the steps of: 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 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; 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; and constructing a second database query based on the identified second node representing a concept not represented by the received search string; a search module, communicatively coupled to the processor, configured to perform the steps of: after the first database query has been constructed, searching at least one database using the first database query; and after the second database query has been constructed, searching at least one database using the second database query; and an output device, communicatively coupled to the search module, configured to output results of the searching.
57. A system for constructing a database query for searching at least one database, comprising: an input device configured to receive a user entered search string, the search string comprising one or more words; a processor, communicatively coupled to the input device, configured to perform the steps of: 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 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; 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; and constructing a second database query based on the identified second node representing a concept not represented by the received search string; a search module, communicatively coupled to the processor, configured to perform the steps of: after the first database query has been constructed, searching at least one database using the first database query; and after the second database query has been constructed, searching at least one database using the second database query; and an output device, communicatively coupled to the search module, configured to output results of the searching. 65. The system of claim 57 , wherein the first node and the second node are identified at substantially the same time.