IP Library Granted Patent US 12,386,802
Granted Patent B2
US 12,386,802 · App. 17/225,883 · Granted Aug 12, 2025

Column lineage for resource dependency system and graphical user interface

Inventors: James Thompson (London, GB); Joseph Rafidi (Washington, DC); Patrick Szmucer (London, GB)
Assignee: Palantir Technologies Inc.
G06F16/221G06F16/168G06F16/9024G06F16/904G06F16/906G06F16/909G06N7/01G06Q10/06315
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,386,802
App. No.
17/225,883
Granted
Aug 12, 2025
Kind
B2
Abstract

A resource dependency system may track data dependencies and data transformations for individual columns of the data sets over the span of the data pipeline (referred to as a provenance or lineage of a column). Column provenance/lineage can be logged using metadata or graph-like data structures, which the resource dependency system can generate, store, manage, and access. Column provenance/lineage can be used to generate user interfaces displaying visual node graphs with columns as nodes and the data dependencies and data transformations associated with the columns as edges between the nodes.

Claims (76)

1. A computer-implemented method of processing and managing data set column lineage, comprising:

by one or more processors executing program instructions:

generating user interface data useable for rendering a first portion of a graphical user interface comprising representations of one or more columns corresponding to one or more datasets;

receiving via the first portion of the graphical user interface a user selection of a representation of a selected column from among the representations of the one or more columns;

in response to the user selection, determining one or more first target columns from one or more first target datasets based on accessing column metadata associated with the one or more first target columns, wherein the one or more first target columns are dependent on the selected column according to a data dependency of a column lineage, the data dependency being associated with a data transformation applied to the selected column, wherein the column metadata of the one or more first target columns indicates the data transformation was applied to the selected column to transform the selected column into the one or more first target columns, wherein the column metadata includes an indication of transformation code defining a set of instructions to apply the data transformation to the selected column, wherein the transformation code is versioned and stored in data storage, wherein a version of the transformation code references a version of the selected column to which the data transformation is applied to link the version of the transformation code with the version of the selected column; and

updating the first portion of the graphical user interface to further comprise:

representations of the one or more first target datasets;

representations of the one or more first target columns shown in relation to associated first target datasets of the one or more first target datasets, wherein each representation of the one or more first target columns is different from each representation of the one or more first target datasets;

an arrow or edge from the representation of the selected column to the representations of the one or more first target columns, the arrow or edge indicating the data dependency associated with the data transformation applied to the selected column; and

the transformation code comprising software code in one or more programming languages, the transformation code being retrieved based on the indication included in the column metadata.

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

determining one or more second target columns from one or more second target datasets, wherein the one or more second target columns are indirectly dependent on the selected column,

wherein the first portion of the graphical user interface further comprises:

representations of target datasets of the one or more second target datasets, wherein the representations of the target datasets of the one or more second target datasets appear on a first side of the selected column;

representations of target columns of the one or more second target columns shown in relation to associated second target datasets; and

for each representation of a target column of the one or more second target columns, an arrow or edge from the respective representation of the target column to a representation of a column from which the respective target column directly depends.

3. The computer-implemented method of claim 1 , wherein the representations of the target datasets of the one or more first target datasets appear on a first side of the selected column.

4. The computer-implemented method of claim 3 , further comprising:

determining one or more first source columns from one or more first source datasets, wherein the selected column is dependent on the one or more first source columns,

wherein the first portion of the graphical user interface further comprises:

representations of source datasets of the one or more first source datasets, wherein the representations of source datasets of the one or more first source datasets appear on a second side of the selected column;

representations of source columns of the one or more first source columns, wherein each representation of a source column appears within a corresponding representation of a source dataset of the one or more first source datasets that the respective source column is from; and

an arrow or edge from the representations of the source columns of the one or more first source columns to the representation of the selected column.

5. The computer-implemented method of claim 4 , further comprising:

determining one or more second source columns from one or more second source datasets, wherein the selected column is indirectly dependent on the one or more second source columns,

wherein the first portion of the graphical user interface further comprises:

representations of source datasets of the one or more second source datasets, wherein the representations of the source datasets of the one or more second source datasets appear on the second side of the selected column;

representations of source columns of the one or more second source columns, wherein each representation of each source column of the one or more second source columns appears within a corresponding representation of a source dataset that the respective source column is from; and

for each representation of a source column of the one or more second source columns, an arrow or edge from the respective representation of the source column to a representation of a column that is directly dependent on the respective source column.

6. The computer-implemented method of claim 4 , wherein determining the one or more first source columns involves accessing column metadata associated with the selected column.

7. A computing system configured for processing and managing data set column lineage, comprising:

a computer readable storage medium having program instructions embodied therewith; and

one or more processors configured to execute the program instructions to cause the computing system to:

generate user interface data useable for rendering a first portion of a graphical user interface comprising representations of one or more columns corresponding to one or more datasets;

receive via the first portion of the graphical user interface a user selection of a representation of a selected column from among the representations of the one or more columns;

in response to the user selection, determine one or more first target columns from one or more first target datasets based on accessing column metadata associated with the one or more first target columns, wherein the one or more first target columns are dependent on the selected column according to a data dependency of a column lineage, the data dependency being associated with a data transformation applied to the selected column, wherein the column metadata of the one or more first target columns indicates the data transformation was applied to the selected column to transform the selected column into the one or more first target columns, wherein the column metadata includes an indication of transformation code defining a set of instructions to apply the data transformation to the selected column, wherein the transformation code is versioned and stored in data storage, wherein a version of the transformation code references a version of the selected column to which the data transformation is applied to link the version of the transformation code with the version of the selected column; and

update the first portion of the graphical user interface to further comprise:

representations of the one or more first target datasets;

representations of the one or more first target columns shown in relation to associated first target datasets of the one or more first target datasets, wherein each representation of the one or more first target columns is different from each representation of the one or more first target datasets;

an arrow or edge from the representation of the selected column to the representations of the one or more first target columns, the arrow or edge indicating the data dependency associated with the data transformation applied to the selected column; and

the transformation code comprising software code in one or more programming languages, the transformation code being retrieved based on the indication included in the column metadata.

8. The computing system of claim 7 , wherein the one or more processors are further configured to execute the program instructions to cause the computing system to:

determine one or more second target columns from one or more second target datasets, wherein the one or more second target columns are indirectly dependent on the selected column,

wherein the first portion of the graphical user interface further comprises:

representations of target datasets of the one or more second target datasets, wherein the representations of the target datasets of the one or more second target datasets appear on a first side of the selected column;

representations of target columns of the one or more second target columns shown in relation to associated second target datasets; and

for each representation of a target column of the one or more second target columns, an arrow or edge from the respective representation of the target column to a representation of a column from which the respective target column directly depends.

9. Non-transitory computer-readable media including computer-executable instructions that, when executed by a computing system, cause the computing system to perform operations comprising:

generating user interface data useable for rendering a first portion of a graphical user interface comprising representations of one or more columns corresponding to one or more datasets;

receiving via the first portion of the graphical user interface a user selection of a representation of a selected column from among the representations of the one or more columns;

in response to the user selection, determining one or more first target columns from one or more first target datasets based on accessing column metadata associated with the one or more first target columns, wherein the one or more first target columns are dependent on the selected column according to a data dependency of a column lineage, the data dependency being associated with a data transformation applied to the selected column, wherein the column metadata of the one or more first target columns indicates the data transformation was applied to the selected column to transform the selected column into the one or more first target columns, wherein the column metadata includes an indication of transformation code defining a set of instructions to apply the data transformation to the selected column, wherein the transformation code is versioned and stored in data storage, wherein a version of the transformation code references a version of the selected column to which the data transformation is applied to link the version of the transformation code with the version of the selected column; and

updating the first portion of the graphical user interface to further comprise:

representations of the one or more first target datasets;

representations of the one or more first target columns shown in relation to associated first target datasets of the one or more first target datasets, wherein each representation of the one or more first target columns is different from each representation of the one or more first target datasets;

an arrow or edge from the representation of the selected column to the representations of the one or more first target columns, the arrow or edge indicating the data dependency associated with the data transformation applied to the selected column; and

the transformation code comprising software code in one or more programming languages, the transformation code being retrieved based on the indication included in the column metadata.

10. The non-transitory computer-readable media of claim 9 , wherein the computer-executable instructions, when executed by a computing system, further cause the computing system to perform operations comprising:

determining one or more second target columns from one or more second target datasets, wherein the one or more second target columns are indirectly dependent on the selected column,

wherein the first portion of the graphical user interface further comprises:

representations of target datasets of the one or more second target datasets, wherein the representations of the target datasets of the one or more second target datasets appear on a first side of the selected column;

representations of target columns of the one or more second target columns shown in relation to associated second target datasets; and

for each representation of a target column of the one or more second target columns, an arrow or edge from the respective representation of the target column to a representation of a column from which the respective target column directly depends.

11. The computer-implemented method of claim 1 , wherein the transformation code comprises a cumulative transformation code corresponding to collective transformations applied to a plurality of source columns throughout earlier stages of a data pipeline to generate the selected column.

12. The computing system of claim 7 , wherein the transformation code comprises a cumulative transformation code corresponding to collective transformations applied to a plurality of source columns throughout earlier stages of a data pipeline to generate the selected column.

13. The non-transitory computer-readable media of claim 9 , wherein the transformation code comprises a cumulative transformation code corresponding to collective transformations applied to a plurality of source columns throughout earlier stages of a data pipeline to generate the selected column.

14. The computer-implemented method of claim 1 , further comprising modifying the column metadata based on user input via the first portion of the graphical user interface.

15. The computing system of claim 7 , wherein the one or more processors are further configured to modify the column metadata based on user input via the first portion of the graphical user interface.

16. The computing system of claim 7 , wherein the representations of the target datasets of the one or more first target datasets appear on a first side of the selected column within the first portion of the graphical user interface.

17. The computing system of claim 7 , wherein the one or more processors are further configured to:

determine one or more first source columns from one or more first source datasets, wherein the selected column is dependent on the one or more first source columns,

wherein the first portion of the graphical user interface further comprises:

representations of source datasets of the one or more first source datasets, wherein the representations of source datasets of the one or more first source datasets appear on a second side of the selected column;

representations of source columns of the one or more first source columns, wherein each representation of a source column appears within a corresponding representation of a source dataset of the one or more first source datasets that the respective source column is from; and

an arrow or edge from the representations of the source columns of the one or more first source columns to the representation of the selected column.

18. The non-transitory computer-readable media of claim 9 , wherein the computer-executable instructions, when executed by a computing system, further cause the computing system to perform operations comprising modifying the column metadata based on user input via the first portion of the graphical user interface.

19. The computer-implemented method of claim 1 further comprising, by the one or more processors executing the program instructions: updating the data dependency associated with the data transformation applied to the selected column responsive to a user selection via the graphical user interface to move the arrow or edge from the representation of the selected column to the representations of the one or more first target columns.

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 Jul 16, 2021
From: THOMPSON, JAMES; RAFIDI, JOSEPH; SZMUCER, PATRICK
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 056889/0238 →
Continuity (3)
Continuation 16681211 · Nov 12, 2019
Provisional Application 62910940 · Oct 4, 2019
Related Publication 20210334254A1 · Oct 28, 2021
References Cited (77)
US 5450535A · North · 1995 [cited by applicant]
US 8624898B1 · Bugaj et al. · 2014 [cited by applicant]
US 9229952B1 · Meacham et al. · 2016 [cited by applicant]
US 9836183B1 · Love et al. · 2017 [cited by applicant]
US 9881066B1 · Yousaf et al. · 2018 [cited by applicant]
US 10007674B2 · Fink et al. · 2018 [cited by applicant]
US 10432639B1 · Bebee et al. · 2019 [cited by applicant]
US 10592068B1 · Sedky et al. · 2020 [cited by applicant]
US 11003645B1 · Thompson et al. · 2021 [cited by applicant]
US 11030248B2 · Borochoff et al. · 2021 [cited by applicant]
US 11509658B1 · Kulkarni · 2022 [cited by applicant]
US 11562025B2 · Borochoff et al. · 2023 [cited by applicant]
US 11775898B1 · Thompson et al. · 2023 [cited by applicant]
US 12248515B2 · Borochoff et al. · 2025 [cited by applicant]
US 20030105771A1 · Tiefenbrun et al. · 2003 [cited by applicant]
US 20050055369A1 · Gorelik et al. · 2005 [cited by applicant]
US 20060106847A1 · Eckardt, III et al. · 2006 [cited by applicant]
US 20060107196A1 · Thanu · 2006 [cited by examiner]
US 20060242122A1 · Devorchik et al. · 2006 [cited by applicant]
US 20080092112A1 · Jin et al. · 2008 [cited by applicant]
US 20080104665A1 · Naldurg et al. · 2008 [cited by applicant]
US 20090007127A1 · Roberts et al. · 2009 [cited by applicant]
US 20090157686A1 · Idicula et al. · 2009 [cited by applicant]
US 20090327904A1 · Guzak et al. · 2009 [cited by applicant]
US 20100079462A1 · Breeds · 2010 [cited by examiner]
US 20100138420A1 · Bator et al. · 2010 [cited by applicant]
US 20120066210A1 · Mukerjee et al. · 2012 [cited by applicant]
US 20120096389A1 · Flam et al. · 2012 [cited by applicant]
US 20140114907A1 · Kozina · 2014 [cited by examiner]
US 20140188946A1 · Hartman · 2014 [cited by applicant]
US 20150012478A1 · Mohammad · 2015 [cited by examiner]
US 20150186478A1 · Yan et al. · 2015 [cited by applicant]
US 20150347542A1 · Sullivan · 2015 [cited by examiner]
US 20160125000A1 · Meacham et al. · 2016 [cited by applicant]
US 20160191534A1 · Mallozzi · 2016 [cited by applicant]
US 20160232229A1 · Radivojevic · 2016 [cited by applicant]
US 20160342395A1 · Kukolich et al. · 2016 [cited by applicant]
US 20160342678A1 · Newman et al. · 2016 [cited by applicant]
US 20170039253A1 · Bond · 2017 [cited by applicant]
US 20170091082A1 · Ooshima et al. · 2017 [cited by applicant]
US 20170195183A1 · Gershaft et al. · 2017 [cited by applicant]
US 20170221240A1 · Stetson et al. · 2017 [cited by applicant]
US 20170262653A1 · Dang et al. · 2017 [cited by applicant]
US 20170286526A1 · Bar-Or et al. · 2017 [cited by applicant]
US 20170357648A1 · Fink · 2017 [cited by examiner]
US 20170364534A1 · Zhang et al. · 2017 [cited by applicant]
US 20180062953A1 · Billore et al. · 2018 [cited by applicant]
US 20180067932A1 · Paterson et al. · 2018 [cited by applicant]
US 20180129401A1 · Kim et al. · 2018 [cited by applicant]
US 20180136983A1 · Bequet et al. · 2018 [cited by applicant]
US 20180165072A1 · Fink · 2018 [cited by examiner]
US 20180288098A1 · Wang et al. · 2018 [cited by applicant]
US 20180314705A1 · Griffith · 2018 [cited by examiner]
US 20180329958A1 · Choudhury et al. · 2018 [cited by applicant]
US 20180341651A1 · Anderson et al. · 2018 [cited by applicant]
US 20190114335A1 · Koenig · 2019 [cited by examiner]
US 20190188308A1 · Simon et al. · 2019 [cited by applicant]
US 20190251272A1 · Ravizza et al. · 2019 [cited by applicant]
US 20200210427A1 · Dugan · 2020 [cited by examiner]
US 20210263973A1 · Borochoff et al. · 2021 [cited by applicant]
US 20230122210A1 · Borochoff et al. · 2023 [cited by applicant]
US 20230351287A1 · Thompson et al. · 2023 [cited by applicant]
EP 2447861 · 2012 [cited by applicant]
EP 2743814 · 2014 [cited by applicant]
EP 3258393 · 2017 [cited by applicant]
EP 3557443 · 2019 [cited by applicant]
WO WO2006036290 · 2006 [cited by applicant]
WO WO2020151308 · 2020 [cited by applicant]
U.S. Appl. No. 17/315,750, Resource Dependency System and Graphical User Interface, filed May 10, 2021. [cited by applicant]
U.S. Appl. No. 16/681,051, Resource Grouping for Resource Dependency System and Graphical User Interface, filed Nov. 12, 2019. [cited by applicant]
Official Communication for European Patent Application No. 19169119.5 dated Nov. 29, 2021, 5 pages. [cited by applicant]
Official Communication for European Patent Application No. 19169119.5 dated Sep. 12, 2023, 7 pages. [cited by applicant]
Official Communication for European Patent Application No. 19169119.5 dated Jul. 2, 2019. [cited by applicant]
Official Communication for European Patent Application No. 16194936.7 dated Mar. 9, 2017. [cited by applicant]
U.S. Appl. No. 18/085,150, Resource Dependency System and Graphical User Interface, filed Dec. 20, 2022. [cited by applicant]
U.S. Appl. No. 18/337,332, Resource Grouping for Resource Dependency System and Graphical User Interface, filed Jun. 19, 2023. [cited by applicant]
Official Communication for European Patent Application No. 19169119.5 dated Apr. 2, 2024, 7 pages. [cited by applicant]