aiSee FAQs: Graph Layoutindex

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.

Top

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

Top

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

Top

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.

Top

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.

Top

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.

Top

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.

Top

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.

Top

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.

Top

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.

Top

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

HomeSitemapai
Last modified on 24 April 2007 by webmaster. © 2001-2007 AbsInt.
URL: http://www.aisee.com/faqs/layout.htm


Home
About
Examples
Free trial

 Support
» FAQs
» Quick Guide
» User Manual
» GDL
» Options
» Changelog
» GDLedit

Store
Legal
Contact
Extras
Sitemap




In the Polls
Which output format should aiSee support next?

» JPEG
» GIF
» TIFF
» XCF
» GXL
» ASCII   
» other


» View results