Manual for RelView:
The
manual (265 KB, postscript, compressed)
for the former RelView version (release 6.2) is also available as Bericht
9711 of the
Institute of Computer Science and Applied
Mathematics of the
Christian-Albrechts-University.
A short description of RelView:
This 4-page
description (66 KB, postscript,
compressed) appeared in the proceedings of FASE 98 (LNCS 1382).
Most important new features of RelView release 7.2 (not contained
in the manual):
- Startup files changed their names and type. Now use start_up.xdd
and start_up.prog.
- Added a new file format called Xdd, based on XML and BDDs. The
DDD and XRV formats should no longer be used and will be removed
in future versions.
- Evaluations can be stopped. This won't work while checking
assertions or inside the debugger.
- If you press the Right-Mouse-Button in the Directory window over
a relation's row, you can Export the corresponding BDD as an input
file for DDcal
and get information on the BDD. Showing the BDD is disabled in the
default installation and will be available in future versions.
- A simple debugger and an ASSERT statement were added to the system
and the RelView programming language, respectively. The first argument to ASSERT
is the name of the assertion, which don't have to be unique in any
way, nor must be quoted. The second argument to ASSERT is an relational
term. If during execution an assertion is evaluated to the O
relation, the assertion fails. If "check assertions" was
checked in the Evaluation window, RelView will inform you on this
event and will offer you to open the debugger. If you say no, the
evaluation will continue until it ends, or another assertion fails. In
the latter case RelView will inform you again. If you choose to
open the debugger, the Debugger window will appear. In it, there are four
mayor elements (
see the Screenshots page). In the upper-left corner
you can see the current state of the evaluation with all called programs
and all local relations. By clicking on a relation, it will be shown
in the Relation viewport on the upper right, were you can edit it.
In the middle-left are two buttons and some options, which meaning
should be straightforward. In the bottom part of the window is a
message log, which will show the next statement, for example.
Because RelView
does not execute programs in a 1 to 1 manner as they are stored in
their corresponding program files, some statements, e.g. the RETURN
statement, won't appear there.
- Editing graphs has changed. Now you can collect nodes and edges,
respectively. Move the mouse cursor over an edge or a node, and press
CTRL and the left mouse button at the same time to collect an object.
Once you have collect a node you cannot collect an edge until you
released your collection and vice versa. To release your current collection,
hold CTRL and press with the left mouse button on the free area.
If you have collected nodes, you can create a relational vector from it.
Press the right mouse button and choose the Create Vector From
Selection. Similarly, you can create a relation from your collected edges.
To delete a node or an edge, move the cursor over it, so it is highlighted,
and then press the middle mouse button. If you press with the left
mouse button on the free area, a new node will be added. To create an
edge, select a node with the left mouse button
and then click with the left mouse button on the destination node
(may be the same).
- TRUE()/FALSE() constant functions were added. TRUE() returns
L relation of dimension 1x1 and FALSE() returns O relation of same
dimension.
Most important new features of RelView release 7.0 (not contained
in the manual):
- The base functions randomXY(R) (XY = 01..99) can be used
for creating random-generated relations with the same dimension
as R, such that XY/100 is the probability of a pair
to be contained in the result.
- The base functions randomcfXY(R) (XY = 01..99) can be used
for creating random-generated homogeneous relations with the same
dimension as R, such that XY/100 is the probability of a pair
to be contained in the result and the result is included in the
strict lower triangle matrix, i.e., circuit-free.
- The base function random(R,S) can be used for creating
random-generated relations with the same dimension as R,
such that |S|/|L(S)| is the probability of a pair to be
contained in the result.
- The base function randomperm(v) can be used to create a
random-generated permutation relation over a set X, where the
cardinality of X is
given by the row number of the vector v.
- The base function cardrel(v) generates the size comparison
relation on a powerset 2X, where the cardinality of X is
given by the row number of the vector v.
- The base function cardfilter(v,w) can be used to
filter out of the powerset vector v all elements whose
cardinality got at most the length of w minus one.
- The base functions cardlt(R,S), cardeq(R,S) and
cardgt(R,S) can be used to compare the cardinalities of
two relations R and S.
- A machine independant ASCII file format can be used for storing
relations and graphs.
- RelView release 7.0 uses Binary Decision Diagrams for the
representation of relations. Relations can be stored into machine
independent binary files with the suffix .ddd using this data
structure.
- There are special drawing algorithms for planar and orthogonal
graphs.
- It is possible to mark edges and nodes in three different
ways.
- It is possible to store often used relations and functions into
a file called .start_up.ddd.
If this file does not exist, then RelView tries to open the
file .start_up.xrv.
Furthermore, it is possible to store often used programms into
a file with the name .start_up.prog, which will be loaded
automatically.
Short descriptions of special features of RelView: