# US 12,222,940 B2 · Configurable entity matching system

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

- Number: US 12,222,940 B2
- Document ID: US12222940B2
- Status: Granted
- Kind: B2
- Application number: 18/138,944
- Filed: 2023-04-25
- Published: 2023-10-12
- Granted: 2025-02-11
- Earliest claimed: 2020-10-29
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Quincy Milton; Henry Tsai; Uma Kale; Adam Horacek; Justin Dority; Phillip DuLion; Ian Kelley; Michael Lentz; Ryan Skorupski; Aditi Godbole; Haizhen Zhang
- Web page: https://patentgrep.com/patent/US12222940B2

## CPC

- G06F 16/24539: {using cached or materialised query results}
- G06F 16/2455: Query execution
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are provided for receiving an input comprising one or more attributes, selecting a subset of query options from a list of query options relevant to the attributes of the input, and based on query optimization results from an audit of previous queries, determining a priority order to execute each query in the set of queries based on the query optimization results, and executing each query in the priority order to generate a candidate list. For each candidate in the list of candidates, systems and methods are provided for selecting a subset of available workflows based on relevance to the candidate and based on workflow optimization results, determining an order in which the selected subset of workflows is to be executed, and executing the selected subset of workflows in the determined order to generate a match score indicating the probability that the candidate matches the input.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, at a computing system, an input comprising one or more attributes;
selecting, by the computing system, a subset of query options from a list of query options based on a comparison of relevant query options;
translating, by the computing system, each query option of the subset of query options into a query comprising at least one attribute of the one or more attributes of the input, to generate a set of queries;
executing, by the computing system, each query to generate a candidate list comprising a list of candidates that potentially match the input;
executing selected workflows relevant to each candidate to determine a probability that each candidate matches the input; and
providing an output indicating at least candidates that matched the input based on the probability that each candidate matches the input.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the subset of query options are further selected from the list of query options based on query optimization results from an audit of previous queries.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein the query optimization results from the audit of previous queries comprise metrics associated with each query.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein the metrics comprise precision and recall.

### Claim 5 (depends on 2)

The computer-implemented method of claim 2, wherein the query optimization results from the audit of previous queries are generated by performing operations comprising:
selecting a subset of previously run queries and results;
generating a confusion matrix for each query;
using the confusion matrix, deriving metrics for each query; and
storing the metrics for each query as optimization results in one or more datastores.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein each query option of the subset of query options is associated with an accuracy score, based on query optimization results from an audit of previous queries, that is above a predefined threshold.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein each query is executed in priority order until a specified number of candidates is generated, after which execution of each query in priority order is terminated.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the selected workflows relevant to each candidate are executed based on workflow optimization results.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the selected workflows relevant to each candidate are executed in an order from a workflow with a highest accuracy metric to a workflow with a lowest accuracy metric.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the subset of query options are further selected based on a cost constraint.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, wherein selecting the subset of query options from a list of query options based on a comparison of relevant query options comprises:
determining which query options are relevant query options to the one or more attributes of the input;
determining an accuracy score for each relevant query option based on query optimization results from an audit of previous queries; and
selecting the relevant query options with an accuracy score above a predefined threshold as the subset of query options.

### Claim 12

A system comprising:
a memory that stores instructions; and
one or more processors configured by the instructions to perform operations comprising:
receiving an input comprising one or more attributes;
selecting a subset of query options from a list of query options based on a comparison of relevant query options;
translating each query option of the subset of query options into a query comprising at least one attribute of the one or more attributes of the input, to generate a set of queries;
executing each query to generate a candidate list comprising a list of candidates that potentially match the input;
executing selected workflows relevant to each candidate to determine a probability that each candidate matches the input; and
providing an output indicating at least candidates that matched the input based on the probability that each candidate matches the input.

### Claim 13 (depends on 12)

The system of claim 12, wherein the subset of query options are further selected from the list of query options based on query optimization results from an audit of previous queries.

### Claim 14 (depends on 13)

The system of claim 13, wherein the query optimization results from the audit of previous queries comprise metrics associated with each query.

### Claim 15 (depends on 14)

The system of claim 14, wherein the metrics comprise precision and recall.

### Claim 16 (depends on 13)

The system of claim 13, wherein the query optimization results from the audit of previous queries are generated by performing operations comprising:
selecting a subset of previously run queries and results;
generating a confusion matrix for each query;
using the confusion matrix, deriving metrics for each query; and
storing the metrics for each query as optimization results in one or more datastores.

### Claim 17 (depends on 12)

The system of claim 12, wherein each query option of the subset of query options is associated with an accuracy score, based on query optimization results from an audit of previous queries, that is above a predefined threshold.

### Claim 18 (depends on 12)

The system of claim 12, wherein each query is executed in priority order until a specified number of candidates is generated, after which execution of each query in priority order is terminated.

### Claim 19 (depends on 12)

The system of claim 12, wherein the selected workflows relevant to each candidate are executed based on workflow optimization results or wherein the selected workflows relevant to each candidate are executed in an order from a workflow with a highest accuracy metric to a workflow with a lowest accuracy metric.

### Claim 20

A non-transitory computer-readable medium comprising instructions stored thereon that are executable by at least one processor to cause a computing device to perform operations comprising:
receiving an input comprising one or more attributes;
selecting a subset of query options from a list of query options based on a comparison of relevant query options;
translating each query option of the subset of query options into a query comprising at least one attribute of the one or more attributes of the input, to generate a set of queries;
executing each query to generate a candidate list comprising a list of candidates that potentially match the input;
executing selected workflows relevant to each candidate to determine a probability that each candidate matches the input; and
providing an output indicating at least candidates that matched the input based on the probability that each candidate matches the input.
