GDL
GDL (Graph Description Language) is a plain-text format for specifying attributed graphs together with layout hints. It originated with the VCG tool ("Visualization of Compiler Graphs"), written by Georg Sander at Universität des Saarlandes around 1995 within the EU COMPARE compiler project, and was carried forward and extended by the commercial successor aiSee, released by AbsInt in 1997. GDL is essentially the VCG language plus AbsInt extensions; the original VCG dialect is a subset. The format was designed to be emitted programmatically by compilers, debuggers, and data-structure analyzers rather than hand-written, so tools such as GCC could dump control-flow and call graphs directly to .gdl or .vcg files for automatic layout.
Structurally, a GDL file is a single top-level graph: { ... } block containing nested node: and edge: entries, each written as brace-delimited lists of key-value attributes. Every node carries an obligatory title attribute serving as its identifier; every edge specifies sourcename and targetname referring to those titles. Subgraphs are expressed by nesting further graph: blocks, which supports hierarchical folding. GDL provides a rich predefined attribute vocabulary controlling shape (box, triangle, rhomb, ellipse), color (up to 256 named/indexed colors), text, and layout, plus mechanisms for default attributes and per-class redefinition. Special edge kinds such as nearedge and backedge, and edge classes that can be hidden or folded interactively, let the graph author steer the hierarchical (Sugiyama-style) layout, crossing reduction, and orthogonal ("Manhattan") routing that the tool computes automatically.
Within the graph-data and format-conversion landscape, GDL occupies a niche similar to DOT from Graphviz and VCG (its own VCG ancestor): a declarative, layout-oriented graph language rather than a pure data-interchange serialization like GraphML or GML. It sees most use in compiler construction and embedded static-analysis workflows, and remains embedded today inside AbsInt's aiT, StackAnalyzer, and related tools after aiSee was discontinued as a standalone product on 1 November 2014.
Strengths include compact human-readable syntax, extremely rich layout control, and fast automatic layout of graphs with thousands of nodes. Limitations are its narrow, largely AbsInt-tied ecosystem, sparse modern documentation, and the fact that its many layout-specific attributes do not map cleanly onto general graph formats; converters such as Graph::Easy parse VCG/GDL but explicitly lose information on unmapped attributes.
Alternative Names: Graph Description Language
| Feature | GDL (aiSee) |
|---|---|
| Nodes | |
| Undirected Edges | |
| Directed Edges | |
| Hyperedges | |
| Mixed-directionality Edges | |
| Parallel Edges | |
| Self-loops | |
| Edges on Edges | |
| Nested Graphs in Nodes | |
| Nested Graphs in Edges | |
| Nested Graphs in Graphs | |
| Node Labels | |
| Edge Labels | |
| Attributes on Nodes | |
| Attributes on Edges | |
| Attributes on Graphs | |
| Typed Edges | |
Tools(Read & Write)
Frequently Asked Questions
What is a GDL (aiSee) file?
A GDL (aiSee) file stores a graph — its nodes, edges and attributes — in the GDL (aiSee) format (also: Graph Description Language). See the feature table above for what it supports.
How do I open a GDL (aiSee) file?
Open it in a graph tool that supports GDL (aiSee), or convert it to a format your tool reads. With GraphInOut you can convert GDL (aiSee) to GraphML, DOT, Connected JSON and more, right in your browser.
How do I convert a GDL (aiSee) file to another format?
Use the Convert from GDL (aiSee) link above: upload or paste your GDL (aiSee) file (input preset to GDL (aiSee)), choose a target format and download the result — free, no install.