# US 12,113,867 B1 · Self-configuring adapter

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

- Number: US 12,113,867 B1
- Document ID: US12113867B1
- Status: Granted
- Kind: B1
- Application number: 17/521,556
- Filed: 2021-11-08
- Granted: 2024-10-08
- Earliest claimed: 2018-05-25
- Assignees: Progress Software Corporation
- Applicants: Progress Software Corporation
- Inventors: Anthony J. Lavinio
- Web page: https://patentgrep.com/patent/US12113867B1

## CPC

- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 9/541: {via adapters, e.g. between incompatible applications}
- G06F 16/2423: {Interactive query statement specification based on a database schema}
- G06F 16/252: {between a Database Management System and a front-end application}
- G06N 5/02: Knowledge representation; Symbolic representation
- G06N 5/025: Extracting rules from data
- G06N 5/04: Inference or reasoning models
- H04L 67/303: Terminal profiles
- H04L 67/561: Adding application-functional data or data for application control, e.g. adding metadata
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A system and method for mapping an application program interface (API) to a relational schema. In one embodiment, the system samples a first endpoint, the first endpoint exposed via a first application programming interface (API); automatically infers, based on a set of results received from the first endpoint responsive to the sampling and based on a set of inference rules, a first set of data types and a first relational data structure representing data stored by the first endpoint and exposed via the first API; generates a configuration profile based on the first set of inferred data types and the first relational data structure representing the data stored by the first endpoint and exposed via the first API; and obtains, using the configuration profile and via the first application programming interface, data from the first endpoint responsive to a query, the query received in a relational query language.

## Claims

### Claim 1

A method comprising:
receiving, using one or more processors, a query in a relational query language;
obtaining, using the one or more processors, via a first application programming interface (API), an API result set from a first endpoint based on the query in the relational query language;
determining, using the one or more processors, a relational result set responsive to the query in the relational query language based on an extrapolation from a sample set of results received from the first endpoint and a set of rules, wherein the sample set of results is distinct from the API result set and received responsive to a sampling distinct from the received query in the relational query language, wherein an initial set of data types and an initial relational data structure are extrapolated as an initial relational data structure representing data stored by the first endpoint and exposed via the first API, wherein the sample set of results is a subset comprising less than an entirety of data exposed by the first endpoint via the first API; and
sending, using the one or more processors, the relational result set responsive to the query in the relational query language.

### Claim 2 (depends on 1)

The method of claim 1 further comprising:
receiving, from the first endpoint and responsive to the sampling of the first endpoint, the sample set of results; and
extrapolating, based on the sample set of results received from the first endpoint and based on the set of rules, the initial set of data types and the initial relational data structure, wherein the data stored by the first endpoint and exposed via the first API includes a complex data type, and wherein the initial relational data structure including a relational representation of the complex data type.

### Claim 3 (depends on 2)

The method of claim 2, wherein the sampling and automatic extrapolation are repeated on a per-session basis and responsive to an initiation of a session.

### Claim 4 (depends on 1)

The method of claim 1, wherein the initial set of extrapolated data types and initial relational data structure representing the data stored by the first endpoint and exposed via the first API are merged with a second set of extrapolated data types and a second relational data structure representing data stored by a second endpoint.

### Claim 5 (depends on 4)

The method of claim 4, wherein the second endpoint is exposed via a second API, and the first API and second API differ.

### Claim 6 (depends on 1)

The method of claim 1 further comprising:
obtaining user input requesting modification of the relational data structure representing the data stored by the first endpoint and exposed via the first API; and
generating a new relational data structure representing the data stored by the first endpoint and exposed via the first API based on the requested modification.

### Claim 7 (depends on 6)

The method of claim 6, wherein the user input requesting modification is a request to modify one or more of a data type, data structure, and normalization type.

### Claim 8 (depends on 1)

The method of claim 1, wherein the sample set of results represent most recent data of the first endpoint.

### Claim 9 (depends on 1)

The method of claim 1 further comprising:
updating the relational data structure representing the data stored by the first endpoint and exposed via the first API responsive to one or more of a user-initiated request and automatically based on satisfaction of a criterion.

### Claim 10 (depends on 1)

The method of claim 1 further comprising:
mapping the query in the relational query language to one or more first API queries based on the relational data structure representing the data stored by the first endpoint and exposed via the first API, the one or more API queries including a first API query, the first API query using the first API and sent to the first endpoint.

### Claim 11

A system comprising:
one or more processors; and
a memory storing instructions that, when executed by the one or more processors, cause the system to:
receive a query in a relational query language;
obtain, via a first application programming interface (API), an API result set from a first endpoint based on the query in the relational query language;
determine a relational result set responsive to the query in the relational query language based on an extrapolation from a sample set of results received from the first endpoint and a set of rules, wherein the sample set of results is distinct from the API result set and received responsive to a sampling distinct from the received query in the relational query language, wherein an initial set of data types and an initial relational data structure are extrapolated as an initial relational data structure representing data stored by the first endpoint and exposed via the first API, wherein the sample set of results is a subset comprising less than an entirety of data exposed by the first endpoint via the first API; and
send the relational result set responsive to the query in the relational query language.

### Claim 12 (depends on 11)

The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:
receive, from the first endpoint and responsive to the sampling of the first endpoint, the sample set of results; and
extrapolate, based on the sample set of results received from the first endpoint and based on the set of rules, the initial set of data types and the initial relational data structure, wherein the data stored by the first endpoint and exposed via the first API includes a complex data type, and wherein the initial relational data structure including a relational representation of the complex data type.

### Claim 13 (depends on 12)

The system of claim 12, wherein the sampling and automatic extrapolation are repeated on a per-session basis and responsive to an initiation of a session.

### Claim 14 (depends on 11)

The system of claim 11, wherein the initial set of extrapolated data types and initial relational data structure representing the data stored by the first endpoint and exposed via the first API are merged with a second set of extrapolated data types and a second relational data structure representing data stored by a second endpoint.

### Claim 15 (depends on 14)

The system of claim 14, wherein the second endpoint is exposed via a second API, and the first API and second API differ.

### Claim 16 (depends on 11)

The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:
obtain user input requesting modification; and
generate a new relational data structure representing the data stored by the first endpoint and exposed via the first API based on the requested modification.

### Claim 17 (depends on 16)

The system of claim 16, wherein the user input requesting modification is a request to modify one or more of a data type, data structure, and normalization type.

### Claim 18 (depends on 11)

The system of claim 11, wherein the sample set of results represent most recent data of the first endpoint.

### Claim 19 (depends on 11)

The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:
update the relational data structure representing the data stored by the first endpoint and exposed via the first API responsive to one or more of a user-initiated request and automatically based on satisfaction of a criterion.

### Claim 20 (depends on 11)

The system of claim 11 comprising instructions that, when executed by the one or more processors, cause the system to:
map the query in the relational query language to one or more API queries based on the relational data structure representing the data stored by the first endpoint and exposed via the first API, the one or more API queries including a first API query, the first API query using the first API and sent to the first endpoint.
