Great research starts with great data.

Learn More
More >
Patent Analysis of

Method and apparatus for searching using an active ontology

Updated Time 12 June 2019

Patent Registration Data

Publication Number

US10002189

Application Number

US12/341743

Application Date

22 December 2008

Publication Date

19 June 2018

Current Assignee

APPLE INC.

Original Assignee (Applicant)

CHEYER, ADAM

International Classification

G06F17/30

Cooperative Classification

G06F17/30734,G06F17/30663,G06F17/30675,G06F16/367,G06F16/3334

Inventor

CHEYER, ADAM

Patent Images

This patent contains figures and images illustrating the invention and its embodiment.

US10002189 Method searching 1 US10002189 Method searching 2 US10002189 Method searching 3
See all images <>

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.

Read more

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.

2. The method of claim 1, wherein identifying the first node in an ontology comprises: splitting the search string into one or more tokens, where each of the one or more tokens represents at least one of the one or more words; parsing the one or more tokens, using the ontology; and producing an interpretation of the search string as a result of the parsing.

3. The method of claim 2, wherein parsing the one or more tokens comprises: matching the one or more tokens to at least one node in the ontology.

4. The method of claim 2, wherein producing an interpretation of the search string comprises: producing a plurality of interpretations of the search string; assigning a weight to each of the plurality of interpretations, the weight indicating a confidence that an associated one of the plurality of interpretations is correct; and selecting a one of the plurality of interpretations with a highest weight.

5. The method of claim 1, further comprising: identifying one or more missing search criteria in the search string; and selecting a default value for the one or more missing search criteria from at least one of: a user profile and a user search history.

6. The method of claim 5, wherein the first database query further comprises an additional attribute having an additional value, wherein the additional value is the selected default value.

7. The method of claim 1, wherein the ontology further comprises: a plurality of links connecting nodes of the ontology with one another, each of the plurality of links representing a relation between nodes linked thereby.

8. The method of claim 7, wherein at least one relation among nodes comprises an indication that one concept causes another concept.

9. The method of claim 7, wherein at least one relation among nodes comprises an indication that concepts represented by the nodes tend to occur together.

10. The method of claim 7, wherein at least one relation among nodes comprises an indication that one of the nodes represents at least one additional search criterion associated with a concept represented by another of the nodes.

11. The method of claim 1, wherein the ontology is customized for a particular purpose.

12. The method of claim 1, further comprising: augmenting at least one of the first and second database queries by incorporating at least one additional attribute associated with at least one additional node linked to the identified first node.

13. The method of claim 1, wherein the second database query comprises: at least one attribute associated with the first node; and a value, from the search string, of the at least one attribute.

14. The method of claim 1, wherein the identified first node corresponds to a best weighted interpretation of user intent.

15. The method of claim 1, further comprising establishing at least one link between nodes based on observed behavior of at least one user.

16. The method of claim 15, wherein establishing the at least one link between nodes comprises establishing a link between two nodes responsive to a degree of observed co-occurrence of identification of the two nodes in response to receiving user queries.

17. The method of claim 1, wherein the ontology comprises an active ontology.

18. The method of claim 1, further comprising: generating a log of nodes identified as being related to a plurality of search strings received over a period of time; determining co-occurrences among the logged nodes; and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.

19. The method of claim 18, wherein generating a log comprises: for each of a plurality of received search strings, storing a record comprising at least one of: the search string, the identified node, the result, and a time stamp indicating a reception time of the search string.

20. The method of claim 1, wherein the second node is associated with the first node based on a link between the first node and the second node.

21. The method of claim 1, wherein the second node represents a concept not represented by the received search string, and wherein the second node is a concept node that does not match any of the words in the search string.

22. The method of claim 1, wherein the first node and the second node are identified at substantially the same time.

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.

24. The method of claim 1, further comprising: selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein searching at least one database using the first database query comprises searching the selected at least a first database using the first database query.

25. The method of claim 1, wherein: searching at least one database using the first database query comprises searching a first database using the first database query to retrieve first results that satisfy one or more criteria defined in the first database query; searching at least one database using the second database query comprises searching a second database using the second database query to retrieve second results that satisfy one or more criteria defined in the second database query, the second database is different from the first database; and outputting results comprises outputting results based on the first result and the second results.

26. The method of claim 1, wherein: the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.

27. The method of claim 1, wherein a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.

28. The method of claim 1, wherein the first database query represents a user intent for the user entered search string.

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.

30. The computer readable storage medium of claim 29, wherein identifying the first node in an ontology comprises: splitting the search string into one or more tokens, where each of the one or more tokens represents at least one of the one or more words; parsing the one or more tokens, using the ontology; and producing an interpretation of the search string as a result of the parsing.

31. The computer readable storage medium of claim 30, wherein parsing the one or more tokens comprises: matching the one or more tokens to at least one node in the ontology.

32. The computer readable storage medium of claim 30, wherein producing an interpretation of the search string comprises: producing a plurality of interpretations of the search string; assigning a weight to each of the plurality of interpretations, the weight indicating a confidence that an associated one of the plurality of interpretations is correct; and selecting a one of the plurality of interpretations with a highest weight.

33. The computer readable storage medium of claim 29, wherein the program is further configured to cause the at least one processor to perform the steps of: identifying one or more missing search criteria in the search string; and selecting a default value for the one or more missing search criteria from at least one of: a user profile and a user search history.

34. The computer readable storage medium of claim 33, wherein the first database query further comprises an additional attribute having an additional value, wherein the additional value is the selected default value.

35. The computer readable storage medium of claim 29, wherein the ontology further comprises: a plurality of links connecting nodes of the ontology with one another, each of the plurality of links representing a relation between nodes linked thereby.

36. The computer readable storage medium of claim 35, wherein the relation among nodes comprises an indication that one concept causes another concept.

37. The computer readable storage medium of claim 35, wherein at least one relation among nodes comprises an indication that concepts represented by the nodes tend to occur together.

38. The computer readable storage medium of claim 35, wherein at least one relation among nodes comprises an indication that one of the nodes represents at least one additional search criterion associated with a concept represented by another of the nodes.

39. The computer readable storage medium of claim 29, wherein the ontology is customized for a particular purpose.

40. The computer readable storage medium of claim 29, wherein the program is further configured to cause at least one processor to perform the step of: augmenting the constructed database query by incorporating at least one additional attribute associated with at least one additional node linked to the identified first node.

41. The computer readable storage medium of claim 29, wherein the second database query comprises: at least one attribute associated with the first node; and a value, from the search string, of the at least one attribute.

42. The computer readable storage medium of claim 29, wherein the identified first node corresponds to a best weighted interpretation of user intent.

43. The computer readable storage medium of claim 29, wherein the program is further configured to cause at least one processor to perform the step of: establishing at least one link between nodes based on observed behavior of at least one user.

44. The computer readable storage medium of claim 43, wherein establishing the at least one link between nodes comprises establishing a link between two nodes responsive to a degree of observed co-occurrence of identification of the two nodes in response to receiving user queries.

45. The computer readable storage medium of claim 29, wherein the ontology comprises an active ontology.

46. The computer readable storage medium of claim 29, wherein the program is further configured to cause at least one processor to perform the steps of: generating a log of nodes identified as being related to a plurality of search strings received over a period of time; determining co-occurrences among the logged nodes; and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.

47. The computer readable storage medium of claim 46, wherein generating a log comprises: for each of a plurality of received search strings, storing a record comprising at least one of: the search string, the identified node, the result, and a time stamp indicating a reception time of the search string.

48. The computer readable storage medium of claim 29, wherein the second node is associated with the first node based on a link between the first node and the second node.

49. The computer readable storage medium of claim 29, wherein the second node represents a concept not represented by the received search string, and wherein the second node is a concept node that does not match any of the words in the search string.

50. The computer readable storage medium of claim 29, wherein the first node and the second node are identified at substantially the same time.

51. The computer readable storage medium of claim 29, 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.

52. The computer readable storage medium of claim 29, wherein the program is further configured to cause the at least one processor to perform the step of: selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein searching at least one database using the first database query comprises searching the selected at least a first database using the first database query.

53. The computer readable storage medium of claim 29, wherein: searching at least one database using the first database query comprises searching a first database using the first database query to retrieve first results that satisfy one or more criteria defined in the first database query; searching at least one database using the second database query comprises searching a second database using the second database query to retrieve second results that satisfy one or more criteria defined in the second database query, the second database is different from the first database; and outputting results comprises outputting results based on the first result and the second results.

54. The computer readable storage medium of claim 29, wherein: the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.

55. The computer readable storage medium of claim 29, wherein a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.

56. The computer readable storage medium of claim 29, wherein the first database query represents a user intent for the user entered search string.

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.

58. The system of claim 57, wherein the processor is configured to identify the first node in an ontology by: splitting the search string into one or more tokens, where each of the one or more tokens represents at least one of the one or more words; parsing the one or more tokens, using the ontology; and producing an interpretation of the search string as a result of the parsing.

59. The system of claim 57, wherein the second database query comprises: at least one attribute associated with the first node; and a value, from the search string, of the at least one attribute.

60. The system of claim 57, wherein the processor is further configured to perform the steps of: generating a log of nodes identified as being related to a plurality of search strings received over a period of time; determining co-occurrences among the logged nodes; and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.

61. The system of claim 60, wherein at least one relation among nodes comprises an indication that concepts represented by the nodes tend to occur together.

62. The system of claim 60, wherein at least one relation among nodes comprises an indication that one of the nodes represents at least one additional search criterion associated with a concept represented by another of the nodes.

63. The system of claim 57, wherein the second node is associated with the first node based on a link between the first node and the second node.

64. The system of claim 57, wherein the second node represents a concept not represented by the received search string, and wherein the second node is a concept node that does not match any of the words in the search string.

65. The system of claim 57, wherein the first node and the second node are identified at substantially the same time.

66. The system of claim 57, 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.

67. The system of claim 57, wherein the processor is further configured to perform the step of: selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein searching at least one database using the first database query comprises searching the selected at least a first database using the first database query.

68. The system of claim 57, wherein: searching at least one database using the first database query comprises searching a first database using the first database query to retrieve first results that satisfy one or more criteria defined in the first database query; searching at least one database using the second database query comprises searching a second database using the second database query to retrieve second results that satisfy one or more criteria defined in the second database query, the second database is different from the first database; and outputting results comprises outputting results based on the first result and the second results.

69. The system of claim 57, wherein: the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.

70. The system of claim 57, wherein a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.

71. The system of claim 57, wherein the first database query represents a user intent for the user entered search string.

Read more

Claim Tree

  • 1
    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. The method of claim 1, wherein
      • identifying the first node in an ontology comprises:
    • 5. The method of claim 1, further comprising:
      • identifying one or more missing search criteria in the search string
      • and selecting a default value for the one or more missing search criteria from at least one of: a user profile and a user search history.
    • 7. The method of claim 1, wherein
      • the ontology further comprises:
    • 11. The method of claim 1, wherein
      • the ontology is customized for a particular purpose.
    • 12. The method of claim 1, further comprising:
      • augmenting at least one of the first and second database queries by incorporating at least one additional attribute associated with at least one additional node linked to the identified first node.
    • 13. The method of claim 1, wherein
      • the second database query comprises:
    • 14. The method of claim 1, wherein
      • the identified first node corresponds to a best weighted interpretation of user intent.
    • 15. The method of claim 1, further comprising
      • establishing at least one link between nodes based on observed behavior of at least one user.
    • 17. The method of claim 1, wherein
      • the ontology comprises
    • 18. The method of claim 1, further comprising:
      • generating a log of nodes identified as being related to a plurality of search strings received over a period of time
      • determining co-occurrences among the logged nodes
      • and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.
    • 20. The method of claim 1, wherein
      • the second node is associated with the first node based on a link between the first node and the second node.
    • 21. The method of claim 1, wherein
      • the second node represents a concept not represented by the received search string, and wherein
    • 22. The method of claim 1, wherein
      • the first node and the second node are identified at substantially the same time.
    • 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.
    • 24. The method of claim 1, further comprising:
      • selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein searching at least one database using the first database query comprises searching the selected at least a first database using the first database query.
    • 25. The method of claim 1, wherein
      • : searching at least one database using the first database query comprises
    • 26. The method of claim 1, wherein
      • : the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.
    • 27. The method of claim 1, wherein
      • a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.
    • 28. The method of claim 1, wherein
      • the first database query represents a user intent for the user entered search string.
  • 29
    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.
    • 30. The computer readable storage medium of claim 29, wherein
      • identifying the first node in an ontology comprises:
    • 33. The computer readable storage medium of claim 29, wherein
      • the program is further configured to cause the at least one processor to perform the steps of: identifying one or more missing search criteria in the search string; and selecting a default value for the one or more missing search criteria from at least one of: a user profile and a user search history.
    • 35. The computer readable storage medium of claim 29, wherein
      • the ontology further comprises:
    • 39. The computer readable storage medium of claim 29, wherein
      • the ontology is customized for a particular purpose.
    • 40. The computer readable storage medium of claim 29, wherein
      • the program is further configured to cause at least one processor to perform the step of: augmenting the constructed database query by incorporating at least one additional attribute associated with at least one additional node linked to the identified first node.
    • 41. The computer readable storage medium of claim 29, wherein
      • the second database query comprises:
    • 42. The computer readable storage medium of claim 29, wherein
      • the identified first node corresponds to a best weighted interpretation of user intent.
    • 43. The computer readable storage medium of claim 29, wherein
      • the program is further configured to cause at least one processor to perform the step of: establishing at least one link between nodes based on observed behavior of at least one user.
    • 45. The computer readable storage medium of claim 29, wherein
      • the ontology comprises
    • 46. The computer readable storage medium of claim 29, wherein
      • the program is further configured to cause at least one processor to perform the steps of: generating a log of nodes identified as being related to a plurality of search strings received over a period of time; determining co-occurrences among the logged nodes; and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.
    • 48. The computer readable storage medium of claim 29, wherein
      • the second node is associated with the first node based on a link between the first node and the second node.
    • 49. The computer readable storage medium of claim 29, wherein
      • the second node represents a concept not represented by the received search string, and wherein
    • 50. The computer readable storage medium of claim 29, wherein
      • the first node and the second node are identified at substantially the same time.
    • 51. The computer readable storage medium of claim 29, 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.
    • 52. The computer readable storage medium of claim 29, wherein
      • the program is further configured to cause the at least one processor to perform the step of: selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein
    • 53. The computer readable storage medium of claim 29, wherein
      • : searching at least one database using the first database query comprises
    • 54. The computer readable storage medium of claim 29, wherein
      • : the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.
    • 55. The computer readable storage medium of claim 29, wherein
      • a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.
    • 56. The computer readable storage medium of claim 29, wherein
      • the first database query represents a user intent for the user entered search string.
  • 57
    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.
    • 58. The system of claim 57, wherein
      • the processor is configured to identify the first node in an ontology by: splitting the search string into one or more tokens, where each of the one or more tokens represents at least one of the one or more words; parsing the one or more tokens, using the ontology; and producing an interpretation of the search string as a result of the parsing.
    • 59. The system of claim 57, wherein
      • the second database query comprises:
    • 60. The system of claim 57, wherein
      • the processor is further configured to perform the steps of: generating a log of nodes identified as being related to a plurality of search strings received over a period of time; determining co-occurrences among the logged nodes; and augmenting the ontology to include links among nodes based on frequency of the determined co-occurrences.
    • 63. The system of claim 57, wherein
      • the second node is associated with the first node based on a link between the first node and the second node.
    • 64. The system of claim 57, wherein
      • the second node represents a concept not represented by the received search string, and wherein
    • 65. The system of claim 57, wherein
      • the first node and the second node are identified at substantially the same time.
    • 66. The system of claim 57, 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.
    • 67. The system of claim 57, wherein
      • the processor is further configured to perform the step of: selecting at least a first database from a plurality of databases in accordance with a constraint defined in the first database query, wherein
    • 68. The system of claim 57, wherein
      • : searching at least one database using the first database query comprises
    • 69. The system of claim 57, wherein
      • : the first node in the ontology represents a first user intent of performing a first action; the second node in the ontology represents a second user intent of performing a second action; and the first node and the second node are directly connected by a link in the ontology, the link representing a causal relationship between the first action and the second action.
    • 70. The system of claim 57, wherein
      • a keyword search with words from the user entered search string is not performed on the at least one database after receiving the user entered search string and prior to searching the at least one database using the first database query.
    • 71. The system of claim 57, wherein
      • the first database query represents a user intent for the user entered search string.
See all independent claims <>

Description

FIELD OF THE INVENTION

The invention relates generally to database searching and relates more specifically to searching using an active ontology.

BACKGROUND OF THE DISCLOSURE

Searching by keywords is well known in the field of database searching. For example, when using an Internet search engine, a user typically enters one or more keywords as a search terms, such that the search results will include database content associated with the keywords. Often, the creator of the content will choose the keywords that will cause the content to be retrieved by a database search (e.g., by “tagging” the content with the keywords). For example, the creator of a review of a fancy Italian restaurant named Restaurant X may tag the review with keywords such as “Italian,”“restaurant,” and “fancy” such that the review is retrieved when a user enters one or more of those keywords in a query.

A drawback of this approach is that keywords may not capture all of the synonyms that users will use in practice when searching. For example, referring to the example above, the review of Restaurant X might not be retrieved if the user instead enters keywords such as “Italian” and “elegant” or “upscale.” These consequences are particularly significant in the field of advertising, where advertisers rely on users viewing their advertisements to generate sales. Moreover, conventional database search systems that search by keywords may have trouble determining the high level intent of what a user is seeking. For example, a search system may be unable to determine that the keywords “Restaurant X,”“Friday,” and “8:00 PM” indicate that the user wishes to make reservations for Friday at 8:00 PM at Restaurant X.

Thus, there is a need in the art for a method and apparatus for searching using an active ontology.

SUMMARY OF THE INVENTION

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.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating one embodiment of a method for searching using an active ontology, according to the present invention;

FIG. 2 illustrates one embodiment of an exemplary active ontology that may be used to facilitate a search in accordance with the method illustrated in FIG. 1; and

FIG. 3 is a high level block diagram of the present search method that is implemented using a general purpose computing device.

DETAILED DESCRIPTION

In one embodiment, the present invention is a method and apparatus for searching using an active ontology. An “ontology”, generally, is a data structure that represents domain knowledge, where distinct classes, attributes, and relations among classes are defined. A separate engine may operate or reason on this data structure to produce certain results. In certain embodiments of the present invention, an ontology is used to select content (e.g., a set of advertisements) from a database given a user query.

The approach to searching that is embodied in the present application may be of particular use in the field of advertising, although the invention is not limited as such. Specifically, the semantic structure employed by embodiments of the present invention allows for improved advertisement indexing. Moreover, the use of links (such as “suggests” and causal links) in the search ontology facilitates the prediction of upcoming relevant content or user actions, and these links can be automatically learned through use.

FIG. 1 is a flow diagram illustrating one embodiment of a method 100 for searching using an active ontology, according to the present invention. The basic task of the method 100 is to take a user query (i.e., search string) and return a set of relevant content (e.g., advertisements). In one embodiment, the content is sorted by the user's preferences.

The method 100 is initialized at step 102 and proceeds to step 104, where the method 100 receives a search string from a user. In one embodiment, the search string is substantially similar to a search string typically given to an online search engine (e.g., a phrase such as “find fancy Italian food” or “Italian food in San Francisco”).

In step 106, the method 100 splits the search string into one or more tokens, each token representing at least one word in the search string. The method 100 then proceeds to step 108 and matches the tokens to nodes of an active ontology. FIG. 2, for example, illustrates one embodiment of an exemplary active ontology 200 that may be used to facilitate a search in accordance with the method 100. As illustrated, the active ontology 200 comprises a plurality of nodes 2021-202n (hereinafter collectively referred to as “nodes 202”). The nodes 202 represent concepts, which may be categories or classes (e.g., as in the case of node 2024, which represents the concept or category “Restaurant”) or attributes of the classes (e.g., as in the case of nodes 2027, 2028, and 202n, which represent, respectively, the concepts or attributes “Style,”“Price Range,” and “Location”). The nodes 202 are connected by links 2041-204n (hereinafter collectively referred to as “links 204”) which represent the relations among the classes and attributes represented by the nodes 202. For instance, the link 20410 represents the fact that the class “Restaurant” has an attribute of “Style.”

Referring back to FIG. 1, the individual tokens into which the search string is split will activate word matching nodes in the active ontology. In one embodiment, the active ontology is customized for a particular purpose, such as advertising. The method 100 will try to parse the list of tokens, using the active ontology, as a whole phrase, in order to try to determine the overall intent of the user. Thus, the method 100 will try to parse as many of the tokens as possible. This means that if there are multiple ambiguous interpretations of the search string, the method 100 will try to evaluate each weighted alternative based on all of the tokens derived from the search string. The interpretation with the best weight (i.e., the highest confidence) will be used to generate a semantic representation of the search string in step 110.

Specifically, in step 110, the method 100 generates a semantic representation of the search string using the ontology nodes. The ontology nodes corresponding to the best weighted interpretation will create the semantic representation of the phrase. This semantic structure will contain the contextual information that was extracted from the search string. For instance, if the search string was “find fancy Italian food,” the method 100 might translate the search string into a semantic structure such as ‘find(restaurant, [style(“Italian”)], [price_range(“fancy”)])’. This structure captures the user's intent to find a restaurant and it also specifies an additional constraint using a type attribute, restricting the results to those restaurants that are fancy and serve Italian food.

In step 112, the method 100 uses the semantic representation of the search string to search a database (e.g., a database of advertisers). That is, the method 100 searches the database for content that best matches all of the criteria embodied in the semantic representation. In the above example, for instance, a database of advertisements or reviews for restaurants (such as Zagat Survey, LLC's Zagat.com®) would be searched, restricted to those restaurants that are fancy and serve Italian food. However, if the original or a subsequent search string included the additional constraint of “Friday, 8:00 PM,” a semantic representation of this additional constraint might motivate search in a different database, such as a database that allows a user to make restaurant reservations (such as OpenTable, Inc's OpenTable.com®), as illustrated in FIG. 2. The additional constraint of day (“Friday”) and time (“8:00 PM”) changes the resultant semantic representation in a subtle way that cannot be easily mapped to traditional keyword approaches. As discussed above, the user's original search string may be ambiguous, but the method 100 will parse the search string and translate it to a precise semantic structure that can be used to construct a database query. In this way, the search string is used to search for content based on semantically meaningful attributes and not just based on keywords.

The method 100 outputs the results of the database search to the user in step 114, before terminating in step 116. In one embodiment, the method 100 stores the results in addition to outputting them. In one embodiment, the stored results comprise a record including at least one of: the search string, the semantic representation of the search string, the search results, and a time stamp indicating when the search string was received. The record allows the results to be retrieved by the user at a later time. In addition, the record also allows the method 100 to learn patterns of user behavior that may assist in updating the ontology, as discussed in greater detail below.

In one embodiment, if the search string received in step 104 appears unclear or incomplete (e.g., some of the search criteria are missing), the method 100 examines the user's profile or search history to select default values. For instance, if a first search string was “find fancy Italian restaurants in San Francisco” and a second search string is “get evening showtimes,” then the method 100 will remember the location San Francisco, Calif. from the first query when selecting the locations for movie theaters. Also, the user's profile may specify a preference for art movies, so that preference may be added automatically to the second query.

Embodiments of the present invention will therefore parse a user's query and determine the higher level concepts and categories that describe what the user is seeking. These concepts are then used as an index into the database of relevant content. Content that triggers on a particular concept will also be triggered on the subconcepts. For instance, a user query for “Italian restaurants” will automatically trigger ads for “Sicilian restaurants” as well, because “Sicilian” is a subconcept of “Italian.” Content providers (e.g., advertisers) only need to register on the highest level category that they wish to match, and they will automatically be triggered for subcategories and their synonyms as well.

Referring back to FIG. 2, as discussed above, links 204 in the active ontology 200 indicate relations among the classes and attributes represented by the nodes 202. Each of these links 204 represents a specific kind of relation. In one embodiment, the types of relations represented by the links 204 in the active ontology 200 include at least one of: an IS-A relation, a HAS-A relation, a CAUSAL relation (such as, for example, a SUGGESTS relation).

For example, in one embodiment, IS-A relations are used to link categories (i.e., concepts in the ontology) to broader categories. In further embodiments, sets of synonyms are defined for concepts. In this way, the search string can be translated into a semantic search for content based on broader categories like “European restaurants” or “fancy restaurants” or “expensive food”.

In a further embodiment, HAS-A relations are used to specify additional search criteria that will be associated with a concept or category. For instance, when searching for a restaurant, a city location may be a mandatory search parameter, as illustrated in FIG. 2. This is specified using a mandatory HAS-A link (link 204n) in the ontology 200 from the RESTAURANT concept node (node 2024) to the LOCATION node (node 202n). A price range is also a useful search parameter, but may be optional. Thus, a HAS-A link (link 20411) from the RESTAURANT concept node (node 2024) to the PRICE RANGE concept node (node 2028) may be established and marked as optional. The concepts that have HAS-A links become GATHER type nodes. When the user's search string is parsed, the semantic slots for these HAS-A links are filled in using the parsed tokens, or else default values are used from the user's profile and search history. Therefore, the present invention has this detailed information available when searching a database.

In further embodiments, the concepts of the present invention are used to model basic processes. In one embodiment, the ontology includes CAUSAL links or SUGGESTS links between concepts. CAUSAL links would be used if one concept directly causes another concept, or if one action usually precedes another action. SUGGESTS links are especially useful and would link user actions that often occur together but not in a particular order. For example, the concept nodes for RESTAURANT BOOKING (node 2023) and MOVIE BOOKING (node 2022) could be linked bidirectionally with a SUGGESTS link (link 2045), as illustrated in FIG. 2. An ATM concept node (not shown), which represents a user visit to an automated teller machine (ATM), could be linked with a CAUSAL node to both RESTAURANT BOOKING (node 2023) and MOVIE BOOKING (node 2022) because a visit to an ATM often precedes dinner and a movie closely in time.

In further embodiments, a system according to the present invention utilizes the process model to help determine what else might interest a given user. For example, given a search string “find restaurants,” the present invention would activate the RESTAURANT concept node (node 2024) and indirectly activate the RESTAURANT BOOKING (node 2023) and MOVIE (node 2022) concept nodes as well. If the search string was received during evening hours, then the RESTAURANT BOOKING node (node 2023) would have higher confidence. This in turn would increase activation of SUGGESTS-linked nodes (e.g., the MOVIE node 2022). Therefore, the system would query its database for restaurants and could also produce additional results for nearby movies. Each of the search results would be associated with the concepts that triggered them, so that the results for MOVIES could be presented separately to the user. Although this scenario utilizes a process model that is explicitly encoded into an ontology, those skilled in the art will appreciate that some of the links could be learned using data mining techniques from the logs of a particular user or the aggregated behavior of many users.

Over time, users of the present invention may ask for movies, restaurants, ATMs, gas stations, book stores, or the like. In one embodiment, the inventive system logs the corresponding semantic structures for each of the received search strings and the time stamps indicating when the search strings were received. These logs can be scanned in temporal order, and all of the search strings that happen within various time windows can be analyzed to make co-occurrence counts. By counting and ranking those pairs of events that co-occur over different time scales, patterns of behavior would emerge over a large body of users. For example, the logs may show many occurrences of MOVIE and RESTAURANT queries that happen within four hours of each other. If so, then the ontology could be automatically augmented with a SUGGESTS link between those nodes. In addition, ATM may also co-occur frequently with both MOVIE and RESTAURANT, but ATM should precede MOVIE and RESTAURANT in time with high probability. If so, then two CAUSAL links could be added from ATM to RESTAURANT and MOVIE. In this way, statistics could be collected for a particular user or for many users in aggregate. The system would offer related search results based on how frequently a related concept co-occurs with the user's current search string.

FIG. 3 is a high level block diagram of the present search method that is implemented using a general purpose computing device 300. In one embodiment, a general purpose computing device 300 comprises a processor 302, a memory 304, a search module 305 and various input/output (I/O) devices 306 such as a display, a keyboard, a mouse, a modem, and the like. In one embodiment, at least one I/O device is a storage device (e.g., a disk drive, an optical disk drive, a floppy disk drive). It should be understood that the search module 305 can be implemented as a physical device or subsystem that is coupled to a processor through a communication channel.

Alternatively, the search module 305 can be represented by one or more software applications (or even a combination of software and hardware, e.g., using Application Specific Integrated Circuits (ASIC)), where the software is loaded from a storage medium (e.g., I/O devices 306) and operated by the processor 302 in the memory 304 of the general purpose computing device 300. Thus, in one embodiment, the search module 305 for database searching described herein with reference to the preceding Figures can be stored on a computer readable medium or carrier (e.g., RAM, magnetic or optical drive or diskette, and the like).

It should be noted that although not explicitly specified, one or more steps of the methods described herein may include a storing, displaying and/or outputting step as required for a particular application. In other words, any data, records, fields, and/or intermediate results discussed in the methods can be stored, displayed, and/or outputted to another device as required for a particular application. Furthermore, steps or blocks in the accompanying Figures that recite a determining operation or involve a decision, do not necessarily require that both branches of the determining operation be practiced. In other words, one of the branches of the determining operation can be deemed as an optional step.

While foregoing is directed to the preferred embodiment of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof.

Read more
PatSnap Solutions

Great research starts with great data.

Use the most comprehensive innovation intelligence platform to maximise ROI on research.

Learn More

Patent Valuation

$

Reveal the value <>

34.0/100 Score

Market Attractiveness

It shows from an IP point of view how many competitors are active and innovations are made in the different technical fields of the company. On a company level, the market attractiveness is often also an indicator of how diversified a company is. Here we look into the commercial relevance of the market.

36.0/100 Score

Market Coverage

It shows the sizes of the market that is covered with the IP and in how many countries the IP guarantees protection. It reflects a market size that is potentially addressable with the invented technology/formulation with a legal protection which also includes a freedom to operate. Here we look into the size of the impacted market.

73.0/100 Score

Technology Quality

It shows the degree of innovation that can be derived from a company’s IP. Here we look into ease of detection, ability to design around and significance of the patented feature to the product/service.

70.0/100 Score

Assignee Score

It takes the R&D behavior of the company itself into account that results in IP. During the invention phase, larger companies are considered to assign a higher R&D budget on a certain technology field, these companies have a better influence on their market, on what is marketable and what might lead to a standard.

16.0/100 Score

Legal Score

It shows the legal strength of IP in terms of its degree of protecting effect. Here we look into claim scope, claim breadth, claim quality, stability and priority.

Citation

Patents Cited in This Cited by
Title Current Assignee Application Date Publication Date
Audio on Demand System PÜLLEN RAINER 11 September 1998 02 June 1999
VERFAHREN ZUM REDUZIEREN DER DATENRATE VON DIGITALEN BILDDATEN ANT NACHRICHTENTECHNIK GMBH 05 November 1988 10 May 1990
See full citation <>

More Patents & Intellectual Property

PatSnap Solutions

PatSnap solutions are used by R&D teams, legal and IP professionals, those in business intelligence and strategic planning roles and by research staff at academic institutions globally.

PatSnap Solutions
Search & Analyze
The widest range of IP search tools makes getting the right answers and asking the right questions easier than ever. One click analysis extracts meaningful information on competitors and technology trends from IP data.
Business Intelligence
Gain powerful insights into future technology changes, market shifts and competitor strategies.
Workflow
Manage IP-related processes across multiple teams and departments with integrated collaboration and workflow tools.
Contact Sales
Clsoe
US10002189 Method searching 1 US10002189 Method searching 2 US10002189 Method searching 3