IP Library Granted Patent US 11,803,573
Granted Patent B2
US 11,803,573 · App. 18/175,463 · Granted Oct 31, 2023

Systems and methods for a multi-hierarchy physical storage architecture for managing program and outcome data

Inventors: Paxton Riter (Dallas, TX); Ned Stone (Dallas, TX); Whitney Kilgore (Valley View, TX); Krista Galyen (Columbia, MO); Sam Foster (Dallas, TX); Andreas Buchmann (Stuttgart, DE); Derek Howard (Columbia, MO)
Assignee: iDesignEDU, LLC
G06F16/282G06F16/2272G06F16/2282G06F16/243G06F16/248
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 11,803,573
App. No.
18/175,463
Granted
Oct 31, 2023
Kind
B2
Abstract

In some aspects, the disclosure is directed to methods and systems for data storage and retrieval from a computer memory. A computing device may store a first hierarchical data structure having a first sequence of sub-data structures and a second hierarchical data structure having a second sequence of sub-data structures in memory. The computing device may link the first hierarchical data structure and the second hierarchical data structure together. The computing device may link the first hierarchical data structure and the second hierarchical data structure by inserting an identifier of a sub-data structure of the second sequence in the first sequence.

Claims (74)

1. A method for data storage and retrieval from a computer memory, comprising:

storing, by a computing device, a first hierarchical data structure comprising a first sequence of sub-data structures, the first sequence of sub-data structures comprising a first initial sub-data structure and a first terminal sub-data structure, the first initial sub-data structure linked with the first terminal sub-data structure;

storing, by the computing device, a second hierarchical data structure comprising a second sequence of sub-data structures, the second sequence of sub-data structures comprising a second initial sub-data structure and a second terminal sub-data structure, the second initial sub-data structure linked with the second terminal sub-data structure;

linking, by the computing device, the first sequence of sub-data structures with the second sequence of sub-data structures;

receiving, by the computing device from a client device, a request comprising an identification of a sub-data structure;

identifying, by the computing device, each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures based on the identification of the sub-data structure and further based on the link between the first sequence of sub-data structures and the second sequence of sub-data structures;

responsive to the identifying, retrieving, by the computing device, data from each identified sub-data structure in the first sequence of sub-data structures and in the second sequence of sub-data structures; and

transmitting, by the computing device, a record generated based on the retrieved data to the client device.

2. The method of claim 1 , wherein linking the first sequence of sub-data structures with the second sequence of sub-data structures comprises inserting a terminal identifier of the second terminal sub-data structure into the first terminal sub-data structure.

3. The method of claim 1 , comprising:

receiving, by the computing device, a second request comprising an identification of the first initial sub-data structure;

retrieving, by the computing device and based on the identification of the first initial sub-data structure, data from each sub-data structure in the second sequence of sub-data structures based on the link between the first terminal sub-data structure and the second terminal sub-data structure; and

storing, by the computing device, the retrieved data or data generated from the second sequence of sub-data structures in corresponding sub-data structures of the first sequence of sub-data structures.

4. The method of claim 1 , comprising:

linking, by the computing device, the first initial sub-data structure with the first terminal sub-data structure by linking the first initial sub-data structure to a first intermediate sub-data structure and linking the first intermediate sub-data structure with the first terminal sub-data structure; and

linking, by the computing device, the second initial sub-data structure with the second terminal sub-data structure by linking the second initial sub-data structure to a second intermediate sub-data structure and linking the second intermediate sub-data structure with the second terminal sub-data structure.

5. The method of claim 4 , further comprising:

storing, by the computing device, a third sequence of sub-data structures in the first hierarchical data structure, the third sequence of sub-data structures comprising the first initial sub-data structure, the first intermediate sub-data structure, and a third terminal sub-data structure, the first intermediate sub-data structure linked with the third terminal sub-data structure;

storing, by the computing device, a fourth sequence of sub-data structures in the second hierarchical data structure, the fourth sequence of sub-data structures comprising a third initial sub-data structure, a third intermediate sub-data structure, and a fourth terminal sub-data structure, the third intermediate sub-data structure further linked with the fourth terminal sub-data structure; and

linking, by the computing device, the third sequence of sub-data structures and the fourth sequence of sub-data structures.

6. The method of claim 1 , wherein identifying each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures comprises:

identifying, by the computing device, the first terminal sub-data structure in response to the request; and

responsive to identifying the first terminal sub-data structure, identifying, by the computing device, the first initial sub-data structure based on the link between the first terminal sub-data structure and the first initial sub-data structure.

7. The method of claim 6 , wherein identifying each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures comprises:

identifying, by the computing device, the second terminal sub-data structure based on the link between the first terminal sub-data structure and the second terminal sub-data structure; and

responsive to identifying the second terminal sub-data structure, identifying, by the computing device, the second initial sub-data structure based on the link between the second terminal sub-data structure and the second initial sub-data structure.

8. The method of claim 1 , further comprising:

storing, by the computing device, data within each of the sub-data structures in the first sequence of sub-data structures and in the second sequence of sub-data structures.

9. The method of claim 1 , further comprising:

storing, by the computing device, a third sequence of sub-data structures in the first hierarchical data structure and a fourth sequence of sub-data structures in the second hierarchical data structure; and

responsive to a sub-data structure of the fourth sequence of sub-data structures not including an identifier for any child sub-data structure, linking, by the computing device, a third terminal sub-data structure of the third sequence of sub-data structures to the sub-data structure of the fourth sequence of sub-data structures.

10. The method of claim 1 , wherein the first initial sub-data structure comprises course data about a course and the first terminal sub-data structure comprises activity data about an activity for the course, the activity data comprising an activity time on task estimate and the course data about the course comprising a course time on task estimate comprising an aggregate of activity time on task estimates of the first terminal sub-data structure and any other terminal sub-data structures linked with the first initial sub-data structure in the first hierarchical data structure.

11. The method of claim 10 , further comprising:

adding, by the computing device, a third terminal sub-data structure to the first hierarchical data structure, the third terminal sub-data structure comprising a second activity time on task estimate and linked with the first initial sub-data structure; and

responsive to the adding the third terminal sub-data structure to the first hierarchical data structure, adding the second activity time on task estimate to the course time on task estimate.

12. The method of claim 10 , wherein the second initial sub-data structure comprises program outcome data for a program and the second terminal sub-data structure comprises module outcome data for a module of the program, the module outcome data comprising an aggregation of activity time on task estimates of a second plurality of terminal sub-data structures in the first hierarchical data structure linked to the second terminal sub-data structure, the program outcome data comprising an aggregation of module outcome time on task estimates of a second plurality of terminal sub-data structures of the second hierarchical data structure linked to the second initial sub-data structure.

13. The method of claim 1 , further comprising:

receiving, by the computing device, a data file comprising a plurality of columns, the plurality of columns comprising a module name column, an activity name in an activity name column, and a time on task estimate column;

determining, by the computing device, there are not any terminal sub-data structures that match the activity name; and

generating, by the computing device, a third terminal sub-data structure comprising an intermediate sub-data structure identifier linked with a first intermediate sub-data structure of the first sequence of sub-data structures responsive to the first intermediate sub-data structure comprising a string that matches a module name in the data file, the first intermediate sub-data structure linked between the first initial sub-data structure and the first terminal sub-data structure.

14. The method of claim 1 , further comprising:

storing, by the computing device, a local outcome set identifier in the second initial sub-data structure of the second hierarchical data structure;

receiving, by the computing device from a user account being accessed by a second client device, a request to view data from the second initial sub-data structure;

determining, by the computing device, the user account has permission to view the second initial sub-data structure based on the local outcome set identifier; and

provisioning, by the computing device, the data from the second initial sub-data structure to the user account responsive to the determination that the user account has permission to view the second hierarchical data structure.

15. A system for data storage and retrieval from a computer memory, comprising:

a computing device comprising a processor and a memory, the processor configured to execute instructions stored in the memory to:

store a first hierarchical data structure comprising a first sequence of sub-data structures, the first sequence of sub-data structures comprising a first initial sub-data structure and a first terminal sub-data structure, the first initial sub-data structure linked with the first terminal sub-data structure;

store a second hierarchical data structure comprising a second sequence of sub-data structures, the second sequence of sub-data structures comprising a second initial sub-data structure and a second terminal sub-data structure, the second initial sub-data structure linked with the second terminal sub-data structure;

link the first sequence of sub-data structures with the second sequence of sub-data structures;

receive, from a client device, a request comprising an identification of a sub-data structure;

identify each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures based on the identification of the sub-data structure and further based on the link between the first sequence of sub-data structures and the second sequence of sub-data structures;

responsive to the identification, retrieve data from each identified sub-data structure in the first sequence of sub-data structures and in the second sequence of sub-data structures; and

transmit a record generated based on the retrieved data to the client device.

16. The system of claim 15 , wherein the processor is configured to link the first sequence of sub-data structures with the second sequence of sub-data structures by inserting a terminal identifier of the second terminal sub-data structure into the first terminal sub-data structure.

17. The system of claim 15 , wherein the processor is configured to:

receive a second request comprising an identification of the first initial sub-data structure;

retrieve, based on the identification of the first initial sub-data structure, data from each sub-data structure in the second sequence of sub-data structures based on the link between the first terminal sub-data structure and the second terminal sub-data structure; and

store the retrieved data or data generated from the second sequence of sub-data structures in corresponding sub-data structures of the first sequence of sub-data structures.

18. The system of claim 15 , wherein the processor is configured to:

link the first initial sub-data structure with the first terminal sub-data structure by linking the first initial sub-data structure to a first intermediate sub-data structure and linking the first intermediate sub-data structure with the first terminal sub-data structure; and

link the second initial sub-data structure with the second terminal sub-data structure by linking the second initial sub-data structure to a second intermediate sub-data structure and linking the second intermediate sub-data structure with the second terminal sub-data structure.

19. The system of claim 18 , wherein the processor is configured to:

store a third sequence of sub-data structures in the first hierarchical data structure, the third sequence of sub-data structures comprising the first initial sub-data structure, the first intermediate sub-data structure, and a third terminal sub-data structure, the first intermediate sub-data structure linked with the third terminal sub-data structure;

store a fourth sequence of sub-data structures in the second hierarchical data structure, the fourth sequence of sub-data structures comprising a third initial sub-data structure, a third intermediate sub-data structure, and a fourth terminal sub-data structure, the third intermediate sub-data structure further linked with the fourth terminal sub-data structure; and

link the third sequence of sub-data structures and the fourth sequence of sub-data structures.

20. A non-transitory computer-readable medium storing instructions that cause one or more processors executing the instructions to:

store a first hierarchical data structure comprising a first sequence of sub-data structures, the first sequence of sub-data structures comprising a first initial sub-data structure and a first terminal sub-data structure, the first initial sub-data structure linked with the first terminal sub-data structure;

store a second hierarchical data structure comprising a second sequence of sub-data structures, the second sequence of sub-data structures comprising a second initial sub-data structure and a second terminal sub-data structure, the second initial sub-data structure linked with the second terminal sub-data structure;

link the first sequence of sub-data structures with the second sequence of sub-data structures;

receive, from a client device, a request comprising an identification of a sub-data structure;

identify each sub-data structure in the first sequence of sub-data structures and the second sequence of sub-data structures based on the identification of the sub-data structure and further based on the link between the first sequence of sub-data structures and the second sequence of sub-data structures;

responsive to the identification, retrieve data from each identified sub-data structure in the first sequence of sub-data structures and in the second sequence of sub-data structures; and

transmit a record generated based on the retrieved data to the client device.

Assignments (5)
CHANGE OF NAME Recorded Oct 27, 2025
From: IDESIGNEDU, LLC
To: IDESIGNEDU, INC.
Reel/Frame 073365/0521 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: RITER, PAXTON; STONE, NED; KILGORE, WHITNEY; GALYEN, KRISTA; FOSTER, SAM
To: IDESIGNEDU, LLC
Reel/Frame 063545/0569 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: BUCHMANN, ANDREAS
To: UPSTACK TECHNOLOGIES, INC.
Reel/Frame 063545/0444 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: HOWARD, DEREK
To: IDESIGNEDU, LLC
Reel/Frame 063545/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: UPSTACK TECHNOLOGIES, INC.
To: IDESIGNEDU, LLC
Reel/Frame 063545/0593 →
Continuity (2)
Continuation 17686298 · Mar 3, 2022
Related Publication 20230281224A1 · Sep 7, 2023