IP Library Granted Patent US 12,499,120
Granted Patent B2
US 12,499,120 · App. 18/474,701 · Granted Dec 16, 2025

Methods and systems for tracking data lineage from source to target

Inventors: Jean-Philippe Moresmau (Saint Guilhem le Desert, FR); Fabian Schyns (Sherbrooke, CA); Uta Sommerweiss (Mittweida, DE); Lothar Grabowsky (Freiberg, DE); Jens-Uwe Richter (Burkhardtsdorf, DE); Henric Gomes (Naples, FL); Gerald Csapo (Pressbaum, AT); Karsten Baensch (Gleina, DE); Gunter Wiedemer (Malsch, DE); Micha Treiber (Leopoldshafen, DE)
Assignee: Rocket Software Technologies, Inc.
G06F16/254
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,499,120
App. No.
18/474,701
Granted
Dec 16, 2025
Kind
B2
Abstract

Disclosed herein are systems and methods for intelligent metadata management and data lineage tracing. In exemplary embodiments of the present disclosure, a data element can be traced throughout multiple applications, platforms, and technologies present in an enterprise to determine how and where the specific data element is utilized. The data element is traced via a hierarchical key that defines it using metadata. In this way, metadata is interpreted and used to trace data lineage from one end of an enterprise to another.

Claims (68)

1 . A computer-implemented method for determining data lineage of a selected data element across an enterprise software system, the method comprising:

receiving, at a processor, a selection of a data element for tracing across a plurality of disparate software platforms from one end of the enterprise software system to another end of the enterprise software system, the data element defined by a subsequently defined hierarchical key, and the data element stored in a repository;

intelligently parsing, by the processor, a representation of source code to locate and understand computing instructions where the selected data element has been utilized;

processing, by the processor, the computing instructions to determine how the selected data element is computed;

determining, by the processor, at least one computing resource used in the computation of the selected data element;

parsing, by the processor, the representation of source code to locate and understand computing instructions where each of the at least one computing resources used in the computation of the selected data element has been utilized;

identifying a subset of the at least one computing resources that has been actually accessed while the source code is executing;

reconstructing a hierarchical key for each computing resource in the subset;

intelligently linking, by the processor, the selected data element to each computing resource in the subset as at least one source-target pair;

combining, by the processor, each of the at least one source-target pair to compute a data lineage for the selected data element;

displaying, by the processor, the data lineage on a graphical user interface accessible to a user, the data lineage comprising a graphical data flow for the selected data element from each source-target pair across the plurality of disparate software platforms in the enterprise software system;

tracking, by the processor, the data lineage over a time period;

determining, by the processor, an alteration of the data lineage for the selected data element, the alteration of the data lineage being a change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period; and

providing, by the processor, an alert of the alteration of the data lineage for the selected data element, the alert being an indication of the change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period.

2 . The method of claim 1 , wherein the tracking the data lineage over the time period comprises:

receiving a first date and time input for the tracking of the data lineage over the time period;

receiving a second date and time input for the tracking of the data lineage over the time period; and

comparing the data lineage at the first date and time input with the data lineage at the second date and time input.

3 . The method of claim 1 , further comprising:

displaying the alteration of the data lineage for the selected data element on the graphical user interface accessible to the user, the alteration of the data lineage being the change in the at least one source-target pair over the time period comprising a change in the graphical data flow for the selected data element from each source-target pair across the plurality of disparate software platforms in the enterprise software system during the time period.

4 . The method of claim 1 , further comprising:

storing, using a database, the data lineage over the time period; and

analyzing, by the processor, the data lineage over the time period, the analyzing the data lineage over the time period including a source location of each of the at least one source-target pair.

5 . The method of claim 1 , further comprising:

providing a subscription service, the subscription service including the providing the alert of the alteration of the data lineage for the selected data element.

6 . The method of claim 5 , wherein the subscription service including the providing the alert of the alteration of the data lineage for the selected data element is pluggable into applications throughout the enterprise software system.

7 . The method of claim 1 , wherein the hierarchical key defining the selected data element is a 5-part hierarchical key.

8 . The method of claim 7 , wherein the 5-part hierarchical key comprises a server name, a database name, a database schema, a database table name, and a database column name.

9 . The method of claim 1 , further comprising reconstructing a hierarchical key for each of the at least one computing resources used in the computation of the selected data element.

10 . The method of claim 1 , wherein the linking the selected data element to the at least one computing resource further comprises matching the hierarchical key of the selected data element to a reconstructed hierarchical key of the computing resource.

11 . The method of claim 1 , wherein the data lineage for the selected data element is computed on a periodic schedule.

12 . The method of claim 1 , wherein the repository is a metadata repository.

13 . The method of claim 1 , wherein the parsing the representation of source code to locate and understand computing instructions where the selected data element has been utilized further comprises:

extracting source data elements and target data elements from at least one source application and target application;

loading source code into an enterprise data warehouse;

parsing the source code, the parsing comprising interpreting the source code for actions on data elements; and

generating a representation of the source code.

14 . The method of claim 1 , wherein the computing instructions comprise at least one of a write, read, or store instruction.

15 . The method of claim 1 , wherein the parsing the representation of source code to locate and understand computing instructions where each of the at least one computing resources used in the computation of the selected data element has been utilized further comprises parsing the representation of source code to locate assignments that write to each of the at least one computing resource used in the computation of the selected data element.

16 . The method of claim 1 , wherein the determining at least one computing resource used in the computation of the selected data element further comprises determining a memory location used in the computation of the selected data element and alternate names for the memory location used in the computation of the selected data element.

17 . The method of claim 1 , further comprising:

formatting the data lineage for export; and

exporting the data lineage for integration into other applications.

18 . The method of claim 1 , wherein: the representation of source code comprises any Extract, Transform, Load (ETL) logic or Business Intelligence (BI) logic embedded in a tool.

19 . A non-transitory computer-readable medium for retroactively determining data lineage of a selected data element across an enterprise software system, the non-transitory computer-readable medium comprising instructions stored thereon, that when executed on a processor, perform the steps of:

receiving a selection of a data element for tracing across a plurality of disparate software platforms from one end of the enterprise software system to another end of the enterprise software system, the data element defined by a subsequently defined hierarchical key, and the data element stored in a repository;

intelligently parsing Business Intelligence (BI) logic comprising text to locate and understand computing instructions where the selected data element has been utilized, the intelligently parsing comprising analyzing the Business Intelligence (BI) logic to determine at least one verb that acts on the selected data element and a context in which the at least one verb is used;

processing the computing instructions to determine how the selected data element is computed;

determining at least one computing resource used in the computation of the selected data element;

parsing the Business Intelligence (BI) logic to locate and understand computing instructions where each of the at least one computing resources used in the computation of the selected data element has been utilized;

intelligently linking the selected data element to each of the at least one computing resources used in the computation of the selected data element as at least one source-target pair; combining each of the at least one source-target pair to compute a data lineage for the selected data element;

displaying the data lineage on a graphical user interface accessible to a user, the data lineage comprising a graphical data flow for the selected data element from each source-target pair across the plurality of disparate software platforms in the enterprise software system;

tracking the data lineage over a time period;

determining an alteration of the data lineage for the selected data element, the alteration of the data lineage being a change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period; and

providing an alert of the alteration of the data lineage for the selected data element, the alert being an indication of the change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period.

20 . A computer-implemented method for determining data lineage of a selected data element across an enterprise software system, the method comprising:

receiving, at a processor, a selection of a data element for tracing across a plurality of disparate software platforms from one end of the enterprise software system to another end of the enterprise software system, the data element defined by a subsequently defined hierarchical key, and the data element stored in a repository;

intelligently parsing, by the processor, Extract, Transform, Load (ETL) logic comprising text to locate and understand computing instructions where the selected data element has been utilized, the intelligently parsing comprising analyzing Extract, Transform, Load (ETL) logic to determine at least one verb that acts on the selected data element and a context in which the at least one verb is used;

processing, by the processor, the computing instructions to determine how the selected data element is computed;

determining, by the processor, at least one computing resource used in the computation of the selected data element;

parsing, by the processor, the Extract, Transform, Load (ETL) logic to locate and understand computing instructions where each of the at least one computing resources used in the computation of the selected data element has been utilized;

intelligently linking, by the processor, the selected data element to each of the at least one computing resources used in the computation of the selected data element as at least one source-target pair;

combining, by the processor, each of the at least one source-target pair to compute a data lineage for the selected data element;

displaying, by the processor, the data lineage on a graphical user interface accessible to a user, the data lineage comprising a graphical data flow for the selected data element from each source-target pair across the plurality of disparate software platforms in the enterprise software system;

tracking, by the processor, the data lineage over a time period;

determining, by the processor, an alteration of the data lineage for the selected data element, the alteration of the data lineage being a change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period;

providing, by the processor, an alert of the alteration of the data lineage for the selected data element, the alert being an indication of the change in the at least one source-target pair across the plurality of disparate software platforms in the enterprise software system over the time period; and

displaying the alteration of the data lineage for the selected data element on the graphical user interface accessible to the user, the alteration of the data lineage being the change in the at least one source-target pair over the time period comprising a change in the graphical data flow for the selected data element from each source-target pair across the plurality of disparate software platforms in the enterprise software system during the time period.

Assignments (5)
CHANGE OF NAME Recorded May 17, 2024
From: ASG TECHNOLOGIES GROUP, INC.
To: ROCKET SOFTWARE TECHNOLOGIES, INC.
Reel/Frame 067456/0863 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT RECEIVING PARTY PREVIOUSLY RECORDED ON REEL 065172 FRAME 0168. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT OF ASSIGNORS INTERST. Recorded Oct 12, 2023
From: SOMMERWEISS, UTA; GRABOWSKY, LOTHAR; WIEDEMER, GUNTER; TREIBER, MICHA
To: ALLEN SYSTEMS GROUP, INC.
Reel/Frame 065222/0214 →
CHANGE OF NAME Recorded Oct 12, 2023
From: ALLEN SYSTEMS GROUP, INC.
To: ASG TECHNOLOGIES GROUP, INC. DBA ASG TECHNOLOGIES
Reel/Frame 065222/0507 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2023
From: MORESMAU, JEAN-PHILIPPE; SCHYNS, FABIAN; RICHTER, JENS-UWE; GOMES, HENRIC; CSAPO, GERALD; BAENSCH, KARSTEN
To: ASG TECHNOLOGIES GROUP, INC. DBA ASG TECHNOLOGIES
Reel/Frame 065172/0028 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2023
From: SOMMERWEISS, UTA; GRABOWSKY, LOTHAR; WIEDEMER, GUNTER; TREIBER, MICHA
To: ASG TECHNOLOGIES GROUP, INC. DBA ASG TECHNOLOGIES
Reel/Frame 065172/0168 →
Continuity (4)
Continuation In Part 17386347 · Jul 27, 2021
Continuation In Part 15457808 · Mar 13, 2017
Provisional Application 62309297 · Mar 16, 2016
Related Publication 20240078244A1 · Mar 7, 2024
References Cited (27)
US 6069957A · Richards · 2000 [cited by applicant]
US 6708166B1 · Dysart · 2004 [cited by examiner]
US 9158827B1 · Vu · 2015 [cited by examiner]
US 9213707B2 · Conner · 2015 [cited by applicant]
US 9483537B1 · Peters et al. · 2016 [cited by applicant]
US 9619535B1 · Kapoor · 2017 [cited by examiner]
US 11086751B2 · Moresmau et al. · 2021 [cited by applicant]
US 11847040B2 · Moresmau et al. · 2023 [cited by applicant]
US 20040153994A1 · Bates et al. · 2004 [cited by applicant]
US 20060111888A1 · Hiew et al. · 2006 [cited by applicant]
US 20060271528A1 · Gorelik · 2006 [cited by applicant]
US 20070016624A1 · Powers et al. · 2007 [cited by applicant]
US 20070156764A1 · O'Connell et al. · 2007 [cited by applicant]
US 20090083306A1 · Sichi et al. · 2009 [cited by applicant]
US 20100114628A1 · Adler et al. · 2010 [cited by applicant]
US 20120310875A1 · Prahlad et al. · 2012 [cited by applicant]
US 20130151557A1 · Shanken et al. · 2013 [cited by applicant]
US 20130332423A1 · Puri et al. · 2013 [cited by applicant]
US 20140032875A1 · Butler · 2014 [cited by applicant]
US 20140114907A1 · Kozina et al. · 2014 [cited by applicant]
US 20140258891A1 · Gao et al. · 2014 [cited by applicant]
US 20160028580A1 · Radivojevic · 2016 [cited by applicant]
US 20160140204A1 · Brown et al. · 2016 [cited by applicant]
US 20160253340A1 · Barth et al. · 2016 [cited by applicant]
US 20170060725A1 · Klausner et al. · 2017 [cited by applicant]
US 20210357503A1 · Moresmau et al. · 2021 [cited by applicant]
AU 2014233672A1 · 2015 [cited by examiner]