Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
1998-08-14
2001-05-01
Amsbury, Wayne (Department: 2171)
Data processing: database and file management or data structures
Database design
Data structure types
Reexamination Certificate
active
06226635
ABSTRACT:
TECHNICAL FIELD
The invention relates generally to the field of database and search queries, and, more specifically, to the field of architectures for performing the same.
BACKGROUND OF THE INVENTION
Fundamentally, retrieval queries (“queries”) are requests for information. A query may be expressed using a formal query language such as SQL, or may take the form of a natural language question or an unorganized list of search terms. A query may further be represented by a “query object” containing data and/or instructions relating to the query.
Queries are said to be issued by programs called “query clients,” often under the control of a human user. Such queries are said to be received and processed by other programs called “query servers.” For a particular query, a query server generally consults one or more databases containing information that includes the information requested by the query, and returns the requested information to the query client from which the query was received in the form of a “query result.” In some cases, the query result comprises a result table divided into rows and columns. Each result table row generally corresponds to a different item satisfying the query, while each column generally corresponds to one piece of information about each item. For example, a result table for a query requesting information on world wide web (“web”) pages containing the word “ragtop” might contain 5 rows, each corresponding to a different web page containing “ragtop.” The query result might further contain 3 columns: a first column containing a reference to the web page to which each row corresponds, a second column containing the title of the web page to which each row corresponds, and a third column containing the last date on which the web page to which each row corresponds was updated.
While query clients and query servers in some cases execute on the same computer systems, some query clients and query servers are designed to execute on different computer systems. Where a query client is executing on a computer system other than the computer system on which the query server is executing, the query client communicates the query to the query server via a data network connecting the query client and query server. The query may either be communicated directly from the query client to the query server, or it may be communicated indirectly through any number of intervening computer systems.
Even where the query is communicated indirectly through intervening computer systems, such intervening computer systems generally pass the query and resulting query result through intact, without modifying or filtering either the query or the query result. This querying model allows the user of the query client to exercise a large measure of autonomy in issuing queries and receiving their results.
The inventors have recognized significant disadvantages that attend the use of this model within certain organizations. First, in accordance with this model, organizations are unable to limit both the set of users that may issue queries and the kind of queries that may be issued and the results that may be received. Second, in accordance with this model, organizations are unable to assist users by tailoring the query or the query result based upon systematic factors relating to the organization or the user's position within it.
In view of these disadvantages, a new model for managing queries and query results within an organization would provide significant utility.
SUMMARY OF THE INVENTION
The present invention provides a distributed software facility for layered query management. The present invention is directed to a layered architecture for managing database queries, such as queries to a web search engine, within an organization. This layered architecture facilitates tailoring queries and their results based on the position within the organization of the users issuing the queries. For example, the facility may add the search term “convertible” to queries issued by an employee working to design open-top roadsters for an automobile company in order to add an appropriate context to such queries. Further, the facility may modify query results that refer to various automotive publications for all users in the automobile company to include images identifying the automotive publications in the query result. Additionally, the facility may add or remove query servers based on the nature of the query. Where multiple query servers are specified for a query, the facility further preferably collates the results from the different query servers into a single query result.
In accordance with the invention, one or more proxy servers are interposed between a query client that issues queries and a query server running a search engine that satisfies queries. Each proxy server preferably corresponds to a meaningful organizational group of users. For example, queries issued by employees in a group working on open-top roadsters in the design division of an automobile company may be processed by a sequence of three proxy servers: a first proxy server that processes queries from all of the employees in the group, a second proxy server that processes queries from all of the employees in the division, and a third proxy server that processes queries from all of the employees in the company.
In accordance with the architecture, each layer may exert control over the query and its query result. The user first generates the query in the query client which forwards the query to an upstream proxy server. Each upstream proxy server in turn forwards the query to a further upstream proxy server, until the last upstream proxy server forwards the query to a query server. The query server uses a search engine to satisfy the query, then forwards it back to the query client via the proxy server. Each proxy server may prevent all query submissions from a particular client or user, perform screening to reject queries having certain content, and modify certain queries. As examples of modifications, the proxy servers may add information to the queries, delete information from the queries, or substitute information in the queries. The proxy servers may also add or remove query servers to and from the list of query servers specified for a query. Because such modifications may be performed differently in each proxy server corresponding to a different subset of the organization, administrators may straightforwardly target modification initiatives to appropriate subsets of the organization.
After performing the query to generate a query result, the query server may remove certain columns from the query result based on the security level of the user issuing the query. When each proxy server receives the query result on its way back to the query client, the proxy server may modify the query result based both on the identity of the user/client and the contents of the query result. For example, the proxy server may add columns containing additional information about the rows of the query result, delete rows containing a forbidden term, or modify the query result to highlight dates. When formulating the query in the query client, the user can suggest which of the proxy servers should modify the query result.
REFERENCES:
patent: 5754938 (1998-05-01), Herz et al.
patent: 5778356 (1998-07-01), Heiny
patent: 5884033 (1999-03-01), Duvall et al.
patent: 6006214 (1999-12-01), Carey et al.
patent: 6049821 (2000-04-01), Therialut et al.
patent: 6065055 (2000-05-01), Hughes et al.
Amsbury Wayne
Microsoft Corporation
Woodcock Washburn Kurtz Mackiewicz & Norris LLP
LandOfFree
Layered query management does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Layered query management, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Layered query management will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2476236