IP Library Granted Patent US 12,585,648
Granted Patent B2
US 12,585,648 · App. 18/768,985 · Granted Mar 24, 2026

Efficient query execution for ontology-based databases

Inventors: James Baker (Maidenhead, GB); Xavier Falco (London, GB); Samuel Flavio Barroso Souza (London, GB); Amr Al Mallah (Tacoma, WA); Yixun Xu (Jersey City, NJ); Arseny Bogomolov (Arlington, VA); Sławomir Mucha (London, GB)
Assignee: Palantir Technologies Inc.
G06F16/24534G06F11/3419G06F21/6218G06F2221/2141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,585,648
App. No.
18/768,985
Granted
Mar 24, 2026
Kind
B2
Abstract

A system for efficient query execution over ontology-based databases and related methods are disclosed. The system is programmed to receive an ontology query from a user account against an ontology having access controls, and transform the ontology query into a set of database queries, including a set of exact aggregations or joins. The system is programmed to then estimate how much data processing is to be performed in executing the set of exact aggregations or joins, considering how much data in the ontology can be accessed by the user account under the access controls. Upon determining that the estimated amount of data processing exceeds a threshold, the system is programmed to route the set of exact aggregations or joins to a set of nodes optimized for large-scale data processing.

Claims (76)

1 . A computer-implemented method of efficient query execution over ontology-based databases, comprising:

receiving an ontology query for querying an ontology from a user device,

the ontology including a definition for each ontology entity type of a plurality of ontology entity types and a plurality of ontology entities instantiated from the plurality of ontology entity types,

each ontology entity type of the plurality of ontology entity types having one or more properties;

identifying a set of permissions of a user account of the user device for accessing the ontology;

transforming the ontology query to a set of database queries, including a set of joins or aggregations;

determining whether execution of the set of joins or aggregations based on the set of permissions meets any condition of a set of conditions;

routing, in response to determining that the set of joins or aggregations meets a condition of the set of conditions, the set of joins or aggregations to a specific set of computing nodes;

receiving a reply from the specific set of computing nodes;

transmitting a result based on the reply to the user device in response to the ontology query,

wherein the method is performed by one or more processors.

2 . The computer-implemented method of claim 1 , the set of permissions indicating whether the user account has a specific type of access to an ontology entity type, an ontology entity, or a property of an ontology entity.

3 . The computer-implemented method of claim 1 ,

a specific ontology entity type covered by the ontology query being represented in multiple forms in a plurality of object databases,

the transforming comprising selecting one or more object databases from the plurality of object databases for a set of ontology entity types covered by the ontology query.

4 . The computer-implemented method of claim 3 , the transmitting comprising converting the reply into one or more ontology entities based on one or more transformations between a set of definitions for the set of ontology entity types covered by the ontology query and one or more schemas for the one or more object databases.

5 . The computer-implemented method of claim 1 , the transforming comprising receiving a confirmation of exact computation for an aggregation of the set of joins or aggregations.

6 . The computer-implemented method of claim 1 ,

the set of joins or aggregations including an aggregation over each group of ontology entities of one or more groups of ontology entities of a specific ontology type,

the set of conditions being related to a number of groups of the one or more groups, a number of ontology entities of the specific ontology type, or a size of a value being aggregated.

7 . The computer-implemented method of claim 1 ,

the set of joins or aggregations including a join of one or more specific properties of two or more specific ontology entity types,

the set of conditions being related to a number of ontology entities of the two or more specific ontology entity types or a size of the one or more specific properties.

8 . The computer-implemented method of claim 1 , the determining comprising:

estimating an amount of data processing to be performed on data accessible to the user account based on the set of permissions;

evaluating whether the amount of data processing exceeds a threshold.

9 . The computer-implemented method of claim 1 , the specific set of computing nodes having a high-performance, scalable architecture.

10 . The computer-implemented method of claim 1 , further comprising:

receiving a second ontology query from the user device,

transforming the second ontology query to a second set of database queries, including a second set of joins or aggregations;

routing the set of joins or aggregations to a distributed environment outside the specific set of computing nodes;

detecting an exception in executing the set of joins or aggregations in the distributed environment;

routing, in response to the detecting, the set of joins or aggregations to the specific set of computing nodes.

11 . The computer-implemented method of claim 10 , the exception indicating that a certain amount of time has passed since a start of the executing without reaching an end of the executing.

12 . The computer-implemented method of claim 1 , further comprising routing, in response to determining that the set of joins or aggregations does not meet any condition of the set of conditions, the set of joins or aggregations to a distributed environment outside the specific set of computing nodes.

13 . A system for efficient query execution over ontology-based databases, comprising:

a memory;

one or more processors coupled to the memory and configured to perform:

receiving an ontology query for querying an ontology from a user device,

the ontology including a definition for each ontology entity type of a plurality of ontology entity types and a plurality of ontology entities instantiated from the plurality of ontology entity types,

each ontology entity type of the plurality of ontology entity types having one or more properties;

identifying a set of permissions of a user account of the user device for accessing the ontology;

transforming the ontology query to a set of database queries, including a set of joins or aggregations;

determining whether execution of the set of joins or aggregations based on the set of permissions meets any condition of a set of conditions;

routing, in response to determining that the set of joins or aggregations meets a condition of the set of conditions, the set of joins or aggregations to a specific set of computing nodes;

receiving a reply from the specific set of computing nodes;

transmitting a result based on the reply to the user device in response to the ontology query.

14 . The system of claim 13 ,

a specific ontology entity type covered by the ontology query being represented in multiple forms in a plurality of object databases,

the transforming comprising selecting one or more object databases from the plurality of object databases for a set of ontology entity types covered by the ontology query.

15 . The system of claim 13 ,

the set of joins or aggregations including an aggregation over each group of ontology entities of one or more groups of ontology entities of a specific ontology type,

the set of conditions being related to a number of groups of the one or more groups, a number of ontology entities of the specific ontology type, or a size of a value being aggregated.

16 . The system of claim 13 ,

the set of joins or aggregations including a join of one or more specific properties of two or more specific ontology entity types,

the set of conditions being related to a number of ontology entities of the two or more specific ontology entity types or a size of the one or more specific properties.

17 . The system of claim 13 , the determining comprising:

estimating a number of data processing steps to be performed on data accessible to the user account based on the set of permissions;

evaluating whether the number of data processing steps exceeds a threshold.

18 . The system of claim 13 , the one or more processors further configured to perform:

receiving a second ontology query from the user device,

transforming the second ontology query to a second set of database queries, including a second set of joins or aggregations;

routing the set of joins or aggregations to a distributed environment outside the specific set of computing nodes;

detecting an exception in executing the set of joins or aggregations in the distributed environment;

routing, in response to the detecting, the set of joins or aggregations to the specific set of computing nodes.

19 . The system of claim 13 , the one or more processors further configured to perform routing, in response to determining that the set of joins or aggregations does not meet any condition of the set of conditions, the set of joins or aggregations to a distributed environment outside the specific set of computing nodes.

20 . A non-transitory, computer-readable storage medium storing one or more sequences of instructions which when executed cause one or more processors to perform:

receiving an ontology query for querying an ontology from a user device,

the ontology including a definition for each ontology entity type of a plurality of ontology entity types and a plurality of ontology entities instantiated from the plurality of ontology entity types,

each ontology entity type of the plurality of ontology entity types having one or more properties;

identifying a set of permissions of a user account of the user device for accessing the ontology;

transforming the ontology query to a set of database queries, including a set of joins or aggregations;

determining whether execution of the set of joins or aggregations based on the set of permissions meets any condition of a set of conditions;

routing, in response to determining that the set of joins or aggregations meets a condition of the set of conditions, the set of joins or aggregations to a specific set of computing nodes;

receiving a reply from the specific set of computing nodes;

transmitting a result based on the reply to the user device in response to the ontology query.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2024
From: BAKER, JAMES; FALCO, XAVIER; SOUZA, SAMUEL FLAVIO BARROSO; MALLAH, AMR AL; XU, YIXUN; BOGOMOLOV, ARSENY; MUCHA, SLAWOMIR
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 068374/0507 →
Continuity (2)
Provisional Application 63648058 · May 15, 2024
Related Publication 20250355868A1 · Nov 20, 2025
References Cited (36)
US 8332389B2 · Bestgen et al. · 2012 [cited by applicant]
US 8650634B2 · Bajekal · 2014 [cited by applicant]
US 9690792B2 · Bartlett et al. · 2017 [cited by applicant]
US 10817613B2 · Akselrod · 2020 [cited by examiner]
US 11080336B2 · Van Dusen · 2021 [cited by examiner]
US 11544264B2 · Mathew et al. · 2023 [cited by applicant]
US 11971888B2 · Chen et al. · 2024 [cited by applicant]
US 12124472B2 · Kramer et al. · 2024 [cited by applicant]
US 12174992B1 · Fakhraie · 2024 [cited by examiner]
US 20040003132A1 · Stanley · 2004 [cited by examiner]
US 20060165040A1 · Rathod · 2006 [cited by examiner]
US 20110276396A1 · Rathod · 2011 [cited by examiner]
US 20140310302A1 · Wu et al. · 2014 [cited by applicant]
US 20160117195A1 · Wang · 2016 [cited by applicant]
US 20180322168A1 · Levine et al. · 2018 [cited by applicant]
US 20190155804A1 · Miller et al. · 2019 [cited by applicant]
US 20210294970A1 · Bender et al. · 2021 [cited by applicant]
US 20220253474A1 · Acharya · 2022 [cited by applicant]
US 20230273947A1 · Weitzner · 2023 [cited by examiner]
US 20230297550A1 · Kumar · 2023 [cited by examiner]
US 20230315529A1 · Gristede et al. · 2023 [cited by applicant]
US 20230418793A1 · Urdiales · 2023 [cited by examiner]
US 20240095680A1 · Lee · 2024 [cited by examiner]
US 20240354326A1 · Baker · 2024 [cited by examiner]
“Documentation: Spark > Core Concepts.” Palantir, Retrieved Apr. 30, 2024, www.palantir.com/docs/foundry/optimizing-pipelines/spark-concepts/, 6 pages. [cited by applicant]
“Documentation: Overview and Getting Started > Aggregation Considerations.” Palantir, Retrieved Apr. 29, 2024, www.palantir.com/docs/foundry/object-backend/aggregation-considerations/, 8 pages. [cited by applicant]
Minier, Thomas, et al., “SaGe: Preemptive Query Execution for High Data Availability on the Web,” Hal Open Science, Jun. 3, 2018, https://hal.science/hal-01806486, 17 pages. [cited by applicant]
“Fair Scheduler—Apache Hadoop,” The Apache Software Foundation, May 18, 2022, https://hadoop.apache.org/docs/r1.2.1/fair_scheduler.html, 7 pages. [cited by applicant]
Extended European Search Report in EP Application No. 25176171.4, dated Oct. 10, 2025, 9 pages. [cited by applicant]
Extended European Search Report in EP Application No. 25179700.7, dated Oct. 31, 2025, 10 pages. [cited by applicant]
Endris, Kemele, et al. “Chapter 5 Federated Query Processing”, Jul. 16, 2020, Jul. 16, 2020, p. 73-86, XP047557047. [cited by applicant]
U.S. Appl. No. 18/807,823, filed Aug. 16, 2024. [cited by applicant]
U.S. Appl. No. 18/882,541, filed Sep. 11, 2024. [cited by applicant]
U.S. Appl. No. 18/807,823, Notice of Allowance and Fees Due, Mailing Date Nov. 13, 2025. [cited by applicant]
“Greenplum Database 3.2 Administrator Guide”, Internet Citation, Oct. 1, 2008 (Oct. 1, 2008), pp. 1-849, XP008149266, Retrieved from the Internet: URL: http://docs.huihoo.com/greenplum/GPDB-3.2-AdminGuide.pdf [retrieved… [cited by applicant]
Extended European Search Report in EP Application No. 25185344.6, dated Dec. 16, 2025, in 11 pages. [cited by applicant]