# US 12,111,843 B2 · Synchronization of data across different ontologies

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

- Number: US 12,111,843 B2
- Document ID: US12111843B2
- Status: Granted
- Kind: B2
- Application number: 17/845,324
- Filed: 2022-06-21
- Published: 2023-04-06
- Granted: 2024-10-08
- Earliest claimed: 2021-10-04
- Assignees: Palantir Technologies Inc.
- Applicants: Palantir Technologies Inc.
- Inventors: Natacha Gabbamonte; Michal Adamczyk; Vipul Shekhawat
- Web page: https://patentgrep.com/patent/US12111843B2

## CPC

- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A first computing system and methods are provided for synchronizing data with a second computing system. The computing system receives an indication of an origination of data within the first database of the first computing system. A data object that includes attributes of the originated data is generated. A first instance of the data object is incorporated into a first ontology of the first database. A second instance of the data object is transmitted to the second computing system. During the transmission, the second instance of the data object is incorporated into a second ontology of a second database within the second computing system. An update to the second instance of the data object is detected. An updated ontological representation of the updated second instance is generated, or an updated ontological representation is received from the second computing system. The updated ontological representation is incorporating into the first ontology.

## Claims

### Claim 1

A first computing system that synchronizes data with a second computing system, the first computing system comprising:
one or more processors;
a first database; and
memory storing instructions that, when executed by the one or more processors, cause the system to perform:
receiving an indication of an origination of data within the first database of the first computing system;
generating a data object that comprises attributes of the originated data;
writing a first copy of the data object into a first ontology of the first database, wherein the first ontology indicates properties or constraints of data objects within the first database;
writing a second copy of the data object into a second ontology of the second computing system, wherein the second ontology indicates properties or constraints of data objects within the second database, the writing of the second copy of the data object comprising:
in response to the second copy of the data object being incompatible with the second ontology, selectively modifying a format of the second copy of the data object to conform to the second ontology;
detecting an update to the selectively modified format of the second copy of the data object, wherein the update is associated with a change in an attribute;
generating an updated ontological representation according to the update to the selectively modified format of the second copy, or receiving the updated ontological representation from the second computing system; and
writing, into the first ontology of the first database, updated data corresponding to incorporating the updated ontological representation into the first ontology.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the first ontology indicates first relationships among first data objects within the first database or first properties of the first data objects and the second ontology indicates second relationships among second data objects within the second database or second properties of the second data objects; and the incorporation of the first instance of the data object into the first ontology of the first database comprises determining a class satisfied by conditions indicated by the attributes based on an inheritance hierarchy of the first database and incorporating the first instance of the data object into the class.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
generating a timestamp indicating a time at which the second instance was incorporated into the second ontology; and
generating an index corresponding to the timestamp, wherein the timestamp and the index are updated in response to the second instance being updated.

### Claim 4 (depends on 3)

The computing system of claim 3, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
generating a timestamp indicating a time at which the second instance was incorporated into the second ontology; and
generating an index corresponding to the timestamp, wherein the timestamp is updated in response to the second instance being updated.

### Claim 5 (depends on 4)

The computing system of claim 4, wherein the detecting of the update to the second instance is in response to the timestamp being changed.

### Claim 6 (depends on 2)

The computing system of claim 2, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
determining, based on a second inheritance hierarchy of the second ontology or based on differences between the first ontology and the second ontology, a second class within the second ontology satisfied by the conditions indicated by the attributes; and
incorporating the second instance of the data object into the second class.

### Claim 7 (depends on 2)

The computing system of claim 2, wherein the updated ontological representation comprises a mapping of updated attributes to the second instance of the data object.

### Claim 8 (depends on 7)

The computing system of claim 7, wherein the incorporation of the updated ontological representation comprises:
determining whether the class is still satisfied by updated conditions indicated by the updated attributes; and
in response to determining that the class is no longer satisfied by the updated conditions:
determining an updated class that is satisfied by the updated conditions; and
incorporating an instance of the updated data object into the updated class.

### Claim 9 (depends on 8)

The computing system of claim 8, wherein the incorporation of the updated ontological representation comprises:
deleting the first instance of the data object within the class in response to determining that the class is no longer satisfied by the updated conditions.

### Claim 10 (depends on 1)

The computing system of claim 1, wherein the instructions further cause the system to:
perform a downstream action on the second instance of the data object, the downstream action comprising one of processing, analysis, and monitoring of an entity associated with the data object.

### Claim 11 (depends on 1)

The computing system of claim 1, wherein the reception of the indication that the data within the first computing system has been updated is in response to a performance of a computing task by the first computing system.

### Claim 12

A computer-implemented method of a first computing system that synchronizes data with a second computing system, the computer-implemented method comprising:
receiving an indication of an origination of data within the first database of the first computing system;
generating a data object that comprises attributes of the originated data;
writing a first copy of the data object into a first ontology of the first database, wherein the first ontology indicates properties or constraints of data objects within the first database;
writing a second copy of the data object into a second ontology of the second computing system, wherein the second ontology indicates properties or constraints of data objects within the second database, the writing of the second copy of the data object comprising:
in response to the second copy of the data object being incompatible with the second ontology, selectively modifying a format of the second copy of the data object to conform to the second ontology;
detecting an update to the selectively modified format of the second copy of the data object, wherein the update is associated with a change in an attribute;
generating an updated ontological representation according to the update to the selectively modified format of the second copy, or receiving the updated ontological representation from the second computing system; and
writing, into the first ontology of the first database, updated data corresponding to the updated ontological representation.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, wherein the first ontology indicates first relationships among first data objects within the first database or first properties of the first data objects and the second ontology indicates second relationships among second data objects within the second database or second properties of the second data objects; and the incorporation of the first instance of the data object into the first ontology of the first database comprises determining a class satisfied by conditions indicated by the attributes based on an inheritance hierarchy of the first database and incorporating the first instance of the data object into the class.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
generating a timestamp indicating a time at which the second instance was incorporated into the second ontology; and
generating an index corresponding to the timestamp, wherein the timestamp and the index are updated in response to the second instance being updated.

### Claim 15 (depends on 14)

The computer-implemented method of claim 14, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
generating a timestamp indicating a time at which the second instance was incorporated into the second ontology; and
generating an index corresponding to the timestamp, wherein the timestamp is updated in response to the second instance being updated.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein the detecting of the update to the second instance is in response to the timestamp being changed.

### Claim 17 (depends on 13)

The computer-implemented method of claim 13, wherein the incorporation of the second instance of the data object into the second ontology of the second database comprises:
determining, based on a second inheritance hierarchy of the second ontology or based on differences between the first ontology and the second ontology, a second class within the second ontology satisfied by the conditions indicated by the attributes; and
incorporating the second instance of the data object into the second class.

### Claim 18 (depends on 13)

The computer-implemented method of claim 13, wherein the updated ontological representation comprises a mapping of updated attributes to the second instance of the data object.

### Claim 19 (depends on 18)

The computer-implemented method of claim 18, wherein the incorporation of the updated ontological representation comprises:
determining whether the class is still satisfied by updated conditions indicated by the updated attributes; and
in response to determining that the class is no longer satisfied by the updated conditions:
determining an updated class that is satisfied by the updated conditions; and
incorporating an instance of the updated data object into the updated class.

### Claim 20 (depends on 12)

The computer-implemented method of claim 12, further comprising:
performing a downstream action on the second instance of the data object, the downstream action comprising one of processing, analysis, and monitoring of an entity associated with the data object.
