IP Library Granted Patent US 9,785,910
Granted Patent B2
US 9,785,910 · App. 14/093,950 · Granted Oct 10, 2017

Virtual product hierarchies

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 9,785,910
App. No.
14/093,950
Granted
Oct 10, 2017
Kind
B2
Abstract

A base hierarchy of products or the like can be user-modified into a virtual hierarchy that is represented as a collection of changes to the base hierarchy rather than a new hierarchy stored in memory. The collection of changes can be used to enable user interactions such as queries, displays, and writes using the virtual hierarchy as thought it were an actual hierarchy stored in memory, with aspects of the virtual hierarchy dynamically created using a collection of procedures based on the changes and corresponding inverses. The representation of the modified hierarchy can be dynamically displayed to a user or otherwise processed in the same manner as other hierarchies and hierarchical data.

Claims (57)

1. A method for computer-based real time modification and management of hierarchical data comprising:

storing a base hierarchy that categorizes a collection of inventory including a number of consumer products into a number of levels of categories in a database management system;

receiving a plurality of desired changes to the base hierarchy from a user within a graphical user interface of a computer, wherein the desired changes collectively characterize a modified hierarchy categorizing the number of consumer products, and wherein the plurality of desired changes reflect marketplace performance data of the number of consumer products;

storing the plurality of desired changes logically separately from the base hierarchy as change data using a database tool, wherein each item of change data includes an instruction to add, delete, or move a node between the base hierarchy and the modified hierarchy, the instruction received from the user through a drag-and-drop operation of the node on a visual representation of one or more of the base hierarchy and the modified hierarchy displayed on the graphical user interface, wherein each item of change data is an invertible instruction with a corresponding instruction that undoes the change, and wherein an order of the change data is maintained for a plurality of items of change data;

dynamically displaying a representation of the modified hierarchy to the user in the graphical user interface with a user interface tool executing on the computer by rendering the base hierarchy as modified according to each item of change data;

receiving a query with respect to the modified hierarchy in the graphical user interface; and

processing the query by performing the steps of:

identifying an inverse for each of the plurality of desired changes, thereby identifying a plurality of inverses;

using the plurality of inverses in a reverse of the order, determining a modified query with respect to the base hierarchy; and

processing the modified query with respect to the base hierarchy.

2. The method of claim 1 wherein dynamically displaying the representation of the modified hierarchy includes iteratively rendering the plurality of changes with respect to the base hierarchy, without modifying a data file corresponding to the base hierarchy.

3. The method of claim 1 wherein each of the plurality of desired changes is selected from the group consisting of: adding a node at a specified location, deleting a node at a specified location, and moving a node from an initial location to a destination location.

4. The method of claim 1 further comprising displaying a representation of the base hierarchy to the user in the graphical user interface, wherein the plurality of changes are received via a plurality of drag-and-drop instructions in the graphical user interface.

5. The method of claim 1 wherein:

each of the plurality of desired changes is selected from the group consisting of: adding a node at a specified location, deleting a node at a specified location, and moving a node from an initial location to a destination location;

the inverse of adding a node at a specified location is deleting a node from the specified location;

the inverse of deleting a node at a specified location is adding a node at the specified location; and

the inverse of moving a node from an initial location to a destination location is moving a node from the destination location to the initial location.

6. The method of claim 1 wherein the plurality of changes are received in an order, and further wherein the plurality of inverses is used in a reverse order to determine the modified query.

7. A computer program product comprising computer executable code embodied in a non-transitory computer readable medium that, when executing on one or more computing devices, performs the steps of:

storing a base hierarchy that categorizes a collection of inventory including a number of consumer products into a number of levels of categories in a database management system;

receiving a plurality of desired changes to the base hierarchy from a user within a graphical user interface of a computer, wherein the desired changes collectively characterize a modified hierarchy categorizing the number of consumer products, and wherein the plurality of desired changes reflect marketplace performance data of the number of consumer products;

storing the plurality of desired changes logically separately from the base hierarchy as change data using a database tool, wherein each item of change data includes an instruction to add, delete, or move a node between the base hierarchy and the modified hierarchy, the instruction received from the user through a drag-and-drop operation of the node on a visual representation of one or more of the base hierarchy and the modified hierarchy displayed on the graphical user interface, wherein each item of change data is an invertible instruction with a corresponding instruction that undoes the change, and wherein an order of the change data is maintained for a plurality of items of change data;

dynamically displaying a representation of the modified hierarchy to the user in the graphical user interface with a user interface tool executing on the computer by rendering the base hierarchy as modified according to each item of change data;

receiving a query with respect to the modified hierarchy in the graphical user interface; and

processing the query by performing the steps of:

identifying an inverse for each of the plurality of desired changes, thereby identifying a plurality of inverses;

using the plurality of inverses in a reverse of the order, determining a modified query with respect to the base hierarchy; and

processing the modified query with respect to the base hierarchy.

8. The computer program product of claim 7 , wherein dynamically displaying the representation of the modified hierarchy includes iteratively rendering the plurality of changes with respect to the base hierarchy without modifying a data file corresponding to the base hierarchy.

9. The computer program product of claim 7 wherein each of the plurality of desired changes is selected from the group consisting of: adding a node at a specified location, deleting a node at a specified location, and moving a node from an initial location to a destination location.

10. The computer program product of claim 7 further comprising code that performs the step of displaying a representation of the base hierarchy to the user in the graphical user interface, wherein the plurality of changes are received via a plurality of drag-and-drop instructions in the graphical user interface.

11. The computer program product of claim 7 wherein:

each of the plurality of desired changes is selected from the group consisting of: adding a node at a specified location, deleting a node at a specified location, and moving a node from an initial location to a destination location;

the inverse of adding a node at a specified location is deleting a node from the specified location;

the inverse of deleting a node at a specified location is adding a node at the specified location; and

the inverse of moving a node from an initial location to a destination location is moving a node from the destination location to the initial location.

12. The computer program product of claim 7 wherein the plurality of changes are received in an order, and further wherein the plurality of inverses is used in a reverse order to determine the modified query.

13. A system for computer-based real time modification and management of hierarchical data, the system comprising:

one or more processors; and

memory bearing instructions that, when executed, cause the one or more processors to perform the steps of:

storing a base hierarchy that categorizes a collection of inventory including a number of consumer products into a number of levels of categories in a database management system;

receiving a plurality of desired changes to the base hierarchy from a user within a graphical user interface of a computer, wherein the desired changes collectively characterize a modified hierarchy categorizing the number of consumer products, and wherein the plurality of desired changes reflect marketplace performance data of the number of consumer products;

storing the plurality of desired changes logically separately from the base hierarchy as change data with a database tool, wherein each item of change data includes an instruction to add, delete, or move a node between the base hierarchy and the modified hierarchy, the instruction received from the user through a drag-and-drop operation of the node on a visual representation of one or more of the base hierarchy and the modified hierarchy displayed on the graphical user interface, wherein each item of change data is an invertible instruction with a corresponding instruction that undoes the change, and wherein an order of the change data is maintained for a plurality of items of change data;

dynamically displaying a representation of the modified hierarchy to the user in the graphical user interface with a user interface tool executing on the computer by rendering the base hierarchy as modified according to each item of change data;

receiving a query with respect to the modified hierarchy in the graphical user interface; and

processing the query by performing the steps of:

identifying an inverse for each of the plurality of desired changes, thereby identifying a plurality of inverses;

using the plurality of inverses in a reverse of the order, determining a modified query with respect to the base hierarchy; and

processing the modified query with respect to the base hierarchy.

14. The system of claim 13 wherein dynamically displaying the representation of the modified hierarchy includes iteratively rendering the plurality of changes with respect to the base hierarchy, without modifying a data file corresponding to the base hierarchy.

15. The system of claim 13 wherein each of the plurality of desired changes is selected from the group consisting of: adding a node at a specified location, deleting a node at a specified location, and moving a node from an initial location to a destination location.

16. The system of claim 13 further comprising instructions that cause the processor to display a representation of the base hierarchy to the user in the graphical user interface, wherein the plurality of changes are received via a plurality of drag-and-drop instructions in the graphical user interface.

17. The method of claim 1 wherein each category in one of the number of levels of categories contains a collection of products that share a common attribute.

18. The method of claim 1 wherein one or more leaf nodes in the base hierarchy contain performance data including sales data for a corresponding product.

19. The computer program product of claim 7 wherein each category in one of the number of levels of categories contains a collection of products that share a common attribute.

20. The computer program product of claim 7 wherein one or more leaf nodes in the base hierarchy contain performance data including sales data for a corresponding product.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Sep 1, 2022
From: JEFFERIES FINANCE LLC, AS ADMINISTRATIVE AGENT
To: INFORMATION RESOURCES, INC.
Reel/Frame 060962/0552 →
RELEASE OF SECURITY INTEREST Recorded Aug 30, 2022
From: JEFFERIES FINANCE LLC, AS ADMINISTRATIVE AGENT
To: INFORMATION RESOURCES, INC.
Reel/Frame 060940/0260 →
SECURITY INTEREST Recorded Aug 1, 2022
From: INFORMATION RESOURCES, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 060685/0246 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F: 041394/0166 Recorded Dec 4, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
To: INFORMATION RESOURCES, INC.
Reel/Frame 048316/0163 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F: 041394/0234 Recorded Dec 4, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
To: INFORMATION RESOURCES, INC.
Reel/Frame 048316/0528 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 30, 2018
From: INFORMATION RESOURCES, INC.
To: JEFFERIES FINANCE LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 048175/0103 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 30, 2018
From: INFORMATION RESOURCES, INC.
To: JEFFERIES FINANCE LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 047691/0071 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jan 18, 2017
From: INFORMATION RESOURCES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 041394/0166 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jan 18, 2017
From: INFORMATION RESOURCES, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 041394/0234 →