IP Library › Granted Patent US 8,856,766
Granted Patent B2
US 8,856,766 · App. 13/469,409 · Granted Oct 7, 2014

Generating layouts for graphs of data flow applications

Inventors: Andrew Lawrence Frenkiel (Irvington, NY); Henrique Andrade (Croton on Hudson, NY); Bugra Gedik (White Plains, NY); Michael Donald Pfeifer (Rochester, MN); Wim De Pauw (Scarborough, NY)
Assignee: International Business Machines Corporation
G06F8/00G06F8/74
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 8,856,766
App. No.
13/469,409
Granted
Oct 7, 2014
Kind
B2
Abstract

An embodiment of the invention provides a method of displaying a data flow, wherein a description of a data flow application to be displayed is received. The data flow application includes nodes and edges connecting the nodes, wherein the nodes represent operators and the edges represent data connections for data flowing between the operations. A reason that a user is to view the data flow and/or a user constraint on a complexity of the data flow application to be displayed is determined with a processor; and, the time required to render a display of the data flow application is estimated. A transformed representation of the data flow application is created with the processor. The transformed representation is created based upon the user reason, the user constraint, the estimated time of rendering, and/or a layout strategy. The transformed representation is displayed on a graphical user interface.

Claims (112)

1. A method, executed by a processor, of displaying a data flow, said method comprising:

receiving a description of a data flow application to be displayed, the data flow application including nodes and edges connecting the nodes, the nodes representing operators and the edges representing data connections for data flowing between the operators;

determining at least one of a reason that a user is to view the data flow application and a user constraint on a complexity of the data flow application to be displayed with the processor;

creating a transformed representation of the data flow application based upon at least one of the user reason and the user constraint, wherein said creating of the transformed representation of the data flow application is further based on a set of rules that map at least one of the user reason and the user constraint to suitable transformations of the data flow application, and wherein said creating of the transformed representation of the data flow application progressively reduces the complexity of the data flow application to be displayed until objectives are satisfied, wherein the objectives are based upon at least one of the user reason and the user constraint; and

displaying the transformed representation.

2. The method according to claim 1 , wherein said method further comprises, prior to said creating of the transformed representation of the data flow application, estimating a time required to render a display of the data flow application, and

wherein said creating of the transformed representation of the data flow application is further based upon the estimated time of rendering.

3. The method according to claim 1 , wherein said creating of the transformed representation of the data flow application is at least one of:

performing composite operators,

performing pattern extraction,

performing feedback simplification, and

performing filtering based on topological properties and data flow.

4. The method according to claim 1 , wherein the transformed representation of the data flow application is written in a language that includes information about abstractions that are used to simplify the representation of the data flow application.

5. The method according to claim 1 , wherein the user constraints comprise at least one of:

a maximum number of nodes to display,

a minimum number of nodes to display,

a maximum number of edges to display,

a minimum number of edges to display,

a maximum distance between nodes,

a minimum distance between nodes,

a maximum level of nested nodes to display,

a minimum level of nested nodes to display,

at least one maximum size dimension of a viewable area of the transformed representation,

at least one minimum size dimension of the viewable area of the transformed representation,

a maximum time to create the transformed representation, and

a minimum time to create the transformed representation.

6. The method according to claim 1 , wherein said creating of the transformed representation of the data flow application is further based upon a layout strategy, wherein the layout strategy includes at least one of:

replacing repeating subgraphs with a single subgraph of the repeating subgraphs and an indicator indicating the number of repeating subgraphs;

replacing a first subgraph and at least one second subgraph with a combination subgraph, the combination subgraph including components from the first subgraph that are in common with the at least one second subgraph, wherein the first subgraph is different from the at least one second subgraph;

replacing a third subgraph and at least one fourth subgraph with a logical subgraph, the logical subgraph including logical representations of portions in common between the third subgraph and the at least one fourth subgraph, wherein the third subgraph is different from the at least one fourth subgraph;

collapsing repeating nodes within a single subgraph and indicating the number of repeating nodes in the single subgraph;

replacing at least one set of nodes within a single subgraph with a composite operator, wherein the replaced set of nodes share a common operation;

replacing at least two consecutive nodes within a single subgraph with an icon indicating the number of replaced consecutive nodes;

replacing a looping edge with a first icon indicating a first node in the loop and a second icon indicating a second node in the loop; and

collapsing all composite nodes in a subgraph and expanding the composite nodes until a threshold number of nodes for the subgraph is reached.

7. A method, executed by a processor, of displaying a data flow, said method comprising:

receiving a description of a data flow application to be displayed, the data flow application including nodes and edges connecting the nodes, the nodes representing operators and the edges representing data connections for data flowing between the operators;

determining at least one of a reason that a user is to view the data flow application and a user constraint on a complexity of the data flow application to be displayed with the processor;

estimating a time required to render a display of the data flow application;

creating a transformed representation of the data flow application with the processor, the transformed representation being created based upon at least one of the user reason, the user constraint, and the estimated time of rendering, the transformed representation providing a simplification of the complexity of the data flow application; and

displaying the transformed representation on a graphical user interface,

wherein said creating of the transformed representation of the data flow application is further based upon a layout strategy, wherein the layout strategy includes:

replacing repeating subgraphs with a single subgraph of the repeating subgraphs and an indicator indicating the number of repeating subgraphs;

collapsing repeating nodes within a single subgraph and indicating the number of repeating nodes in the single subgraph;

replacing at least one set of nodes within a single subgraph with a composite operator, wherein the replaced set of nodes share a common operation;

replacing at least two consecutive nodes within a single subgraph with an icon indicating the number of replaced consecutive nodes; and

replacing a looping edge with an icon in a first node of the loop, the icon indicating that the node is the first node in the loop.

8. The method according to claim 7 , wherein said creating of the transformed representation of the data flow application is at least one of:

performing composite operations,

performing pattern extraction,

performing feedback simplification, and

performing filtering based on topological properties and data flow.

9. The method according to claim 7 , wherein said creating of the transformed representation of the data flow application is further based on a set of rules that map at least one of the user reason and the user constraint to suitable transformations of the data flow application.

10. The method according to claim 7 , wherein said creating of the transformed representation of the data flow application progressively reduces the complexity of the data flow application to be displayed until objectives are satisfied, wherein the objectives are based upon at least one of the user reason and the user constraint.

11. The method according to claim 7 , wherein the transformed representation of the data flow application is written in a language that includes information about abstractions that are used to simplify the representation of the data flow application.

12. The method according to claim 7 , wherein the user constraints comprise:

a maximum number of nodes to display,

a minimum number of nodes to display,

a maximum number of edges to display,

a minimum number of edges to display,

a maximum distance between nodes,

a minimum distance between nodes,

a maximum level of nested nodes to display,

a minimum level of nested nodes to display,

at least one maximum size dimension of a viewable area of the transformed representation, and

at least one minimum size dimension of the viewable area of the transformed representation.

13. The method according to claim 7 , wherein said creating of the transformed representation of the data flow application is further based upon a layout strategy, wherein the layout strategy includes:

replacing a first subgraph and at least one second subgraph with a combination subgraph, the combination subgraph including components from the first subgraph that are in common with the at least one second subgraph, wherein the first subgraph is different from the at least one second subgraph; and

replacing a third subgraph and at least one fourth subgraph with a logical subgraph, the logical subgraph including logical representations of portions in common between the third subgraph and the at least one fourth subgraph, wherein the third subgraph is different from the at least one fourth subgraph;

collapsing all composite nodes in a subgraph and expanding the composite nodes until a threshold number of nodes for the subgraph is reached.

14. A method, executed by a processor, of displaying a data flow, said method comprising:

receiving a description of a data flow application to be displayed, the data flow application including nodes and edges connecting the nodes, the nodes representing operations and the edges representing data connections for data flowing between the operators;

determining at least one of a reason that a user is to view the data flow and a user constraint on a complexity of the data flow application to be displayed;

creating a transformed representation of the data flow application based upon at least one of the user reason, the user constraint, and a layout strategy, wherein the layout strategy includes at least one of:

replacing a first subgraph and at least one second subgraph with a combination subgraph, the combination subgraph including components from the first subgraph that are in common with the at least one second subgraph, wherein the first subgraph is different from the at least one second subgraph; and

replacing a third subgraph and at least one fourth subgraph with a logical subgraph, the logical subgraph including logical representations of portions in common between the third subgraph and the at least one fourth subgraph, wherein the third subgraph is different from the at least one fourth subgraph;

collapsing all composite nodes in a subgraph and expanding the composite nodes until a threshold number of nodes for the subgraph is reached, wherein said creating of the transformed representation of the data flow application is further based on a set of rules that map at least one of the user reason and the user constraint to suitable transformations of the data flow application, and wherein said creating of the transformed representation of the data flow application progressively reduces the complexity of the data flow application to be displayed until objectives are satisfied, wherein the objectives are based upon at least one of the user reason and the user constraint; and

displaying the transformed representation.

15. The method according to claim 14 , wherein said method further comprises, prior to said creating of the transformed representation of the data flow application, estimating a time required to render a display of the data flow application, and

wherein said creating of the transformed representation of the data flow application is further based upon the estimated time of rendering.

16. The method according to claim 14 , wherein said creating of the transformed representation of the data flow application is at least one of:

performing composite operations,

performing pattern extraction,

performing feedback simplification, and

performing filtering based on topological properties and data flow.

17. The method according to claim 14 , wherein the transformed representation of the data flow application is written in a language that includes information about abstractions that are used to simplify the representation of the data flow application.

18. The method according to claim 14 , wherein the user constraints comprise at least one of:

a maximum number of nodes to display,

a minimum number of nodes to display,

a maximum number of edges to display,

a minimum number of edges to display,

a maximum distance between nodes,

a minimum distance between nodes,

a maximum level of nested nodes to display,

a minimum level of nested nodes to display,

at least one maximum size dimension of a viewable area of the transformed representation,

at least one minimum size dimension of the viewable area of the transformed representation,

a maximum time to create the transformed representation, and

a minimum time to create the transformed representation.

19. The method according to claim 14 , wherein the layout strategy includes at least one of:

replacing repeating subgraphs with a single subgraph of the repeating subgraphs and an indicator indicating the number of repeating subgraphs;

collapsing repeating nodes within a single subgraph and indicating the number of repeating nodes in the single subgraph;

replacing at least one set of nodes within a single subgraph with a composite operator, wherein the replaced set of nodes share a common operation;

replacing at least two consecutive nodes within a single subgraph with an icon indicating the number of replaced consecutive nodes; and

replacing a looping edge with an icon in a first node of the loop, the icon indicating that the node is the first node in the loop.

20. A computer program product for displaying a data flow, said computer program product comprising:

a non-transitory computer readable storage medium;

first program instructions to receive a description of a data flow application to be displayed, the data flow application including nodes and edges connecting the nodes, the nodes representing operations and the edges representing data connections for data flowing between the operations;

second program instructions to determine at least one of a reason that a user is to view the data flow and a user constraint on a complexity of the data flow application to be displayed;

third program instructions to create a transformed representation of the data flow application based upon at least one of the user reason and the user constraint, wherein said creating of the transformed representation of the data flow application is further based on a set of rules that map at least one of the user reason and the user constraint to suitable transformations of the data flow application, and wherein said creating of the transformed representation of the data flow application progressively reduces the complexity of the data flow application to be displayed until objectives are satisfied, wherein the objectives are based upon at least one of the user reason and the user constraint; and

fourth program instructions to display the transformed representation,

wherein said first program instructions, said second program instructions, said third program instructions, and said fourth program instructions are stored on said computer readable storage medium.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 11, 2012
From: FRENKIEL, ANDREW LAWRENCE; ANDRADE, HENRIQUE; GEDIK, BUGRA; PFEIFER, MICHAEL D.; DE PAUW, WIM
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028194/0934 →
Continuity (1)
Related Publication 20140033173A1 · Jan 30, 2014