III. SYSTEM HIGRES
A. Graph models in Higres
A hierarchical graph supported by the Higres consists of
vertices, fragments and edges which we call objects. Vertices
and edges form an underlying graph. This graph can be
directed or undirected. Multiple edges and loops are also
allowed.
The semantics of a hierarchical graph is represented in
Higres by means of object types and external modules (see
below). Each object in the graph belongs to an object type
with a defined set of labels. Each label has its data type,
name and several other parameters. A set of values is
associated with each object according to the set of labels
defined for the object type to which this object belongs.
These values, along with partitioning of objects to types,
represent the semantics of the graph. New object types and
labels can be created by the user.
B. Visualization
In the Higres system each fragment is represented by a
rectangle. All vertices of this fragment and all subfragments
are located inside this rectangle. Fragments, as well as
vertices, never overlap each other. Each fragment can be
closed or open. When a fragment is open, its content is
visible; when it is closed, it is drawn as an empty rectangle
with only label text inside it. A separate window can be
opened to observe each fragment. Only content of this
fragment is shown in this window, though it is possible to
see this content inside windows of parent fragments if the
fragment is open.
Most part of visual attributes of an object is defined by its
type. This means that semantically relative objects have similar visual representation. The Higres system uses a
flexible technique to visualize object labels. The user
specifies a text template for each object type. This template
is used to create the label text of objects of the given type by
inserting labels' values of an object.
Other visualization features include the following:
various shapes and styles for vertices; polyline and smooth
curved edges; various styles for edge lines and arrows; the
possibility to scale graph image to an arbitrary size; edge text
movable along the edge line; colour selection for all graph
components; external vertex text movable around the vertex;
font selection for labels text; two graphical output formats; a
number of options to control the graph visualization.
Now Higres uses three graph drawing algorithms for
automatic graph allocation. The first one is a force method,
which is very close to original algorithm from [3]. The
second one is our improvement of the first. The third one
allocates rooted trees on layers.