Method and apparatus for searching using an active ontology
First Claim
Patent Images
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.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide a method and apparatus for searching using an active ontology. One embodiment of a method for searching a database includes receiving a search string, where the search string comprises one or more words, generating a semantic representation of the search string in accordance with an ontology, searching the database using the semantic representation, and outputting a result of the searching.
528 Citations
71 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory computer readable storage medium containing an executable program for constructing database queries for searching a database, wherein the program is configured to cause at least one processor to perform the steps of:
-
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 additional 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; after constructing the second database query, searching at least one database using the second database query; and outputting results of the searching. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56)
-
-
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. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71)
-
Specification