IP Library Granted Patent US 10,977,240
Granted Patent B1
US 10,977,240 · App. 16/138,751 · Granted Apr 13, 2021

Approaches for validating data

Inventors: Aditya Srinivasan (New York, NY); Tim Overeem (New York, NY)
Assignee: Palantir Technologies Inc.
G06F16/2365G06F16/9024
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 10,977,240
App. No.
16/138,751
Granted
Apr 13, 2021
Kind
B1
Abstract

Systems and methods are provided for determining a request to validate data, the request specifying validation criteria; generating a graph for validating the data, the graph including at least one node-based connected component that evaluates the data, the node-based connected component being constructed to represent the validation criteria; validating the data using the generated graph, wherein the data being validated is evaluated by the node-based connected component; and providing information describing the validated data.

Claims (55)

1. A system comprising:

one or more processors; and

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

determining a request to validate data, the request specifying validation criteria;

generating a graph for validating the data, the graph including node-based connected components that evaluate the data, the node-based connected components being constructed to represent the validation criteria;

validating the data using the generated graph, wherein the data being validated is evaluated by the node-based connected components, the validating comprising:

determining, in the data, a subset of rows corresponding to a first column that satisfy a first validation criteria of a first node-based connected component;

passing the subset of the rows to a second node-based connected component;

determining any rows of the subset of the rows having corresponding second columns that satisfy a second validation criteria of the second node-based connected component as validated;

for an other row that has a corresponding first column failing to satisfy the first validation criteria or a corresponding second column failing to satisfy the second validation criteria, modifying or reformatting a value of the other row to satisfy the first validation criteria or the second validation criteria; and

providing information describing the validated data.

2. The system of claim 1 , wherein the first node-based connected component includes a source node, and wherein the data being validated is provided as input to the source node.

3. The system of claim 1 , wherein the second node-based connected component includes a sink node, and wherein data satisfying the validation criteria is determined by the sink node.

4. The system of claim 1 , wherein the first node-based connected component is associated with a first validation expression with which the data is validated.

5. The system of claim 1 , wherein the second node-based connected component is associated with a second validation expression with which the subset of rows of the data is validated.

6. The system of claim 1 , wherein the data corresponds to a set of rows in a database table.

7. A computer-implemented method, the method comprising:

determining a request to validate data, the request specifying validation criteria;

generating a graph for validating the data, the graph including node-based connected components that evaluate the data, the node-based connected components being constructed to represent the validation criteria;

validating the data using the generated graph, wherein the data being validated is evaluated by the node-based connected components, the validating comprising:

determining, in the data, a subset of rows corresponding to a first column that satisfy a first validation criteria of a first node-based connected component;

passing the subset of the rows to a second node-based connected component;

determining any rows of the subset of the rows having corresponding second columns that satisfy a second validation criteria of the second node-based connected component as validated;

for an other row that has a corresponding first column failing to satisfy the first validation criteria or a second column failing to satisfy the second validation criteria, modifying or reformatting a value of the other row to satisfy the first validation criteria or the second validation criteria; and

providing information describing the validated data.

8. The computer-implemented method of claim 7 , wherein the first node-based connected component includes a source node, and wherein the data being validated is provided as input to the source node.

9. The computer-implemented method of claim 7 , wherein the second node-based connected component includes a sink node, and wherein data satisfying the validation criteria is determined by the sink node.

10. The computer-implemented method of claim 7 , wherein the first node-based connected component is associated with a first validation expression with which the data is validated.

11. The computer-implemented method of claim 7 , wherein the second node-based connected component is associated with a second validation expression with which the subset of rows of the data is validated.

12. A non-transitory computer readable medium comprising instructions that, when executed, cause one or more processors to perform:

determining a request to validate data, the request specifying validation criteria;

generating a graph for validating the data, the graph including node-based connected components that evaluate the data, the node-based connected components being constructed to represent the validation criteria;

validating the data using the generated graph, wherein the data being validated is evaluated by the node-based connected components, the validating comprising:

determining, in the data, a subset of rows corresponding to a first column that satisfy a first validation criteria of a first node-based connected component;

passing the subset of the rows to a second node-based connected component;

determining any rows of the subset of the rows having corresponding second columns that satisfy a second validation criteria of the second node-based connected component as validated;

for an other row that has a corresponding first column failing to satisfy the first validation criteria or a corresponding second column failing to satisfy the second validation criteria, modifying or reformatting a value of the other row to satisfy the first validation criteria or the second validation criteria; and

providing information describing the validated data.

13. The non-transitory computer readable medium of claim 12 , wherein the first node-based connected component includes a source node, and wherein the data being validated is provided as input to the source node.

14. The non-transitory computer readable medium of claim 12 , wherein the second node-based connected component includes a sink node, and wherein data satisfying the validation criteria is determined by the sink node.

15. The system of claim 1 , wherein the first validation criteria includes a Boolean validation criteria, and the second validation criteria includes a numerical validation criteria, and the second validation criteria is logically consistent with the first validation criteria.

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

passing the any rows of the subset of the rows to a third node-based connected component;

determining a second subset of the any rows having corresponding third columns that satisfy a third numerical or Boolean validation criteria of the third node-based connected component;

for a second other row that has a corresponding third column failing to satisfy the third numerical or Boolean validation criteria, modifying a value of the second other row to satisfy the third numerical or Boolean validation criteria.

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

for a second other row having:

a corresponding first column that satisfies the first validation criteria; and

a corresponding second column failing to satisfy the second validation criteria, passing the second other row to a third node-based connected component;

determining whether the second other row has a corresponding third column that satisfies a third numerical or Boolean validation criteria of the third node-based connected component;

in response to determining that the second other row has a corresponding third column that satisfies the third numerical or Boolean validation criteria, determining the second other row as validated.

18. The system of claim 1 , wherein the first validation criteria determines values of the first column indicating true or yes as validated.

19. The system of claim 1 , wherein the second validation criteria determines values of the second column indicating positive integers as validated.

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

identifying whether the other row failed to satisfy the first validation criteria or the second validation criteria.

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 Oct 5, 2018
From: SRINIVASAN, ADITYA; OVEREEM, TIM
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 047086/0674 →