# US 10,482,092 B2 · Searching multiple data sets

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,092 B2
- Document ID: US10482092B2
- Status: Granted
- Kind: B2
- Application number: 15/592,888
- Filed: 2017-05-11
- Published: 2017-11-16
- Granted: 2019-11-19
- Earliest claimed: 2016-05-13
- Assignees: Equals 3 LLC
- Applicants: Equals 3 LLC
- Inventors: Marcello Dispensa; Scott Litman; Daniel Mallin; Allen Chambers
- Web page: https://patentgrep.com/patent/US10482092B2

## CPC

- G06F 16/24578: {using ranking}
- G06F 16/9562: {Bookmark management}
- G06F 7/08: Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry (by merging two or more sets of carriers in ordered sequence G06F7/16)
- G06F 7/24: Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers {sorting methods in general}(G06F7/36 takes precedence)
- G06F 16/24522: {Translation of natural language queries to structured queries}
- G06F 16/2457: with adaptation to user needs
- G06F 16/24575: {using context}
- G06F 16/2471: {Distributed queries}
- G06F 16/248: Presentation of query results
- G06F 16/3329: Natural language query formulation
- G06F 16/334: Query execution (filtering based on additional data G06F16/335)
- G06F 16/338: Presentation of query results
- G06F 16/90328: {using search space presentation or visualization, e.g. category or range presentation and selection}
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9536: Search customisation based on social or collaborative filtering
- G06F 16/9538: Presentation of query results
- G06N 5/00: Computing arrangements using knowledge-based models
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

In general, the subject matter described in this disclosure can be embodied in methods, systems, and program products for receiving a query that was specified by user input at a computing device, identifying multiple datasets that are available to be queried, and identifying a ranking of the multiple datasets. A search of a highest-ranked of the multiple datasets may be requested. The search of the highest-ranked of the multiple datasets may be determined to not yield a result. A search of a lower-ranked of the multiple data sets may then be requested, and a responsive result thereby received. That result may be provided for presentation by the computing device.

## Claims

### Claim 1

A computer-implemented method, comprising:
identifying, by a computing system, multiple datasets that are available to be queried, each of the multiple datasets storing multiple potential query results;
receiving, by the computing system, a user-specified ranking of the multiple datasets that specifies an order in which the multiple datasets are to be queried in search of a query result;
receiving, by the computing system after the computing system received the user-specified ranking of the multiple datasets, a query that was specified by user input at a computing device;
identifying, by the computing system, a highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried;
requesting, by the computing system, a search of the highest-ranked of the multiple datasets based on the query;
determining, by the computing system, that the search of the highest-ranked of the multiple datasets based on the query did not yield a result;
identifying, by the computing system, a lower-ranked of the multiple datasets that is ranked lower than the highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets, wherein the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets each store data in a multi-dimensional format, and wherein the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets have different dimensions such that the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets are structured differently;
requesting, by the computing system in response to having determined that the search of the highest-ranked of the multiple datasets did not yield a result, a search of the lower-ranked of the multiple datasets;
receiving, by the computing system, a result to the search of the lower-ranked of the multiple datasets; and
providing, by the computing system, the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query that was specified by user input at the computing device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the computing system is configured to query no additional dataset in the multiple datasets as a result of having received the result to the search of the lower-ranked of the multiple datasets, even though the multiple datasets include one or more datasets that are ranked lower than the lower-ranked of the multiple datasets according to the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the computing system is configured to request searches of the multiple datasets in order based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried until a result to one of the searches is received, at which point the computing system is configured to query no additional dataset of the multiple datasets, and as such the computing system is configured so that, had the computing system determined that the search of the highest-ranked of the multiple datasets did yield a result, the computing system (i) would not have requested the search of the lower-ranked of the multiple datasets, and (ii) would have provided the result to the search of the highest-ranked of the multiple datasets for presentation by the computing device as responsive to the query instead of providing the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein:
each of the multiple datasets is a dataset of structured data; and
the computing system is configured such that, had the computing system determined that searches of each of the multiple datasets did not yield a result, the computing system would have:
(i) requested, as a result of having determined that the searches of each of the multiple datasets did not yield a result, a search of one or more datasets of unstructured data that is based on the query;
(ii) received multiple results to the search of the one or more datasets of unstructured data; and
(iii) provided the multiple results for presentation by the computing device as responsive to the query.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein identifying, by the computing system, the multiple datasets that are available to be queried includes:
identifying, by the computing system, one or more entities that are present in the query from among a pre-designated list of entities,
identifying, by the computing system, the multiple datasets as a subset of datasets, from among a larger plurality of datasets, that store information on the one or more entities that the computing system identified as being present in the query, and
selecting, by the computing system, the multiple datasets as datasets that are candidates to be searched with the query from among the larger plurality of datasets, based on the computing system having identified that the multiple datasets store information on the one or more entities identified as being present in the query.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the lower-ranked of the multiple datasets is a next-highest-ranked of the multiple datasets after the highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein:
the highest-ranked of the multiple datasets is a default dataset available for searching by a first group of user accounts and a second group of user accounts; and
the lower-ranked of the multiple datasets is a dataset available for searching by only the first group of user accounts from among the first and second groups of user accounts, due to the first group of user accounts having (i) uploaded the lower-ranked of the multiple datasets or (ii) paid a license to access the lower-ranked of the multiple datasets.

### Claim 8

One or more computer-readable devices including instructions that, when executed by one or more processors, cause performance of operations that comprise:
identifying, by a computing system, multiple datasets that are available to be queried, each of the multiple datasets storing multiple potential query results;
receiving, by the computing system, a user-specified ranking of the multiple datasets that specifies an order in which the multiple datasets are to be queried in search of a query result;
receiving, by the computing system after the computing system received the user-specified ranking of the multiple datasets, a query that was specified by user input at a computing device;
identifying, by the computing system, a highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried;
requesting, by the computing system, a search of the highest-ranked of the multiple datasets based on the query;
determining, by the computing system, that the search of the highest-ranked of the multiple datasets based on the query did not yield a result;
identifying, by the computing system, a lower-ranked of the multiple datasets that is ranked lower than the highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets, wherein the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets each store data in a multi-dimensional format, and wherein the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets have different dimensions such that the highest-ranked of the multiple datasets and the lower-ranked of the multiple datasets are structured differently;
requesting, by the computing system in response to having determined that the search of the highest-ranked of the multiple datasets did not yield a result, a search of the lower-ranked of the multiple datasets;
receiving, by the computing system, a result to the search of the lower-ranked of the multiple datasets; and
providing, by the computing system, the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query that was specified by user input at the computing device.

### Claim 9 (depends on 8)

The one or more computer-readable devices of claim 8, wherein the computing system is configured to query no additional dataset in the multiple datasets as a result of having received the result to the search of the lower-ranked of the multiple datasets, even though the multiple datasets include one or more datasets that are ranked lower than the lower-ranked of the multiple datasets according to the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried.

### Claim 10 (depends on 8)

The one or more computer-readable devices of claim 8, wherein the computing system is configured to request searches of the multiple datasets in order based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried until a result to one of the searches is received, at which point the computing system is configured to query no additional dataset of the multiple datasets, and as such the computing system is configured so that, had the computing system determined that the search of the highest-ranked of the multiple datasets did yield a result, the computing system (i) would not have requested the search of the lower-ranked of the multiple datasets, and (ii) would have provided the result to the search of the highest-ranked of the multiple datasets for presentation by the computing device as responsive to the query instead of providing the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query.

### Claim 11 (depends on 8)

The one or more computer-readable devices of claim 8, wherein:
each of the multiple datasets is a dataset of structured data; and
the computing system is configured such that, had the computing system determined that searches of each of the multiple datasets did not yield a result, the computing system would have:
(i) requested, as a result of having determined that the searches of each of the multiple datasets did not yield a result, a search of one or more datasets of unstructured data that is based on the query;
(ii) received multiple results to the search of the one or more datasets of unstructured data; and
(iii) provided the multiple results for presentation by the computing device as responsive to the query.

### Claim 12 (depends on 8)

The one or more computer-readable devices of claim 8, wherein identifying, by the computing system, the multiple datasets that are available to be queried includes:
identifying, by the computing system, one or more entities that are present in the query from among a pre-designated list of entities,
identifying, by the computing system, the multiple datasets as a subset of datasets, from among a larger plurality of datasets, that store information on the one or more entities that the computing system identified as being present in the query, and
selecting, by the computing system, the multiple datasets as datasets that are candidates to be searched with the query from among the larger plurality of datasets, based on the computing system having identified that the multiple datasets store information on the one or more entities identified as being present in the query.

### Claim 13 (depends on 8)

The one or more computer-readable devices of claim 8, wherein:
the highest-ranked of the multiple datasets is a default dataset available for searching by a first group of user accounts and a second group of user accounts; and
the lower-ranked of the multiple datasets is a dataset available for searching by only the first group of user accounts from among the first and second groups of user accounts, due to the first group of user accounts having (i) uploaded the lower-ranked of the multiple datasets or (ii) paid a license to access the lower-ranked of the multiple datasets.

### Claim 14

A computer-implemented method, comprising:
identifying, by a computing system, multiple datasets that are available to be queried, each of the multiple datasets storing multiple potential query results;
receiving, by the computing system, a user-specified ranking of the multiple datasets that specifies an order in which the multiple datasets are to be queried in search of a query result;
receiving, by the computing system after the computing system received the user-specified ranking of the multiple datasets, a query that was specified by user input at a computing device;
identifying, by the computing system, a highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried;
requesting, by the computing system, a search of the highest-ranked of the multiple datasets based on the query;
determining, by the computing system, that the search of the highest-ranked of the multiple datasets based on the query did not yield a result;
identifying, by the computing system, a lower-ranked of the multiple datasets that is ranked lower than the highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets;
requesting, by the computing system in response to having determined that the search of the highest-ranked of the multiple datasets did not yield a result, a search of the lower-ranked of the multiple datasets;
receiving, by the computing system, a result to the search of the lower-ranked of the multiple datasets; and
providing, by the computing system, the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query that was specified by user input at the computing device, wherein:
(i) the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried was provided from a device that was logged into a first user account for the computing system;
(ii) the query was specified by the user input at the computing device while the computing device was logged into a second user account for the computing system that is different from the first user account;
(iii) the computing system selected the user-specified ranking of the multiple datasets as providing an order in which the multiple datasets are to be queried in response to the query that was specified by the user input at the computing device due to the second user account being assigned to a same group of user accounts as the first user account; and
(iv) the computing system is configured such that, had the second user account been assigned to a different group of user accounts for which the computing system had received a different user-specified ranking of the multiple datasets from a different user account assigned to the different group of user accounts, the computing system would have selected the different user-specified ranking of the multiple datasets as an order in which the multiple datasets are to be queried in response to the query that was specified by the user input at the computing device.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, further comprising:
receiving, by the computing system, an upload of the highest-ranked of the multiple datasets from a device that was logged into the first user account, the upload of the highest-ranked of the multiple datasets being made available for querying only to the same group of user accounts to which the first user account and the second user account belong.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein:
the same group of user accounts is a group of user accounts assigned to an organization; and
the lower-ranked of the multiple datasets is a dataset to which the organization has paid a license to provide user accounts of the same group of user accounts with access through use of the computing system.

### Claim 17

One or more computer-readable devices including instructions that, when executed by one or more processors, cause performance of operations that comprise:
identifying, by a computing system, multiple datasets that are available to be queried, each of the multiple datasets storing multiple potential query results;
receiving, by the computing system, a user-specified ranking of the multiple datasets that specifies an order in which the multiple datasets are to be queried in search of a query result;
receiving, by the computing system after the computing system received the user-specified ranking of the multiple datasets, a query that was specified by user input at a computing device;
identifying, by the computing system, a highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried;
requesting, by the computing system, a search of the highest-ranked of the multiple datasets based on the query;
determining, by the computing system, that the search of the highest-ranked of the multiple datasets based on the query did not yield a result;
identifying, by the computing system, a lower-ranked of the multiple datasets that is ranked lower than the highest-ranked of the multiple datasets based on the user-specified ranking of the multiple datasets;
requesting, by the computing system in response to having determined that the search of the highest-ranked of the multiple datasets did not yield a result, a search of the lower-ranked of the multiple datasets;
receiving, by the computing system, a result to the search of the lower-ranked of the multiple datasets; and
providing, by the computing system, the result to the search of the lower-ranked of the multiple datasets for presentation by the computing device as responsive to the query that was specified by user input at the computing device, wherein:
(i) the user-specified ranking of the multiple datasets that specifies the order in which the multiple datasets are to be queried was provided from a device that was logged into a first user account for the computing system;
(ii) the query was specified by the user input at the computing device while the computing device was logged into a second user account for the computing system that is different from the first user account;
(iii) the computing system selected the user-specified ranking of the multiple datasets as providing an order in which the multiple datasets are to be queried in response to the query that was specified by the user input at the computing device due to the second user account being assigned to a same group of user accounts as the first user account; and
(iv) the computing system is configured such that, had the second user account been assigned to a different group of user accounts for which the computing system had received a different user-specified ranking of the multiple datasets from a different user account assigned to the different group of user accounts, the computing system would have selected the different user-specified ranking of the multiple datasets as an order in which the multiple datasets are to be queried in response to the query that was specified by the user input at the computing device.

### Claim 18 (depends on 17)

The one or more computer-readable devices of claim 17, wherein the operations further comprise:
receiving, by the computing system, an upload of the highest-ranked of the multiple datasets from a device that was logged into the first user account, the upload of the highest-ranked of the multiple datasets being made available for querying only to the same group of user accounts to which the first user account and the second user account belong.

### Claim 19 (depends on 18)

The one or more computer-readable devices of claim 18, wherein:
the same group of user accounts is a group of user accounts assigned to an organization; and
the lower-ranked of the multiple datasets is a dataset to which the organization has paid a license to provide user accounts of the same group of user accounts with access through use of the computing system.
