IP Library Granted Patent US 12699735
Granted Patent B2
US 12699735 · App. 18/984,661 · Granted Aug 4, 2026

System and method for querying a data repository

Inventors: Cenk Sezgin (London, GB); Advaya Krishna (New York, NY); Adhish Ramkumar (Jersey City, NJ); Arthur Wu (New York, NY); Adam Wiles (Hertfordshire, GB); Gregory Slonim (London, GB); Harsh Pandey (New York, NY); Kushal Nigam (Palo Alto, CA); Michal Adamczyk (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/90328G06F16/2393G06F16/243G06F16/24575G06F16/367G06F16/374
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 12699735
App. No.
18/984,661
Granted
Aug 4, 2026
Kind
B2
Abstract

The present disclosure relates to methods and systems for querying data in a data repository. According to a first aspect, this disclosure describes a method of querying a database, comprising: receiving, at a computing device, a plurality of keywords; determining, by the computer device, a plurality of datasets relating to the keywords; identifying, by the computer device, metadata for the plurality of datasets indicating a relationship between the datasets by examining an ontology associated with the datasets; providing, by the computer device, one or more suggested database queries in natural language form, the one or more suggested database queries constructed based on the plurality of keywords and the metadata; receiving, by the computing device, a selection of the one or more suggested database queries; and constructing, by the computer device, an object view for the plurality of datasets based on the selected query and the metadata.

Claims (49)

1 . A computer-implemented method comprising:

receiving, by a computing system, one or more terms with which to search a plurality of datasets;

identifying, by the computing system, datasets in the plurality of datasets that are related to the one or more terms based on ontologies associated with the datasets, wherein the identifying of the datasets comprises identifying a first dataset related to a first term of the one or more terms, identifying a second dataset related to a second term of the one or more terms, and identifying a third dataset related to a third term;

accessing, by the computing system, templates, wherein the templates indicate an ordering of slots to be populated with a sequence of keywords that match properties corresponding to the slots, wherein the templates are based on relationships within the ontologies, wherein the ontologies comprise or are represented as an object graph in a separate metadata layer;

generating, by the computing system, based on the templates, one or more search queries that correspond to the one or more terms based on the datasets and the ontologies, wherein generating one or more search queries comprises:

determining, by the computing system, any relationship between the first dataset and the second dataset;

generating, by the computing system, the one or more search queries based on the relationship;

determining, by the computing system, any updated relationship between the first dataset, the second dataset, and the third dataset, wherein the any updated relationship is based on a relationship between the one or more search queries and the third term; and

generating, by the computing system, the one or more search queries based on the any updated relationship;

receiving, by the computing system, a selection of a particular query from the one or more search queries;

generating, by the computing system, based on the particular query, logic to transform the particular query into an executable query;

transforming, according to the logic, the particular query into the executable query; and

returning one or more results from the plurality of datasets based on the particular query.

2 . The method of claim 1 , wherein the generating of the one or more search queries is based on one or more parse trees and name entity recognition associated with templates stored in the ontologies.

3 . The method of claim 1 , further comprising modifying the logic.

4 . The method of claim 1 , further comprising merging one or more portions of the results, wherein the merging comprises rendering the one or more portions according to fractions of columns or rows within the relevant portions that contain unique values or unique entries.

5 . The method of claim 4 , wherein the merging comprises generating an object view that includes one or more of: a table, a histogram, a bar graph, a line graph, a scatter plot, or a pie chart.

6 . The method of claim 1 , further comprising receiving an edit to the particular query in response to receiving the selection of the particular query.

7 . The method of claim 6 , further comprising:

in response to receiving the edit to the particular query, modifying the ontologies based on the edit to the particular query.

8 . The method of claim 7 , further comprising:

in response to receiving the edit to the particular query, generating a flag within the ontologies.

9 . The method of claim 1 , wherein the generating of the logic is based on one or more parse trees.

10 . The method of claim 1 , wherein the identifying of the datasets that are related to the one or more terms comprises identifying respective classes corresponding to the one or more terms and rows or columns in the datasets tagged with the respective classes.

11 . The method of claim 1 , wherein the generating the one or more search queries comprises selecting a template comprising a sequence of words and one or more slots populated using the one or more terms based on one or more properties of the one or more terms.

12 . A system comprising:

one or more processors;

a memory storing instructions that, when executed by the one or more processors, cause the system to perform a method comprising:

receiving, by a computing system, one or more terms with which to search a plurality of datasets;

identifying, by the computing system, datasets in the plurality of datasets that are related to the one or more terms based on ontologies associated with the datasets, wherein the identifying of the datasets comprises identifying a first dataset related to a first term of the one or more terms, identifying a second dataset related to a second term of the one or more terms, and identifying a third dataset related to a third term;

accessing, by the computing system, templates, wherein the templates indicate an ordering of slots to be populated with a sequence of keywords that match properties corresponding to the slots, wherein the templates are based on relationships within the ontologies, wherein the ontologies comprise or are represented as an object graph in a separate metadata layer;

generating, by the computing system, based on the templates, one or more search queries that correspond to the one or more terms based on the datasets and the ontologies, wherein generating one or more search queries comprises:

determining any relationship between the first dataset and the second dataset;

generating the one or more search queries based on the relationship;

determining any updated relationship between the first dataset, the second dataset, and the third dataset, wherein the any updated relationship is based on a relationship between the one or more search queries and the third term; and

generating the one or more search queries based on the any updated relationship;

receiving, by the computing system, a selection of a particular query from the one or more search queries;

generating, by the computing system, based on the particular query, logic to transform the particular query into an executable query;

transforming, according to the logic, the particular query into the executable query; and

returning one or more results from the plurality of datasets based on the particular query.

13 . The system of claim 12 , wherein the instructions that, when executed by the one or more processors, further cause the system to perform the method comprising:

storing the templates within the ontologies, wherein the templates indicate an ordering of slots to be populated with corresponding keywords that match properties defined within the slots, wherein the ontologies are represented as an object graph in a separate metadata layer on top of the datasets.

14 . The system of claim 12 , wherein the generating of the one or more search queries is based on one or more parse trees and name entity recognition associated with templates stored in the ontologies.

15 . The system of claim 12 , wherein the instructions that, when executed by the one or more processors, further cause the system to perform the method comprising modifying the logic.

16 . The system of claim 12 , wherein the instructions that, when executed by the one or more processors, further cause the system to perform the method comprising rendering the one or more portions according to fractions of columns or rows within the relevant portions that contain unique values or unique entries.

17 . The system of claim 16 , wherein the merging comprises generating an object view that includes one or more of: a table, a histogram, a bar graph, a line graph, a scatter plot, or a pie chart.

18 . The system of claim 12 , wherein the instructions that, when executed by the one or more processors, further cause the system to perform the method comprising:

receiving an edit to the particular query in response to receiving the selection of the particular query; and

in response to receiving the edit to the particular query, modifying the ontologies based on the edit to the particular query.