IP Library Granted Patent US 7,620,947
Granted Patent B2
US 7,620,947 · App. 11/077,966 · Granted Nov 17, 2009

Enhanced directed graph representation for dependency systems

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 7,620,947
App. No.
11/077,966
Granted
Nov 17, 2009
Kind
B2
Abstract

Methods for representing and evaluating dependency systems are provided. In one implementation a method is provided. The method includes receiving a file. The file includes a node array having data entries corresponding to one or more nodes. The file also includes an edge array having data entries corresponding to one or more edges, the edge entries identifying an invertability state of an edge, a suppressed state of an edge, and one or more partner edge linking a first and a second edge in the edge array. The method also include processing the received file. In another implementations a method for evaluating dependencies in a cyclic system is provided as well as a method for evaluating an enhanced directed dependency graph.

Claims (77)

1. A method, comprising:

receiving a file including:

a node array having data entries corresponding to one or more nodes; and

an edge array having data entries corresponding to one or more edges, the edge entries identifying an invertability state of an edge, a suppressed state of an edge, and one or more partner edge linking a first and a second edge in the edge array; and

processing the file using one or more computers.

2. The method of claim 1 , the data entry for each node further comprising:

an identifier for a beginning and ending point for each incoming and outgoing edge to the node.

3. The method of claim 1 , the data entry for each edge further comprising:

an identifier of each node associated with the edge.

4. The method of claim 1 , the data entry for each edge further comprising:

an identifier of the edge as invertible.

5. The method of claim 4 , the data entry for an invertible edge further comprising:

a flag identifying a suppression state of the invertible edge.

6. The method of claim 1 , the data entries for the edges in the edge array further comprising:

an identifier for each partner link between pairs of invertible edges.

7. The method of claim 1 , the processing including creating an enhanced directed dependency graph using the data entries in the node and edge arrays.

8. A method for evaluating dependencies in a cyclic system, comprising:

receiving a description of a cyclic system;

receiving a particular activation context, the particular activation context identifying one or more nodes in the cyclic system as being activated;

creating an activation directed acyclic graph for the particular activation context; and

evaluating, using one or more computers, one or more dependencies upon a change of a state of the cyclic system in accordance with the activation context.

9. The method of claim 8 , further comprising:

creating an enhanced directed dependency graph description of the cyclic system, including introducing one or more delay nodes operable to provide a particular activation order in an activation directed acyclic graph.

10. The method of claim 9 , further comprising:

positioning each delay node along an edge between a first node and a second node.

11. The method of claim 10 , further comprising:

connecting the delay node to a destination node by an invertible edge.

12. A method for evaluating an enhanced directed dependency graph, comprising:

adding, using one or more computers, an initially edited node to a queue;

activating a first node in the queue;

suppressing any partner incoming invertible edge for each outgoing non-suppressed invertible edge leading from the first node;

adding a next node incident to the first node through outgoing non-suppressed invertible edges to the queue; and

activating the next node in the queue.

13. The method of claim 12 , further comprising:

suppressing any partner incoming invertible edge for each outgoing non-suppressed invertible edge leading from the next node; and

adding one or more nodes incident to the next node through outgoing non-suppressed invertible edges to the queue.

14. The method of claim 12 , further comprising:

suppressing any remaining nodes and edges of the enhanced directed dependency graph when the queue is empty.

15. A computer program product, tangibly stored on a machine-readable storage device, comprising instructions operable to cause a programmable processor to:

receive a file including:

a node array having data entries corresponding to one or more nodes; and

an edge array having data entries corresponding to one or more edges, the edge entries identifying an invertability state of an edge, a suppressed state of an edge, and one or more partner edge linking a first and a second edge in the edge array; and

process the file.

16. The computer program product of claim 15 , the data entry for each node further comprising:

an identifier for a beginning and ending point for each incoming and outgoing edge to the node.

17. The computer program product of claim 15 , the data entry for each edge further comprising:

an identifier of each node associated with the edge.

18. The computer program product of claim 15 , the data entry for each edge further comprising:

an identifier of the edge as invertible.

19. The computer program product of claim 18 , the data entry for an invertible edge further comprising:

a flag identifying a suppression state of the invertible edge.

20. The computer program product of claim 15 , the data entries for the edges in the edge array further comprising:

an identifier for each partner link between pairs of invertible edges.

21. The computer program product of claim 15 , the processing including instructions to:

create an enhanced directed dependency graph using the data entries in the node and edge arrays.

22. A computer program product, tangibly stored on a machine-readable storage device, for evaluating dependencies in a cyclic system, comprising instructions operable to cause a programmable processor to:

receive a description of a cyclic system;

receive a particular activation context, the particular activation context identifying one or more nodes in the cyclic system as being activated;

create an activation directed acyclic graph for the particular activation context; and

evaluate one or more dependencies upon a change of a state of the cyclic system in accordance with the activation context.

23. The computer program product of claim 22 , further comprising instructions to:

create an enhanced directed dependency graph description of the cyclic system, including introducing one or more delay nodes operable to provide a particular activation order in an activation directed acyclic graph.

24. The computer program product of claim 23 , further comprising instructions to:

position each delay node along an edge between a first node and a second node.

25. The computer program product of claim 24 , further comprising instructions to:

connect the delay node to a destination node by an invertible edge.

26. A computer program product, tangibly stored on a machine-readable storage device, for evaluating an enhanced directed dependency graph, comprising instructions operable to cause a programmable processor to:

add an initially edited node to a queue;

activate a first node in the queue;

suppress any partner incoming invertible edge for each outgoing non-suppressed invertible edge leading from the first node;

add a next node incident to the first node through outgoing non-suppressed invertible edges to the queue; and

activate the next node in the queue.

27. The computer program product of claim 26 , further comprising instructions to:

suppress any partner incoming invertible edge for each outgoing non-suppressed invertible edge leading from the next node; and

add one or more nodes incident to the next node through outgoing non-suppressed invertible edges to the queue.

28. The computer program product of claim 26 , further comprising instructions to:

suppress any remaining nodes and edges of the enhanced directed dependency graph when the queue is empty.

Assignments (2)
CHANGE OF ADDRESS FOR ASSIGNEE Recorded Aug 19, 2022
From: AUTODESK, INC.
To: AUTODESK, INC.
Reel/Frame 061572/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2005
From: KRISHNASWAMY, RAVINDER P.
To: AUTODESK, INC.
Reel/Frame 016210/0756 →