   
How large of a graph can aiSee handle?
There are no special restrictions as to the maximum number
of nodes, edges, subgraphs, or the depth of subgraph nesting. The largest graph
we have ever seen drawn with aiSee contained over 1,000,000 nodes and
well above 1,500,000 edges. We are used to working with graphs with 40,000 nested
subgraphs (on a 1.6GHz PC with 1GB RAM).

How can I speed up the layout calculation for huge graphs?
Here are some suggestions:
- Do not use splines, bitmap icons, or fish-eye views.
- Use a fast layout algorithm
(such as
dfs or tree).
- In a hierarchical layout, specify
equal_y_dist: yes
to prevent integer overflow.
- Skip the crossing reduction phase 2
(command line option
-nocopt2,
GDL attribute crossing_phase2).
- Change the state of all
unfolded subgraphs to boxed. The layout calculation of boxed (nested) subgraphs
is much faster since the layout of each subgraph is calculated separately.
- Hide parts of the graph, for example by
- If the pendulum method takes too long
(indicated by
m in the message window), limit the number of
iterations for the crossing reduction
(-pmax option,
pmax attribute).
- If the straight-line fine-tuning phase
takes too long (indicated by
S in the message window), limit
its maximum iteration number
(-smax option,
smax attribute).
- When using force-directed layout, reduce
the number of iterations performed in the simulated annealing part of the
algorithm (graph attribute
fdmax).
- Switch to the fastest mode
(command line option
-fast).
This will drastically reduce all iteration limits and may
result in poor layout quality.
- Set a time limit
(
-timelimit option).
» User Manual:
reducing layout time.

How can I visualize aiSee's internal layout calculations?
Some internal layout calculations can be animated under
the control of command-line options.
For trees, -tanim is usually
good choice. For force-directed layout, we recommend using
-epanim. Example:
> aisee -epanim torus.gdl

How can I integrate aiSee graph layout in my Web page?
aiSee can produce various graphic formats directly, e.g.
aisee -svgoutput output.svg input.gdl
writes a Scalable Vector Graphics (SVG) file, which can be
directly integrated in a Web page (SVG Viewer plug-in required, see
SVG related FAQs). This approach offers the best
results. Another possibility is exporting to a bitmap format. For example,
aisee -pngoutput out.png
-lm 0px -tm 0px in.gdl
writes a file in Portable Network Graphics (PNG) format, whereas
aisee -ppmoutput out.ppm
-lm 0px -tm 0px in.gdl
writes a PPM file, which can be converted to GIF or JPEG by
various graphic programs (ppmtogif or similar). Yet another possibility is
exporting to PostScript (-psoutput),
which is then transformed into GIF or JPEG by GhostScript.
Alternatively, aiSee can produce an HTML document which
contains a PNG or BMP image readily mapped with hyperlinks and/or JavaScript
functionality as specified in the GDL source of the
graph. Example:
aisee -htmloutput out.html
-pngoutput out.png
-lm 0px
-tm 0px
in.gdl
» Sample HTML files
» Web-based application examples
» Apache2GDL

How does aiSee differ from VCG1.3?
aiSee should be able to display all VCG1.3 graphs.
There might be slight differences in the layout and in how subgraphs are
displayed. The key enhancements of aiSee as compared to VCG1.3 are:
- aiSee supports hierarchical layouts
of nested subgraphs, e.g. graphs as nodes, and the corresponding folding/unfolding
operations. aiSee also allows saving coordinates of nested subgraphs and
summary nodes.
- aiSee features animation after relayout,
i.e. aiSee shows how nodes move when the layout is changed. This feature
is helpful in keeping visual track of changes, e.g. during subgraph operations.
- aiSee supports
User Actions and allows
commands to be associated with nodes.
- aiSee allows the user to first
select a node or a subgraph and then to decide which operation to perform
(view additional information, fold/unfold, customize layout, etc.).
- aiSee supports exporting graphs to
scalable vector graphics format (SVG) and allows hyperlinks to be associated with nodes.
Cf. also SVG related FAQs.
- aiSee supports exporting graphs to
portable network graphics format (PNG). It also offers the option of exporting
an HTML image map for the PNG image. Cf. also Q2.
- aiSee supports importing icon files
in PNG format.
- aiSee supports a number of new GDL attributes.
- aiSee supports 18 edge arrow styles
and an unlimited number of user-defined combinations thereof, whereas VCG supports only
2 basic arrow styles.
- aiSee is available for Mac OS X (native Aqua, universal binary).
- The Windows version is able to display larger
graphs. One large effort in extending VCG was the port to 32-bit Windows. The old
VCG1.3 Windows version could handle only a very limited amount of heap space. This
works much better now.
- A number of new
command line options has been implemented.
- The algorithms for drawing edges,
edge arrows, and edge labels have been improved. Support for
additional bitmap fonts for
edge and subgraph labels has been added.
- Virtually hundreds of bugs have been remedied.
- The online and offline
documentation has been improved.
For details, see changelog.

If I use File -> Save, the saved graph looks totally different. Why?
File -> Save is a legacy feature of VCG.
It only works for files written for VCG1.0. To use the new aiSee features, we
recommend adapting the graph specification using a text editor.

Why is clustering an "experimental feature"?
Subgraph layout is quite challenging by nature. aiSee
includes an experimental implementation of clustered layouts which is not actively
supported or maintained. Nevertheless, many aiSee users find this feature
quite useful.

Does aiSee implement incremental layout?
No. However, you can use the edge attribute
priority
to emulate incremental layout to a certain extent. Assigning a high
priority to the edges of the initial graph and a lower priority to
the newly added ones would gain you some control over layout changes.

Why is aiSee a single executable and
not an object-oriented library for C++, for example?
We are working on the library approach, yet it will take its time.
Using GDL (Graph Description Language),
a purely textual exchange, offers a number of advantages:
- GDL specifications can be produced from
all programming languages
(including Perl, Java, Ruby, PHP, ASP/.NET,
Visual Basic, C, and C++).
- Debugging is less complicated
(many people find this invaluable).
- DLL problems are avoided.
If you prefer the OO style, we recommend writing a small
library that produces GDL from your internal graph class. This is usually
quite straightforward, and the additional overhead is small as compared to
the complexity of the layout task.

Can aiSee communicate back to my application
if I integrate aiSee into it?
Sure. aiSee features the concept of
User Actions enabling commands to be
associated with nodes. For example, this means that nodes can be selected
and their titles communicated to an application for processing.

I would like to integrate aiSee into my
application. How do I get information on the DDE interface?
There is a small C-program
on this website that demonstrates the use of aiSee's DDE interface. The
sources are contained in a self-extracting zip file.
Note: if you don't want aiSee to talk back
to your application, you won't need the DDE interface in the first place. All
of aiSee's functionality can be easily accessed via the command line and/or
the GDL file itself. The DDE interface is only useful for communicating certain
user actions back to your application.

More FAQs
» Legal issues
» SVG related
» aiCall related
» FAQs index
|