Customizable answer engine implemented by user-defined plug-ins
First Claim
1. A method of computing answer results to queries submitted by a user comprising:
- providing a plug-in executor comprising at least one plug-in created by a plug-in developer;
wherein said one or more plug-ins are configured to execute one or more of system-defined programs and plug-in developer-defined programs, andwherein said plug-in executor is configured to one or more of execute arbitrary program text uploaded by said plug-in developer or execute routines parameterized by said plug-in developer;
providing a user database configured to store and retrieve user preferences;
providing a plug-in database configured to store and retrieve plug-in specifications;
providing a content recognizer set determinator configured to compute a subset of all available content recognizers,wherein said computation of said subset depends on one or more of contents of a query submitted by said user,providing an answer generator set determinator configured to compute a subset of all available answer generators,wherein said compute of said subset depends on one or more of contents of said one or more queries submitted by said user and a dictionary of combined recognition results used as an input; and
,providing a controller configured toreceive a query from a client program,lookup said user'"'"'s preferences in said user database,determine the subset of content recognizers to execute using said content recognizer set determinator, and lookup specifications for each content recognizer in said subset of content recognizers,submit said specifications for each content recognizer to said plug-in executor, using said query and said user'"'"'s preferences as input, and combine all content recognition results into a dictionary of combined content recognition results,determine the subset of answer generators to execute using said answer generator set determinator, and lookup the specifications for each answer generator in said subset of answer generators, to yield a set of answer generator specifications,submit said set of answer generators specifications to said plug-in executor, using said query, said user'"'"'s preferences, and said dictionary of recognition results as input, and combine the answer results from each answer generator into a list of answer results, andrespond to said client program with said list of answer results, such thatsaid user is able to customize how an answer engine responds to queries,answers are generated by at least one answer generator plug-in created by one or more plug-in developers,content recognizers are implemented by at least one content recognizer plug-in created by one or more other plug-in developers, andanswer generators utilize content recognizers even if said content recognizers are not created by a single plug-in developer, and content recognition execution resources are bounded.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods of computing answer results to user-submitted queries, using a plug-in executor, a user database, a plug-in database, content recognizers, answer generators and a controller. Controller submits content recognizer specifications and sets of answer generator specifications to the plug-in executor, combines content recognition results, combines answer generator answer results, determines the subset of answer generators to execute using an answer generator set determinator, looks up the specifications for each answer generator in the subset of answer generators, and responds to the client program with a list of answer results. Users customize how answer engines respond to queries, answers are generated by answer generator plug-ins created by other users, content recognizers are implemented by content recognizer plug-ins created by other users, and answer generators utilize content recognizers even if the content recognizers are not created by a single author and content recognition execution resources are bounded.
72 Citations
24 Claims
-
1. A method of computing answer results to queries submitted by a user comprising:
-
providing a plug-in executor comprising at least one plug-in created by a plug-in developer; wherein said one or more plug-ins are configured to execute one or more of system-defined programs and plug-in developer-defined programs, and wherein said plug-in executor is configured to one or more of execute arbitrary program text uploaded by said plug-in developer or execute routines parameterized by said plug-in developer; providing a user database configured to store and retrieve user preferences; providing a plug-in database configured to store and retrieve plug-in specifications; providing a content recognizer set determinator configured to compute a subset of all available content recognizers, wherein said computation of said subset depends on one or more of contents of a query submitted by said user, providing an answer generator set determinator configured to compute a subset of all available answer generators, wherein said compute of said subset depends on one or more of contents of said one or more queries submitted by said user and a dictionary of combined recognition results used as an input; and
,providing a controller configured to receive a query from a client program, lookup said user'"'"'s preferences in said user database, determine the subset of content recognizers to execute using said content recognizer set determinator, and lookup specifications for each content recognizer in said subset of content recognizers, submit said specifications for each content recognizer to said plug-in executor, using said query and said user'"'"'s preferences as input, and combine all content recognition results into a dictionary of combined content recognition results, determine the subset of answer generators to execute using said answer generator set determinator, and lookup the specifications for each answer generator in said subset of answer generators, to yield a set of answer generator specifications, submit said set of answer generators specifications to said plug-in executor, using said query, said user'"'"'s preferences, and said dictionary of recognition results as input, and combine the answer results from each answer generator into a list of answer results, and respond to said client program with said list of answer results, such that said user is able to customize how an answer engine responds to queries, answers are generated by at least one answer generator plug-in created by one or more plug-in developers, content recognizers are implemented by at least one content recognizer plug-in created by one or more other plug-in developers, and answer generators utilize content recognizers even if said content recognizers are not created by a single plug-in developer, and content recognition execution resources are bounded. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of displaying a list of answer results in response to user-submitted queries comprising:
-
providing an answer engine configured to respond to user-submitted queries with a list of answer results; providing an answer displayer comprising a browser plug-in, a customized browser, an application, or any combination thereof, wherein said answer display is configured to use browser components to receive an answer query as input from a user, send said answer query to said answer engine, receive and parse answer results returned by said answer engine, find an existing display area or open a new display area in a user interface to display said answer results, remove one or more user interface element showing an answer result from a previous query, in said display area, unless the removal of the one or more user interface elements would cause the display area to be closed by said answer displayer, or unless said user has indicated to keep the one or more user interface elements, compute a first group of answer results by selecting one link answer result, or one or more inline answer results from said answer results, display said first group of answer results in said display area, compute the remaining groups of answer results by selecting one link answer result, or one or more inline answer results from said answer results, until no more ungrouped answer results remain, and display in said display area one or more remaining groups from said remaining groups by directly displaying answer results if said one or more remaining groups consists only of inline answer results, or by displaying a button if said one or more remaining groups consists of a link answer result, such that a linked answer location is loaded and displayed when said user selects said button; wherein the answer displayer shows answer results to said user without requiring said user to manually open or close display areas or to remove user interface elements showing results of previous queries, wherein the answer displayer shows a plurality of results to said user from different sources without requiring the user to submit said query to multiple user interfaces, wherein links to answer locations are not fetched until the user selects the links, and wherein the answer displayer shows inline answer results to said user without additional user interaction. - View Dependent Claims (22)
-
-
23. A system configured to compute answer results to queries submitted by a user comprising:
-
a plug-in executor comprising at least one plug-in created by a plug-in developer, wherein said one or more plug-ins are configured to execute one or more of system-defined programs and plug-in developer-defined programs, and wherein said plug-in executor is configured to one or more of execute arbitrary program text uploaded by said plug-in developer or execute routines parameterized by said plug-in developer; a user database configured to store and retrieve user preferences; a plug-in database configured to store and retrieve plug-in specifications; a content recognizer set determinator configured to compute a subset of all available content recognizers, wherein said compute of said subset depends on one or more of contents of a query submitted by said user, an answer generator set determinator configured to compute a subset of all available answer generators, wherein said computation of said subset depends on one or more of contents of said one or more queries submitted by said user and a dictionary of combined recognition results used as an input; and
,a controller configured to receive a query from a client program, lookup said user'"'"'s preferences in said user database, determine the subset of content recognizers to execute using said content recognizer set determinator, and lookup specifications for each content recognizer in said subset of content recognizers, submit said specifications for each content recognizer to said plug-in executor, using said query and said user'"'"'s preferences as input, and combine all content recognition results into a dictionary of combined content recognition results, determine the subset of answer generators to execute using said answer generator set determinator, and lookup the specifications for each answer generator in said subset of answer generators, to yield a set of answer generator specifications, submit said set of answer generators specifications to said plug-in executor, using said user'"'"'s preferences and said dictionary of recognition results as input, and combine the answer results from each answer generator into a list of answer results, and respond to said client program with said list of answer results, such that said user is able to customize how an answer engine responds to queries, answers are generated by at least one answer generator plug-in created by one or more plug-in developers, content recognizers are implemented by at least one content recognizer plug-in created by one or more other plug-in developer, and answer generators utilize content recognizers even if said content recognizers are not created by a single plug-in developer, and content recognition execution resources are bounded.
-
-
24. A system configured to compute answer results to queries submitted by a user comprising:
-
an answer engine configured to respond to user-submitted queries with a list of answer results; an answer displayer comprising a browser plug-in, a customized browser, an application, or any combination thereof, wherein said answer display is configured to use browser components to receive an answer query as input from a user, send said answer query to said answer engine, receive and parse answer results returned by said answer engine, find an existing display area or open a new display area in a user interface to display said answer results, remove one or more user interface element showing an answer result from a previous query, in said display area, unless the removal of the one or more user interface elements would cause the display area to be closed by said answer displayer, or unless said user has indicated to keep the one or more user interface elements, compute a first group of answer results by selecting one link answer result, or one or more inline answer results from said answer results, display said first group of answer results in said display area, compute the remaining groups of answer results by selecting one link answer result, or one or more inline answer results from said answer results, until no more ungrouped answer results remain, and display in said display area one or more remaining groups from said remaining groups by directly displaying answer results if said one or more remaining groups consists only of inline answer results, or by displaying a button if said one or more remaining groups consists of a link answer result, such that a linked answer location is loaded and displayed when said user selects said button; wherein the answer displayer shows answer results to said user without requiring said user to manually open or close display areas or to remove user interface elements showing results of previous queries, wherein the answer displayer shows a plurality of results to said user from different sources without requiring the user to submit said query to multiple user interfaces, wherein links to answer locations are not fetched until the user selects the links, and wherein the answer displayer shows inline answer results to said user without additional user interaction.
-
Specification