Jung (Java Universal Network/Graph Framework)

For my studies on trust metrics, I need to code trust metrics. I was looking for a Java package for modeling, analysis, and visualization of graphs (possibly weighted and directed). I tried many of them (see below) but I found a wonderful one!
Java Universal Network/Graph Framework hosted on SourceForge so open source under a BSD licence (javadoc).
JUNG — the Java Universal Network/Graph Framework–is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network. It is written in Java, which allows JUNG-based applications to make use of the extensive built-in capabilities of the Java API, as well as those of other existing third-party Java libraries.
The current distribution of JUNG includes implementations of a number of algorithms from graph theory, data mining, and social network analysis, such as routines for clustering, decomposition, optimization, random graph generation, statistical analysis, and calculation of network distances (Dijkstra Shortest Path), flows, and importance measures (centrality, PageRank, HITS, Random Walk, etc.).
JUNG also provides a visualization framework that makes it easy to construct tools for the interactive exploration of network data. Users can use one of the layout algorithms provided, or use the framework to create their own custom layouts. In addition, filtering mechanisms are provided which allow users to focus their attention, or their algorithms, on specific portions of the graph.

If you don’t trust me, you can try the Ranking Demo or the other demos.

It is of course an evolving project, I already wrote some code to draw arrows and to label edges with weights and I’m trying to integrate it. I plan to code some of these trust metrics. JUNG is maintained by some great PhD students.

Other packages I tried and didn’t fit my needs: JGraphT (visualizable with Jgraph), JGraph, jdigraph, The Data Structures Library in Java.

Other packages I quickly analyzed without downloading them and trying them and not meeting my needs either (especially because focusing only on graph visualization): Graph Foundation Classes for Java (It is by IBM but it is retired and no longer available), OpenJGraph - Java Graph and Graph Drawing Project, Touchgraph (wonderful for visual interaction with drawn graphs), Grappa (A Java GRAPh PAckage), JGraphEd, Graph Editing Framework, GVF - The Graph Visualization Framework, Graph Mapper, VGJ, Visualizing Graphs with Java

Many of these packages (and some more) can be found searching graph on java-channel.org

Subscribe to RSS Feed If you enjoyed reading this, subscribe to my RSS Feed
(you can always unsubscribe later)

6 Responses to this post.

  1. Made out of people's Gravatar

    Posted by Made out of people on 06.04.04 at 11:39 pm

    Thinking through MVC animation

    Ooh! Paolo likes JUNG! And from here on, this is just thinking-through a problem, in the hopes that moving my fingers will cause my brain to fire. This is highly techie! Feel free to ignore, unless thinking about java paintComponent…

  2. Anonymous's Gravatar

    Posted by Anonymous on 06.04.04 at 11:39 pm

    You can also check some relevant pages about…

  3. Anonymous's Gravatar

    Posted by Anonymous on 06.04.04 at 11:39 pm

    You can also check some relevant pages about…

  4. Anonymous's Gravatar

    Posted by Anonymous on 06.04.04 at 11:39 pm

    You can also check some relevant pages about…

  5. Anonymous's Gravatar

    Posted by Anonymous on 06.04.04 at 11:39 pm

    You can also check some relevant pages about…

  6. pau-pau's Gravatar

    Posted by pau-pau on 06.04.04 at 11:39 pm

    hi!!!paolo!!!u r my favorite character in MOB….ur so CUTE sobra…!!!!!!!!yun lang….sana never na mag end ang MOB…..ganda ng show nyo grabe….naka-kilig…!!!ur d best PAOLO…!!!1

Respond to this post