IP Library Granted Patent US 12,099,509
Granted Patent B2
US 12,099,509 · App. 17/170,564 · Granted Sep 24, 2024

Systems and methods for constraint driven database searching

Inventors: Sander Kromwijk (New York, NY); Haithem Turki (New York, NY); Stephen Cohen (Palo Alto, CA); Yixun Xu (Long Island, NY); Feridun Arda Kara (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/24565G06F16/245G06F16/24552G06F16/248G06F16/256
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,099,509
App. No.
17/170,564
Granted
Sep 24, 2024
Kind
B2
Abstract

Systems and methods are provided for performing constraint driven database searching. At least one constraint is received for a search of one or more databases comprising one or more datasets, each comprising multiple entry fields. The one or more databases comprising the one or more datasets may be accessed and searched based on the constraint to identify one or more dataset entries that contain the at least one constraint in one of multiple entry fields. A visual representation of the identified dataset entries may be provided to the user as results of the constraint driven database search. Additional constraints may be accepted to further narrow the results of constraint driven database search. The results may be exported and made accessible for later retrieval and/or cached for use in subsequent searches.

Claims (78)

1. A system comprising:

one or more processors; and

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

receiving a first constraint term inputted into a cell of a table presented in a graphical user interface;

identifying, in response to receiving the first constraint term, at least one first dataset, the at least one first dataset including a first plurality of dataset entries having the first constraint term;

determining a first arrangement of the first plurality of dataset entries according to respective types of first entry fields of the first plurality of dataset entries;

generating a visual representation based on the determined first arrangement;

causing the graphical user interface to present the generated visual representation;

receiving a second constraint term;

identifying, in response to receiving the second constraint term, at least one second dataset, the at least one second dataset including a second plurality of dataset entries having the second constraint term;

determining a second arrangement of the second plurality of dataset entries according to respective types of second entry fields of the second plurality of dataset entries; and

updating the visual representation based on the second arrangement.

2. The system of claim 1 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term, and wherein the instructions further cause the system to perform:

identifying a first plurality of dataset entries of the first dataset having the first constraint term;

caching the first plurality of dataset entries in a local memory module;

identifying, from the cached first plurality of dataset entries, a second plurality of dataset entries having the second constraint term; and

identifying the dataset entries associated with the at least one first dataset entry based on the second plurality of dataset entries.

3. The system of claim 2 , wherein the instructions further cause the system to perform:

receiving a third constraint term;

identifying at least a third dataset entry including the third constraint term; and

generating a second visual representation of at least the third dataset entry.

4. The system of claim 1 , wherein the instructions further cause the system to perform:

identifying a first entry field of the first entry fields having the at least one constraint term;

identifying a second entry field of second entry fields; and

comparing the first entry field to the second entry field, wherein the visual representation of the at least one first dataset entry and the at least one second dataset entry is based on at least the comparison of the first entry field to the second entry field.

5. The system of claim 2 , wherein the instructions further cause the system to perform:

in response to identifying the second plurality of dataset entries, predicting dataset entries that are related to one another from among the identified second plurality of dataset entries based on one or more prior searches conducted and one or more prior datasets created; and

automatically populating one or more values from a dataset entry predicted to be related to an other dataset entry of the second plurality of dataset entries.

6. The system of claim 1 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term; and the determining of the arrangement of dataset entries comprises:

determining that a threshold amount of the first entry fields corresponding to the first constraint term and second entry fields corresponding to the second constraint term are within a threshold proximity; and

in response to determining that a threshold amount of the first entry fields and the second entry fields are within the threshold proximity, determining that the first entry fields corresponding to the first constraint term and the second entry fields corresponding to the second constraint term are to be arranged in proximity with one another.

7. The system of claim 1 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term; and the determining of the arrangement of dataset entries comprises:

determining that a threshold fraction of the entry fields of the identified dataset entries that correspond to the first constraint term are within a threshold proximity to entry fields of the identified dataset entries that correspond to the second constraint term; and

in response to determining that a threshold fraction of entry fields of the identified dataset entries that correspond to the first constraint term are within a threshold proximity to entry fields of the identified dataset entries that correspond to the second constraint term, determining that the entry fields that correspond to the first constraint term and the entry fields that correspond to the second constraint term are to be arranged in proximity with one another.

8. The system of claim 1 , wherein the instructions further cause the system to perform:

determining that a stored dataset is associated with the at least one constraint term and a second dataset; and

responsive to determining that the stored dataset is associated with the at least one constraint term and the second dataset, identify at least one second dataset entry including the at least one constraint term from the stored dataset.

9. The system of claim 1 , wherein the determination of an arrangement of dataset entries comprises assigning scores to the first entry fields to determine a type of the first entry fields most likely to match the at least one constraint term.

10. The system of claim 9 , wherein the determination of the type of the first entry fields most likely to match the at least one constraint term is based on a relative frequency of matches between the at least one constraint term and each entry field in the first entry fields.

11. A computer-implemented method implemented by a computer system having one or more physical processors and storage media storing machine-readable instructions that, when executed by the one or more physical processors, cause the computer system to perform the method, the method comprising:

receiving a first constraint term inputted into a cell of a table presented in a graphical user interface;

identifying, in response to receiving the first constraint term, at least one first dataset, the at least one first dataset including a first plurality of dataset entries having the first constraint term;

determining a first arrangement of the first plurality of dataset entries according to respective types of first entry fields of the first plurality of dataset entries;

generating a visual representation based on the determined first arrangement;

causing the graphical user interface to present the generated visual representation;

receiving a second constraint term;

identifying, in response to receiving the second constraint term, at least one second dataset within the first dataset, the at least one second dataset including a second plurality of dataset entries having the second constraint term;

determining a second arrangement of the second plurality of dataset entries according to respective types of second entry fields of the second plurality of dataset entries; and

updating the visual representation based on the second arrangement.

12. The method of claim 11 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term, and the method further comprises:

identifying a first plurality of dataset entries of the first dataset having the first constraint term;

caching the first plurality of dataset entries in a local memory module;

identifying, from the cached first plurality of dataset entries, a second plurality of dataset entries having the second constraint term; and

identifying the dataset entries associated with the at least one first dataset entry based on the second plurality of dataset entries.

13. The method of claim 12 , further comprising:

receiving a third constraint term;

identifying at least a third dataset entry including the third constraint term; and generating a second visual representation of at least the third dataset entry.

14. The method of claim 11 , further comprising:

identifying a first entry field of the first entry fields having the at least one constraint term;

identifying a second entry field of second entry fields; and

comparing the first entry field to the second entry field, wherein the visual representation of the at least one first dataset entry and the at least one second dataset entry is based on at least the comparison of the first entry field to the second entry field.

15. The method of claim 11 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term; and the determination of the arrangement of dataset entries comprises:

determining that a threshold amount of the first entry fields corresponding to the first constraint term and second entry fields corresponding to the second constraint term are within a threshold proximity; and

in response to determining that a threshold amount of the first entry fields and the second entry fields are within the threshold proximity, determining that the first entry fields corresponding to the first constraint term and the second entry fields corresponding to the second constraint term are to be arranged in proximity with one another.

16. The method of claim 11 , wherein the at least one constraint term includes at least a first constraint term and a second constraint term; and the determination of the arrangement of dataset entries comprises:

determining that a threshold amount of the first entry fields corresponding to the first constraint term and second entry fields corresponding to the second constraint term are within a threshold proximity; and

in response to determining that a threshold amount of the first entry fields and the second entry fields are within the threshold proximity, determining that the first entry fields corresponding to the first constraint term and the second entry fields corresponding to the second constraint term are to be arranged in proximity with one another.

17. The method of claim 11 , further comprising:

determining that a stored dataset is associated with the at least one constraint term and the second dataset; and

responsive to determining that the stored dataset is associated with the at least one constraint term and the second dataset, identify the at least one second dataset entry including the at least one constraint term from the stored dataset.

18. The method of claim 11 , wherein the determination of an arrangement of dataset entries comprises assigning scores to the first entry fields to determine a type of the first entry fields most likely to match the at least one constraint term.

19. The system of claim 1 , wherein the instructions further cause the system to perform:

receiving an update to at least a portion of the second plurality of dataset entries; and

dynamically updating the visual representation based on the received update to the at least the portion of the second plurality of dataset entries.

20. The system of claim 1 , wherein the instructions further cause the system to perform:

predicting a join between the first dataset and the second dataset;

in response to predicting the join, receiving an indication or a confirmation of the join; and

in response to receiving the indication or the confirmation, performing the join between the first dataset and the second dataset.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2021
From: KROMWIJK, SANDER; TURKI, HAITHEM; COHEN, STEPHEN; XU, YIXUN; KARA, FERIDUN ARDA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 055205/0050 →
Continuity (3)
Continuation 16160099 · Oct 15, 2018
Continuation 15484983 · Apr 11, 2017
Related Publication 20210157816A1 · May 27, 2021