IP Library Granted Patent US 12681721
Granted Patent B2
US 12681721 · App. 18/505,796 · Granted Jul 14, 2026

Method and apparatus to extend immutable data

Inventors: Raymond E. Walker (White Lake, MI); William K. Sterbenz (Rochester Hills, MI)
Assignee: AUTODESK, INC.
G06F8/71
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 12681721
App. No.
18/505,796
Granted
Jul 14, 2026
Kind
B2
Abstract

A method and system provide the ability to extend immutable data. A first version of immutable design data is created. The first version of immutable design data is edited to create a second version of immutable design data. Subsequent to the creation of the second version of immutable data, the first version of immutable design data is augmented with first extendable data without creating a new version of immutable data.

Claims (61)

1 . A computer-implemented method for extending immutable data, comprising:

creating a first version of immutable design data;

editing the first version of immutable design data to create a second version of immutable design data; and

augmenting the second version of the immutable design data with third extendable data, wherein the second version of the immutable design data and the third extendable data are represented in a grouping of data referred to as a second snapshot;

subsequent to the creation of the second version of immutable design data and subsequent to a creation of the third extendable data, augmenting the first version of immutable design data with first extendable data without creating a new version of immutable data and without revising the second snapshot, wherein the first version of immutable design data and the first extendable data are represented in a grouping of data referred to as a first snapshot.

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

augmenting the second version of immutable data with second extendable data without creating a new version of immutable data.

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

creating second extendable data without creating a new version of immutable data, wherein the second extendable data comprises a second version of the first extendable data.

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

storing the first version of immutable design data as a first node in a graph within a database;

storing the second version of immutable design data as a second node in the graph in the database;

storing the first extendable data as a third node in the graph in the database.

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

storing a list of identifiers for each item grouped in the first snapshot in a first snapshot group in a database.

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

storing a list of identifiers for each item grouped in the second snapshot in a second snapshot group in the database.

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

retrieving the first version of immutable data by reading the list of identifiers from the database;

retrieving the first extendable data by reading the list of identifiers from the database;

wherein the retrieving of the first version of immutable data does not affect a first extendable data history of the first extendable data; and

wherein the retrieving of the first extendable data does not affect an immutable data history of the first version of the immutable data.

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

the first extendable data is added to a history of the first version of immutable data without having to create new versions of the immutable data.

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

the first version of the immutable design data and the first extendable data are stored separately.

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

managing permissions for the first extendable data; and

independently managing permissions for second extendable data, wherein the second extendable data is augmented from the first version of the immutable design data without creating a new version of immutable data.

11 . A computer-implemented system for extending immutable data, comprising:

(a) a computer having a memory;

(b) a processor executing on the computer; and

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

(i) creating a first version of immutable design data;

(ii) editing the first version of immutable design data to create a second version of immutable design data;

( 111 ) augmenting the second version of the immutable design data with third extendable data, wherein the second version of the immutable design data and the third extendable data are represented in a grouping of data referred to as a second snapshot; and

(iv) subsequent to the creation of the second version of immutable design data and subsequent to a creation of the third extendable data, augmenting the first version of immutable design data with first extendable data without creating a new version of immutable data and without revising the second snapshot, wherein the first version of immutable design data and the first extendable data are represented in a grouping of data referred to as a first snapshot.

12 . The computer-implemented system of claim 11 , the operations further comprising:

augmenting the second version of immutable data with second extendable data without creating a new version of immutable data.

13 . The computer-implemented system of claim 11 , the operations further comprising:

creating second extendable data without creating a new version of immutable data, wherein the second extendable data comprises a second version of the first extendable data.

14 . The computer-implemented system of claim 11 , the operations further comprising:

storing the first version of immutable design data as a first node in a graph within a database;

storing the second version of immutable design data as a second node in the graph in the database;

storing the first extendable data as a third node in the graph in the database.

15 . The computer-implemented system of claim 11 , the operations further comprising:

storing a list of identifiers for each item grouped in the first snapshot in a first snapshot group in a database.

16 . The computer-implemented system of claim 15 , the operations further comprising:

storing a list of identifiers for each item grouped in the second snapshot in a second snapshot group in the database.

17 . The computer-implemented system of claim 15 , the operations further comprising:

retrieving the first version of immutable data by reading the list of identifiers from the database;

retrieving the first extendable data by reading the list of identifiers from the database;

wherein the retrieving of the first version of immutable data does not affect a first extendable data history of the first extendable data; and

wherein the retrieving of the first extendable data does not affect an immutable data history of the first version of the immutable data.

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

the first extendable data is added to a history of the first version of immutable data without having to create new versions of the immutable data.

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

the first version of the immutable design data and the first extendable data are stored separately.

20 . The computer-implemented system of claim 11 , the operations further comprising:

managing permissions for the first extendable data; and

independently managing permissions for second extendable data, wherein the second extendable data is augmented from the first version of the immutable design data without creating a new version of immutable data.