IP Library Granted Patent US 12,405,949
Granted Patent B2
US 12,405,949 · App. 18/345,706 · Granted Sep 2, 2025

Generating, accessing, and displaying lineage metadata

Inventors: David Clemens (Cambridge, MA); Dusan Radivojevic (North Andover, MA); Neil Galarneau (West Roxbury, MA)
Assignee: Ab Initio Technology LLC
G06F16/245G06F16/22G06F16/248G06F16/83G06F40/117
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,405,949
App. No.
18/345,706
Granted
Sep 2, 2025
Kind
B2
Abstract

Among other things, we describe a method of receiving a portion of metadata from a data source, the portion of metadata describing nodes and edges; generating instances of a data structure representing the portion of metadata, at least one instance of the data structure including an identification value that identifies a corresponding node, one or more property values representing respective properties of the corresponding node, and one or more pointers to respective identification values, each pointer representing an edge associated with a node identified by the corresponding respective identification value; storing the instances of the data structure in random access memory; receiving a query that includes an identification of at least one particular element of data; and using at least one instance of the data structure to cause a display of a computer system to display a representation of lineage of the particular element of data.

Claims (65)

1. A method performed by a data processing system for updating data structures with lineage from a database, wherein updating provides for increased efficiency in determining lineage, including:

storing, in memory of a data processing system, a first data structure representing a first item of data or a first transform;

wherein the first data structure specifies lineage of a given item of data or a given transform, wherein the lineage specifies an item of data or a transform that affects or is affected by the given item of data or the given transform; and

updating, by a data processing system, the lineage specified by the first data structure, by:

from time to time, receiving, from a database and by a data processing system, data representing lineage of the given item of data or the given transform;

based on the received data representing the lineage, identifying, by a data processing system, a second data structure, stored in memory, representing a second item of data or a second transform that affects or is affected by the given item of data or the given transform; and

updating, by a data processing system, the first data structure stored in memory with a reference to the second data structure, stored in memory, representing the second item of data or the second transform that affects or is affected by the given data item or the given transform;

wherein the second data structure specifies lineage of the second item of data or the second transform.

2. The method of claim 1 , wherein updating the first data structure comprises updating a pointer of the first data structure to reference a memory location of the second data structure representing the second item of data or the second transform.

3. The method of claim 1 , further comprising

generating a third data structure specifying lineage of the second item of data or the second transform; and

storing, in the memory of the data processing system, the third data structure.

4. The method of claim 1 , further comprising receiving, from the database, the data representing lineage of the given item of data or the given transform at regular intervals or scheduled intervals.

5. The method of claim 1 , wherein the data representing lineage of the given item of data or the given transform is received in response to a request transmitted to the database.

6. The method of claim 1 , further comprising:

receiving a query including a request for lineage;

based on the query, accessing the first data structure and a third data structure to determine the requested lineage; and

generating a response to the query, the response including data representing the requested lineage.

7. The method of claim 6 , further comprising:

accessing a walk plan that includes instructions for determining the requested lineage; and

collecting data from the first data structure and third data structure according to the walk plan to determine the requested lineage.

8. The method of claim 1 , wherein the given item of data or the given transform is the first item of data or the first transform.

9. A system for updating data structures with lineage from a database, wherein updating provides for increased efficiency in determining lineage, the system comprising:

at least one processor; and

at least one computer-readable medium storing instructions executable by the at least one processor to perform operations comprising:

storing, in memory, a first data structure representing a first item of data or a first transform;

wherein the first data structure specifies lineage of a given item of data or a given transform, wherein the lineage specifies an item of data or a transform that affects or is affected by the given item of data or the given transform; and

updating the lineage specified by the first data structure, by:

from time to time, receiving, from a database, data representing lineage of the given item of data or the given transform;

based on the received data representing the lineage, identifying a second data structure, stored in memory, representing a second item of data or a second transform that affects or is affected by the given item of data or the given transform; and

updating the first data structure stored in memory with a reference to the second data structure, stored in memory, representing the second item of data or the second transform that affects or is affected by the given data item or the given transform;

wherein the second data structure specifies lineage of the second item of data or the second transform.

10. The system of claim 9 , wherein updating the first data structure comprises updating a pointer of the first data structure to reference a memory location of the second data structure representing the second item of data or the second transform.

11. The system of claim 9 , wherein the at least one computer readable medium stores instructions executable by the at least one processor to perform operations further comprising:

generating a third data structure specifying lineage of the second item of data or the second transform; and

storing, in the memory, the third data structure.

12. The system of claim 9 , wherein the at least one computer readable medium stores instructions executable by the at least one processor to perform operations further comprising:

receiving, from the database, the data representing lineage of the given item of data or the given transform at regular intervals or scheduled intervals.

13. The system of claim 9 , wherein the data representing lineage of the given item of data or the given transform is received in response to a request transmitted to the database.

14. The system of claim 9 , wherein the at least one computer readable medium stores instructions executable by the at least one processor to perform operations further comprising:

receiving a query including a request for lineage;

based on the query, accessing the first data structure and a third data structure to determine the requested lineage; and

generating a response to the query, the response including data representing the requested lineage.

15. The system of claim 14 , wherein the at least one computer readable medium stores instructions executable by the at least one processor to perform operations further comprising:

accessing a walk plan that includes instructions for determining the requested lineage; and

collecting data from the first data structure and the third data structure according to the walk plan to determine the requested lineage.

16. At least one non-transitory computer readable medium storing instructions executable by at least one processor to perform operations comprising:

storing, in memory, a first data structure representing a first item of data or a first transform;

wherein the first data structure specifies lineage of a given item of data or a given transform, wherein the lineage specifies an item of data or a transform that affects or is affected by the given item of data or the given transform; and

updating the lineage specified by the first data structure, by:

from time to time, receiving, from a database, data representing lineage of the given item of data or the given transform;

based on the received data representing the lineage, identifying a second data structure, stored in memory, representing a second item of data or a second transform that affects or is affected by the given item of data or the given transform; and

updating the first data structure stored in memory with a reference to the second data structure, stored in memory, representing the second item of data or the second transform that affects or is affected by the given data item or the given transform;

wherein the second data structure specifies lineage of the second item of data or the second transform.

17. The at least one non-transitory computer readable medium of claim 16 , wherein updating the first data structure comprises updating a pointer of the first data structure to reference a memory location of the second data structure representing the second item of data or the second transform.

18. The at least one non-transitory computer readable medium of claim 16 storing instructions executable by the at least one processor to perform operations further comprising:

generating a third data structure specifying lineage of the second item of data or the second transform; and

storing, in the memory, the third data structure.

19. The at least one non-transitory computer readable medium of claim 16 storing instructions executable by the at least one processor to perform operations further comprising:

receiving, from the database, the data representing lineage of the given item of data or the given transform at regular intervals or scheduled intervals.

20. The at least one non-transitory computer readable medium of claim 16 , wherein the data representing lineage of the given item of data or the given transform is received in response to a request transmitted to the database.

21. The at least one non-transitory computer readable medium of claim 16 storing instructions executable by the at least one processor to perform operations further comprising:

receiving a query including a request for lineage;

based on the query, accessing the first data structure and a third data structure to determine the requested lineage; and

generating a response to the query, the response including data representing the requested lineage.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2023
From: CLEMENS, DAVID; RADIVOJEVIC, DUSAN; GALARNEAU, NEIL
To: AB INITIO SOFTWARE LLC
Reel/Frame 065378/0916 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2023
From: AB INITIO SOFTWARE LLC
To: AB INITIO ORIGINAL WORKS LLC
Reel/Frame 065378/0923 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2023
From: AB INITIO ORIGINAL WORKS LLC
To: AB INITIO TECHNOLOGY LLC
Reel/Frame 065378/0925 →
Continuity (3)
Continuation 15829152 · Dec 1, 2017
Provisional Application 62428860 · Dec 1, 2016
Related Publication 20240078229A1 · Mar 7, 2024
References Cited (144)
US 6003040A · Mital et al. · 1999 [cited by applicant]
US 6725227B1 · Li · 2004 [cited by applicant]
US 7401064B1 · Arone · 2008 [cited by applicant]
US 7456840B2 · Molesky et al. · 2008 [cited by applicant]
US 7493570B2 · Bobbin · 2009 [cited by applicant]
US 7546226B1 · Yeh et al. · 2009 [cited by applicant]
US 7590672B2 · Slik et al. · 2009 [cited by applicant]
US 7725433B1 · Labrie · 2010 [cited by applicant]
US 7844582B1 · Arbilla et al. · 2010 [cited by applicant]
US 7970240B1 · Chao et al. · 2011 [cited by applicant]
US 8266122B1 · Newcombe et al. · 2012 [cited by applicant]
US 8332782B1 · Chang et al. · 2012 [cited by applicant]
US 8515911B1 · Zhou · 2013 [cited by examiner]
US 8577852B2 · Haahenson et al. · 2013 [cited by applicant]
US 8654125B2 · Gibson · 2014 [cited by applicant]
US 8819010B2 · Fankhauser · 2014 [cited by applicant]
US 11741091B2 · Clemens et al. · 2023 [cited by applicant]
US 20020030703A1 · Robertson et al. · 2002 [cited by applicant]
US 20040181554A1 · Heckerman et al. · 2004 [cited by applicant]
US 20040255239A1 · Bhatt · 2004 [cited by applicant]
US 20050114369A1 · Gould et al. · 2005 [cited by applicant]
US 20050246352A1 · Moore et al. · 2005 [cited by applicant]
US 20060095466A1 · Stevens et al. · 2006 [cited by applicant]
US 20060106847A1 · Eckardt et al. · 2006 [cited by applicant]
US 20060149782A1 · Yeh et al. · 2006 [cited by applicant]
US 20060190844A1 · Binder et al. · 2006 [cited by applicant]
US 20060218159A1 · Murphy et al. · 2006 [cited by applicant]
US 20060271505A1 · Vierich et al. · 2006 [cited by applicant]
US 20060294150A1 · Stanfill et al. · 2006 [cited by applicant]
US 20070016624A1 · Powers · 2007 [cited by applicant]
US 20070033220A1 · Drucker et al. · 2007 [cited by applicant]
US 20070061287A1 · Le et al. · 2007 [cited by applicant]
US 20070061353A1 · Bobbin · 2007 [cited by applicant]
US 20070112875A1 · Yagawa · 2007 [cited by applicant]
US 20070150496A1 · Feinsmith · 2007 [cited by applicant]
US 20070255741A1 · Geiger et al. · 2007 [cited by applicant]
US 20080040388A1 · Petri · 2008 [cited by examiner]
US 20080155119A1 · Imamura et al. · 2008 [cited by applicant]
US 20080163124A1 · Bonev et al. · 2008 [cited by applicant]
US 20080172629A1 · Tien et al. · 2008 [cited by applicant]
US 20080183658A1 · Mangipudi · 2008 [cited by applicant]
US 20080244721A1 · Barrus · 2008 [cited by examiner]
US 20090012983A1 · Senneville et al. · 2009 [cited by applicant]
US 20090216728A1 · Brainerd et al. · 2009 [cited by applicant]
US 20090224941A1 · Kansal et al. · 2009 [cited by applicant]
US 20100138420A1 · Bator et al. · 2010 [cited by applicant]
US 20100138431A1 · Bator et al. · 2010 [cited by applicant]
US 20100223430A1 · Walker et al. · 2010 [cited by applicant]
US 20100313157A1 · Carlsson · 2010 [cited by applicant]
US 20110320460A1 · Fankhauser · 2011 [cited by applicant]
US 20120059857A1 · Jackson, Jr. · 2012 [cited by applicant]
US 20120143825A1 · Boehm et al. · 2012 [cited by applicant]
US 20120209656A1 · Rojahn · 2012 [cited by applicant]
US 20120254805A1 · Pic et al. · 2012 [cited by applicant]
US 20120310875A1 · Prahlad et al. · 2012 [cited by applicant]
US 20120311496A1 · Cao · 2012 [cited by applicant]
US 20130332423A1 · Puri · 2013 [cited by applicant]
US 20140019423A1 · Liensberger · 2014 [cited by applicant]
US 20140114907A1 · Kozina · 2014 [cited by applicant]
US 20140244687A1 · Shmueli et al. · 2014 [cited by applicant]
US 20140279979A1 · Yost et al. · 2014 [cited by applicant]
US 20150012478A1 · Mohammad et al. · 2015 [cited by applicant]
US 20150142724A1 · Nair · 2015 [cited by applicant]
US 20150271267A1 · Solis · 2015 [cited by examiner]
US 20160019057A1 · Bach et al. · 2016 [cited by applicant]
US 20160063106A1 · Chai · 2016 [cited by applicant]
US 20160232229A1 · Radivojevic · 2016 [cited by applicant]
US 20160232230A1 · Radivojevic · 2016 [cited by applicant]
US 20170058320A1 · Locke et al. · 2017 [cited by applicant]
US 20170154087A1 · McClure · 2017 [cited by examiner]
US 20170286526A1 · Bar-Or et al. · 2017 [cited by applicant]
US 20180157702A1 · Clemens et al. · 2018 [cited by applicant]
CN 101084496 · 2007 [cited by applicant]
CN 101971165 · 2011 [cited by applicant]
CN 102239458 · 2011 [cited by applicant]
CN 102890720 · 2013 [cited by applicant]
EP 1258814 · 2002 [cited by applicant]
EP 1510937 · 2005 [cited by applicant]
JP H08033895 · 1996 [cited by applicant]
JP H11307412 · 1999 [cited by applicant]
JP 2002288403 · 2002 [cited by applicant]
JP 2003044538 · 2003 [cited by applicant]
JP 2005122703 · 2005 [cited by applicant]
JP 2006190261 · 2006 [cited by applicant]
JP 2008059563 · 2008 [cited by applicant]
JP 2008134705 · 2008 [cited by applicant]
JP 2008524671 · 2008 [cited by applicant]
JP 2010244157 · 2010 [cited by applicant]
JP 2011517352 · 2011 [cited by applicant]
JP 2013077063A · 2013 [cited by applicant]
JP 2015531129A · 2015 [cited by applicant]
JP 2016520890 · 2016 [cited by applicant]
WO WO2001082068 · 2001 [cited by applicant]
WO WO2001082072 · 2001 [cited by applicant]
WO WO2005086906 · 2005 [cited by applicant]
WO WO2007002647 · 2007 [cited by applicant]
WO WO2010065623 · 2010 [cited by applicant]
WO WO2015183738 · 2015 [cited by applicant]
WO WO2016014615 · 2016 [cited by applicant]
Alvarez et al., “A compact representation of graph databases,” InProceedings of the Eighth Workshop on Mining and Learning with Graphs, Jul. 24, 2010, 18-25. [cited by applicant]
Alvarez-Garcia et al., “Compact and efficient representation of general graph databases,” Knowledge and Information Systems., Sep. 1, 60(3):1479-510. [cited by applicant]
Australian Office Action in 2009-322441, issued Dec. 16, 2015, 4 pages. [cited by applicant]
Chinese Office Action, Application No. 200980148414.6, mailed May 10, 2013, 15 pages (with English translation). [cited by applicant]
DePauw, W., et al., “Web Services Navigator: Visualizing the Execution of Web Services.” IBM Systems Journal, vol. 44, No. 4, 2005, pp. 821-845. [cited by applicant]
Hiroto Namihara, “Learning Data Structures and Algorithm in C language,” Interface, Japan, CQ Publishing Co., Ltd., Apr. 1, 1990, vol. 16, No. 4, pp. 158-181. [cited by applicant]
International Preliminary Report on Patentability in PCT Appln. No. PCT/US2017/064227, dated Jun. 4, 2019, 14 pages. [cited by applicant]
International Preliminary Report on Patentability, PCT/US2013/062369, Apr. 9, 2015, 7 pages. [cited by applicant]
International Search Report & Written Opinion issued in PCT application No. PCT/US09/66390, dated Jan. 20, 2010, 6 pages. [cited by applicant]
International Search Report & Written Opinion issued in PCT application No. PCT/US09/66394, dated Jan. 20, 2010, 6 pages. [cited by applicant]
International Search Report & Written Opinion, PCT/US2013/062369, Feb. 28, 2014, 9 pages. [cited by applicant]
International Search Report & Written Opinion, PCT/US2013/076407, Jun. 18, 2014, 8 pages. [cited by applicant]
International Search Report and Written Opinion in PCT/US14/26133, Aug. 21, 2014, 8 pages. [cited by applicant]
Japanese Office Action (with English translation), Application No. 2011-514796, mailed Jun. 20, 2013, 9 pages. [cited by applicant]
Japanese Office Action (with English translation), Application No. 2011-539651, mailed Oct. 11, 2013, 4 pages. [cited by applicant]
Japanese Office Action (with English translation), Application No. 2011-539652, mailed Dec. 16, 2013, 8 pages. [cited by applicant]
Japanese Office Action (with English translation), Application No. 2011-539652, mailed Nov. 14, 2014, 7 pages. [cited by applicant]
Japanese Office Action (with English translation), Application No. 2014-232962, mailed Nov. 13, 2015, 8 pages. [cited by applicant]
JP Office Action in Japanese Appln. No. 2019-525760, dated Aug. 28, 2020, 7 pages (with English translation). [cited by applicant]
Karr, et al., “Data quality: A Statistical Perspective,” Statistical Methodology 3 2006, pp. 137-173. [cited by applicant]
Korean Office Action in Application No. 10-2011-7013820, mailed Oct. 21, 2015, 14 pages. [cited by applicant]
Korean Office Action in Application No. 10-2011-7014656, mailed Oct. 21, 2015, 14 pages. [cited by applicant]
Nelson, Theodor Holm, “A Cosmology for a Different Computer Universe: Data Model, Mechanisms, Virtual Machine and Visualization Infrastructure,” Journal of Digital Information, vol. 5, No. 1, 22 pages (2004). [cited by applicant]
Office Action in Chinese Appln. No. 201780074708.3, dated Jan. 5, 2023, 15 pages (with English translation). [cited by applicant]
Office Action in Chinese Appln. No. 201780074708.3, mailed on Nov. 15, 2023, 23 pages (with Machine translation). [cited by applicant]
Office Action in European Appln. No. 17851913.8, dated Jun. 14, 2022, 29 pages. [cited by applicant]
Office Action in Japanese Appln. No. 2019-525760, dated Jul. 26, 2021, 9 pages (with English translation). [cited by applicant]
Office Action in Japanese Appln. No. 2019-525760, dated Jun. 1, 2022, 22 pages (with English translation). [cited by applicant]
Office Action in Japanese Appln. No. 2021-191498, dated Feb. 8, 2023, 15 pages (with English translation). [cited by applicant]
Office Action in Singapore Appln. No. 11201903995V, dated Jun. 23, 2022, 8 pages. [cited by applicant]
Parker et al., Visualization of Large Nested Graphs in 3D: Navigation and Interaction, University of New Brunswick, Jul. 18, 2000 http://com.unh.edu/vislab/PDFs/visualnav.pdf. [cited by applicant]
Robertson et al., “Polyarchy Visualization: Visualizing Multiple Intersecting Hierarchies,” Computer Human Interaction—CHI , pp. 423-430, 2002. [cited by applicant]
Robertson, George G. “From Hierarchies to Polyarchies: Visualizing Multiple Relationships,” Advanced Visual Interfaces Jan. 2000. [cited by applicant]
SG Office Action in Singapore Appln. No. 11201903995V, dated Oct. 13, 2020, 7 pages. [cited by applicant]
Supplementary European Search Report in EP14768183 mailed Oct. 4, 2016 (5 pages). [cited by applicant]
Supplementary European Search Report, EP 09767701, Sep. 25, 2012, 7 pages. [cited by applicant]
Supplementary European Search Report, EP 09831039, May 15, 2012, 9 pages. [cited by applicant]
Supplementary European Search Report, EP 09831042, May 4, 2012, 8 pages. [cited by applicant]
Takahashi, Kenji, “An Analysis of Requirements Elicitation Process,” IEICE Technical Report, Institute of Electronics, Information and Communication Engineers, vol. 92, No. 128, 47-54 (1992) (with English translation). [cited by applicant]
Notification of Transmittal of The International Search Report and the Written Opinion of the International Searching Authority, or the Declaration, for Application No. PCT/US09/47735, dated Jul. 23, 2009, 6 pages. [cited by applicant]
Zamboulis et al. “XML Data Integration by Graph Restructuring,” British National Conference on Databases, Jul. 7, 2004, pp. 57-71. [cited by applicant]
Office Action in European Appln. No. 17851913.8, mailed Jun. 18, 2024, 18 pages. [cited by applicant]
Decision of Technical Board of Appeal in European Appln. No. 17851913.8, mailed on Jan. 3, 2025, 25 pages. [cited by applicant]
Notification of Grant in Singaporean Appln. No. 11201903995V, mailed on Jan. 7, 2025, 3 pages. [cited by applicant]
Office Action in Japanese Appln No. 2023-216403, mailed on Dec. 11, 2024, 8 pages (with English translation). [cited by applicant]