Ordinals for enabling localized edits of data
An improved system and an improved method are provided for organizing and managing a dataset using an ordinal system based on an optimized indexing tree, such as a Stern-Brocot tree. The ordinal system employs unique fractional numbers in the Stern-Brocot tree as indices, which are assigned to data entries of the dataset to locate and access these data entries quickly. Thus, the present disclosure provides an improved data management strategy with improved space complexity, improved comparison operation performance, simplified implementation, and reduced storage growth size/rate, compared to its predecessors.
1 . A tangible, non-transitory, computer-readable medium, comprising computer-readable instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to:
receive an indication of an edit to be applied to modify a dataset, wherein:
the dataset comprises hierarchical control data of a rig of a character; and
the dataset is organized as a hierarchy in reference to an ordinal system that uses one or more ordinal fractions of an indexing tree as indices, and each ordinal fraction corresponds to a respective portion of the hierarchy and is indicative of a respective dependency associated with the respective portion;
in response to receiving the indication of the edit, modify the dataset by:
calculating an ordinal fraction associated with the edit; and
using the calculated ordinal fraction as an index, modifying a corresponding portion of the dataset; and
propagate control through the rig of the character based on the modified dataset.
2 . The tangible, non-transitory, computer-readable medium of claim 1 , wherein the indexing tree is a Stern-Brocot tree.
3 . The tangible, non-transitory, computer-readable medium of claim 1 , wherein the edit corresponds to an operation associated with a first data entry of the dataset, and wherein the tangible, non-transitory, computer-readable medium comprises instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to determine the ordinal fraction to calculate based on a determination of an operation type of the edit.
4 . The tangible, non-transitory, computer-readable medium of claim 3 , wherein the operation type of the edit comprises appending the first data entry to the dataset, inserting the first data entry into the dataset, or deleting the first data entry from the dataset.
5 . The tangible, non-transitory, computer-readable medium of claim 4 , comprising instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to do one or more of the following:
in response to determining that the edit corresponds to appending the first data entry to the dataset, calculate a first ordinal fraction corresponding to an end position in reference to the indexing tree;
in response to determining that the edit corresponds to inserting the first data entry to the dataset, calculate a second ordinal fraction corresponding to an insertion position in reference to the indexing tree; or
in response to determining that the edit corresponds to deleting the first data entry from the dataset, calculate a third ordinal fraction corresponding to a position of the first data entry in reference to the indexing tree.
6 . The tangible, non-transitory, computer-readable medium of claim 5 , comprising instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to calculate the second ordinal fraction by:
identify a former ordinal fraction and a latter ordinal fraction associated with immediate neighboring positions of the insertion position, wherein the former ordinal fraction corresponds to the position immediately before the insertion position, and wherein the latter ordinal fraction corresponds to the position immediately after the insertion position;
determine whether the second ordinal fraction is to be inserted as a first child of the former ordinal fraction or a second child of the latter ordinal fraction; and
calculate the second ordinal fraction, wherein the second ordinal fraction is calculated as the first child of the former ordinal fraction or the second child of the latter ordinal fraction based on the determination.
7 . The tangible, non-transitory, computer-readable medium of claim 1 , wherein the indication of the edit comprises a user input provided via a GUI, and the tangible, non-transitory, computer-readable medium comprises instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to update the GUI corresponding to the modified dataset.
8 . The tangible, non-transitory, computer-readable medium of claim 1 , comprising instructions that, when executed by one or more processors of one or more computers, cause the one or more computers to:
propagate the control through the rig of the character based on the modified dataset by referencing the ordinal system, wherein first hierarchical control data corresponding to a smaller ordinal fraction is accessed and implemented before second hierarchical control data corresponding to a larger ordinal fraction.
9 . The tangible, non-transitory, computer-readable medium of claim 1 , wherein the hierarchical control data comprises data associated with control handles of the rig of the character.
10 . The tangible, non-transitory, computer-readable medium of claim 1 , wherein the control handles are associated with a digital skeleton of the character.
11 . A method, comprising:
receiving, via one or more processors, an indication of an edit to be applied to modify a dataset, wherein:
the dataset comprises hierarchical control data of a rig of a character; and
the dataset is organized as a hierarchy in reference to an ordinal system that uses one or more ordinal fractions of an indexing tree as indices, and each ordinal fraction corresponds to a respective portion of the hierarchy and is indicative of a respective dependency associated with the respective portion;
in response to receiving the indication of the edit, modifying, via the one or more processors, the dataset by:
calculating, via the one or more processors, an ordinal fraction associated with the edit; and
using the calculated ordinal fraction as an index, modifying, via the one or more processors, a corresponding portion of the dataset; and
propagating control through the rig of the character based on the modified dataset.
12 . The method of claim 11 , wherein the dataset comprises one or more data entries, wherein the indexing tree is a Stern-Brocot tree.
13 . The method of claim 11 , wherein the edit corresponds to an operation associated with a first data entry of the dataset, and wherein the method comprises determining, via the one or more processors, the ordinal fraction to calculate based on a determination of an operation type of the edit, wherein the operation type of the edit comprises appending the first data entry to the dataset, inserting the first data entry into the dataset, or deleting the first data entry from the dataset.
14 . The method of claim 13 , comprising, in response to determining that the edit corresponds to appending the first data entry to the dataset, calculating, via the one or more processors, a first ordinal fraction corresponding to an end position in reference to an indexing tree.
15 . The method of claim 13 , comprising, in response to determining that the edit corresponds to inserting the first data entry to the dataset, calculating, via the one or more processors, a second ordinal fraction corresponding to an insertion position in reference to an indexing tree.
16 . The method of claim 13 , comprising, in response to determining that the edit corresponds to deleting the first data entry from the dataset, calculating, via the one or more processors, a third ordinal fraction corresponding to a position of the first data entry in reference to an indexing tree.
17 . The method of claim 11 , comprising:
propagate the control through the rig of the character based on the modified dataset by referencing the ordinal system, wherein first hierarchical control data corresponding to a smaller ordinal fraction is accessed and implemented before second hierarchical control data corresponding to a larger ordinal fraction.
18 . A system, comprising:
one or more processors; and
memory storing instructions executable by the one or more processors to cause the one or more processors to:
receive an indication of an edit to be applied to modify a dataset, wherein:
the dataset comprises hierarchical control data of a rig of a character; and
the dataset is organized as a hierarchy in reference to an ordinal system that uses one or more ordinal fractions of an indexing tree as indices, and each ordinal fraction corresponds to a respective portion of the hierarchy and is indicative of a respective dependency associated with the respective portion;
in response to receiving the indication of the edit, modify the dataset by:
calculating an ordinal fraction associated with the edit; and
using the calculated ordinal fraction as an index, modifying a corresponding portion of the dataset; and
propagate control through the rig of the character based on the modified dataset.
19 . The system of claim 18 , wherein the dataset comprises one or more data entries, wherein the indexing tree is a Stern-Brocot tree.
20 . The system of claim 18 , wherein the memory storing the instructions executable by the one or more processors to cause the one or more processors to:
propagate the control through the rig of the character based on the modified dataset by referencing the ordinal system, wherein first hierarchical control data corresponding to a smaller ordinal fraction is accessed and implemented before second hierarchical control data corresponding to a larger ordinal fraction.