IP Library Granted Patent US 8,868,537
Granted Patent B1
US 8,868,537 · App. 14/077,159 · Granted Oct 21, 2014

Simple web search

View Patent ↗
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 8,868,537
App. No.
14/077,159
Granted
Oct 21, 2014
Kind
B1
Abstract

A system of one or more computing devices is utilized for, among other purposes, creating a template-driven search interface and conducting searches thereon. In an embodiment, the system comprises: a template repository; search templates in the template repository, the search templates comprising at least: field specification data that specify search interface fields for obtaining search input data, and query specification data that specify how to generate structured queries based on the search input data obtained for the one or more of the search interface fields; a search field generator that generates search fields indicated by the field specification data; a template loading module, coupled to the template repository, that identifies available search templates in the template repository; and a search interface generator, coupled to the search field generator and template loading module, that generates different search interfaces depending on which template is selected.

Claims (83)

1. A computer system comprising:

one or more computing device configured to store a template repository;

search templates stored in the template repository, each of the search templates comprising at least: field specification data that specify search interface fields for obtaining search input data, and query specification data that specify how to generate structured queries based on the search input data obtained for the one or more of the search interface fields;

a search field generator in the one or more computing devices, and configured to generate search fields indicated by the field specification data;

a template loading module, coupled to the template repository, that is configured to identify one or more available search templates in the template repository;

a search interface generator, coupled to the search field generator and template loading module and in the one or more computing devices, that is configured to generate a search interface comprising template selection controls that are configured to select available search templates that are identified by the template loading module;

wherein the template loading module is configured to receive template selection input via the template selection controls;

wherein the search interface generator is configured to update the search interface to include particular search fields generated by the search field generator for a particular search template selected by the template selection input;

wherein the particular search template comprises data source specification data that specifies a plurality of searchable data sources;

wherein the search interface generator is further configured to update the search interface to include data source selection controls generated based on the data source specification data;

wherein the search interface is configured to receive particular search input via the particular search fields, cause generation of a particular structured query based on the particular search input and on particular query specification data in the particular search template, receive user data source selection input via the data source selection controls that selects which one or more data sources in the plurality of searchable data sources specified by the template are to be searched, and request performing one or more searches, based on the particular structured query, against the selected one or more data sources.

2. The computer system of claim 1 ,

wherein the search interface generator is configured to generate search interface provisioning instructions which, when executed by a client computing device, cause the client computing device to implement the search interface;

wherein the search interface generator is further configured to send the search interface provisioning instructions to the client computing device.

3. The computer system of claim 1 ,

wherein the search interface generator is configured to generate search interface provisioning instructions which, when executed by a client computing device, cause the client computing device to implement the search interface;

wherein the search interface generator is further configured to generate particular query formulation logic based on the particular query specification data, wherein the query formulation logic causes the generation of the particular structured query based on the particular search input and particular query specification data in the particular search template;

wherein the search interface generator is further configured to send the search interface provisioning instructions, including the particular query formulation logic, to the client computing device.

4. The computer system of claim 1 ,

wherein the search interface generator is configured to generate search interface provisioning instructions which, when executed by a client computing device, cause the client computing device to implement the search interface;

wherein the search interface provisioning instructions include instructions for generating interface controls by which the particular search input for the particular search fields is received.

5. The computer system of claim 1 , further comprising:

in the computing device, a plurality of search adapters that are configured to receive the structured queries, to cause searches to be conducted against a plurality of data sources based on the structured queries, and to return particular search results based on the searches;

wherein the search interface is configured to present the particular search results.

6. The computer system of claim 1 , further comprising:

in the one or more computing devices, a plurality of search adapters that are configured to receive the particular structured query, to cause searches to be conducted against a plurality of data sources based on the particular structured query, and to return particular search results based on the searches;

wherein at least a first search adapter of the plurality of search adapters is configured to translate the particular structured query into a first query, to send the first query to a particular data source, receive first search results responsive to the first query, and to convert the first search results into a common format of the particular search results;

wherein the search interface is configured to present the particular search results.

7. The computer system of claim 1 , wherein the search field generator is configured to analyze an ontology to identify properties of a data structure type specified in the field specification data, and generate at least a first search field based at least partly upon a particular property of the identified properties.

8. The computer system of claim 1 , wherein the search field generator is configured to analyze an ontology to identify properties of a data structure type specified in the field specification data, and to generate an interface control for defining a search filter that compares an input value to at least a particular property of the data structure type.

9. The computer system of claim 1 , wherein the query specification data specifies query clauses, the query clauses including at least search filter clauses and complex clauses, including a first search filter clause that specifies how a first search field is compared to data structures when conducting a search, and a first complex clause that specifies a logical relationship between other query clauses.

10. One or more non-transitory computer-readable media storing instructions that, when executed by one or more computing devices, cause performing:

receiving a selection of a search template via one or more template selection controls that are configured to select from search templates for formulating searches;

wherein the search template comprises data source specification data that specifies a plurality of searchable data sources;

responsive to the selection of the search template, presenting search interface fields specified by field specification data within the search template and data source selection controls generated based on the data source specification data;

receiving search input via two or more of the search interface fields, the search input including first input via a first field and second input via a second field;

receiving user data source selection input via the data source selection controls that selects which one or more data sources in the plurality of searchable data sources specified by the template are to be searched;

identifying, based on query specification data within the search template, a relationship between the first input and the second input;

based on the identified relationship, generating a particular query clause that includes the first input, the second input, and a search directive that indicates the identified relationship between the first input and the second input;

based on the search input and the query specification data within the search template, generating a structured query based on the search input, the structured query including the particular query clause;

sending the structured query to one or more search modules to request performance of one or more searches against the selected one or more data sources; and

receiving search results responsive to the structured query.

11. The one or more non-transitory computer-readable media of claim 10 , wherein the search directive is one of: an and directive, an or directive, an adjacent directive, or a within directive.

12. The one or more non-transitory computer-readable media of claim 10 , wherein the query specification data indicates a required value for a particular search filter included in the structured query.

13. The one or more non-transitory computer-readable media of claim 10 , wherein the query specification data specifies that the structured query is to include a search filter that causes the one or more search modules to execute a particular comparison operation between a particular input value for a particular field of the search interface fields and a particular data structure property of data structures that are searched.

14. The one or more non-transitory computer-readable media of claim 10 , wherein the field specification data associates a particular search interface field with a particular data structure type, wherein the instructions, when executed by the one or more computing devices, further cause:

accessing ontological data to identify properties of the particular data structure type;

presenting, adjacent to the particular search interface field, controls for selecting a particular property to which corresponding input for the field is to be compared.

15. The one or more non-transitory computer-readable media of claim 10 , wherein the one or more search modules include a plurality of search modules, wherein the instructions, when executed by the one or more computing devices, further cause:

each of the plurality of search modules identifying search steps to perform with respect to one or more data sources, based on the structured query;

each of the plurality of search modules generating sets of search results in a common format;

aggregating the sets of search results as they are received from the plurality of search modules.

16. The one or more non-transitory computer-readable media of claim 10 , wherein the instructions, when executed by the one or more computing devices, further cause:

a first search module of the one or more search modules translating the structured query into a first query to send to a first search engine;

a second search module of the one or more search modules translating the structured query into a second query to send to a second search engine;

wherein the search results include first search results from the first search engine and second search results from the second search engine.

17. The one or more non-transitory computer-readable media of claim 10 , wherein the instructions, when executed by the one or more computing devices, further cause:

a first search module of the one or more search modules translating the structured query into a first query to send to a first search engine;

a second search module of the one or more search modules translating the structured query into a second query to send to a second search engine;

the first search module converting first search results from the first search engine into a common format;

the second search module converting second search results from the second search engine into the common format;

wherein the search results include the converted first search results and the converted second search results.

18. A method comprising:

receiving a selection of a search template via one or more template selection controls that are configured to select from search templates for formulating searches;

wherein the search template comprises data source specification data that specifies a plurality of searchable data sources;

responsive to the selection of the search template, presenting search interface fields specified by field specification data within the search template and data source selection controls generated based on the data source specification data;

receiving search input via two or more of the search interface fields, the search input including first input via a first field and second input via a second field;

receiving user data source selection input via the data source selection controls that selects which one or more data sources in the plurality of searchable data sources specified by the template are to be searched;

identifying, based on query specification data within the search template, a relationship between the first input and the second input;

based on the identified relationship, generating a particular query clause that includes the first input, the second input, and a search directive that indicates the identified relationship between the first input and the second input;

based on the search input and the query specification data within the search template, generating a structured query based on the search input, the structured query including the particular query clause;

sending the structured query to one or more search modules to request performance of one or more searches against the selected one or more data sources; and

receiving search results responsive to the structured query;

wherein the method is performed by one or more computing devices.

19. The method of claim 18 , wherein the field specification data associates a particular search interface field with a particular data structure type, the method further comprising:

accessing ontological data to identify properties of the particular data structure type;

presenting, adjacent to the particular search interface field, controls for selecting a particular property to which corresponding input for the field is to be compared.

20. The method of claim 18 , wherein the instructions, when executed by the one or more computing devices, further cause:

a first search module of the one or more search modules translating the structured query into a first query to send to a first search engine;

a second search module of the one or more search modules translating the structured query into a second query to send to a second search engine;

the first search module converting first search results from the first search engine into a common format;

the second search module converting second search results from the second search engine into the common format;

wherein the search results include the converted first search results and the converted second search results.

Assignments (9)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
CHANGE OF NAME Recorded Apr 15, 2021
From: PALANTIR TECHNOLOGIES, INC.
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 055923/0535 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2013
From: COLGROVE, CAITLIN; MARTIN, GREGORY; CAMPANINI, JAVIER
To: PALANTIR TECHNOLOGIES, INC.
Reel/Frame 031579/0353 →