# US 2024/0202174 A1 · System and methods for object version tracking and read-time/write-time data federation

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

- Number: US 2024/0202174 A1
- Document ID: US20240202174A1
- Status: Published application
- Kind: A1
- Application number: 18/589,255
- Filed: 2024-02-27
- Published: 2024-06-20
- Earliest claimed: 2017-12-08
- Assignees: Palantir Technologies Inc.
- Applicants: Palantir Technologies inc.
- Inventors: Peter WILCZYNSKI; Alexander Ryan; Allen Chang; Daniel Cervelli; Julie Tibshirani; Timothy Wilson
- Web page: https://patentgrep.com/patent/US20240202174A1

## CPC

- G06F 16/219: {Managing data history or versioning (querying versioned data G06F16/2474; querying temporal data G06F16/2477)}
- G06F 16/2458: Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F 16/2456: {Join operations}
- G06F 16/2474: {Sequence data queries, e.g. querying versioned data}
- G06F 16/256: {in federated or virtual databases}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are provided in order to avoid ingesting the entire contents of one or more data sources. An object may be associated with one or more pieces/fragments of data that can be stored in different data sources. When a request for the object is initiated, a search for those pieces/fragments of data can be performed. Nodes associated with each data source may generate data queries appropriate for its corresponding data source, retrieve, and if needed transform the data into an object-based data structure. Any pieces/fragments of data that have been discovered and retrieved can be joined, e.g., by an application programming interface server, and forwarded to a requesting client or application. In this way, only data relevant to the object is obtained. Moreover, object versioning can be employed so that the most up-to-date data is obtained.

## Claims

### Claim 1

A system for analyzing data, comprising:
one or more processors, the processors comprising adapter nodes; and
a memory storing instructions that, when executed by the one or more processors, cause the system to:
receive a request, from an application, for an object;
retrieve, from datastores using a subset of the adapter nodes, data fragments making up or associated with the requested object, wherein:
the adapter nodes are intermediaries between the datastores and application programming interface (API) servers;
transform at least a portion of the data fragments, wherein the transforming is based on a script, the script being generated according to a schema of a datastore;
upon transformation of at least the portion of the data fragments by the subset of the adapter nodes, join the data fragments by the API servers; and
transmit, by the API servers, the joined data fragments to the application.

### Claim 2 (depends on 1)

The system of claim 1, wherein the adapter nodes further comprise respective caches in which most updated versions of the respective data fragments are stored.

### Claim 3 (depends on 1)

The system of claim 1, further comprising a data analysis platform that stores a different data fragment; and wherein the instructions further cause the system to:
join the different data fragment to the joined data fragments to form composite data fragments, and wherein the transmitting of the joined data fragment comprises transmitting the composite data fragments.

### Claim 4 (depends on 1)

The system of claim 1, wherein the instructions further cause the system to:
inactivate an adapter node and activate a new adapter node to replace the inactivated adapter node.

### Claim 5 (depends on 1)

The system of claim 1, wherein, the instructions further cause the system to:
indicate that the retrieving of the data fragments has been partially completed; and
transmit a partial object view to the application.

### Claim 6 (depends on 1)

The system of claim 1, wherein the script is generated according to a target ontology of the application or of a platform.

### Claim 7 (depends on 1)

The system of claim 1, wherein the instructions further cause the system to:
receive an indication that a data fragment has updated a version; and
in response to receiving the indication, reingesting, at the application, a new version of the data fragment.

### Claim 8 (depends on 1)

The system of claim 1, wherein the joining of the data fragments comprises converting a first data fragment of a first data type by a first adapter node and a second data fragment of a second data type by a second adapter node into a standardized data type.

### Claim 9

A method being implemented by a computing system including one or more physical processors and storage media storing machine-readable instructions, the method comprising:
receiving a request, from an application, for an object;
retrieving, from datastores using a subset of the adapter nodes, data fragments making up or associated with the requested object, wherein:
the adapter nodes are intermediaries between the datastores and application programming interface (API) servers;
transforming at least a portion of the data fragments, wherein the transforming is based on a script, the script being generated according to a schema of a datastore;
upon transformation of at least the portion of the data fragments by the subset of the adapter nodes, joining the data fragments by the API servers; and
transmitting, by the API servers, the joined data fragments to the application.

### Claim 10 (depends on 9)

The method of claim 9, further comprising storing most updated versions of the respective data fragments in respective caches of the adapter nodes.

### Claim 11 (depends on 9)

The method of claim 9, further comprising:
storing a different data fragment in a data analysis platform; and
joining the different data fragment to the joined data fragments to form composite data fragments, wherein the transmitting of the joined data fragment comprises transmitting the composite data fragments.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
inactivating an adapter node and activating a new adapter node to replace the inactivated adapter node.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
indicating that the retrieving of the data fragments has been partially completed; and
transmitting a partial object view to the application.

### Claim 14 (depends on 9)

The method of claim 9, wherein a first of the data fragments comprises a tabular format and a second of the data fragments comprises a second, non-object oriented format.

### Claim 15 (depends on 9)

The method of claim 9, wherein the script is generated according to a target ontology of the application or of a platform.

### Claim 16 (depends on 9)

The method of claim 9, further comprising:
receiving an indication that a data fragment has updated a version; and
in response to receiving the indication, reingesting, at the application, a new version of the data fragment.

### Claim 17

A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:
receiving a request, from an application, for an object;
retrieving, from datastores using a subset of the adapter nodes, data fragments making up or associated with the requested object, wherein:
the adapter nodes are intermediaries between the datastores and application programming interface (API) servers;
transforming at least a portion of the data fragments, wherein the transforming is based on a script, the script being generated according to a schema of a datastore;
upon transformation of at least the portion of the data fragments by the subset of the adapter nodes, joining the data fragments by the API servers; and
transmitting, by the API servers, the joined data fragments to the application.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the instructions further cause the one or more processors to perform:
storing most updated versions of the respective data fragments in respective caches of the adapter nodes.

### Claim 19 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the instructions further cause the one or more processors to perform:
storing a different data fragment in a data analysis platform; and
joining the different data fragment to the joined data fragments to form composite data fragments, wherein the transmitting of the joined data fragment comprises transmitting the composite data fragments.

### Claim 20 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the script is generated according to a target ontology of the application or of a platform.
