Browse Prior Art Database

Techniques for Automatically Arranging a Visual Model Into Related Clusters Disclosure Number: IPCOM000183764D
Original Publication Date: 2009-Jun-01
Included in the Prior Art Database: 2009-Jun-01
Document File: 6 page(s) / 47K

Publishing Venue



This is a technique for automatically arranging widgets in a visual editor into clusters of widgets based on the relationships between the widgets.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 31% of the total text.

Page 1 of 6

Techniques for Automatically Arranging a Visual Model Into Related Clusters

The problem:

Graphical modeling editors use widgets and lines to visualize their semantic models, where widgets represent the entities in the modeled system and the lines between the widgets represent their relationships. Semantic models might have multiple widget types and multiple relationship types, such as membership, dependency, hosting, etc.

Initially a user will manually place their widgets into a meaningful arrangement, usually by clustering related widgets together. Clusters themselves can be related with each other, but the relationship lines are seen to cross between two clusters as seen in this diagram:

As more widgets are added to a diagram, manually maintaining these cluster arrangements becomes more difficult. As a cluster grows, its neighbors need to be moved in order to make space. And as widgets and relationships are added, it becomes harder to manually arrange widgets into their most meaningful clusters.

Most modeling editors provide an action that will automatically arrange widgets. Most existing techniques use the relationships between widgets to create a pattern. The simpilier algorithms will put the widgets into rows where each row is made up of widgets that are related to widgets in the row immediately below it. More sophisticated algorithms will arrange widgets so that the distance between related widgets is minimized.

However even if these algorithms arrange the widgets into rows and columns, the new clusters may not be functionally meaningful to the user. In the diagram above, these two functionally different clusters would be combined into one less-meainingful, generalized cluster.


[This page contains 4 pictures or other non-text objects]

Page 2 of 6

The solution:

This invention automatically arranges widgets into meaningful clusters using the following techniques:

1) Widgets are first separated into two clusters: those with no relationship to any other widget (the "unrelated cluster") and those with one or more relationships (the "relationship" cluster).

2) The "relationship" cluster is then split into smaller "functional" clusters using the following technique:

a) The widgets in the "relationship" cluster are searched for the longest relationship chain. An example of a relationship chain would be if widget A had a relationship to widget B and widget B had the same type of relationship to widget C. Types of relationships in a deployment model might be "dependency" or "hosting". If widget A had a hosting relationship with widget B and widget B had a dependency relationship to widget C, then widget C would not be part of that relationship chain:

b) When the longest relationship chain is found, its widgets are moved from the "relationship" cluster into a new "functional" cluster. If there's a tie between the t...