Series on Software
GRAPH DRAWING AND APPLICATIONS FOR SOFTWARE AND KNOWLEDGE ENGINEERS]
• Kozo Sugiya iirflh^
World S...
112 downloads
873 Views
8MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Series on Software
GRAPH DRAWING AND APPLICATIONS FOR SOFTWARE AND KNOWLEDGE ENGINEERS]
• Kozo Sugiya iirflh^
World Scientific
This page is intentionally left blank
GRAPH DRAWING AND APPLICATIONS FOR SOFTWARE AND KNOWLEDGE ENGINEERS
SERIES ON SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING Series Editor-in-Chief S K CHANG {University of Pittsburgh, USA)
Vol. 1
Knowledge-Based Software Development for Real-Time Distributed Systems Jeffrey J.-P. Tsai and Thomas J. Weigert (Univ. Illinois at Chicago)
Vol. 2
Advances in Software Engineering and Knowledge Engineering edited by Vincenzo Ambriola (Univ. Pisa) and Genoveffa Tortora (Univ. Salerno)
Vol. 3
The Impact of CASE Technology on Software Processes edited by Daniel E. Cooke (Univ. Texas)
Vol. 4
Software Engineering and Knowledge Engineering: Trends for the Next Decade edited by W. D. Hurley (Univ. Pittsburgh)
Vol. 5
Intelligent Image Database Systems edited by S. K. Chang (Univ. Pittsburgh), E. Jungert (Swedish Defence Res. Establishment) and G. Tortora (Univ. Salerno)
Vol. 6
Object-Oriented Software: Design and Maintenance edited by Luiz F. Capretz and Miriam A. M. Capretz (Univ. Aizu, Japan)
Vol. 7
Software Visualisation edited by P. Eades (Univ. Newcastle) and K. Zhang (Macquarie Univ.)
Vol. 8
Image Databases and Multi-Media Search edited by Arnold W. M. Smeulders (Univ. Amsterdam) and Ramesh Jain (Univ. California)
Vol. 9
Advances in Distributed Multimedia Systems edited by S. K. Chang, T. F. Znati (Univ. Pittsburgh) and S. T. Vuong (Univ. British Columbia)
Vol. 10 Hybrid Parallel Execution Model for Logic-Based Specification Languages Jeffrey J.-P. Tsai and Bing Li (Univ. Illinois at Chicago)
Forthcoming titles: Acquisition of Software Engineering Knowledge edited by Robert G. Reynolds (Wayne State Univ.) Monitoring, Debugging, and Analysis of Distributed Real-Time Systems Jeffrey J.-P. Tsai, Steve J. H. Yong, R. Smith and Y. D. Bi (Univ. Illinois at Chicago)
GRAPH DRAWING AND APPLICATIONS FOR SOFTWARE AND KNOWLEDGE ENGINEERS
Kozo Sugiyama Japan Advanced institute of Science and Technology
V f e World Scientific I M
London»Sinc • Singapore • Hong Kong New Jersey •London
Published by World Scientific Publishing Co. Pte. Ltd. P O Box 128, Farrer Road, Singapore 912805 USA office: Suite IB, 1060 Main Street, River Edge, NJ 07661 UK office: 57 Shelton Street, Covent Garden, London WC2H 9HE
British Library Cataloguing-in-Publication Data A catalogue record for this book is available from the British Library.
GRAPH DRAWING AND APPLICATIONS FOR SOFTWARE AND KNOWLEDGE ENGINEERS Copyright © 2002 by World Scientific Publishing Co. Pte. Ltd. All rights reserved. This book, or parts thereof, may not be reproduced in any form or by any means, electronic or mechanical, including photocopying, recording or any information storage and retrieval system now known or to be invented, without written permission from the Publisher.
For photocopying of material in this volume, please pay a copying fee through the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, USA. In this case permission to photocopy is not required from the publisher.
ISBN 981-02-4879-2
Printed in Singapore by Mainland Press
To Sachiko, Taichiro, Mihoko, and the spirits of my parents
6—O O PREFACE
This book outlines the basic concepts, methods and applications of automatic graph drawing, which is one of the most important tools for visual interfaces. Graphs are a convenient mathematical concept for pictorially expressing the structural relationships between elements of a specific system. Some examples of graphs that we often use in research or work include: organization charts, process diagrams, system diagrams, semantic nets, entity-relationship diagrams, and flowcharts. Automatic graph drawing is a method in which a computer is used to draw a diagram automatically from the given graph, so that it is easily understandable. Therefore, it is a useful method for visualizing the structural relationships in information or systems. Although there was some early research into automatic graph drawing methods from the 1930's, research began in earnest in the 1980's with the spread of workstations and personal computers, and the realization of the importance of visual interfaces. The first international workshop on automatic graph drawing methods was held in Rome (June 1992). Even though there are many unresolved issues still remaining, the achievements of research efforts are considerable, and further developments are expected towards practical applications in such diverse fields as software engineering, knowledge engineering, project management, network design, and visual interfaces.
viii
Preface
Diagrams are particularly useful in stimulating and understanding human ideas. In the near future, it will be possible to draw the structure of information or systems as diagrams in whatever way humans want to, using computers. When we are able to redraw diagrams at will, they will become more than just the expression or communication of information, and are going to be valuable tools of thought. Thus it can be expected that visual interface tools such as CASE tools, hypertext, and groupware will become even more valuable. The first and second chapters of this book deal with the thinking behind automatic graph drawing methods, and the basic concepts. Chapter three outlines a variety of algorithms that show how research has progressed, and Chapter four gives greater detail on a few typical algorithms for those who want to know more. Chapter five discusses developments that broaden the uses of automatic graph drawing methods. Chapters six and seven introduce several simple applications, and a higher level application for creativity support. Chapter eight discusses the author's views on the future of automatic graph drawing methods. This book was completed in three stages: first the book was written in Japanese (Kozo Sugiyama: Automatic Graph Drawing Methods and Applications
Visual
Human Interfaces, The Society of Instrument and Control Engineers, 1993, 158p. It received the award as a distinguished book at the 30th anniversary competition of the Society), and then it was translated into English by Ruth Eades and then revised considerably by the author. Kozo Sugiyama Ishikawa Prefecture, November 2001
Acknowledgments This book is based on our translation project funded by the Japan Society for the Promotion of Science (JPSP). Members of the project consisted of Ms. Ruth Eades (translator), Professor Peter Eades (expert), and myself (author). This was the best team indeed! First of all I would like to thank Ms. Ruth Eades for her considerable effort to translate and Professor Peter Eades at University of Sydney for his valuable advice and help in writing and publishing this book. Special thanks to Doctor Kazuo Misue at Fujitsu Laboratories Limited for his participation in a series of studies described in this book and for supplying hardcopies of figures found in this book.
IX
This page is intentionally left blank
6—o
o CONTENTS Preface
vii
Acknowledgments
ix
Chapter 1: Introduction
1
1.1 Diagram language interfaces
1
1.2 The importance of automatic graph drawing methods
3
1.3 The aims of this book
5
1.4 The structure and terminology of this book
6
Chapter 2: A Framework for Automatic Graph Drawing Methods 2.1 Drawing objects
7 7
2.2 Drawing conventions
9
2.3 Drawing rules
11
2.4 Priorities between conventions and
rales
2.5 Drawing algorithms
15 16
Chapter 3: Outlines of Automatic Graph Drawing Methods 3.1 Tree drawing methods
19 19
xi
xii
Contents
3.2 3.3 3.4 3.5
Directed graph drawing methods Undirected graph drawing methods Other drawing methods Automatic graph drawing methods at a glance
27 37 45 48
Chapter 4: Details of Automatic Graph Drawing Methods 4.1 General tree drawing methods 4.2 General directed graph drawing methods 4.3 General undirected graph drawing methods 4.4 Generic graph drawing method by the magnetic spring model 4.5 Drawing methods for compound graphs
49 49 59 81 91 102
Chapter 5: Extensions of Automatic Graph Drawing Methods 5.1 Drawing methods using curves
127 127
5.2 Fisheye views 5.3 Dynamic drawing methods 5.4 Other extensions
134 142 145
Chapter 6: A Variety of Applications 6.1 The uses of automatic graph drawing methods 6.2 Application examples
147 147 149
Chapter 7: Applications for Creativity Support
169
7.1 7.2 7.3 7.4
What is creativity support Creativity support based on empirical creativity methods Diagrammatic idea organizer D-ABDUCTOR Evaluation of D-ABDUCTOR
170 171 179 188
Chapter 8: Conclusion
195
Bibliography
197
Index
211
0—0
INTRODUCTION
1.1 Diagram Language Interfaces Amongst visual interfaces, interfaces using diagrams are some of the most basic, and have the advantages of being widely useable, handy, approachable and easily understood. In fact, most personal computers and workstations have some sort of function for visual representation or editing, presented as a user-friendly interface. In engineering or information technology and other fields, such diagrams as system structure diagrams, plans, operations process charts, and logic circuit diagrams are often used in everyday work, and are used as a common language between designers and users. Furthermore, anyone faced with a difficult problem has had the experience of using diagrams to stimulate thought. In this way, diagrams are currently used widely for the expression and communication of information and as tools of thought. The history of diagrams is long, and since prehistoric times humans have developed many kinds of diagrams to express various matters and to stimulate thought. In many of these diagrams, units of meaning (individual elements of diagrams) and syntactic grammar (the rules of arrangement of 1
2
Graph Drawing and Applications for Software and Knowledge
Engineers
elements of diagrams) are distinct. In the same way as with sentences or mathematical equations, those that principally draw out the meaning are called diagram languages [Izuhara, Yoshida & Atsumi (86)]. Diagram languages are divided into four basic types: matrix, net, region and coordinate type. These are two-dimensional expressions of the mathematical concepts of matrix, graph, set, and coordinate respectively. In real diagrams it is common to see a composite of these basic types. Figure 1.1.1 shows some examples of the basic types and a composite type. The reader is requested to interpret meanings of each diagram.
A /
J \
B
c
p
M
o oX o X o o o oX o o
c
(b)
(a)
JDL
/TN .'Tf (d)
(e)
Figure 1.1.1. Basic and composite diagram languages: (a) Matrix,
(b) Net,
(c) Region, (d) Coordinate, and (e) A composite of net and region.
Introduction
3
Amongst these diagram languages, the structural grammar of matrix and coordinate types are relatively straightforward, and the research in representation methods is advancing. In comparison, the structural grammar and drawing methods for net and region diagram languages are relatively underdeveloped. This is despite the fact that they are very important for the visual representation of the structure of information or systems, and are commonly used in everyday life. The directed and undirected graphs dealt with in this book are of the net type, whilst the compound graphs are a composite of net and region types. Thus this book deals with automatic graph drawing methods as part of the research field of the visual representation of the structure of information and systems.
1.2 The Importance of Automatic Graph Drawing Methods Graphs are convenient mathematical concepts for abstractly expressing the relationships between elements of some kinds of systems or information. Some specific examples of graphs we commonly use in research or practice include: system diagrams, organizational charts, flowcharts and process diagrams. In this way, graphs are abstract models for the structure of the real world, and are one powerful form of expression for abstract concepts. They are widely used as fundamental models in system engineering, information engineering, software engineering and a variety of other fields such as information visualization for Internet environment [Chen (99.01)] and Bioinformatics [Schwikowski, Uetx & Fields (00), Becher & Rojas (01) etc.]. With the spread of workstations and personal computers using high performance graphics in these fields, the demand for visually manipulating and displaying graphs has greatly increased, and there is growing interest in graph visualization tools and drawing algorithms. It is well recognized through experience that when graphs are visualized and displayed as diagrams, they are easier to understand and remember. However, the usefulness of the visualization of a graph is largely strongly dependent on its layout. In other words, a good drawing gives a high possibility of quickly and accurately communicating the meaning of a diagram, but a bad drawing gives a high possibility of confusion or misunderstanding. In this way, for the visualization of graphs to function as a useful method for the communication of concepts, it is necessary to produce good diagrams; however, the generation of good diagrams is not so easy. Drawing by hand is time consuming (unless the graph is small), and doesn't produce very good results. Even with small graphs, there
4
Graph Drawing and Applications
for Software and Knowledge
Engineers
are inherent limits to drawing by hand, for example when it is necessary to repeatedly revise the diagram after it is drawn. For this reason, interest has been shown in automatic graph drawing methods using computers, but in this case it is necessary to solve the extremely difficult problems in human cognition and computational complexity (there is a combinatorial explosion). The problem of generating good diagrams is mathematically a problem of optimuml embedding of labeled graphs in a plane. It is similar to problems such as the layout of integrated circuits. However, these problems differ considerably in purpose, optimality criteria and constraints, as shown in Table 1.2.1, and algorithms for circuit layout are not suitable for generating good diagrams. The generation of good diagrams is concerned with only small-scale graphs, but in order to fulfill diverse demands related to human cognition, such as readability and aesthetics, much more careful consideration is required. In this book, these problems are called automatic graph drawing method problems based on cognitive criteria, or simply automatic graph drawing problems.
COGNITIVE VISIALIZATION Aim Object Criteria for optimality Constraints Features
CIRCUIT LAYOUT
Communication of a concept
Physical layout
Relatively small-scale graphs
Large-scale graphs
Readability
Resources (such as minimization of area)
Aesthetics
Reliability (such as minimal crossings)
Relatively flexible
Usually strict
A diversity of demands
Uniform demands
Table 1.2.1. Comparison of the generation of "good" diagrams and the layout of circuits.
To develop automatic graph drawing methods the following are necessary: • Clearly determine the layout criteria usually used by humans. • The development of algorithms that satisfy these criteria (even approximately). Forefront research into graph drawing methods has been carried out since the 1930s. However, it is more recently that research has begun in earnest, with the spread of workstations and personal computers in the 1980s and the recognition of the importance of human interfaces. From research in the theory of graph algorithms, it has been discovered that in many cases of optimization of layout criteria, an efficient method may
Introduction
5
not exist. Thus based on a theoretical standpoint, the key point is to find an effective heuristic to enable the development of actual drawing methods. It is also likely to be, in the end, a problem related to the construction of expert systems that incorporate the wisdom of designers. Currently research into theoretical and heuristic methods is developing, and there are even those that are at the stage of practical use. Heuristic methods are also being used in such things as simulations by dynamical models, simulated annealing, and genetic algorithms. In this way the field of graph drawing methods, although there are still many research questions remaining, is showing considerable results, and is expected to develop further towards practical use in the future. Once it is possible to draw good diagrams automatically, troublesome operations such as redrawing the diagram can be simplified, and it is possible to develop high-level diagram editors. It is believed that, in the future, the usefulness of automatic graph drawing methods will be further enhanced, for example to be applied in dynamic diagrammatic thought support in software engineering, hypermedia and groupware.
1.3 The Aims of This Book As mentioned above, automatic graph drawing methods is a field that is currently developing, and it is also a large field, so it would be difficult to cover the whole field in this book. In this book the author has aimed to: 1. Give an overall outline of the whole field. 2. Introduce the representative drawing methods of such graphs as trees, directed graphs, undirected graphs, and compound graphs. We aim to explain the concepts and methods as plainly as possible. 3. Make the intuitive understanding of these easier by using examples and diagrams in the explanation. 4. In the choice of drawing methods for each different class, rather than those that are theoretically strong but have limited application, give preference to those that use heuristic methods that will allow the user to always find a drawing within that class for a give graph. 5. Present a wealth of references for those readers who wish to know more. Therefore this book does not equip the reader to begin programming once they have read it, but rather aims to give the reader a good understanding of the field of automatic
6
Graph Drawing and Applications
for Software and Knowledge
Engineers
graph drawing methods. It is hoped that this book will be an incentive for readers to take an interest in this developing field and through further study develop new methods of their own.
1.4 The Structure and Terminology of This Book Chapter 2 gives the basic framework of automatic graph drawing methods, whilst Chapter 3 uses this framework to systematically explain the current state of the research in this field, giving the reader an outline of automatic graph drawing methods. Chapter 4 explains the basic drawing methods in greater detail for those readers who wish to know more, or for those who wish to actually prepare interfaces. Drawing methods for tree graphs, directed graphs, undirected graphs mixed graphs, and compound graphs are described, with greater detail given to directed and compound graphs in particular, as these are the original results of the authors. Chapter 5 discusses several extensions in which the basic drawing methods of Chapter 4 can be used in more realistic situations. First extensions of drawing methods to use curves, and the usefulness of this extension, are discussed. Next the fisheye drawing method, in which the part being viewed is emphasized whilst the part not being viewed is de-emphasized, is explained. Furthermore extensions to dynamic drawing methods such as redrawing or incremental drawing are discussed. In Chapter 6, after reviewing the uses of automatic graph drawing methods, several simple sample applications are introduced. In Chapter 7, as an example of a high level application, the author's system for diagrammatic idea support is discussed in detail. This is an attempt to develop a high capability graphical user interface for idea support, using the KJ method as background. Its concepts and current state are described and results of evaluating the system are shown. Lastly, Chapter 8 concludes with the author's thoughts on the future research questions issues of automatic graph drawing methods. It is assumed that the reader already has knowledge of the basic concepts of graph theory and algorithms, and these are not explained or defined here. For terminology not explained or defined in this book, it would be useful to consult an introductory text on graph theory or algorithms. For example: Aho, Hopcroft and Ullman, "The design and analysis of computer algorithms", Addison-Wesley 1974.
o—o
CHAPTER 2
A FRAMEWORK FOR AUTOMATIC GRAPH DRAWING METHODS
This chapter describes a fundamental framework for automatic graph drawing, and in the next chapter a variety of automatic graph drawing methods are outlined in accordance with this framework. It is necessary to consider five aspects of the framework: drawing object, drawing conventions, drawing rules, priority
relationships
and the features of drawing algorithms [Sugiyama 89b]. Drawing conventions and drawing rules can be collectively called aesthetic criteria. These aspects are all explained in what follows.
2.1
Drawing Objects
Until now, research has mainly dealt with simple graphs (that is, graphs without self loops 7
8
Graph Drawing and Applications
for Software and Knowledge
Engineers
or multiple edges) as drawing objects. These graphs are usually classified as trees, directed graphs, planar graphs and undirected graphs. Graphs in these classes only have adjacency edges, but recent research includes compound graphs, which have both adjacency and inclusion edges. Drawing methods for compound graphs are discussed in Section 4.5; in the current chapter, we describe basic drawing methods for simple graphs. It may not be impossible to devise a universal drawing algorithm for all classes of graphs, but it is more practical and more effective to consider drawing methods that take into account the graph-theoretic characteristics of each class. The classification of graphs used in this book is outlined in Figure 2.1.1.
Binary trees 1— Rooted trees n-ary trees
Trees
—
Free trees Acyclic directed graphs
Graphs
Directed graphs General directed graphs
Undirected graphs
Planar undirected graphs General undirected graphs
Compound graphs
Figure 2.1.1. A classification of graphs.
Trees are divided into rooted trees with specified roots, and free trees with no specified roots. All trees are planar, that is, they can be drawn with no edge crossings. Rooted trees represent hierarchical structures such as organization diagrams, but free trees have no specified roots and there is a high degree of freedom in their placement. Directed graphs are divided into acyclic directed graphs and general directed graphs. Acyclic directed graphs often represent a hierarchy, and they are drawn with a fixed direction of flow of all edges. In general directed graphs, the cyclic and acyclic parts have different characteristics and are often drawn in different ways.
Framework for Automatic
Graph Drawing Methods
9
Figure 2.2.1. Standard and compound coordinate systems.
Undirected graphs are the most common drawing objects. They are often divided into planar undirected graphs (or simply planar graphs) and general undirected graphs. Planar graphs form a fundamental and important class of graphs, and therefore they have received a considerable amount of attention in the literature of graph theory, graph algorithms and graph drawing.
2.2
Drawing Conventions
A drawing convention is a protocol for the placement of vertices and the routing of edges; effectively it consists of constraints that must be satisfied by a drawing.
10
Graph Drawing and Applications
for Software and Knowledge
Engineers
Drawing conventions may be divided into the placement conventions for vertices and the routing conventions for edges. Vertices are often placed according to a standard coordinate system as in Figure 2.2.1. Placement conventions for vertices corresponding to standard coordinate systems a t o / a r e shown in Table 2.2.1. It is possible to combine these standard coordinate systems to create compound coordinate systems. For example, in Figure 2.2.1, m is a coordinate system that combines b and e.
COORDINATE SYSTEM
PLACEMENT CONVENTION
a
Free placement (no constraints on placement)
b
Parallel line placement (on or between parallel lines)
c
Concentric circle placement (on or between concentric circles)
d
Radial line placement (on or between radial lines)
e
Orthogonal grid placement (on the integer grid).
f
On the intersections of a polar grid.
Table 2.2.1. Placement conventions for vertices.
ROUTING CONVENTION
TYPE
1. Straight line routing Line type
2. Polyline routing 3. Curve routing (routing with curves)
Relationship with coordinate system
4. Independent of coordinate system (Routing is independent of coordinate system lines) 5. Dependent on coordinate system (Routing is parallel to or perpendicular to coordinate system lines.)
Table 2.2.2. Routing conventions for edges.
Conventions concerning the routing of edges consist of those concerning the types of lines, and those concerning the relationship with the coordinate system. conventions for edge routing are shown in Table 2.2.2.
These
Framework for Automatic Graph Drawing Methods 11 When the placement conventions from Table 2.2.1 and the routing conventions from Table 2.2.2 are combined, we have • 6 placement conventions, • 3 line types, • 2 relationships with the coordinate system; this makes 36 possible drawing conventions formed by triples, for example: "The drawing convention for rooted trees is (parallel lines, straight
lines,
independent). " Such triples are called drawing conventions.
2.3
Drawing Rules It is extremely difficult to accurately define a "good" drawing of a graph. Words
such as "good", "nice" or "aesthetically pleasing" are often used, but these are subjective words and strictly speaking their meaning changes according to the area of application or the user's taste. However, since a graph is an extremely simple abstract representation, despite minor differences, one can enunciate several elementary and common criteria for "good" drawings, reflecting the characteristics of graphs. Batini, Furlani & Nardelli (85) investigated some 200 diagrams in actual use. They determined many types of placement criteria used by humans, and classified these criteria according to 3 axes. Using the criteria stated by Batini, Furlani & Nardelli (85) as reference, we have constructed a list of drawing rules that encompasses most of the rules of existing drawing methods. We have classified these rules on four axes as stated in Section 2.3.2. In drawing algorithms these rules are called optimization criteria or constraint conditions.
2.3.1
Static Rules and Dynamic Rules Rules for a single drawing of a graph are called static rules. Rules which apply to
a sequence of drawings, as the graph is changed and redrawn, are called dynamic rules. When one part of a drawing is corrected and redrawn, dynamic rules ensure that the relative positional relationship between diagram elements in the new drawing remains as much as possible the same as in the original diagram.
This relates to some very
interesting and important problems about how to preserve the human mental map of a
12
Graph Drawing and Applications for Software and Knowledge
Engineers
graph, and how to preserve the continuity of cognition. Dynamic rules are addressed in Chapter 5; Table 2.3.1 lists some common static rules.
2.3.2
Semantic Rules and Structural Rules Static rules are divided into semantic rules and structural rules. Semantic rules
art placement and routing rules derived from the meaning of vertices or edges; for example, the importance of a vertex or the strength of the relationship of an edge. They are given by the user, or automatically derived from information in the labels on the vertices or edges. Some important semantic rules are shown in Table 2.3.1. As well as those listed in the table, some rules specify the placement of or the relationships between a specified set of vertices, or specify the routing of or the relationships between a specified set of edges. Structural rules are placement or routing rules concerned only with the structural information (in other words, graph-theoretic features) of a given graph. The diversity of demands of human cognition leads to a wide variety of such rules. Table 2.3.1 lists a number of structural rules. Drawing rules can be classified using the following axes.
A classification
according to these 4 axes is noted in the right hand column of Table 2.3.1. (1) Whether the solution to a rule can be obtained uniquely (U), or not (N). (2) Whether the rule is topological (T) (specifying only the placement relationship between elements), shape-oriented (S) (specifying the direction also), or metric (M) (specifying distances as well). (3) Whether the rule applies globally, to the whole drawing (G), or locally, only to a part of the drawing (L). (4) Whether the rule is hierarchical (H), or flat (F), or both (B). The following cautionary remarks are necessary concerning Table 2.3.1: the actual meaning of each rule differs slightly between drawing objects, drawing conventions, and algorithms, and the four axes are not completely independent. To help readers understand each rule instantly, simple examples of better and worse layouts in terms of each rule are shown in Figure 2.3.1.
Framework for Automatic
TYPE
Ssvn antic Rules
Structural Rules
Graph Drawing Methods
CLASSIFICATION AXES
DRAWING RULES 1. A specified sequence of vertices is placed on a straight line.
USLB
2. A specified sequence of vertices is placed on a specified curve.
USLB
3. Vertices are drawn with a specified size.
UMLB
4. A specified set of vertices is placed at the boundary of the drawing.
NTLB
5. A specified set of vertices are drawn near to each other.
NTLB
6. A specified set of vertices is placed near the center.
NTLB
7. An upper limit to the number of edge crossings is specified.
NTLB
8. An upper limit to the number of edge bends is specified.
NSLF
9. The lengths of specified edge have a specified upper limit.
NMLF
1. Vertices of high degree are placed near the center.
UTLB
2. Isomorphic subgraphs are always drawn identically.
USGB
3. The vertices of isomorphic subgraphs are always placed identically. 4. Hierarchical structure is clearly shown vertically or horizontally.
USGB NTGH
5. The number of edge crossings is minimized.
NTGB
6. The ratio of length to breadth of the drawing area is balanced.
NSGB
7. Symmetry is clearly shown.
NSGB
8. The number of edge bends is minimized (using straight lines wherever possible). 9. The number of faces drawn as convex polygons is maximised.
NSGB NSLH
10. Children of a vertex are symmetrically placed.
NMGH
11. Crossings among outlines are eliminated, (see Figure 3.2.7)
NMGB
12. The density of the placement and the routing is uniform.
NMGB
13. The drawing area is minimized.
NMGB
14. The total edge length is minimized.
NMGB
15. The difference in sizes of vertices is minimized.
NMGF
16. The average length of edges is minimized.
NMGF
17. The difference between the length of contours of vertices and the length of edges is maximized. 18. The differences in edge lengths is minimized.
NMGF NMGF
19. The length of the longest edge is minimized.
NMLF
20. Vertices on the boundary are placed with uniform density.
NMLF
Table 2.3.1.
Drawing
rules.
13
14
Graph Drawing and Applications
for Software and Knowledge
BASIC RULES
STRUCTURAL RULES
Avoid overlapping among vertices
W
O
"c/K
Place childrei symmetrically
Avoid crossings among outlines
o
0
o o
Uniform placement
0X0
OOQOO
OpO
o Minimize drawing area
jo
Place specified vertices near the center
U
Minimize edge bends
Draw faces as convex polygons
o ^ °
Minimize total edge length
STRUCTURAL RULES Central placement of high degree vertices
/ >
* &
© ^ ©: Q ...o.©i
Place specified vertices at the boundary >*
n
Symmetrical layout
^
SEMANTIC RULES
O @
Hierarchical layout
Minimize edge crossings
Avoid overlapping among vertices and edges
° ^
Engineers
Identical layout orphi of isomorphic subgraphs
•¥°
K^>
()—HQ ^-^ y / T Ol Q ^& ^ j y ^
0"Jt>
Minimize difference in sizes of vertices
n
Q
-0 -"
Minimize average length
0 GsJ^O
ofed es
O^Q
8
Figure 2.3.1. Simple examples of better (right) and worse (left) layouts.
Framework for Automatic
Graph Drawing Methods
15
2.4 Priorities Between Conventions and Rules The above convention and rules are not independent of each other, and there are competitive relationships and dependency relationships between them. For example, Figure 2.4.1 illustrates a competitive relationship between the "minimization of edge crossings " rule and the "clearly show symmetry" rule. In (a) there are no crossings but symmetry except horizontal is lost, whilst in (b) symmetry is clear but there are five edge crossings [Kamada (88)]. The choice between these 2 drawings depends on the purpose of the drawing, and cannot be done indiscriminately.
In the development of graph
drawing algorithms it is necessary to set priorities between convention and rules.
(a) Figure 2.4.1.
(b) An example of a competitive relationship between drawing rules:
(a) symmetry but no crossings, (b) symmetry clearly shown, with 5 crossings [Kamada (88)].
Priority relationships are individually set for each algorithm or application, but it is also interesting to consider general priority relationships concerning conventions and rules. This can be used as a guide when building drawing algorithms, and as criteria for comparison of the priority relationships for convention and rules of existing drawing algorithms. It is possible to consider several priority relationships that generally materialize. For example, for drawing convention and drawing rules, which is generally higher in priority order? From their definition drawing convention must always be fulfilled, whilst
16
Graph Drawing and Applications for Software and Knowledge
Engineers
drawing rules should be fulfilled as much as possible, so in general "drawing conventions > drawing rules". Here A>B means that A has a higher degree of priority than B. From experience it can be seen that global rules must be given preference over local rules. Some general priorities that can be determined psychologically or experimentally (even if only approximately) are shown in Table 2.4.1. The drawing rules in Table 2.3.1 are sorted according to these general priorities.
1.
Placement conventions
>
Routing conventions
2.
Drawing conventions
Drawing rules
Non-uniqueness (N)
3.
Semantic rules
> >
4.
Uniqueness (U)
>
5.
Topological rules (T)
>
Shape rules (S)
6.
Global rules (G)
>
Local rules (L)
7.
Hierarchical rules (H)
>
Common rules (B)
Structural rules
>
Metric rules (M)
>
Flat rules (F)
Table 2.4.1. General priorities between conventions and rules.
2.5 Drawing Algorithms We have defined drawing conventions to be constraints that must be fulfilled, and drawing rules to be goals of optimization problems. With these definitions, we can enunciate our general framework: a graph drawing algorithm consecutively solves a number of constrained optimization problems, in the priority order. The general priorities in Table 2.4.1 are useful for designing an ordered strategy for fulfilling drawing rules. Semantic rules are often stated as constraints, and the core of a graph drawing algorithm is a method for achieving the structural rules. The most important priority is relationship 5 in Table 2.4.1. An appropriate general strategy is: 1. In order to decide the relative position relationships between diagram elements, the topological rules are fulfilled. 2. Next the shape rules, concerning the ratio of length to breadth and the directional relationships between diagram elements, are fulfilled. 3. Lastly, in order to determine the lengths or distances the metric rules are fulfilled.
Framework for Automatic
Graph Drawing Methods
17
For example, the general directed graph drawing algorithms and general undirected graph drawing algorithms presented in Chapter 4 adopt this strategy. Apart from trees or planar graphs, there are few efficient methods to fulfill rules, and it is often difficult to obtain an optimal solution. Therefore various heuristic methods have been developed. There has been research into the performance of heuristics used in heuristic methods, and there are some that have theoretical guarantees. Algorithms can be divided into the following types: (a) Algorithms that use graph theory and graph algorithms. (b) Heuristic algorithms. (c) Those that use force directed models (such as the ring and spring model), thermodynamics models (simulated annealing), bioinformatics model (genetic algorithm) and other simulations. (d) Hybrid algorithms combining different types of algorithms mentioned above. (e) AI algorithms such as " layout by example." A great variety of graph drawing methods have been proposed and investigated. Although these drawing methods may not have been developed according to the framework described here, this framework can help to understand the characteristics of graph drawing problems and the current state of research.
In the next chapter this
framework is used to describe existing drawing methods. At the end of the next chapter, there is a table showing how the features of typical graph drawing methods fit into our framework.
This page is intentionally left blank
o—o
OUTLINES OF AUTOMATIC GRAPH DRAWING METHODS In this chapter we outline some typical drawing methods. The principal aim is to explain the various styles of drawing that are currently possible; this simplifies the description of technical problems. In order to understand the features of each drawing method, explanatory figures and reference documents are used as much as possible. Readers with particular requirements should be able to find a drawing method suitable to their problem by reading this chapter. For technical details, read Chapter 4 or one of the reference documents introduced. Most of the methods described in this chapter can be found in Walker (90), Eades (91), Sugiyama (88b, 89b), Eades & Sugiyama (90), Eades & Tamassia (89), Fruchterman & Reingold (91), Di Battista, Eades, Tamassia & Tollis (94), and Herman, Melancon & Marshall(OO).
3.1
Tree Drawing Methods Trees are divided into rooted trees, with specified roots, and free trees, with no root 19
20
Graph Drawing and Applications for Software and Knowledge Engineers
specified. Rooted trees are also often divided into those limited to less than 2 child vertices, or binary trees, and those with no such limitation, or general trees. 3.1.1 Rooted Trees Rooted trees are often used to express hierarchical structures such as family trees, organization charts, search trees, decision trees and so on. The drawing convention {parallel lines, straight lines, independent) is appropriate for drawing rooted trees. Further, the following are used (see Figure 3.1.1): 1. Place the root at the highest level, and in order place the descendants on lower parallel lines {layering). 2. Do not allow edges to cross {no crossing). 3. In each layer, separate neighboring vertices by at least distance d {least separation). 4. Place parent vertices at the median center of child vertices {balance). 5. Minimize the width of the drawing {minimum width). 6. Draw isomorphic subtrees congruently, and axially isomorphic ones in a mirror image {identical). Drawing rules 1 to 3 are easily attain and so they are used in all. Various algorithms have been suggested for rules 4 to 6.
layer 1
layer 2
layer 3
layer 4 symmetry J J
'f , ,. . * least distance
minimum width Figure 3.1.1. Drawing of a rooted tree.
Outlines of Automatic
Graph Drawing Methods
21
Binary Trees There has been a great deal of research into drawing methods of binary trees. In particular, ordered binary trees, where the left and right children are distinguished, have received a considerable amount of attention. In this case, the order of siblings within each layer is given. Wetherell & Shannon (79) proposed two algorithms (I and II). The difference between them is in the priority of the "balance" and "least width" rules above. In algorithm I "balance" is always achieved but "least width" is not always possible. Algorithm II achieves "least width" by weakening the conditions for "balance" (so that parent vertices are to be placed between child vertices, but not necessarily centered). Vaucher (80) independently proposed a similar algorithm to achieve "balance" and "least width". The algorithm proposed by Reingold & Tilford (81) is an improved version of Wetherell & Shannon's algorithm. This algorithm introduces the "identical drawing" rule, and gives this rule higher priority order than the "least width" rule. With this method, a symmetrical drawing can be achieved for a symmetrical tree. Supowit & Reingold (83) have investigated the smallest width drawing problem of binary graphs with consideration to the drawing rules of "balance", "least width" and "identical drawing". They model the problem using linear programming, and show that it can be solved in polynomial time; however, it can produce a drawing that is wider than necessary. They also show that if the orthogonal grid convention is imposed, then the problem becomes NP-hard. Note that none of these drawing methods for binary trees have been able to completely achieve the drawing rules of "balance", "least width" and "identical drawing". General Trees General trees are ordered «-ary trees: the number of children for each vertex is at most n, and the left-right order of the children is specified. Walker (90) investigated extensions of binary tree drawing algorithms to general trees.
He proposed a linear time algorithm for arbitrary general trees that would
completely fulfill the drawing rules (1) to (6) and draw within the smallest necessary width. The algorithm is discussed in detail in Section 4.1. Other Convention The convention for drawing a rooted tree as shown in Figure 3.1.1 is called the
22
Graph Drawing and Applications for Software and Knowledge
Engineers
a
1
1
1
1
1 e
1
c
b
d
1
f (a) horizontal format a
b i
r e •-
1 f
f
(b) vertical format
(c) tip-over convention
1-
1 * 1 C r 1
1
1
1
H 1
r
b
f
L 1
1 s \
1 " 1 1 r 1
—L_fJ
£T
^
1
T
1 k7- 1 1 1
1 '' 1\ 1
1 ,• 1
1 m 1 1 ™ 1
' \
1 nn 1
1 (a) tip-over convention
1 1" 1 I e 1
J
1 hI, 1 1 \
\
hJ
Figure 3.1.2. Tow formats and the tip-over convention [Lin (93)].
j
1^ 1L^
1^ 1 1A i 1i1
- 1 \ 'i
(b) inclusion convention
Figure 3.1.3. Tow conventions [Lin (93)].
1
Outlines of Automatic
Graph Drawing Methods
23
classical convention. The classical convention demands that vertices of the same layer share a horizontal line, so that if there are many vertices of the same layer, a large width is required. To overcome this shortcoming other types are proposed by Lin (93): the tip-over convention and the inclusion convention.
The tip-over convention combines the
horizontal and vertical formats presented in Figure 3.1.2. The inclusion convention use a positional relation containment between the boxes between the boxes to represent the geometric structural relation between a parent and its children, as in Figure 3.1.3. In both conventions minimizing the size of drawing is considered; see Lin (93).
3.1.2 Free Trees A free tree has no specified root, and is not intrinsically hierarchical. They often have a layout other than the parallel lines layout, and it is common for vertices to be placed independently of coordinate system. Straight line routing is used. The drawing rules are as follows: 1. Edges are not allowed to cross {no crossing) 2. The placement of vertices avoids clustering (smallest separation). 3. Edge lengths are approximately equal (uniform edge lengths). 4. Where there is symmetry, this must be clearly shown (symmetry). Although there is not a great deal of research into drawing free trees for their own sake, there is interest in drawing methods of free trees because this can be the foundation of drawing methods for general undirected graphs. As shown in Figure 3.1.4, a connected undirected graph may be split into 2-connected components, and a drawing algorithm for free trees is useful for connecting the drawings of each 2-connected element. By slightly amending algorithms for rooted trees mentioned previously, concentric circle layout can be carried out. That is, one vertex is chosen as a root, and placed in the center of the drawing area, and the other vertices are placed on concentric circles with the root as a center. The sub-tree below a vertex is placed in a fan-shaped wedge (see Figure 3.1.5). There are several variations of this algorithm, depending on the method of choosing the root, the diameter of the circles, the size of the fan-shaped wedge and so on. Usually the graph-theoretic center (the one or two vertices for which the length of a longest path to a leaf is minimized) is chosen as the root.
24
Graph Drawing and Applications
for Software and Knowledge
Engineers
A \.
N
i
c
B
K—T • — - »y-
a
' i
p
1
(a)
(b)
(c)
Figure 3.1.4. Connected undirected graphs and free trees: (a) a connected graph, (b) its 2 - connected elements, and (c) a free tree [Eades (91)].
Eades (91) presented a linear tree drawing algorithm using concentric circle layout and proved that the drawing rule of no crossing will always be achieved, and sought to bound the ratio of lengths of the largest edge and the shortest edge, for uniform edge length. As a modification of that algorithm, he proposed a linear time algorithm that placed all the leaves on the outermost concentric circle. Also, Manning & Atallah (89) proposed an algorithm for concentric circle layout that clearly shows symmetry. Other similar methods include Bernard (81), Read (86), and Esposito (88). A number of methods that simulate mechanical or thermodynamical systems may be used to draw graphs according to the principle that the system seeks a stable condition, in which energy is locally minimized.
These methods are known as force-directed
methods. The forces acting between vertices are attractive when neighboring vertices are
Outlines of Automatic
fan-shaped
Graph Drawing Methods
25
wedge
Figure 3.1.5. Concentric circle drawing of a free tree [Eades (91)].
far apart, repulsive when they are too close together, and again repulsive when they are not neighbors. There are several different models, varying with the assignment of attractive and repulsive forces: Eades (84), Kamada & Kawai (89), Fuchterman & Reingold (91). and Davidson & Harel (96). These methods were originally devised for drawing general undirected graphs, so they are outlined in Section 3.3 and detailed in Sections 4.3 and 4.4. The problem with drawing trees using force-directed methods is that depending on the initial placement of vertices, it is not always possible to attain no crossings. There are several other drawing methods for free trees. H-tree drawing is a method of orthogonal grid layout for binary trees, and it is particularly for complete binary trees as it produces an orderly drawing as shown by Figure 3.1.6 (a). Methods presented by Eades (91) show that even for incomplete binary trees, a drawing such as Figure 3.1.6 (b) can be attained. The garden drawing method is a modification of the orthogonal grid layout, in which the longest path is drawn as a horizontal line, and each sub-tree is drawn near this line (see Figure 3.1.7). The name comes from the fact that the resulting picture looks like plants growing in a garden.
26
Graph Drawing and Applications for Software and Knowledge Engineers
h
f 1,
i
•
1 1
i
i
11
•
T
?
1>
,,
1
1
•
•
1 i
i i
•
1
1 i
1
i>
•
X
•
1
•
i
•
1 .
i
1 1
•
1
•
1.
II
•
T
T
*
•
i i
ii
1
•
T
1 1
,
•
'' •
•
1 1
T
,
T 1
1 1
11
•
" .(
•
1 ,
1 1 i
•
•
•
1 i
i i
• 1
1
m
1
1 •
•
1
» - •
'
(b) a general binary tree Figure 3.1.6. H-tree drawing method [Eades (91)].
Outlines of Automatic
u
Graph Drawing Methods
27
LU
Figure 3.1.7. Garden drawing method [Eades (91)].
3.2 Directed Graph Drawing Methods Drawing methods for directed graphs use two important classifications. These are the existence of cycles and the possibility of planar drawing. Graphs with no cycles are called acyclic directed graphs, and those with cycles are called general directed graphs. For drawing directed graphs, it is often convenient if the direction of all the edges flow in one direction (for example top to bottom, or left to right). This is called monotone drawing, and it is only possible with acyclic directed graphs. Also, for general directed graphs in which a monotone drawing is impossible, there is interest in drawing so that the number of edges that appear against the flow of direction of the majority of edges is minimized. There are two important problems with planar drawing. The first is concerned with planar monotone drawings of acyclic directed graphs. There has been a great deal of theoretical research into this problem recently, with many results. The second problem is concerned with planar drawings of the underlying undirected graph of a general directed graph. This is the same as the problem of planar drawings of undirected graphs, and is discussed in Section 3.3.
3.2.1
Acyclic Directed Graphs Acyclic directed graphs are widely used to express hierarchical structures. PERT
graphs, ISA hierarchies, subroutine call graphs, and Hasse diagrams are all examples. These graphs are usually drawn in a monotone fashion, that is, all edges follow the same
28
Graph Drawing and Applications for Software and Knowledge
direction.
Engineers
For general directed graphs, one should compute a minimum size set of
feedback edges; the direction of these is reversed, so changing it into a acyclic directed graph. Thus drawing methods for acyclic directed graphs are also important as drawing methods for general directed graphs. Upward (Downward) Drawing A planar drawing of a directed graph is an upward (downward) drawing if all edges are drawn as curves that monotonically increase (decrease) in a vertical direction. Of course if a directed graph has an upward (downward) drawing, then it is acyclic.
i p«-- - t — f — i - — - « - -
+—+-
+-—^i-/-i—~^H+•—< i
''
' *t r^^-— X
/
\
'
\
x ' '
(b)
(a)
(c)
Figure 3.2.1. Three types of upward drawing: (a) free upward drawing, (b) orthogonal grid upward drawing, and (c) parallel line upward drawing [Di Battista et al (88)].
Di Battista & Tamassia (88) proposed an efficient algorithm for producing three types of upward drawing of acyclic directed graphs. Figure 3.2.1 shows the features of these drawings schematically.
As drawing conventions, Figure 3.2.1(a) uses (free,
Outlines of Automatic
straight
lines,
independent),
independent),
Figure
Graph Drawing Methods
3.2.1(b) uses {orthogonal
grid,
and Figure 3.2.1(c) uses {parallel lines, straight lines,
29
polylines, dependent).
Algorithms for expressing symmetry and isomorphic shape subgraphs in planar upward drawing are presented in Di Battista, Tamassia & Tollis (89). Bertolazzi, Di Battista, Liotta & Mannino (94) give an efficient algorithm for determining whether 3-connected directed graphs with planar upward drawings. Hierarchical Drawing The most frequently used monotone drawing is hierarchical drawing.
As with
rooted trees, vertices and edge bends are placed on horizontal lines called layers drawn at regular intervals (see Figure 3.2.2). Directed graphs in which vertices are assigned to layers are called hierarchical graphs. The drawing conventions {parallel lines, straight lines, independent), alternatively {parallel lines, polylines, independent) are used, and the usual drawing rules include the following: 1. Edge crossings are avoided {minimization of edge crossings) 2. On each layer, neighboring vertices are separated by at least a certain distance {minimum separation). 3. Parents are placed at the barycenter of their children {balance). 4. Neighboring vertices in the immediately upper (or lower) layer are placed nearby {proximity).
layer 1 layer 2 layer 3 layer 4 layer 5 layer 6 layer 7 layer 8 layer 9
Figure 3.2.2.
Hierarchical
drawing.
30
Graph Drawing and Applications
for Software and Knowledge
Engineers
The minimization of the number of edge crossings is a basic drawing rule for hierarchical drawing. An efficient algorithm for producing planar hierarchical drawings of hierarchical graphs can be seen in Di Battista & Nardelli (86, 89). Sugiyama, Tagawa & Toda (79, 81) and Sugiyama (82, 87) proposed the basic method (called STT method or Sugiyama method) for hierarchical drawing. This is a method for hierarchically drawing general directed graphs, and when there are cycles, the strongly connected component is substituted for the representative vertex, or the feedback edge is sought and directed in the opposite direction, turning it into a hierarchical graph. The algorithm consists of 4 steps: layering, normalization, vertex order determination, vertex location determination (see Figure 3.2.3). Normalization allows the simplification of the problem by changing the original edge routing problem into a placement problem. Even with this simplification, if each step is formalized as an optimization problem, then the minimum feedback arc set problem (NP complete), the edge-crossings minimization problem (NP-complete), and the quadratic programming problem must be solved, and heuristic methods such as the barycentric method for the reduction of the number of edge crossings, or the priority method for the determination of coordinates, have been developed. Variations of this approach can be found in: Carpano (80), Rowe, Davis, Messinger, Meyer, Spirakis & Tuan (87), Gansner, North & Vo (88), Messinger (88), Itumi & Kogure (88), and Sander (96). Carpano (80) developed an iterative method for the reduction of crossings in 2-layer graphs, and applied it to the hierarchical drawing of directed graphs. This was extended and applied also to &-layer graphs. The main feature of this method is that all edges are routed as straight lines (see Figure 3.2.4). Rowe et al. (87) improved the STT method and developed a browser for directed graphs. Changes can be seen in such areas as the way that the smallest feedback edge set is sought, and layering is formally attained, and the routing convention where the minimization of the number of bends is emphasized and diagonal line routing is considered (see Figure 3.2.5). This method is aimed at applications in databases, and diagrams of references between modules in large scale computer programs and so on. Gansner, North & Vo (88) amended the following points of the STT method. They improved the efficiency of the layering algorithm, adopted the median method (Eades & Wormald (86)) instead of the barycentric method for determining the order, and a linear programming method instead of the quadratic programming method for determining coordinates. They also developed a drawing tool called DAG, with postscript output, and B-spline edges, and so on.
Outlines of Automatic Graph Drawing Methods 31 b
(b)
(a)
c
b
c
a
b
a
I A4s h* i •
(c)
•_/'
(d)
Figure 3.2.3. Steps of hierarchical drawing, (a) given directed graph, (b) layering and normalization, (c) order determination, (d) coordinate determination.
Figure 3.2.4. Hierarchical drawing with straight line routing [Carpono (80)].
32
Graph Drawing and Applications for Software and Knowledge
Engineers
Figure 3.2.5. Hierarchical drawing in which the number of bends has been reduced (this is the same graph as in Figure 3.2.2) [Rowe et al (87)].
Messinger (88) proposed a divide and conquer method aimed at speeding up the STT method. There are 3 steps to this method (see Figure 3.2.6): 1. Partition the large graph into subgraphs. 2. Compute the drawing for each subgraph using the STT method. 3. Now consider the edges between subgraphs. Determine the overall layout, and route the edges between subgraphs. The smaller the subgraphs, the less machine time, but the more difficult the composition (the third step) becomes. In this method there is not enough consideration given to the composition step. One possible solution to this problem is to use the drawing method for compound graphs discussed in Chapter 4. For hierarchical drawing, Itumi & Kogure (88) proposed a new drawing rule to add to the structural rules. This new rule is elimination of crossing among outlines, and they proposed an algorithm to achieve this. In Figure 3.2.7 (a) the set of descendants of vertex a and the set of descendants of vertex b intersects in the dotted line area, making it difficult to see. The elimination of crossing among outlines eliminates this area of intersection, as shown in Figure 3.2.7 (b). The STT method, its modifications and extensions are discussed in greater detail in Chapter 4. The minimization of the number of crossings in a hierarchical graph, even if it is a 2-layer graph and the position of the vertices of the first layer are fixed, is NP-complete
Outlines of Automatic
Graph Drawing Methods
33
(see Eades, McKay & Wormald (86)). Other heuristic methods for the minimization of the number of crossings in hierarchical graphs can be found in Warfield (77), Eades & Kelly (86), Makinen (88a, 88b), and Catarci (88).
E
m
(b)
(c)
(d)
Figure 3.2.6. Hierarchical drawing using the Divide and Conquer Method, (a) initial graph (b) subgraphs (c) metagraph (d) final drawing [Messinger (88)].
34
Graph Drawing and Applications for Software and Knowledge
crossing among outlines (a)
Engineers
(b)
Figure 3.2.7. Hierarchical drawing without crossing among outlines [Itumi et al (88)].
The concentric circle drawing of hierarchical graphs is investigated by Carpano (80) and Reggiani & Marchetti (88). They proposed a method for drawing a hierarchical graph on concentric circles, using coordinate type c of Figure 2.2.1. Reggiani et al. considered the "isomorphic placement of vertices" and the "minimization of the number of crossings" rules. They have reported examples of remarkably increased possibility compared to parallel line placement. Figure 3.2.8 shows a parallel line placement and a concentric circle placement of the same 2-layer graph.
1 2
a
b
3
4
5
6
7
c
d
e
f
g
(a)
h
(b)
Figure 3.2.8. Concentric circle drawing of hierarchical graph ((a) and (b) are the same directed graph) [Reggiani et al (88)].
Outlines of Automatic
Graph Drawing Methods
35
In (a) the order of the vertices of the lower layer is fixed, and the order of the vertices of the top layer is arranged for the smallest number of crossings - 48. By comparison, (b) show the concentric circle layout drawing with no crossings. Problems arise when this method is applied to hierarchical graphs of more levels, but it can be a useful method in some applications. 3.2.2
General Directed Graphs There are 3 important drawing methods for general directed graphs, that is, directed
graphs with cycles. The first and most common method is to reduce the general directed graph to a hierarchical graph and apply a hierarchical drawing method. Figure 3.2.9 shows this transformation. (a) The initial directed graph is given. (b) The cycles are eliminated by reversing a small number of edges. (c) The cycles (strongly connected components) are condensed. (d) A multi-layer layout is used.
1
1
2
' % *m s« n,
1, ..., m-l) if m AL(w)) then AL(w):-
AL(v);
end until (AL does not change any more); LA := max wew AL{w)
{=TL(W)}
end; It should be noted here that a given compound graph can not always have a compound layer assignment. This is due to the cyclical nature of the graph and the
110
Graph Drawing and Applications
for Software and Knowledge
Engineers
convention nested hierarchy. Only when a given compound graph is compound layer assignment possible
(or CLA-possible),
function LA terminates and by applying
procedure LLA for arguments G and {root}, compound layers of every vertex of G can be assigned, where CL(Pa(root)) = ( ). When a given graph is CLA-possible, the time complexity of the function LA is 0(|W|3x|,4|) because the part of repeat-until in LA takes | W\ repetitions at most. If a topological sort is applied to order relationships ( which respectively express order relationships < e and <e in (4.5.9) and (4.5.10). In the replacement if edges between the same pair of vertices are duplicated, then reducing rules (&) such as (i) —> = —> & —>, (ii) —» = —> & =>, and (iii) => = =>& z=> are applied to determine a type of a resulting edge. This new graph is called a derived graph of G. Notice here that every adjacency edge in the derived graph links two vertices whose depth is identical. An adjacency edge e in the derived graph is called an original edge if e e A, and a derived edge if e g A. For example the derived graph of the compound graph presented in Figure 4.5.2(c) is shown in Figure 4.5.6(a) where edges marked with asterisk(«) are derived edges. In the adjacency directed graph of the derived graph, in order to eliminate all the cycles, as few edges as possible are removed.
At this time the following rules are
obeyed: (i) edge => is removed before edge —>, and (ii) the derived edges are removed first. The compound graph obtained through this process from the derived graph is called the acyclic derived graph (see Figure 4.5.6(b)). In the derived graph in Figure 4.5.6, {b, c} and {g, i} are strongly connected components, so according to (ii) edge (c, b) is removed, and edge (;', g) is randomly chosen and removed. A compound graph with order relationships in an acyclic derived graph is CLApossible, so compound layers of each vertex of the compound graph is assigned easily using Compound Layer Assignment Algorithm. . For each adjacency edge (v, w) of G, it is checked that CL(v) < CL(w), and if not then the direction of that edge is reversed. These edges are called the feedback edges of a compound graph.
The compound graph obtained in this way is called the assigned
compound graph (see Figure 4.5.6(c)).
Next, steps II-IV are applied to this layered
compound graph, and in the final drawing the directions of the feedback edges are returned to their original direction, and these are drawn as upward edges.
Details of Automatic
Graph Drawing Methods
111
In the compound graph in Figure 4.5.2(c), the directions of adjacency edges (g, b) and (/, n) are CL(g) = (1,2,2) > CL(b) = (1,1) and CL(i) = (1,2,3) > CL{n) = (1,2,2,2) so these are reversed to (b, g) and (n, i). The layered compound graph thus obtained is shown in Figure 4.5.6(c). It is noted that reversed adjacency edge (g, b) is due to the cyclic nature (or compound cycles) and while reversed adjacency edge (/, n) is due to the convention nested hierarchy.
(1.1.2.1)
(c) layered compound graph (compare with Figure 4.5.2(c)) Figure 4.5.6. Derived graph, acyclic derived graph, and assigned compound graph.
112
4.5.3
Graph Drawing and Applications for Software and Knowledge
Engineers
Normalization of the Assignment Compound Graph (Step II) For assigned compound graph G = (V, F, A, CL), adjacency edges (v,w) in A are
said to be normal when CL (Pa(v)) = CL (Pa(w))
(4.5.11)
tail {CL (v)) - tail (CL(w)) - 1.
(4.5.12)
If all the adjacency edges of a layered compound graph G are normal, then G is called a normal compound graph. In Figure 4.5.3 edges (b, c), (d, e), (k, T) and (m, n) are normal, and note that (J, I) is also normal. All the other edges are not normal. The normalization algorithm takes the assigned compound graph and converts it into a normal compound graph. In the algorithm, all non-normal adjacency edges are replaced with dummy vertices, dummy inclusion edges, and dummy adjacency
edges,
making a normal compound graph. For example the adjacency edges (b, g) and (h, m) in Figure 4.5.6(c) are replaced in Figure 4.5.7 (a) and (b) with the dummy compound graph made up of dummy vertices, dummy inclusion edges, and dummy adjacency edges. The width of the dummy vertices is 0, so the actual drawing is as shown in (a') and (b').
(i) (ii) (ii i . i ) |
a b
(1.1.2)
(112.1) J (i.i.: 12~2)~|
(1.2)"
c
• 0
(1.2.2)
•
\ \p..\ \
(1.2.1)
s
g
(1.2^1)1 (1.2.2.2) J (1.2.3)
(a)
(a')
(b)
Figure 4.5.7. The process of normalization.
(b1)
Details of Automatic
Graph Drawing Methods
113
4.5.4 Determination of Vertex Order in Each Compound Layer (Step III) In a normal compound graph, local hierarchy graphs are defined for each vertex. The steps for order determination are applied recursively to the local hierarchy graphs whilst following the inclusion tree from the root to leaves. The order of vertices within each local hierarchy graph is decided by rearranging the vertices to achieve, wherever possible, the drawing rules of closeness, minimization of adjacency edge
crossings,
minimization of edge vertex crossings. The problem of minimizing edge crossings is NPcomplete [Johnson (82)], so heuristic methods have been developed.
(a)
(2,0)
(0,2) (c)
Figure 4.5.8. Ordered compound graph (a), and the local multilayer graph (b) and simple local multilayer graph (c) of vertex v.
Local Hierarchy Graphs In the normal compound graph G = (V,F,A,
CL), the child set Ch(v) of each vertex
v is split into subsets (called layers) according to their compound layers. When the
114
Graph Drawing and Applications for Software and Knowledge
Engineers
vertices belonging to each layer of the child sets of each vertex of G are arranged in the order o; this graph is called the ordered compound graph G(a) = (V, F, A, CL, d). For example Figure 4.5.8(a) shows the ordered compound graph. Here G ~ ( r ( « i ( ("2), ("3 ( ( ), ("4)) ) ), V ( (Vi, V 2 ), (V3 ( (V 6 ), (V 9 ) ), V4 ( ( ) , (Vio) ) , V5 ( (V7, Vg), (Vi l) ) ) ) , W\ ( ( w 3 ) , (VC5), (W 7 ) ) , W2 ( (W 4 ), (W 6 ), (W 8 ) ) ) ) ) .
For each vertex v of ordered compound graph G that is not a leaf, the local multilayer graph H(v) - (Ch(v), A(v), h(v), o(v)) is defined. The graph H{v) is similar to the multi-layer graph defined in 4.2.4, but differs on the following points. (1) Each vertex w has 2 attribute values X, p. Here X (or p) is the number of adjacency edges that the descendants of vertex w join with the descendents of vertices to the left (or right) of v. (2) There are also adjacency edges between vertices in a same layer and for this case a multiple degree CO is defined. For example Figure 4.5.8(b) shows the local multi-layer graph corresponding to vertex v in the ordered compound graph (a). Because adjacency edges (w2, V3) and (v6, W4) exist between the descendants of vertex v3 and the descendants of vertex u\ to the left of v, and no adjacency edges exist between the descendants of V3 and the descendants of the vertices to the right of v, the attribute values (A, p) of vertex v3 is (2, 0). Also because there are 2 adjacency edges from the descendants of V5 to the descendants of V4, the multiple degree 0, ws > 0, and wm > 0. Examples of each importance are: Is(x) = - depth(x): the depth of vertex x in a tree Im(x) - (the number of characters in the label of vertex x) Iv(x; y\, ..., y„) = - minD(x;y j ): the distance from the closest viewpoint yt to vertex x. The total importance extends Furnas' function of degree of interest into multiple viewpoints function, and distinguishes between structural importance and semantic importance. This total importance shall be utilized for the abridgement fisheye mapping later.
5.2.2
Fisheye mappings for compound graphs There are two main categories of fisheye mapping:
(1) The original diagram, which was drawn without previous consideration to degrees of importance, is redrawn by mappings that reflect the view importance. (2) Processes to change the attributes of diagram elements or the structure of the graph, to reflect each type of importance, are carried out before drawing.
138
Graph Drawing and Applications for Software and Knowledge
Engineers
The natural fisheye mapping and the retention fisheye mapping belong to the first category, and the abridgmentfisheyebelongs to the second. Natural Fisheye Mapping The natural fisheye mapping is based on an idea to display large objects distorted as if through an optical fisheye lens of which angle is very wide (e.g. 180 degrees or a hemisphere); this greatly enlarges the area around the viewpoint (see Figure 5.2.1). Simulating a fisheye lens, the natural fisheye mapping is constructed by using an inverse tan function to map an infinite domain into an area with radius r. The natural fisheye mapping has the "flavor" of an optical fisheye lens but can have two or more viewpoints.
Figure 5.2.1. An opticalfisheyelens (Courtesy of'Kazuo Misue).
Figure 5.2.2. Method of reproducing a natural fisheye.
Extensions >:#l|l<sUir5-l'79~?J
of Automatic
Graph Drawing Methods
137
t(dT*KBE}bfc%JlK*' »:»»»A»Sli£JM>ll*wmi£ 1
I*»KEJIBV kg, then terminate; otherwise go to step 2. (4) We draw the obtained hierarchy where original directions of the edges that are reversed in Step 3 are used. Figure 6.2.2 shows the structure of Japan's economy in 1975 where we use an interindustry relations table with 29 sectors as follows. 1
Agriculture, forestry, and fishery
2
Mining
3
Food, drink manufacturing and tabacco
4
Spinning
A Variety of Applications
5
Fiber and textile
6
Wood and furniture
7
Pulp and paper
8
Printing and publishing
9
Rubber and leather
10
Chemicals and medicine
11
Materials for chemical textile
12
Oil and coal products
13
Products from stone and clay
14
Iron and steel and non ferrous metal
15
Metal products
16
Ordinary machinery
17
Electric machinery
18
Transportation machinery
19
Precision machinery
20
Other manufacturing
21
Construction and civil engineering
22
Electricity, gas and water services
23
Commerce
24
Bank and insurance
25
Real estate
26
Transportation and communication
27
Public services
28
Business machinery and packing
29
Others.
153
The meaning of the diagram is as follows. (a) Vertices represent sectors, and the width of each vertex represents the total supply (= total demand) for that sectors. (b) The first line in each vertex label is the name and number of the sector, the second line is the total supply (> is the imports, + is the national domestic product), and the third line is total demand (+ is the midway demand, - is the final demand, and > is the exports). (c) The edges show the central structure of the 60% level of the total flow of the Japanese economy when the money flow for each is added in the order of largest
154
Graph Drawing and Applications for Software and Knowledge
Engineers
7 I'U A
1 » a p
\ "1
Figure 6.2.2. A macro structure diagram of the Japanese economy in 1975 [Sugiyama (82)].
A Variety of Applications
155
(c)
(a)
[p
(b)
(d)
Figure 6.2.3. A citation diagram of references [Sugiyama et al (85)].
67
156
Graph Drawing and Applications
for Software and Knowledge
Engineers
to smallest. In the same way the real line edges and the dotted line edges shown the 70% level of the central structure, (d) The direction of flow of each edge is drawn as an arrow.
Upward edges,
downward edges, and edges with both directions all occur, and the octagonal vertices are strongly connected. Using this visual method, the macro structure of the Japanese economy can be compared over several years, or the macro economic structure of several countries can be compared.
6.2.3 Citation Diagram In order to grasp the direction of research within a particular field of study, a method using the citation information between related references to visually represent this as a citation diagram was proposed [Kitagawa & Sugiyama (78), Sugiyama (82, 87)]. The citation information for a particular set of references is expressed as a set of the sequence of references with citations and cited references. When a set of references is denoted as P = {p\, pi,..., p„}, citations are expressed by a set Q of ordered pairs among references, i.e. Q cP x P. Consequently the citation information can be regarded as a directed graph G - (P, Q). However, if this directed graph is drawn as is, it is often too complex, and it is necessary to find a method to extract a simple, fundamental structure from the directed graph. Figure 6.2.3 shows 4 types of citation diagrams for a particular field of study (i.e. the theory of successive process of statistical inference 1944 - 1977).
The original
diagram is (a); (b) is a skeletal diagram obtained by removing redundant edges from the original diagram; (c) is a diaphysis diagram obtained by removing edges with span greater than 1 from the skeletal diagram; and (d) is a diaphysis diagram rearranged to follow the chronology of publication.
6.2.4 Visual ^-Analysis Visual Q-Analysis (VQA) expands Q-Analysis invented by Atkin (72)[Sugiyama, Toda & Tagawa (81), Sugiyama & Toda (83), Toda & Sugiyama (83)]. This is a method to make analysis of the complex structure easier by visualization. Using this method, a higher dimensional complex structure is converted into 2 types of hierarchies and is visualized and made easy to understand as a 2 dimensional diagram. Required input data to VQA are pair wise relations of elements of the system in the form XtXYj, which denotes that element X, is related to element 1} (see Figure
A Variety of Applications
157
6.2.4(a)). The incidence matrix can be presented by a hypergraph (b) and a simplicial (c). In an application of the needs/seeds analysis, it is assumed that row / and column y of the matrix correspond to need Xt and element technology Yj respectively, and that its (7, j) component specifies whether or not need X, requires technology Yj. An application of VQA to the incidence matrix yields two kinds of hierarchical models; the F-hierarchy (d) and the Q-hierarchy (e), which illustrate combinatorial relations of needs and relevant technologies. In the F-hierarchy the vertices denoted by O represents needs and those denoted by • represent element technologies and their combinations that are commonly required for more than one need and hence are important. These vertices are located on a vertical axis according to the number of technologies they represent, which is indicated by the q level. The F-hierarchy shows an important connectivity structure among needs. Vertex connected to vertices X\ and Xa, indicates that technologies Y-*, and Ys, are commonly required for these two needs. Vertex connected to needs X4, X5 and Xe. Hence technology Y5 might be promising in the sense that it will be utilized in more integrated technologies meeting social needs than will the other technologies. The Qhierarchy (e) shows a simplified connectivity structure of the F-hierarchy and visually presents the results of applying g-analysis to table (a). In general, a g-hierarchy consists of a set of trees and illustrates a hierarchical clustering structure. The hierarchical models obtained by VQA, especially the F-hierarchy, provide solid models for evaluating R &D strategies. There are structural measures computed from relational data: concentricity and utility indicator. The greater the concentricity for a given need, the more of the element technologies required for the need will also be useful for other needs and the more effective will be efforts to develop these technologies. The indicator is useful for considering strategic paths in the F-hierarchy and for determining priority rankings of technologies for the needs selected as development targets. Japan Information Processing Development Center investigated requirements for FGCS from the viewpoint of coping with the social difficulties Japan is expected to face in the 1990s. The Center identified five problem areas, expanded these to 30 related social needs, and listed 37 information technologies (or seeds) thought required to meet these needs. Table 6.2.2 presents these needs and seeds. The requirement relationships between the needs and seeds are presented in Table 6.2.3. We applied the methods described above to the data in the tables, and studied the relational structures of the needs and seeds to analyze the implications of these relationships for R & D strategies. Figure 6.2.5 shows a hierarchical structure of the seeds shared by each pair of needs (or F-
158
Graph Drawing and Applications for Software and Knowledge Engineers
hierarchy) and values of concentricity and utility indicator for each vertex. This model indicates what development strategies should be followed. Methodological details are in Sugiyama & Toda (83), Toda & Sugiyama (83).
X X, X, Xy
XA X,
x, x7
Y, Y2 1 1 0 0 0 0 0 0 0 0 0 0 0 0
Yi
14
1 0 0 1 0 0 0
1 0 0 1 0 0 0
Y, Y, Yi 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 0
Y« 0 0 0 0 0 1 1
^9
0 1 1 0 0 0 0
(a) incidence matrix
(b) hypergraph
(c) simplicial complex
Xi
(d) F-hierarchy
^
(e) g-hierarchy
Figure 6.2.4. An example of incidence matrix, hypergraph, simplicial complex, F-hierarchy, and Q-hierarchy.
A Variety of Applications
s,
: decision support system for planning and staff : supercomputers activities : parallel processing architecture S2 N 2 : office automation for routine office work : highly integrated microcomputers S3 N 3 : office automation for real-time clerical services S 4 : very large capacity storage technology : packaged software N 4 : very large databases for service sectors 5 : computer games Ns : intelligent machines: robots & CAM (computer 6 aided manufacturing) : computer arts 7 Ss : simulation technology N 6 : diversification of custom made products N , : IR (information retrieval) for technological : information processing services information S10 ; software development services : TSS services N 8 : design automation N , : laboratory automation S,2 : facility management systems S i 3 : VAN (value added networks) N,o : control systems for saving energy S14 : computer leasing N n : conversion to energy/resource saving industrial structure with new information industries Sis : digital networks N , j : medical electronics for medical offices Sie : picture and image processing N , 3 : education for senior citizens S17 : video technology Sis : distributed processing N , 4 : health care industries S19 : distributed databases N , 5 : personal computers for younger generations N 1 6 : robots for dirty work $ 2 0 : document databases N n : medical service systems S2 1 : engineering databases N , 8 : CAI (computer aided instruction) for personal S 2 2 : data security education S23 : associative retrieval S24 : data services N19 : disaster prevention IR systems N20 : crime prevention IR systems S 2 5 : picture processing N 2 1 : personal computers for custom products S26 : picture and image processing N22 : computer network for regional information services S27 : character and picture recognition N 2 3 - : CAI for communication among generations S28 : optical input/output processing N 2 , : machine translation of languages S 2 9 : Japanese language processing S30 : natural language processing N25 : integrated reservation systems accessible at home S 3 , : intelligent terminals N 2 6 : telemail and teletext S32 : terminals for counter services N27 : CAI for learning at home S33 : health care equipment N 2 8 . hobby computers S34 : sensor bases N29 : program-controlled electric appliances S 3 ! : built-in microcomputers N30 : home automation S36 : databases S37 : man-machine interfaces N,
s s s
s,
s,,
Table 6.2.1. Needs (Nj) and information technologies (Sj) identified.
0(N\) - <Sn, S2i, 5 29 , Sib> a(N4) = <S4, S[9, S22, S 27 , s 29 > (T(A' 5 ) = < S 5 , S 3 5 >
a(N6) = <S2,S2{,S26> o-(N7) = <S 2 3 , S30, S26> (J(A' 8 ) = < S 2 , 5 2 1 , S 2 6 > (J(N9) =
<SUS}4>
o-(7V,o) = <S 3 4,S 3 5 >
&(N\l) = <s22, s 2 3 , s 2 6 , s 3 i , S34, s)f> = = <S 2 3 >
o-(N,5) = <S,,S5,S,5> o(Nl6) = <S34,S,5,S,6> o~(Nn) ~ ^ 2 2 , 5 2 3 , 526, 5 3 4 , 5 3 5 , 5 3 6 > o(Nis) = <S25, 5 2 9 , S 3 5 , S 37 > f7(W,9) = < 5 8 , S 3 4 > "•(^20) =
a(N2l)
=
<j(N22) a(N2J) a(N24) a(N25)
= = <S6,57,53S> = <S,,S4> = <S, 5 , S 19 >
<Si,S5,Si5>
a(N2t>) o-(W 2 ,) <j(Nn) a(N29)
= = = =
<Sl7,S3,> <S 5 , S26, S,5> <S3s>
Table 6.2.2. Requirement relationships between the needs and seeds.
159
N 1 1 12 13
1 .
o 6.7 2 2
I 2 3
N 1 7 2 6 3 4 3 5
: Represents need N,
3 6
Represents technologies and their combinations Number around a node indicates concentricity Number around a node indicates utility indicator
N 2 3 6 7 3 5
N2 1 3 5 3 5
Nl 5 3 5 3 5
I i t Co
S e e 3 0.
NS 5 3 5
8 20.7
I Figure 6.2.5. F-hierarchy of social needs [Sugiyama et al (87)].
A Variety
RULE001 PREMISE RULE001 ACTION
of Applications
161
(CLINDEE IS KNOWN AND C O N S I S T E N T ) (FINALDEF = CLINDEF)
RULE002 PREMISE (I.ABDEF IS KNOWN AND C O N S I S T E N T ) RULE002 ACTION : (FINALDEF = LAB DEE) RULEOIB PREMISE : (CLINDEF = PLATELET-VASCULAR-DEFECT A N D LABDEE = P L A T E L E T - V A S C U A R - D E F E C T ) RULE003 ACTION : (CONSISTENT) RULE004 PREMISE
(CLINDEF = COAGULATION-DEFECT AND LABDEE = COAGULATION-DEFECT) RULE004 ACTION : (CONSISTENT) Rules. RULEOOr, to RULE018. are abbreviated. RULED 19 PREMISE RULE019 ACTION
(PT = NORMAL, P T T = HIGH. I T = NORMAL. B T = NORMAL, PC_ = NORMAL, ESF = NORMAL) (DEFPATH = INTRINSIC)
RULE020 PREMISE : (REASON = BLEEDING-HISTORY. SIGBLEED. FINALDEF = COAGULATION-DEFECT A N D D E F P A T H = MULTIPLE/FIBRIN) RULE020 ACTION : (I)X = DXMULTIPLE) RULE02I PREMISE KULEU21 ACTION RUI.E022 PREMISE RULE022 ACTION
(REASON = BLEEDING-HISTORY. SIGBLEED. FINALDEF = COAGULATION-DEFECT A N D D E F P A T H = EXTRINSIC) (DX = DXVII)
(PT = HIGH. P T T = NORMAL, PC_ = NORMAL, BT = NORMAL, T T = NORMAL, FSF = N O R M A L (DEFAPTH = EXTRINSIC)
Figure 6.2.6(a). An example of a rule base [von Melle (80)].
6.2.5 Browsing Knowledge Bases When constructing a knowledge base, it is convenient to be able to easily visualize the relational structure of fragments of knowledge whilst organising the knowledge. It is also preferable to have a visual interface for confirmation, editing or reorganizing the knowledge structure in the constructed knowledge base. Automatic graph drawing methods are very useful for these purposes.
162
Graph Drawing and Applications for Software and Knowledge
Engineers
Figure 6.2.6(a) is an example [von Melle (80)] used to explain the rule base of the medical diagnosis system EMYCIN, constructed from 22 rules. When the dependency relationships between the ACTION parameters and the PREMISE parameters of each rule are visualized using an automatic drawing method as a layered graph, the result is (b). In comparison to the difficulty of reading 22 rules as text expressions in (a), it is much easier to understand the diagnosis logic from the diagram expression in (b) [Sugiyama&Toda(85)].
[FAMILY] [ONSET] ["SIGBLEED ] [BLDTYPEJ
[
1 : Input parameter
K09
(WNLll llDEFPATHll
RIO
XXX
RU
R12 "
R13
XX
'NPT] [NPTTJ [ NTT"] [NPC] [NBT]
Figure 6.2.6(b). A knowledge structure diagram [Sugiyama et al (87)].
A Variety of Applications
163
6.2.6 Reference Structure Between Modules of a Program A tool for visualizing the reference structure between modules that compose a program was created, and applied to FORTRAN programs [Sugiyama (82)] and LISP programs [Sugiyama & Shintani (84)]. Figure 6.2.7 shows the call structure between subroutines of the program that produced this diagram made with FORTRAN.
Figure 6.2.7. The subroutine calling structure diagram of the FORTRAN program [Sugiyma (82)].
6.2.7 The Grammatical Structure of Ada Language In order to visualize the syntax of the program language Ada [Booch (83)], an attempt was made to draw it as a layered graph [Sugiyama (88b)]. Figure 6.2.8(a) shows the whole diagram, where the vertices A, B, C, D are points at which the definitions of grammar have become recursive, and so these are replaced with representative vertices. In (b), the recursive definition sections corresponding to A, B, C, D are shown in greater detail.
164
Graph Drawing and Applications for Software and Knowledge
Engineers
Figure 6.2.8(a). Global structure diagram of Ada syntax [Sugiyama (88b)].
A Variety of Applications
ICOMPOI
|tl?T
|l>IClAt*TtQW|v^ 1
—
S^^jji^^
•
•~i ^ ^ J a i m i i c
L^
*
Figure 6.2.8(b). Structural diagrams of the recursive sections of Ada syntax [Sugiyama (88b)].
165
188
Graph Drawing and Applications for Software and Knowledge
Engineers
6.2.8 Applications using D-ABDUCTQR A variety of applications such as structure analyzer, directory browser, network monitor, graphical hypertext, WWW visualizer, graphical outline processor, etc. were explored using graph drawing system D-ABDUCTOR which was developed by the author and collaborators. Figure 6.2.9 shows example snapshots of several applications. Details of D-ABDUCTOR will be described in Chapter 7.
(a) network monitor
(b) directory browser
(c) graphical hypertext Figure 6.2.9. Example snapshots of D-ABDUCTOR applications [Misue (97)].
A Variety of Applications
187
6.2.9 Integration of Text Mining and Visualization Techniques Misue & Watanabe (99) and Watanabe & Misue (99) developed an automatic technique to visualize an association obtained through mining useful information from large volume of textual data, where an association is defined as relationships among text segments and words. The association is statistically calculated by using co-occurrence of words among segments and words. Figure 6.2.10 shows an example diagram of market research. It visualizes relationships between automobile companies and image words of users extracted from articles in newspapers. Places of three companies are fixed in the diagram and the spring algorithm is applied. From Figure 6.2.10 we can easily see which image the user has about each company.
Figure 6.2.10. An example diagram of market research. (Courtesy ofKazuo Misue andlsamu Watanabe.)
This page is intentionally left blank
6—o
APPLICATIONS FOR CREATIVITY SUPPORT
As an example of a high level application of automatic graph drawing methods, applications for creativity support shall be discussed.
This is an attempt to develop
graphical user interface for creativity support with high level intelligent functions, using a famous creative problem solving method called the KJ method [Kawakita (75, 86)] as reference. Misue & Sugiyama (94) and Sugiyama & Misue (95) have
developed
diagrammatic idea organizer D-ABDUCTOR by using compound graph automatic graph drawing methods in the environment of direct manipulation and animation, and it has been able to achieve flexible and natural dynamic editing and fisheye functions. Attempts have been made to use multimedia and to create groupware such as conference support or creativity support by group in a distributed environment. Sugiyama, Misue, Watanabe, Nitta & Takada (96, 97) have integrated the DABDUCTOR and other tools (e.g. text mining and associative retrieval) as a total creativity support system called Emergent Media Environment EME where it has been intended to integrate facilities for interactively supporting the generation, collection, 169
170
Graph Drawing and Applications
for Software and Knowledge
Engineers
organization, and presentation of ideas and advising automatically by computers about the divergence and convergence of ideas (see also [Nitta, Inder, Misue & Sugiyama (96)]). There are probably many readers unfamiliar with creativity support, so first the concept of creativity support shall be discussed. Then, using the KJ method, the kinds of interface and intelligent functions necessary to support the idea creation process dynamically and diagrammatically shall be analyzed, and the importance of automatic graph drawing methods, their extension, and how they can be used, shall be discussed.
7.1 What is Creativity Support? Computers have been developed as tools to strengthen and expand human thought by substitute or support. Recently there has been a surge in the tendency to try to use computers to support the human thought activities called creativity, and this may be because researchers are turning their interests in human thought processes from the downstream area of much formal information processing to the upstream area of much more informal information processing. Behind this is the fact that as well as technological advances in such areas as high performance workstations, networks, human interfaces and artificial intelligence, in our everyday work and research activities there is an increase in high level intellectual activities which require the generation of creative ideas. Also, the importance of support for higher processes such as the planning stages of document preparation, or the knowledge acquisition phase of expert system development, is being recognized. Thus it has been well recognized that for computers to be truly useful tools, it is necessary to be able to support and substitute human thought activities in their "hazy" state, before information is formalized. Based on these ideas, here creativity support is taken to mean "idea support which emphasizes the higher processes of human intellectual activities", and as shown in Table 7.1.1, the spread of research in creativity support is taken from a very wide viewpoint [Sugiyama (91, 92)]. There are many different kinds of interactive creativity support, but for ease of understanding they can be divided into 4 types: (1) methodological approach, (2) media oriented approach, (3) collaboration oriented approach, and (4) cognition or AI approach. In actual tools a combined approach is common, but these categories compose the four important dimensions that support interactive creativity support. In the creativity
Applications
for Creativity Support
171
machine intelligence, research is being carried out into analogical reasoning or hypothetical reasoning based on neural networks or logical language. Composite creativity support aims to support and clarify human activity, and it is at the stage of conceptual research based on not only creativity technique or computer technology, but also cerebrophysiology, psychology, and cognitive science.
APPROACHES
Interactive
RESEARCH AND SYSTEMS
Methodological approach
KJ editor1, CONSIST2, Structural modeling4
D-ABDUCTOR3,
Media oriented approach
Idea processor, Hypertext, Media room
Collaboration oriented approach
CSCW, GDSS, Colab5, TWS6, Grape7,GrIPS8
Cognitive, or Al approach
Knowledge acquisition support, Intelligent CAI
Creativity machine intelligence Composite creativity support
Hypothesis inference, Neuro'°,CAC"
Analogy,
Metaphor9,
TOPICA plan", Investigation research13
See': Ohiwa et al (90), 2 : Shinohara (87), 3 : Sugiyama (92),": Warfield (76), 5 : Stefik et al (87), 6 : Ishii (90), 7 : Kunifuji et al (89), 8:Kohda et al (93). 9 : Young (87), 10: Goel (88), ": Bar (88), ,2: Kawagoe et al (89), 13: Japan Society for the Promotion of the Electronics Industry (92).
Table 7.1.1. The spread of creativity
support
research.
7.2 Creativity Support Based on Empirical Creativity Methods
7.2.1 Empirical Creativity Methods In fact, there are over 300 types of empirical creativity methods or creativity technique in use. As shown in Table 7.2.1, these can be divided into divergent methods for collecting facts or generating ideas, convergent methods for organizing facts or ideas, integration methods that combines these two, and attitude methods for acquiring a creative attitude [Takahashi (83)].
172
Graph Drawing and Applications for Software and Knowledge
Engineers
7.2.2 The Analysis of Characteristics and Research Subject for the KJ Method In order to carry out interactive support with reference to creativity methods, it is necessary to analyze the characteristics of the creativity method of interest thoroughly, and the processes (operations or commands) by which it is carried out. Through this analysis it is possible to clarify the research subject.
METHOD
CLASSIFICATION
Divergent methods
Free association method Forced association method
Space model
Analogy method
Induction method
Cause and effect method Time sequence method Integration methods Sequence model
Convergent methods
Deduction method
Attitude methods
Brainstorming, Brain-writing, Card brainstorming, etc. Characteristic enumeration method, Checklist method, Input output method, Form analysis method, etc. Equivalence conversion method, Gordon method , NM method, etc. Various classifications such as book classification, etc. KJ method, Affinity diagram method, 7 X 7 method, Cross impact method, etc. Characteristic factor diagram, Cause and effect analysis method, etc Story method, PERT, etc. Work design, Bridge method, etc. Meditation model method, Exchange model method, Deduction model method, etc.
Table 7.2.1. Classification of empirical idea creativity methods.
The KJ method [Kawakita (86)] is an excellent creativity method born of Japanese intelligence. It is well known as an effective /cr^e/-based method for organizing ideas and solving problems without computer support. The terms label, team, and chart are used in the KJ method instead of card, group, and map. The main part of the KJ method contains four basic steps as follows [Kawakita (75)]:
(1) Label Making: We start with a supply of labels on which ideas or information (text or image etc.) relevant to our problem are written. We collect and record ideas until we feel we have exhausted all information necessary to solve the problem. (2) Label Grouping and Title Making: The labels are shuffled well and spread on a large sheet. Then all the labels are read several times. If there exist such labels seemed to belong together, we make a team of the labels. This process is repeated. After about
Applieatiom for Creativity Support
173
two-thirds of all the labels are arranged in teams, making titles for the teams is started. The titles should clearly describe the essence of all labels in the team. Once a title is made for a team, we put all the labels together in a pile with the title clipped on its top. Next, we arrange the teams in larger teams in the same manner. This iterative process of grouping labels may be repeated as many times as necessary. Usually it is terminated when the number of the teams is reduced to less than ten. (See Figure 7.2.1.) (3) Spatial Arrangement and Chart Making: We find carefully the arrangement of the final groups in which a consistent understanding of all the groups can be obtained. Then we proceed to arrange all sub-teams or elements in the same manner. After completing this spatial arrangement, we draw a chart in own handwriting by showing the relationships using various symbols and signs. (4) Verbal or Written Explanation: To explain the chart clearly, we try to describe the chart verbally or in writing. As a general rule our explanation should proceed to a team adjacent to where it stated. The cumulative effect of idea generation will continue to increase as our explanation advances.
Figure 7.2.1. An example of the step of label grouping and title making. (Courtesy of Kanaka humi.)
174
Graph Drawing and Applications for Software and Knowledge
Engineers
The results of analysis of the points considered to be characteristics of the KJ method are shown in Table 7.2.2 [Sugiyama (89a), Sugiyama & Misue (90), Sugiyama (93)]. The research subjects corresponding to these characteristics are also shown. Research topics 6, 7 and 8 make up the core of the KJ method, but are extremely difficult subjects. As a research strategy it is considered appropriate to firstly carry out 2 and 3 as the basic environment for creativity support, then progress to either 5 or 9, and then consider either 10, or 6, 7 and 8. It is necessary to recognize that even the implementation of 2 and 3 involves many unsolved problems.
CHARACTERISTICS OF THE KJ METHOD Diagrams are used as an external memo of the user's ideas.
RESEARCH TOPICS
1. To analyze the process of the K.J method as a diagrammatic language. 2. To develop a diagram editor to express the movement of ideas as flexibly as possible. The global view is important. 3. To develop technology for the simultaneous view of the whole and the parts on a small screen. 4. Research on large screens. Guidelines are established for the 5. Experiment with new guidelines and the flexibility of development of thought. guidelines. The information written into the label is 6. The automatic analysis of label meanings and the essential. automatic layout of labels. 7. Automation of general title making of label information. "Ambiguity " is actively used. 8. Analysis of intelligence expressing in Japanese such as "kokorozashi (intention)", "data wo site katarasimeru (talking over data)", "johnen (emotion)" and "hataage (first performance)". The final result is a written composition. 9. Support for the process of generating a written composition from an illustration. It is a system of hand work using tools. 10. To pursue new possibilities by removing the constraints associated with hand work using tools.
Table 7.2.2. The characteristics and research subjects of the KJ method.
7.2.3 The Process Analysis and Research Subjects of the KJ Method For the process analysis of the KJ method it is convenient to express as a diagram the kinds of illustrations or conditions of layout of labels that will appear on the desk or the virtual page through the whole process. For this purpose the diagram matrix expression of the KJ method has been devised (see Figure 7.2.2). This example begins with Diagram 1 (initial label spreading) and continues through 2, 3, and 4, ending with
Applications for Creativity Support 175
^
^1
+•
./vt
V
V
3%
i
O
T
#4-0 /•
B
BB 0 u
| I n
B
a, 3 LJ
ay
0l 0 B 0 0
B
WB
B
0
Bgis; e 0 J
B
SB 8
SB
i
S
Bii 0 BBB BBBi a
J
0
B
BBB,
"BB
B 0 B 001001 0BBBBBBB 100000 BBBBB0B0 100 I BBB 0 § 0 B 0 0 I 0 •00010 BB0000B00
pi 9
0
Qff B B 3 B BBB BBB 3&IBI 0 (0
00E0B0EB ff0000 G E00BBffBU
&
Figure 7.2.2. The diagram matrix representation of the KJ method.
n
176
Graph Drawing and Applications for Software and Knowledge
Engineers
Diagram 15 (finishing the picture). After this documentation is carried out. The diagram matrix shows that 1 to 10 are bottom-up, 11 to 14 are top-down, and 15 is the process of clarifying the structure of the relationships conceptualized in one's head (shown as 11' to 13') from 11 to 14. Table 7.2.3 shows the results of classification for each step of Figure 7.2.2, according to whether it is impossible (or unsuitable), partially possible, or possible to be carried out automatically by a computer with the current state of technology.
STEPS Label generating/ collecting Label spreading
Label grouping
Title making Bundle creation Spatial layout at the top
Spatial layout
Generation of the illustration Describing as a document
CONVE R-SION
FORMS OF SUPPORT INTERACTIVE
PARTIALLY INTERACTIVE/ PARTIALLY AUTOMATIC
AUTOMATIC
Usual.
Support for diverging ideas.
Information retrieval, Internet search, Knowledge discovery.
Meaningless work.
--
Easy to randomize.
Takes time.
The adjacency relationships are given by the user, after this the computer does the layout automatically (such as spring layout).
After finding a procession of similarity using analysis such as semantic analysis, layout is done automatically (such as Hayashi method III[Hayashi(51,2)]).
Currently only this.
Some advice by computer is possible.
Extremely difficult.
Meaningless work.
--
Easy.
-•1
1 1—2 3—4 5—6 7—8
2—3 4—5 6—7 8—9 9—10
This is probably best.
Adjacency relationships are interactively given, and layout is done automatically. Expansion is done automatically, then adjacency relationships are given interactively, and the layout is done automatically.
Possible but reliability is not good.
10—11 11 — 12 12—13 13—14
Quite troublesome.
14—15
Quite troublesome.
Useful.
Possible.
15—
Usual.
Possible.
Quite difficult.
Possible but reliability is not good.
Table 7.2.3. Classification of the forms of support of each step.
Applications for Creativity Support
177
7.2.4 Desirable Functions in a Diagrammatic Creativity Support System The research topics shown in Table 7.2.2 can be broken down into desirable functions for diagrammatic creativity support systems. In the KJ method, when redrawing is carried out as shown in the diagram matrix expression, the means to easily manipulate using properties (papers, labels, clips, rubber bands, chains etc.) is given, but there are limits to manual work by properties. For ease of editing of diagrams, it is desirable to have a function of automatically generating diagrams with direct manipulation by the user and only a minimum of directions. It is also necessary to have functions to change the drawing style of the diagram when editing as once finished, or to translate the diagram into a different type or shape, or to make a fair copy of the diagram. The function to return to the beginning and reconsider the drawing, and a highly realistic drawing function that preserves cognitive continuity using animation for redrawing the diagram are necessary. In diagrammatic creativity support a fairly wide workspace is required for a global view. When the illustration becomes large, in order to continue editing with a screen of limited size, a flsheye function that allows the reduction or simultaneous view of the whole and parts is necessary.
Also, in preparation for large, dynamic, high quality
screens in future conference support and so on, a large screen adaptation function is necessary. As can be seen in Figure 7.2.2, in the KJ method constraints of the order of the thinking steps are given on the way thought progresses. With the advance of machine support, the possibility of making this kind of thought guide into something more flexible or something completely new arises. Also, for the support of the process of creating documents from illustrations, and for the search for other new possibilities, there is illustration conversion for creativity promotion, multimedia, groupware, or the analysis of the history of thought development. The above ideas can be summarized in Table 7.2.4 where those necessary for automatic graph drawing methods are marked with (*). From the large number of (*) it can be seen that the compound graph automatic drawing functions are the core of diagrammatic creativity support.
178
Graph Drawing and Applications
RESEARCH TOPICS
The development of a flexible diagram editor
for Software and Knowledge
Engineers
DESIRABLE FUNCTIONS Direct manipulation interface environment Animation function Incremental editing function (*) Fair copy function (*) Geometric diagrams (*) Hand drawing diagrams (*) (*) Shape and color of vertices and edges Transformation function for diagram(*) Presence function (screen and dynamic manipulation that preserves cognitive continuity) Automatic drawing function for compound graphs (*) Drawing style change function
Return and reconsider function (*) Simultaneous view of whole and parts function (*) Overcoming a small screen Making guidelines flexible Documentation support
Function for switching between abbreviated diagram and detailed diagram (*) Large screen function (*) Function for choice of definition of guidelines Document creation support function (*) Illustration conversion function for the promotion of creativity (*) Use of multimedia (*)
Investigation of new possibilities
Cooperative diagrammatic idea support function (*) Analysis function for thought development history Analysis of results by several people, identical material Introduction of AI technique, cognitive science technique
Table 7.2.4. Research topics and desirable functions.
Applications for Creativity Support
179
7.3 Diagrammatic Idea Organizer D-ABDUCTOR Misue & Sugiyama (94) and Sugiyama & Misue (95a) developed diagrammatic idea organizer D-ABDUCTOR. The name of the system, "D-ABDUCTOR" originated from that the originator of the KJ method called the essential part of the method, in which fragments of ideas were re-arranged and organized, "abduction" in his book [Kawakita (86), p.33]. The initial letter "D" means "diagrammatic." So far they have developed elementary techniques for diagram handling [Sugiyama & Misue (90)]: automatic drawing of diagrams [Sugiyama & Misue (91)], generating freehand-like shapes [Misue & Sugiyama (88)], fisheye mapping offering the whole and detail view of a diagram [Misue & Sugiyama(91)], and diagrammatic dressing by using importance of diagrammatic elements [Misue (90)]. They have integrated these elementary techniques with a direct manipulation and animation environment into a system D-ABDUCTOR, and have supplemented communication facilities [Misue (93)] for group works, and multi media facilities to deal with pictures to make D-ABDUCTOR more practical. In D-ABDUCTOR, the dynamic use of compound graph automatic drawing methods in direct manipulation and animation environments has led to the opening of a new phase in automatic graph drawing methods. It is difficult to explain the dynamic manipulations or changes of screen in words or in a static diagram, but the effects of incremental editing, fisheye and animation shall be briefly discussed here. Diagrammatic idea organizer D-ABDUCTOR is evaluated from an operational point of view. Results of the experiment show that tasks could be executed three times faster with D-ABDUCTOR (with only basic editing facility) and six times faster with DABDUCTOR (with automatic layout facility) than without computers.
7.3.1 Features of D-ABDUCTOR D-ABDUCTOR is available either for individual use or for group cooperative work when workstations or personal computers are in a network environment. Figure 7.3.1 represents the system architecture of D-ABDUCTOR. Features of D-ABDUCTOR is summarized as follows: Interactive Supporting of Diagrammatic Idea Creation Processes To investigate the possibilities for computer support of human thinking, it is aimed to automate the main part of the KJ method, which is the phase of organizing idea fragments as shown in Figure 7.2.2.
180
Graph Drawing and Applications for Software and Knowledge
Engineers
Advanced Facilities to Handle Diagrams In building D-ABDUCTOR it is emphasized to develop an advanced facilities for a graphic user interface (GUI) to handle diagrams. The diagrams used in the KJ method
Figure 7.3.1. The system architecture ofD-ABDUCTOR [Sugiyama et a! (95a)].
have features of Venn diagrams that represent sets and subset relationships by geometric inclusion relationships between areas, as well as network diagrams that represent semantic relationships between ideas with lines connecting card images. The logical structures for such diagrams can be modeled as compound graphs which extend the notion of a graph. The notions is closely related to that of higraph [Harel (88)]. Advanced facilities for handling such diagrams include automatic layout for compound graphs, diagram dressing, and animation. Communication Facilities for Group Works In developing D-ABDUCTOR, it has been tried to find new styles of supporting idea creation processes by exploiting advanced capabilities of computers such as communication facilities. The communication facilities enable the support of not only personal thinking processes but also group processes. Two or more users who are working with D-ABDUCTOR on different workstations can share diagrams in real time
Applications
for Creativity Support
181
3
| b Q Q
g
5 9 IN,
.5, I*,
182 Graph Drawing and Applications for Software and Knowledge Engineers
^•&«v&8888!S&&Cu&*&&$*#i
:
>:i&ij^8£^S^;::::::SsVK&::::S
(a) a tree diagram
(b) a compound graph diagram Figure 7.3.3. Examples of automatic graph drawing by D-ABDUCTOR [Sugiyama et al (85)].
Applications
for Creativity Support
183
for cooperative work. D-ABDUCTOR operates in an environment in which users see the face and hear the voice of remote colleagues, using cameras and microphones. A snapshot of cooperative work session is in Figure 7.3.2. Examples of automatic graph drawing by D-ABDUCTOR are shown in Figure 7.3.3.
7.3.2 Facilities of D-ABDUCTOR The facilities are classified according to their purpose, to make it easier to understand why D-ABDUCTOR provides them. There are four classes: • To simulate manual operations of the KJ method on computers. • To relieve users of tedious tasks that are not essential in thinking processes. • To overcome disadvantages of using a computer as a working environment for the KJ method. • To exploit advanced capabilities of computers to find new styles of supporting thinking processes. Simulate Manual Operations Interaction
mechanism:
D-ABDUCTOR provides simple and easy to understand
operations such as direct manipulations by mouse, choosing facilities from menus, and interaction with the system through dialog boxes. Editing operations of diagrams such as moving vertices, creating edges, changing members of group vertices (vertices which include other vertices) are purely mouse driven. Visual feedback:
D-ABDUCTOR provides a great deal of visual feedback for its
operations. Modification to a diagram cause immediate visual feedback. The objects (vertices and edges ) of an operation are visual indicated by handles which dynamically appear and disappear on the objects. For example a candidate for new group vertex is indicated by eight handles appearing as soon as the cursor enters the new group when nodes are being moved from one group to another. Substitute for the Users Automatic layout facility: Diagrams used in the KJ method need good layout to be effective - a good layout can enhance the idea creation process, a poor layout can
184
Graph Drawing and Applications
for Software and Knowledge
Engineers
confuse and inhibit idea organizing. The automatic layout facility is fast enough. The speed is important for the following reason. When we have two or more proposals to organize ideas, and when we have opposing suggestions in a group work, it is helpful to make tentative charts to consider each proposal and each opinion. The speed of this facility means that tentative modification diagrams is very easy and can be considered quickly. Incremental editing: Editing can be carried out with clicks and drags by pull down menus and the mouse. This allows the simple and natural manipulation of such operations as the generation and removal of vertices, movement of vertices (for example, from one group to another), choice of shape of vertices or line type of edges, and choice of colour of vertices and edges. The user need only carry out choice of manipulation or choice of menu by mouse, and the system will carry out all the distribution of edges and placement decision of vertices. Thus the user needs concentrate only on the structure or meaning of the diagram whilst editing. Overcome Disadvantages of Computers Diagrammatic
dressing: Ordinary workstation screens are considerably smaller than
desks or tables, on which users usually perform the KJ method. A scrolling facility is the major existing technique to cope with this disadvantage. However in a scrolling facility, users lose the critical aspect of diagrams: users cannot grasp whole structures at a glance. D-ABDUCTOR dresses diagrams by adjusting visual attributes such as visibility and size of each element according to its importance. The importance of each element is calculated by using logical structure of the diagram, semantics of elements and focuses of the users. Users activate "diagrammatic dressing" to obtain various appearances of a diagram according to their viewpoint of the diagram. The total diagram is displayed, while highly important vertices are magnified and detailed and less important nodes are demagnified and abridged. Diagrammatic dressing is useful in tackling the disadvantage of small screens. D-ABDUCTOR can effectively display large diagrams even on small screens. Examples using up to 377 idea fragments have been organized with DABDUCTOR. Animation facility: When diagrams are redrawn in incremental editing or fisheyes, the changes from the original diagram to the new diagram are all shown as animation. That is, each vertex can be seen to move gradually from its original position to its new
Applications
for Creativity Support
185
position. When this animation is used, the users* "mental maps"[Misue, Eades, Wai & Sugiyama (95)] of the diagrams is preserved, and no cognitive difficulty is experienced even if there is a great difference between the positions of vertices in the original diagram and in the new diagram (see Figure 7.3.4). Using animation the possibility of avoiding the very difficult problems of dynamic drawing, mentioned in Section 5.3, is high.
fii« -
1.
cr