IP Library Patent Application 12767188
Patent Application
App. No. 12/767,188

DYNAMIC COMPUTATION ENGINE IN SEARCH STACK

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
12/767,188
Abstract

A data search and retrieval system that, in response to a search query, dynamically selects and applies a model of information to be returned to a user. The model may be selected based on the search query directly, or indirectly based on data returned by a search engine applying the query. For this purpose, the system may include an index of models, similar to a search index. Models may include expressions that may be descriptions of computations, equations, constraints or rules to define information to be returned. These elements of a selected model may be executed within to the search stack based on data identified in a search of web pages by executing the query or other dynamically obtained data. Execution of a model may lead to collecting new information, such as through further searching or performing computations, or may result in ordering or other formatting of data.

Claims (53)

1 . A search and retrieval system comprising:

at least one processor for implementing a plurality of computer-executable components, the components comprising:

an input component adapted to receive from a user input defining a search query;

a data search engine adapted to generate a data portion of search results based on the search query;

a model selection component adapted to select a model defining information to be generated from among a plurality of models, the model selection component selecting the model based at least in part on the search query and/or the data portion of the search results;

a model execution engine adapted to execute the selected model to generate information; and

an output component adapted to return to the user in response to the received search query at least the information generated by the model execution engine.

2 . The search and retrieval system of claim 1 , further comprising a computer storage medium encoded storing the plurality of models, each of the plurality of models comprising declarative statements.

3 . The search and retrieval system of claim 1 , further comprising a computer storage medium encoded storing the plurality of models, each of the plurality of models comprising a combination of elements, the elements including one or more of calculations, equations, constraints and rules.

4 . The search and retrieval system of claim 2 , wherein:

at least a first of the plurality of models comprises an equation; and

when the first model is executed by the model execution engine, the model execution engine performs a mathematical operation on data in the data portion of the search results to generate information.

5 . The search and retrieval system of claim 2 , wherein:

at least a third of the plurality of models comprises a rule; and

when the third model is executed by the model execution engine, the model execution engine triggers a search by the data search engine in response to an evaluation of the rule.

6 . The search and retrieval system of claim 2 , wherein:

at least a fourth of the plurality of models comprises a calculation; and

when the fourth model is executed by the model execution engine, the model execution engine performs a numerical calculation on the data portion of the search results to generate information.

7 . The search and retrieval system of claim 1 , wherein the data portion of search results based on the search query comprises data related to medical records of a plurality of users.

8 . The search and retrieval system of claim 7 , wherein executing the selected model comprises generating a metric comparing a lab result of the user to lab results in the medical records.

9 . The search and retrieval system of claim 1 , wherein:

the system further comprises:

an index of data pages relating each of a plurality of search terms to one or more data pages; and

an index of models, relating each of a plurality of search terms to one or more models of the plurality of models;

the data search engine generates the data portion of search results based at least in part on the index of data pages; and

the model selection component selects a model based at least in part on the index of models.

10 . A method of operating a search system, the method comprising:

at least one processor, in response to a search query:

identifying a declarative model of information based at least in part on the search query;

dynamically identifying data based at least in part on the search query;

generating information in compliance with the model based at least in part on the dynamically identified data; and

generating a result based on the generated information.

11 . The method of claim 10 , wherein the generating information comprises:

performing a computation using as an input to the computation the dynamically identified data.

12 . The method of claim 10 , wherein the generating information comprises:

performing an Internet search with a search query generated by application of the declarative model to the dynamically identified data.

13 . The method of claim 10 , wherein:

the model identifies a time order of a plurality of events; and

the generating information comprises ordering elements within the dynamically identified data relating to the plurality of events in accordance with the time order of the model.

14 . The method of claim 10 , wherein:

the search query is received from a user over the Internet; and

the method further comprises conveying the result to the user over the Internet.

15 . The method of claim 10 , further comprising:

inferring a search query based on contextual information received from a user over the Internet.

16 . At least one non-transitory computer storage medium comprising computer-executable instructions that, when executed by at least one processor, perform a method within a search stack in a search system, the method comprising:

processing information representing a search query to:

identify a model based on an index of models;

dynamically identify data based on an index of data pages;

generating information by evaluating declarative statements representing equations in the identified model based on the dynamically identified data.

17 . The at least one non-transitory computer storage medium of claim 16 , wherein the method further comprises generating information comprising calculating a numerical value based on an expression in the identified model.

18 . The at least one non-transitory computer storage medium of claim 16 , wherein the method further comprises generating the search query based on context information associated with a user.

19 . The at least one non-transitory computer storage medium of claim 16 , wherein the generating information is further based on received input comprising the search query and a user context.

20 . The at least one non-transitory computer storage medium of claim 16 , wherein the method further comprises modifying the index of models based on user feedback.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034766/0509 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2010
From: MITAL, VIJAY; BERGSTRAESSER, THOMAS; RUBIN, DARRYL ELLIS
To: MICROSOFT CORPORATION
Reel/Frame 024652/0567 →