Free-Style Competition

The free-style category is the most general of the categories. Its purpose is to encourage researchers to send in their most intriguing innovative visualizations.

There are no specific requirements for the type of visualizations, and we encourage submissions of all types of drawings. Judging will be based on artistic merit and relevance to the graph drawing community. Consequently, submitting a brief description of the relevance is instrumental in our decision.

Theory Graph Competition

The theory graph category presents a certain "mystery" graph of 101 nodes and 190 edges. Judging will be based on both the artistic and informational merit.

Data

The data is presented in three formats:

  • Edge List

    The first line is the number of nodes (N). All other lines are pairs of vertex indices (0 to N-1) forming an (undirected) edge.

  • GraphML

    Details on this format are available on the GraphML website. (Warning, the conversion from the raw format is still untested. Please contact if there are any errors present).

  • Pajek (.net)

    Courtesy of Vladimir Batagelj. Details on this format are available on the Pajek website.

History of the World Cup Competition

Every four years, FIFA's World Cup phenomenon sweeps the globe, as it did this year. In honor of its long history, and as a curiosity of the tournament of the world's best footballers, this category is dedicated to analyzing and visualizing the evolution of the game. In particular, we provide the results for all matches played in the final rounds since the Cup's founding in 1930.

The object is to come up with a creative and informative visualization of the evolution of the game, as an animated (movie) graph. Clearly, one starting point is to represent each year as a different graph with each team being a (labeled) node and each (directed, labeled) edge representing a game played between two opponents. In this scenario, one would show how the graph evolved over the years. Of course, other possible scenarios are conceivable. As with the other categories, a description of the visualization is essential to the judge's understanding of the information presented.

You are allowed to include other relevant information into the visualization. For example, the political changes in the participating countries (example: Germany -> W. Germany, E. Germany -> Germany), or the locations of the tournaments.

Data

The data is presented in two formats:

  • Raw data

    1. WCDescr.txt is a description of the format.
    2. WCClean.txt is the pure raw data gathered on the tournament.
    3. WCNodes and WCEdges are the nodes and edges of the "graphs".

    All files are also available in a zip archive.

  • GraphML

    Details on this format are available on the GraphML website. (Warning, the conversion from the raw format is still untested. Please contact if there are any errors present).

  • Pajek (.net)

    Courtesy of Vladimir Batagelj. Details on this format are available on the Pajek website.

Java (Compile-Time) Dependency Competition

The Java Compile-Time Dependency graph consists of nodes representing Java classes and directed edges representing compile-time dependencies between two classes. For example, the class java.util.Calendar depends (among others) on the class java.util.Hashtable. The data provided contains the dependencies for all classes under the java.* packages for JDK 1.4.2. Dependencies between a provided class and one outside the java.* realm are not shown. In particular, classes in the javax.* packages are not represented. Additionally, we have removed any class that has no dependency relationship (no incoming or outgoing edge).

The task for this category is to develop a good (aesthetic and informative) visualization of the Java compile-time dependency graph. For example, one can visualize the graph in its entirety, interactively (submit a demo movie to illustrate the use), or as various interesting subgraphs.

Data

The data is presented in three formats:

  • Raw data

    1. README is a brief description of the content.
    2. Nodes is a list of the Java classes included. (1538)
    3. Edges is a list of Class compile-time dependencies (8032)

    All files are also available in a zip archive.

  • GraphML

    Courtesy of Vladimir Batagelj. Details on this format are available on the GraphML website. (Warning, the conversion from the raw format is still untested. Please contact if there are any errors present).

  • Pajek (.net)

    Courtesy of Vladimir Batagelj. Details on this format are available on the Pajek website.

Brief Compile-Time Dependency Description

In the Java programming language, as with other object-oriented languages, projects are organized around Objects of Classes. These Classes provide various means of storing (variables) and manipulating (methods) information. Besides using methods defined in a particular class and its parents (via inheritance), a class may also use methods and data available from other classes. During compilation, if Class A explicitly uses another Class B, then we say that A depends on B. That is, in order for the compiler to compile class A, it must first have a compiled version of class B available. For example, the following class depends on the presence of the java.util.Vector and java.lang.String classes.

import java.util.Vector;

public class Foo {
    public String combine(Vector v) {
        // ...
    }
}

The compile-time dependency graph is the graph formed by representing classes as nodes and class dependencies as directed edges. This graph identifies which other classes must be known in order to compile a class. Unlike a typical inheritance graph, cycles occur in this dependency graph, and it is very important to detect them, because all classes in a cycle must be compiled together and cannot be compiled one by one.