IP Library › Granted Patent US 12,693,873
Granted Patent B2
US 12,693,873 · App. 18/480,083 · Granted Jul 28, 2026

Systems and methods for generating data lineage

Inventors: Steve Patrick Hostettler (Saint-Prex, CH); Patrick Catillaz (Bex, CH); Laurent Vanzeune (Strombeek-Bever, BE); Benjamin Garaude (Lausanne, CH)
Assignee: Regnology FRR Belgium
G06F9/44589G06F9/3836
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,693,873
App. No.
18/480,083
Filed
Oct 3, 2023
Granted
Jul 28, 2026
Kind
B2
Examiner
KHATRI, ANIL
Art Unit
2191
USPC
717/124
Abstract

Systems and methods for lineage data tracking are disclosed. Domain-specific code is obtained in response to a build request and the domain-specific code is converted to process code. The domain-specific code includes an instance of a domain-specific language configured for a specific domain. The process code includes at least one breadcrumb instrumentation element automatically inserted during the conversion process by a conversion engine and the breadcrumb instrumentation element is not defined in the domain-specific code. The process code is executed including execution of one or more activities defined by the domain-specific code and the at least one breadcrumb instrumentation element. During execution of the at least one breadcrumb instrumentation element, a lineage data structure is generated. The lineage data structure is configured to store data elements representative of a mapping between an input data element and an output data element. The lineage data structure is stored in a data store.

Claims (46)

1 . A system, comprising:

a non-transitory memory;

a processor communicatively coupled to the non-transitory memory, wherein the processor is configured to read a set of instructions to:

obtain domain-specific code in response to a build request, wherein the domain-specific code includes an instance of a domain-specific language configured for a specific domain;

generate process code, including (i) converting the domain-specific code to a format of the process code and (ii) automatically inserting at least one breadcrumb instrumentation element, wherein the at least one breadcrumb instrumentation element is automatically inserted during conversion by a conversion engine, and

wherein the breadcrumb instrumentation element is not defined in the domain-specific code;

execute the process code, wherein execution of the process code includes;

execution of one or more activities defined by the domain-specific code; and

generation of a lineage data structure, via execution of the at least one breadcrumb instrumentation element, that stores data elements representative of a mapping between an input data element and an output data element;

store the lineage data structure in a data store; and

implement a data lineage review process,

wherein the at least one breadcrumb instrumentation element is inserted in the process code at a location corresponding to a function type defined in the domain-specific code.

2 . The system of claim 1 , wherein the lineage data structure comprises a tuple defining a set of inputs, a set of outputs, and a corresponding activity of the one or more activities defined by the domain-specific code.

3 . The system of claim 2 , wherein the set of inputs and the set of outputs each comprise at least one instance comprising a type and an identifier.

4 . The system of claim 1 , wherein the lineage data structure comprise a symbolic data element defining a set of inputs and a corresponding activity of the one or more activities defined by the domain-specific code.

5 . The system of claim 1 , wherein the at least one breadcrumb instrumentation element comprises a function call to a function defined by a processing engine configured to execute the process code.

6 . The system of claim 1 , wherein the breadcrumb instrumentation element comprises a scoping mechanism.

7 . The system of claim 6 , wherein the scoping mechanism is configured to mark a stack of potential inputs, and wherein the lineage data structure comprises inputs occurring after the mark in the stack.

8 . The system of claim 1 , wherein the process code comprises Java™ code.

9 . A computer-implemented method, comprising:

obtaining domain-specific code in response to a build request, wherein the domain-specific code includes an instance of a domain-specific language configured for a specific domain;

generating process code, including (i) converting the domain-specific code to a format of the process code and (ii automatically inserting at least one breadcrumb instrumentation element, wherein the at least one breadcrumb instrumentation element is automatically inserted during conversion by a conversion engine, and

wherein the breadcrumb instrumentation element is not defined in the domain-specific code;

executing the process code, wherein execution of the process code includes:

execution of one or more activities defined by the domain-specific code; and

generation of a lineage data structure, via execution of the at least one breadcrumb instrumentation element, that stores data elements representative of a mapping between an input data element and an output data element;

storing the lineage data structure in a data store; and

implementing a data lineage review process,

wherein the at least one breadcrumb instrumentation element is inserted in the process code at a location corresponding to a function type defined in the domain-specific code.

10 . The computer-implemented method of claim 9 , wherein the lineage data structure comprises a tuple defining a set of inputs, a set of outputs, and a corresponding activity of the one or more activities defined by the domain-specific code.

11 . The computer-implemented method of claim 9 , wherein the lineage data structure comprise a symbolic data element defining a set of inputs and a corresponding activity of the one or more activities defined by the domain-specific code.

12 . The computer-implemented method of claim 9 , wherein the at least one breadcrumb instrumentation element comprises a function call to a function defined by a processing engine configured to execute the process code.

13 . The computer-implemented method of claim 9 , wherein the breadcrumb instrumentation element comprises a scoping mechanism.

14 . The computer-implemented method of claim 13 , wherein the scoping mechanism is configured to mark a stack of potential inputs, and wherein the lineage data structure comprises inputs occurring after the mark in the stack.

15 . A non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed by at least one processor, cause at least one device to perform operations comprising:

obtaining domain-specific code in response to a build request, wherein the domain-specific code includes an instance of a domain-specific language configured for a specific domain;

generating process code, including (i) converting the domain-specific code to a format of the process code and (ii) automatically inserting at least one breadcrumb instrumentation element, wherein the at least one breadcrumb instrumentation element is automatically inserted during conversion by a conversion engine, and

wherein the breadcrumb instrumentation element is not defined in the domain-specific code;

executing the process code, wherein execution of the process code includes:

execution of one or more activities defined by the domain-specific code; and

generation of a lineage data structure, via execution of the at least one breadcrumb instrumentation element, that stores data elements representative of a mapping between an input data element and an output data element;

storing the lineage data structure in a data store; and

implementing a data lineage review process,

wherein the lineage data structure comprises a tuple defining a set of inputs, a set of outputs, and a corresponding activity of the one or more activities defined by the domain-specific code.

16 . The non-transitory computer readable medium of claim 15 , wherein the lineage data structure comprise a symbolic data element defining a set of inputs and a corresponding activity of the one or more activities defined by the domain-specific code.

17 . The non-transitory computer readable medium of claim 15 , wherein the at least one breadcrumb instrumentation element comprises a function call to a function defined by a processing engine configured to execute the process code.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 19, 2024
From: HOSTETTLER, STEVE PATRICK; CATILLAZ, PATRICK; VANZEUNE, LAURENT; GARAUDE, BENJAMIN
To: WOLTERS KLUWER FINANCIAL SERVICES BELGIUM N.V.
Reel/Frame 066178/0544 →
Continuity (1)
Related Publication 20250110752A1 · Apr 3, 2025
References Cited (20)
US 6418444B1 · Raduchel · 2002 [cited by examiner]
US 8775875B2 · Isherwood · 2014 [cited by examiner]
US 9582495B2 · Song · 2017 [cited by examiner]
US 9720695B2 · Isherwood · 2017 [cited by examiner]
US 9990428B2 · Anand · 2018 [cited by examiner]
US 10275242B2 · Nguyen · 2019 [cited by examiner]
US 11798542B1 · Ryabov · 2023 [cited by examiner]
US 12314744B1 · Cichy · 2025 [cited by examiner]
US 12326936B2 · Zawadowskiy · 2025 [cited by examiner]
US 12530433B1 · Tabak · 2026 [cited by examiner]
US 20200285977A1 · Brebner · 2020 [cited by examiner]
US 20230418878A1 · Wonus · 2023 [cited by examiner]
Marek et al, “DiSL: A Domain-Specific Language for Bytecode Instrumentation”, ACM, pp (Year: 2012). [cited by examiner]
Silva, “Towards a Domain-Specific Language to Specify Interaction Scenarios forWeb-Based Graphical User Interfaces”, ACM, pp. 1-6 (Year: 2022). [cited by examiner]
Yu et al, “Enhancing Domain-Specific Code Completion via Collaborative Inference with Large and Small Language Models”, ACM, pp. 1-27 (Year: 2025). [cited by examiner]
Chiba et al, “Deeply Reifying Running Code for Constructing a Domain-Specific Language”, ACM, pp. 1-13 (Year: 2016). [cited by examiner]
Sierra et al, “Document-Oriented Software Construction based on Domain-Specific Markup Languages”, IEEE, pp. 1-6 (Year: 2005). [cited by examiner]
International Search Report issued in corresponding Application No. PCT/IB2024/059694, dated Feb. 18, 2025, 3 pages. [cited by applicant]
Schoenenwald, et al., “Collecting and visualizing data lineage of Spark jobs”, Datenbank-Spektrum, Dpunkt Verlag, Heidelberg, DE. vol. 21, No. 3, pp. 179-189 (2021). [cited by applicant]
Michael D. Bond, et al., “Breadcrumbs”, Proceedings of the 2010 ACM Sigplan conference on programming language design and implementation. Jun. 5-10, 2010, Toronto, Ontario, Canada, ACM, New York, NY, USA. [cited by applicant]