DeepAI
Log In Sign Up

Chisio: A Compound Graph Editing and Layout Framework

We introduce a new free, open-source compound graph editing and layout framework named Chisio, based on the Eclipse Graph Editing Framework (GEF) and written in Java. Chisio can be used as a finished graph editor with its easy-to-use graphical interface. The framework has an architecture suitable for easy customization of the tool for end-user's specific needs as well. Chisio comes with a variety of graph layout algorithms, most supporting compound structures and non-uniform node dimensions. Furthermore, new algorithms are straightforward to add, making Chisio an ideal test environment for layout algorithm developers.

READ FULL TEXT VIEW PDF

page 3

page 7

11/23/2017

Open Evaluation Tool for Layout Analysis of Document Images

This paper presents an open tool for standardizing the evaluation proces...
10/17/2019

Faster parameterized algorithm for Bicluter Editing

In the Bicluter Editing problem the input is a graph G and an integer k,...
01/14/2020

Auto Completion of User Interface Layout Design Using Transformer-Based Tree Decoders

It has been of increasing interest in the field to develop automatic mac...
08/04/2020

GPLAN: Computer-Generated Dimensioned Floorplans for given Adjacencies

In this paper, we present GPLAN, software aimed at constructing dimensio...
01/06/2014

Speeding up SOR Solvers for Constraint-based GUIs with a Warm-Start Strategy

Many computer programs have graphical user interfaces (GUIs), which need...
09/20/2018

OpenMPL: An Open Source Layout Decomposer

Multiple patterning lithography has been widely adopted in advanced tech...
07/26/2017

Product recognition in store shelves as a sub-graph isomorphism problem

The arrangement of products in store shelves is carefully planned to max...

1 Introduction

As graphical user interfaces have improved, and more state-of-the-art software tools have incorporated visual functions, interactive graph editing and layout facilities have become important components of software systems. Over the years, an abundant number of such tools have been made available for consumption both commercially and academically [12, 4, 5]. However, only a few, if any, non-commercial systems seem to address compound structures of graphs both in regards to editing and layout capabilities. Chisio should fill an important gap in this field.

Chisio can be used as a finished graph editor and layout tool. The tool has a user-friendly graphical interface for interactive editing of compound graphs, accepting graphs in GraphML format [2]. It also features a number of graph layout algorithms from spring embedders to Sugiyama algorithm for hierarchical graphs. In addition, many aspects of the tool, from graph object UIs to menus to persistency operations may be easily customized for specific applications.

There has been a great deal of work done on general graph layout [12, 4] but considerably less on layout of compound graphs, which is a notion that has been in use to represent more complex types of relations or varying levels of abstractions in data [10]. The limited work done on compound graph layout has mostly focused on layout of hierarchical graphs [16, 14, 7], where underlying relational information is assumed to be under a certain hierarchy. Chisio provides an implementation of a relatively recent spring embedder based layout algorithm for undirected compound graphs, with arbitrarily deep nesting relations [6]. In addition, some other well-known layout methods have been extended to support compound structures in Chisio.

Finally, Chisio hosts an implementation of a new spring embedder based circular layout algorithm for clustered graphs.

2 Graph and Drawing Model of Chisio

Chisio was built on top of the Eclipse Graph Editing Framework (GEF) [8]. GEF assumes that you have a model that you would like to display and edit graphically. The controllers bridge the view and model (Figure 1). Each controller is responsible both for mapping the model to its view, and for making changes to the model. The controller also observes the model, and updates the view to reflect changes in the model’s state. Controllers are the objects with which the user interacts.

Figure 1: Model-view-controller structure used in GEF [8]

The compound graphs are modeled in Chisio using this framework and the concept of graph managers described earlier (Figure 2). A compound node manages a list of children graph objects. A dedicated one is set as the root of the nesting hierarchy. Through recursive use of compound nodes as child objects, an arbitrary level of nesting can be created.

Figure 2: A UML class diagram illustrating the compound graph implementation of Chisio

Nodes, edges and compound nodes in Chisio all have distinct properties and UIs, which can be changed by its graphical user interface or through programming. Each node is drawn as a rectangle, ellipse or triangle. Edges can be drawn in a variety of styles. Compound nodes are always drawn with a rectangle, where the name text is displayed on its bottom margin and its geometry is auto-calculated using the geometry of its contents to tightly bound its contents plus user-defined child graph margins. Figure 3 shows the basics of drawing compound graphs in Chisio.

Figure 3: Basics of drawings in Chisio

3 Chisio as an Editor

Chisio can be used as a finished graph editing and layout tool [3]. Graphs created with other tools (and saved in GraphML format [2]) and loaded into Chisio or graphs created in Chisio can be edited and laid out interactively.

The tool features standard graph editing facilities such as zoom, scroll, add or remove graph objects, move, and resize. Object property and layout options dialogs are provided to modify existing graph object properties and layout options, respectively. In addition, printing or saving the current drawing as a static image and persistent storage facilities are supported. Furthermore, a highlight mechanism is provided to emphasize subgraphs of user’s interest. Figure 4 shows a sample screen-shot of Chisio. Drawing in 5 is a partial drawing produced by Chisio for a biological pathway.

Figure 4: Example drawing in Chisio for course prerequisites in a department
Figure 5: Partial example drawing in Chisio for a biological pathway

4 Customizing Chisio

One can customize Chisio for their specific needs by adding new node/edge types or by modifying existing nodes/edges (UI and attributes) [3]. In addition, you may customize the menus to add new functionality as well as modifying node and edge menus and property inspectors. Furthermore, Chisio is designed for easy integration of new layout algorithms. Layout researchers will especially find Chisio to be useful for implementation and testing of their new methods.

A sample application based on Chisio is ChiBE (Chisio BioPAX Editor) (http://sourceforge.net/projects/chibe/). The tool features user-friendly display, viewing, and editing of pathway models represented by the BioPAX format (http://biopax.org). Pathway views are rendered in a feature-rich format, and may be laid out automatically (Figure 6). Among other things, visualization of experimental data overlaid on pathway views is supported in ChiBE.

Figure 6: Sample screen-shot from ChiBE

4.1 Layout Architecture in Chisio

The basis in Chisio layout is constructed through an abstract layout class named AbstractLayout and an associated l-structure, classes LGraphManager, LGraph, LNode, and LEdge. Here an LGraphManager maintains and manages a list of LGraph instances, which in turn maintains a list of LNode s and LEdge s. The AbstractLayout class converts the given Chisio model into a generic l-structure used only for layout purposes that is destroyed at the end of layout. Individual layout algorithms extend the AbstractLayout class and run on this l-structure by overriding predefined methods. When the layout is finished, the geometry information of the l-level is transferred to Chisio model (Figure 7).

Figure 7: Layout architecture of Chisio

5 Layout Algorithms in Chisio

Chisio provides implementations of the following layout methods.

5.1 CoSE Layout

CoSE (Compound graph Spring Embedder) layout is an algorithm specifically designed for compound graphs [6]. It has been based on the traditional force-directed layout scheme with extensions to handle multi-level nesting, varying node sizes, and possibly other application-specific constraints.

An expanded node and its associated nested graph are represented as a single entity, similar to a “cart”, which can move freely in orthogonal directions (no rotations allowed). Multiple levels of nesting is modeled with smaller carts on top of larger ones. Figure 8 shows an example drawing produced by this layout algorithm.

5.2 Cluster Layout

Cluster Layout is designed to place the nodes that belong to the same group or cluster (say to refer to molecules with similar functionality or network devices in a LAN) near each other without the use of compound nodes (Figure 9). It uses CoSE layout as a subroutine to do that.

5.3 CiSE Layout

A popular way to draw clustered graphs is in a circular fashion. In other words, a circle of appropriate size is created for each cluster and the nodes in that cluster are placed around this circle trying to minimize edge crossings. Circular layout algorithms [13, 15, 9, 1] address the issue of placing nodes of a cluster nicely around a circle, minimizing the number of edge crossing and total edge lengths. However most of these algorithms do not address the issue of how the cluster graph should be laid out (i.e. how the individual circles should be placed with respect to each other to minimize crossings and lengths of inter-cluster edges). The ones that do, can not handle non-tree structures nicely. CiSE layout algorithm does not place any constraints on the structure of the cluster graph and tries to satisfy the following specific requirements:

  • Nodes in the same cluster should be placed around the same circle spaced as evenly as possible.

  • Unclustered nodes should not be placed on or overlapping any circles, but they might have neighbor nodes placed around a circle.

  • The number of (intra-cluster) edge crossings between the nodes in the same cluster should be as small as possible.

  • The number of (inter-cluster) edge crossings between the nodes in different clusters or unclustered nodes should be as small as possible.

Figure 8: Sample drawing produced by the CoSE algorithm
Figure 9: Sample drawing produced by the Cluster layout algorithm
Figure 10: Sample drawing produced by the CiSE layout algorithm; nodes on each cluster and unclustered nodes are distinctly colored.

The layout algorithm is based on the spring embedder, extending it for properly grouping nodes in the same cluster and placing them around a circle by extra constraints. The use of extra constraints is implemented by introducing additional properties to the physical model used by the spring embedder, trying to obey the basic laws of physics.

Each cluster/circle is represented by a meta-node of circular shape, on which sits a round-shaped track on the periphery. The physical entities for each member node of a cluster is assumed to be either fixed (restrained to its current location on the owner circle) or flexible to move around the track on which they sit as needed by the different steps of the algorithm. In addition, we assume a dynamic center of gravity in the middle of the bounding rectangle of the current drawing, towards which an attractive force is assumed by unclustered nodes and cluster nodes (all nodes except member nodes of a cluster).

Following are the main steps of the algorithm:

  • Step 1: In this step, we run a basic circular layout [9] for each cluster.

  • Step 2: Next we layout the cluster graph, where each node in the graph represent a cluster with the dimensions produced in Step 1, using a basic spring embedder.

  • Step 3: Here, our aim is to reposition/rotate circles according to the location of their out-nodes and inter-cluster edges incident on these nodes. However, nodes on the circles are not allowed to move individually. They are assumed to be pinned down to their circles. After this step, a draft layout of the whole graph is obtained.

  • Step 4: In this final polishing step, we obtain the final layout of the graph by trying to reduce inter-cluster edge crossing. The main difference between this step and Step 3 is that we allow nodes on circles to move on their parent circle (as well as moving with them).

Chisio features a draft-implementation of this algorithm and Figure 10 shows a sample drawing produced by this algorithm.

5.4 Others

Chisio also provides implementations for a regular spring embedder [11], a hierarchical layout method [17], and a circular layout algorithm [9].

6 Conclusion

In this paper we have presented a new open-source, free compound graph editing and layout tool, distributed under Eclipse Public License. Chisio version 1 is available at http://www.cs.bilkent.edu.tr/~ivis/chisio.html.

References

  • [1] M. Baur and U. Brandes. Crossing reduction in circular layouts. In 30th Intl. Workshop Graph-Theoretic Concepts in Computer-Science (WG ’04), LNCS 3353, pages 332–343, Berlin, 2004.
  • [2] U. Brandes, M. Eiglsperger, I. Herman, M. Himsolt, and M. S. Marshall. GraphML progress report. In Graph Drawing, pages 501–512, 2001.
  • [3] Chisio User’s and Programmer’s Guides. http://www.cs.bilkent.edu.tr/~ivis/chisio.html. i-Vis Research Group, Bilkent University, Ankara, Turkey.
  • [4] G. Di Battista, P. Eades, R. Tamassia, and I. G. Tollis. Graph Drawing, Algorithms for the Visualization of Graphs. Prentice-Hall, 1999.
  • [5] U. Dogrusoz, Q. Feng, B. Madden, M. Doorley, and A. Frick. Graph visualization toolkits. IEEE Computer Graphics and Applications, 22(1):30–37, January/February 2002.
  • [6] U. Dogrusoz, E. Giral, A. Cetintas, A. Civril, and E. Demir. A layout algorithm for undirected compound graphs. Information Sciences, 179:980–994, 2009.
  • [7] P. Eades, Q. Feng, and X. Lin. Straight-line drawing algorithms for hierarchical graphs and clustered graphs. In S. North, editor, Graph Drawing (Proc. GD ’96), volume 1190 of Lecture Notes in Computer Science, pages 113–128. Springer-Verlag, 1997.
  • [8] Graphical Editing Framework version 3.1. The Eclipse Foundation, 2007. http://www.eclipse.org/gef.
  • [9] H. He and O. Sykora. New circular drawing algorithms. In Workshop on Information Technologies - Applications and Theory (ITAT 04), 2004.
  • [10] K. Sugiyama and K. Misue. A Generic Compound Graph Visualizer/Manipulator: D-ABDUCTOR. In F. J. Brandenburg, editor, Graph Drawing (Proc. GD ’95), volume 1027 of Lecture Notes in Computer Science, pages 500–503. Springer-Verlag, 1995.
  • [11] T. Kamada and S. Kawai. An algorithm for drawing general undirected graphs. Information Processing Letters, 31(1):7–15, April 1989.
  • [12] M. Kaufmann and D. Wagner, editors. Drawing Graphs: Methods and Models, volume 2025 of Lecture Notes in Computer Science. Springer, 2001.
  • [13] E. Makinen. On circular layouts. International Journal of Computer Mathematics, 24:24–29, 1988.
  • [14] G. Sander. Layout of compound directed graphs. Technical Report A/03/96, University of Saarlandes, CS Dept., Saarbrücken, Germany, 1996.
  • [15] J. M. Six and I. G. Tollis. Circular drawings of biconnected graphs. In 1st Workshop Algorithm Engineering and Experimentation (ALENEX ’99), volume 1619 of Lecture Notes in Computer Science, pages 57–73. Springer-Verlag, 1999.
  • [16] K. Sugiyama and K. Misue. Visualization of structural information: Automatic drawing of compound digraphs. IEEE Transactions on Systems, Man and Cybernetics, 21(4):876–892, 1991.
  • [17] K. Sugiyama, S. Tagawa, and M. Toda. Methods for visual understanding of hierarchical systems. IEEE Transactions on Systems, Man, and Cybernetics, 21(2):109–125, February 1981.