# US 12,222,945 B2 · Federated graph queries across heterogeneous data stores

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

- Number: US 12,222,945 B2
- Document ID: US12222945B2
- Status: Granted
- Kind: B2
- Application number: 18/314,627
- Filed: 2023-05-09
- Published: 2024-11-14
- Granted: 2025-02-11
- Earliest claimed: 2023-05-09
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Anders Tungeland Gjerdrum; Theodoros Gkountouvas; Jan-Ove Almli Karlberg
- Web page: https://patentgrep.com/patent/US12222945B2

## CPC

- G06F 16/2455: Query execution
- G06F 16/2471: {Distributed queries}
- G06F 16/24542: {Plan optimisation}
- G06F 16/248: Presentation of query results
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Solutions are disclosed that enable efficient federated graph queries across multiple isolated data stores. Examples leverage the connectedness of the expected data that spans the data stores by defining the entities and relationships and inferring the intent of the queries. These are used to optimize data searches in the individual data stores. Examples map each of two or more variables of the input query to elements of a public schema and use the mapping to determining a storage tag (identifying a data store) for each of the variables of the input query. Store-specific queries are scheduled and performed based on at least the storage tags.

## Claims

### Claim 1

A system comprising:
a processor; and
a query service implemented on the processor and configured to:
receive an input query from a user terminal via a network, the input query comprising a plurality of variables;
map each of the plurality of variables of the input query to elements of a public schema, wherein the elements of the public schema comprise entities and relationships;
identify a minimum set of multiple data stores for a plurality of store-specific queries, wherein the minimum set of multiple data stores comprises a smallest number of data stores to be searched to satisfy the input query;
map the plurality of variables of the input query to the minimum set of multiple data stores;
using the mapping of the plurality of variables of the input query to the minimum set of multiple data stores and the mapping of the plurality of variables of the input query to the elements of the public schema, assign storage tags to properties of the plurality of variables of the input query, each storage tag identifying a data store of the minimum set of multiple data stores;
based on at least the storage tags, perform the plurality of store-specific queries; and
return a query result to the user terminal based on at least the plurality of store-specific queries.

### Claim 2 (depends on 1)

The system of claim 1, wherein the variables of the input query comprise an entity and a relationship.

### Claim 3 (depends on 1)

The system of claim 1, wherein the public schema comprises metadata associated with the elements.

### Claim 4 (depends on 3)

The system of claim 3, wherein the metadata associated with the elements includes cardinality, access control information, privacy classification, or expected data store latency.

### Claim 5 (depends on 1)

The system of claim 1, wherein assigning the storage tags to the properties of the variables of the input query comprises:
identifying a storage tag supporting a highest count of the properties.

### Claim 6 (depends on 1)

The system of claim 1, wherein the query service further configured to:
compile the query result from responses to the plurality of store-specific queries.

### Claim 7 (depends on 1)

The system of claim 1, wherein determining the storage tag for each of the variables of the input query comprises:
determining the storage tag for each of the variables of the input query based on at least a latency associated with each of the storage tags.

### Claim 8

A computer-implemented method comprising:
receiving an input query comprising a plurality of variables;
mapping each of the plurality of variables of the input query to elements of a public schema, wherein the elements of the public schema comprise entities and relationships;
identifying a minimum set of multiple data stores for a plurality of store-specific queries, wherein the minimum set of multiple data stores comprises a smallest number of data stores to be searched to satisfy the input query;
mapping the plurality of variables of the input query to the minimum set of multiple data stores;
using the mapping of the plurality of variables of the input query to the minimum set of multiple data stores and the mapping of the plurality of variables of the input query to the elements of the public schema, assigning storage tags to properties of the plurality of variables of the input query, each storage tag identifying the minimum data store of a set of multiple data stores;
based on at least the storage tags, performing the plurality of store-specific queries; and
returning a query result based on at least the plurality of store-specific queries.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein the variables of the input query comprise an entity and a relationship.

### Claim 10 (depends on 8)

The computer-implemented method of claim 8, wherein the public schema comprises metadata associated with the elements.

### Claim 11 (depends on 10)

The computer-implemented method of claim 10, wherein the metadata associated with the elements includes cardinality, access control information, privacy classification, or expected data store latency.

### Claim 12 (depends on 8)

The computer-implemented method of claim 8, wherein assigning the storage tags to the properties of the variables of the input query comprises:
identifying a storage tag supporting a highest count of the properties.

### Claim 13 (depends on 8)

The computer-implemented method of claim 8, further comprising:
compiling the query result from responses to the plurality of store-specific queries.

### Claim 14 (depends on 8)

The computer-implemented method of claim 8, wherein determining the storage tag for each of the variables of the input query comprises:
determining the storage tag for each of the variables of the input query based on at least a latency associated with each of the storage tags.

### Claim 15

A computer storage device having computer-executable instructions stored thereon, which, on execution by a computer, cause the computer to perform operations comprising:
receiving an input query comprising a plurality of variables, the plurality of variables comprising an entity and a relationship;
mapping each of the plurality of variables of the input query to elements of a public schema, wherein the elements of the public schema comprise entities and relationships;
identifying a minimum set of multiple data stores for a plurality of store-specific queries, wherein the minimum set of multiple data stores comprises a smallest number of data stores to be searched to satisfy the input query;
mapping the plurality of variables of the input query to the minimum set of multiple data stores;
using the mapping of the plurality of variables of the input query to the minimum set of multiple data stores and the mapping of the plurality of variables of the input query to the elements of the public schema, assigning storage tags to properties of the plurality of variables of the input query, each storage tag identifying a data store of the minimum set of multiple data stores;
based on at least the storage tags, performing the plurality of store-specific queries; and
returning a query result based on at least the first plurality of store-specific queries.

### Claim 16 (depends on 15)

The computer storage device of claim 15, wherein the public schema comprises metadata associated with the elements.

### Claim 17 (depends on 16)

The computer storage device of claim 16, wherein the metadata associated with the elements includes cardinality, access control information, privacy classification, or expected data store latency.

### Claim 18 (depends on 15)

The computer storage device of claim 15, wherein assigning the storage tags to the properties of the variables of the input query comprises:
identifying a storage tag supporting a highest count of the properties.

### Claim 19 (depends on 15)

The computer storage device of claim 15, wherein the operations further comprise:
compiling the query result from responses to the plurality of store-specific queries.

### Claim 20 (depends on 15)

The computer storage device of claim 15, wherein determining the storage tag for each of the variables of the input query comprises:
determining the storage tag for each of the variables of the input query based on at least a latency associated with each of the storage tags.
