IP Library › Granted Patent US 12,210,822
Granted Patent B2
US 12,210,822 · App. 18/058,149 · Granted Jan 28, 2025

Document tracking through version hash linked graphs

Inventors: Robert Evon Maguire (San Rafael, CA); Ravinder P. Krishnaswamy (San Francisco, CA)
Assignee: AUTODESK, INC.
G06F40/197G06F16/137G06F16/152G06F16/9014G06F16/9024G06F16/93
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,210,822
App. No.
18/058,149
Granted
Jan 28, 2025
Kind
B2
Abstract

Embodiments of the invention provide the ability to track document versioning. Before executing an open operation on a first document version, a first before-hash is generated. After executing the open operation, a first after-hash is generated. Before executing a save operation, the first before-hash is acquired, and after execution (resulting in a second document version), a second after-hash of the second document version is generated. A version hash linked graph (VHLG) is generated and includes document nodes for the different document versions where each node includes a hash of that document version, a user-application node corresponding to the user or application that executed the operations, and edges connecting the nodes (e.g., that identify the operation and/or the document lineage) Based on the VHLG, a full history of a document is provided.

Claims (68)

1. A computer-implemented method for tracking file versioning, comprising:

(a) receiving one or more logged items, wherein;

each logged item comprises

(1) a representation of a file operation that has been performed on a file by one user of one or more users, wherein the file comprises a file based document;

(2) a user identification corresponding to the one user of the one or more users that performed the file operation;

(3) an operation identification for the file operation that has been performed on the file;

(4) a before-hash for a before version of the file before the file operation was performed; and

(5) an after-hash for an after version of the file after the file operation has been performed;

(b) generating, based on the one or more logged items, a version hash linked graph (VHLG) without linking or storing the file based document, wherein the VHLG comprises:

(i) one or more document nodes, wherein each of the one or more document nodes comprises a before hash document node or an after hash document node;

(ii) one or more user nodes corresponding to the one or more users or applications;

(iii) one or more edges connecting one or more of the one or more document nodes to one or more of the one or more user nodes, wherein the one or more user nodes are connected to the one or more of the one or more document nodes based on a corresponding file operation; and

(iv) a document edge connecting the before hash document node to the after hash document node; and

(c) determining a full history of the file based on the VHLG, wherein the full history identifies the one or more users that performed file operations, the file operations, and versioning of the file over time.

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

the VHLG generated by a VHLG generating service that generates the VHLG based on the one or more logged items.

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

determining a lineage based on the VHLG, wherein the lineage comprises a version history of file.

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

augmenting the one or more document nodes with contextual data; and

determining, based on the lineage and contextual data, a community that collaborates.

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

determining, based on the contextual data, an industry type of the community.

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

determining, based on the VHLG, an access pattern over time.

7. The computer-implemented method of claim 1 , wherein:

data for the file is stored independently from the VHLG; and

the before hash and the after hash remain the same regardless of a device platform being used to perform the file operation.

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

providing, to collaborating users, a graphical user interface (GUI) comprising a visualization of the VHLG, wherein the visualization displays access patterns and dependencies between the before version of the file and the after version of the file.

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

determining, based on the VHLG, a most current version of the file, wherein the determining comprises querying the VHLG; and

informing the one or more users or applications performing the file operation a result of the determining.

10. A computer-implemented system for tracking file versioning, comprising:

(a) a computer having a memory;

(b) a processor executing on the computer;

(c) the memory storing a set of instructions, wherein the set of instructions, when executed by the processor cause the processor to perform computer operations comprising:

(i) receiving one or more logged items, wherein each logged item comprises:

(1) a representation of a file operation that has been performed on a file by one user of one or more users, wherein the file comprises a file based document;

(2) a user identification corresponding to the one user of the one or more users that performed the file operation;

(3) an operation identification for the file operation that has been performed on the file;

(4) a before-hash for a before version of the file before the file operation was performed; and

(5) an after-hash for an after version of the file after the file operation has been performed;

(ii) generating a version hash linked graph (VHLG) without linking or storing the file based document, wherein the VHLG comprises:

(1) one or more document nodes, wherein each of the one or more document nodes comprises a before hash document node or an after hash document node;

(2) one or more user nodes corresponding to the one or more users or applications;

(3) one or more edges connecting one or more of the one or more document nodes to one or more of the one or more user nodes, wherein the one or more user nodes are connected to the one or more of the one or more document nodes based on a corresponding file operation; and

(4) a document edge connecting the before hash document node to the after hash document node; and

(iii) determining a full history of the file based on the VHLG, wherein the full history identifies the one or more users that performed file operations, the file operations, and versioning of the file over time.

11. The computer-implemented system of claim 10 , wherein:

the VHLG is generated by a VHLG generating service that generates the VHLG based on the one or more logged items.

12. The computer-implemented system of claim 10 , wherein the computer operations further comprise:

determining a lineage based on the VHLG, wherein the lineage comprises a version history of file.

13. The computer-implemented system of claim 12 , wherein the computer operations further comprise:

augmenting the one or more document nodes with contextual data; and

determining, based on the lineage and contextual data, a community that collaborates.

14. The computer-implemented system of claim 13 , wherein the computer operations further comprise:

determining, based on the contextual data, an industry type of the community.

15. The computer-implemented system of claim 13 , wherein the computer operations further comprise:

determining, based on the VHLG, an access pattern over time.

16. The computer-implemented system of claim 10 , wherein:

data for the file is stored independently from the VHLG; and

the before hash and the after hash remain the same regardless of a device platform being used to perform the file operation.

17. The computer-implemented system of claim 10 , wherein the computer operations further comprise:

providing, to collaborating users, a graphical user interface (GUI) comprising a visualization of the VHLG, wherein the visualization displays access patterns and dependencies between the before version of the file and the after version of the file.

18. The computer-implemented system of claim 10 , wherein the computer operations further comprise:

determining, based on the VHLG, a most current version of the file, wherein the determining comprises querying the VHLG; and

informing the one or more users or applications performing the file operation a result of the determining.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2022
From: MAGUIRE, ROBERT EVON; KRISHNASWAMY, RAVINDER P.
To: AUTODESK, INC.
Reel/Frame 061858/0741 →
Continuity (3)
Continuation 17068545 · Oct 12, 2020
Provisional Application 62913380 · Oct 10, 2019
Related Publication 20230153519A1 · May 18, 2023
References Cited (63)
US 7062532B1 · Sweat et al. · 2006 [cited by applicant]
US 8402544B1 · Soubramanien · 2013 [cited by examiner]
US 8701002B2 · Grossman · 2014 [cited by examiner]
US 9465504B1 · Jurgens · 2016 [cited by examiner]
US 9519796B1 · Loughlin-Mchugh et al. · 2016 [cited by applicant]
US 9710544B1 · Smith et al. · 2017 [cited by applicant]
US 9892260B2 · Kotler et al. · 2018 [cited by applicant]
US 10296520B1 · Ganesh · 2019 [cited by examiner]
US 10382333B2 · Jeganathan et al. · 2019 [cited by applicant]
US 10425435B1 · Kayyoor · 2019 [cited by examiner]
US 10585903B2 · Chin et al. · 2020 [cited by applicant]
US 10666708B1 · Gavalas et al. · 2020 [cited by applicant]
US 11012421B2 · Eshghi · 2021 [cited by examiner]
US 20060271603A1 · Mathias · 2006 [cited by applicant]
US 20070219942A1 · Wolff et al. · 2007 [cited by applicant]
US 20070271592A1 · Noda · 2007 [cited by examiner]
US 20100138931A1 · Thorley · 2010 [cited by examiner]
US 20120259863A1 · Bodwin et al. · 2012 [cited by applicant]
US 20130185252A1 · Palmucci · 2013 [cited by applicant]
US 20140032488A1 · McAfee et al. · 2014 [cited by applicant]
US 20140298207A1 · Ittah · 2014 [cited by examiner]
US 20150120700A1 · Holm · 2015 [cited by examiner]
US 20150161153A1 · Gheith et al. · 2015 [cited by applicant]
US 20160063061A1 · Meyerzon et al. · 2016 [cited by applicant]
US 20160371352A1 · Kohlmeier · 2016 [cited by examiner]
US 20170070519A1 · Wilson · 2017 [cited by examiner]
US 20170364701A1 · Struttmann · 2017 [cited by applicant]
US 20170366353A1 · Struttmann · 2017 [cited by applicant]
US 20180046601A1 · Standefer, III · 2018 [cited by examiner]
US 20180113862A1 · Glover · 2018 [cited by applicant]
US 20190050562A1 · Rhee et al. · 2019 [cited by applicant]
US 20190340379A1 · Beecham et al. · 2019 [cited by applicant]
US 20200117705A1 · Hance et al. · 2020 [cited by applicant]
US 20200151280A1 · Moravec · 2020 [cited by examiner]
US 20200162236A1 · Miller et al. · 2020 [cited by applicant]
US 20200210519A1 · Wang et al. · 2020 [cited by applicant]
US 20200341957A1 · Richards · 2020 [cited by examiner]
US 20210026894A1 · Yang et al. · 2021 [cited by applicant]
CN 1520679 · 2004 [cited by applicant]
CN 108140152 · 2018 [cited by applicant]
CN 108701145 · 2018 [cited by applicant]
CN 108898289 · 2018 [cited by applicant]
CN 108989202 · 2018 [cited by applicant]
CN 110226168 · 2019 [cited by applicant]
EP 3070650A1 · 2016 [cited by examiner]
EP 3410295 · 2018 [cited by applicant]
JP 2005135211A · 2005 [cited by examiner]
JP 2005339228A · 2005 [cited by examiner]
JP 2008102573A · 2008 [cited by examiner]
JP 5343608B2 · 2013 [cited by examiner]
JP 2014134991A · 2014 [cited by examiner]
WO WO2014144931A2 · 2014 [cited by examiner]
Geel et al., “Using a file history graph to keep track of personal resources across devices and services”, International Journal on Digital Libraries, vol. 17, 2016, pp. 175-187. (Year: 2016). [cited by examiner]
PCT International Search Report & Written Opinion dated Jan. 26, 2021 for PCT Application No. PCT/US2020/055270. [cited by applicant]
Balter, B., “WP Document Revisions—Document Management and Version Control for WordPress.” Aug. 29, 2011, Retrieved on Dec. 21, 2020 from https://ben.balter.com/2011/08/29/wp-document-revisions-document-management-versi… [cited by applicant]
Fachat, A., “How Does Git Work?—IBM Developer”, http://developer.ibm.com/technologies/web-development/tutorials/d-learn-workings-git/, 2015, pp. 1-16, as downloaded Feb. 26, 2020. [cited by applicant]
Dyreson et al., “Managing Versions of Web Documents in a Transaction-time Web Server”, in Proceedings of the 13th International Conference on World Wide Web, May 2004, pp. 422-432. (Year: 2004). [cited by applicant]
Kang et al., “The Hash History Approach for Reconciling Mutual Inconsistency”, in Proceedings of the 23rd International Conference on Distributed Computing Systems, May 2003, IEEE Computer Society, 8 pages. (Year: 2003). [cited by applicant]
Koop, D., “Versioning Version Trees: The provenance of actions that affect multiple versions”, The 6th International Provenance and Annotation Workshop, 2016, 12 pages. (Year: 2016). [cited by applicant]
Extended European Search Report dated Sep. 27, 2023 for European Patent Application No. 20874581.0. [cited by applicant]
Chacon, S., et al., “Pro Git”, Second Edition, Dec. 20, 2018, Apress, New York, NY. [cited by applicant]
“Git”, Wikipedia, Oct. 1, 2019, XP093083556, pp. 1-16, https://en.wikipedia.org/w/index.php?title=Git&oldid=919029510, retrieved on Sep. 19, 2023. [cited by applicant]
Chinese First Office Action (with English translation) dated Oct. 10, 2024 for Chinese Patent Application No. 202080067907.3. [cited by applicant]