Department of Computer Science, University of California, Irvine The Java Universal Network/Graph Framework (JUNG): A Brief Tour Danyel Fisher PhD Candidate Department of Informatics School of Information and Computer Science with Joshua O’Madadhain and Scott White Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Network Stories SUNBELT 2000 • 270 People & Structural Holes • Database to UCINET to Pajek to MAGE • “I still use UCINET IV from 1992” SOCNET LIST • “I need a new algorithm” • “How does this algorithm do it?” • Reworking it all for a Java applet Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Programmatic Solution • Programmable Make it easy to do the same thing again • Library Can be a server, a client, or a small part of a larger application • Extensible If you need a new routine, you can put it in yourself • Open Source Take it apart and put it together some other way Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine JUNG General framework for graph modeling, analysis, and visualization object-oriented framework for many graphs easy visualization rich attribute structure complex filtering dynamic graphs Target audience is Java programmers with interest (but not expertise) in graphs Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Overview • • • • • • Creating a graph Annotating with data Filters Graph drawing Algorithms Demonstration Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Creating a graph • Load from a file – – • Pajek GraphML (XML) Build from scratch – Create vertices individually graph.add( new SparseVertex() ); – Specify edges graph.add( new DirectedEdge( v1, v2) ); – (Combine to create SQL or other format reader) • Use a graph generator – Small-world graphs – Power-law graphs Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Adding user-defined data key-value pairs associated with graphs, edges, vertices easy to write algorithms that operate on relational data String name = vertex.getUserDatum(NAME); edge.setUserDatum(DATE, new Date()); Decorator infrastructure allows graph to be tagged with standard weights labels indices Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Using graph filters • Extract sub-graphs of vertices and edges – All edges with user-data “weight” > 0.2 – All nodes whose “location” is “California” – All nodes with degree > 1 • Chain filters together – All nodes with “weight” > 0.2 and location is “California” with degree > 1 • Automate complex graph transformations acceptVertex( Vertex v ) acceptEdge( Edge e ) Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Simple Graph Display Quick to display an existing graph. gd = new GraphDraw(g); jpanel.add(gd); Renderers draw vertices and edges. paintEdge( g, Edge, x1, y1, x2, y2 ) paintVertex( g,Vertex, x, y ) Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Visualizing graphs Basic layout algorithms: – – – – – Fruchterman-Rheingold Kamada-Kawaii Eades Self-Organizing Maps Circle Plug and play architecture - Drop in your favorite renderer, layout Provided rendering engine is Swing-based - (but layouts are generic) Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Algorithms clustering (k neighborhood) connectivity maximum flow network distances structural equivalence Site Visit for UC Irvine KD-D Project, April 21st 2004 centrality betweenness markov network importance metrics page rank hubs and authorities Department of Computer Science, University of California, Irvine Graph types now – – – – self-loops, parallel edges bipartite and k-partite graphs hypergraphs mixed graphs (graphs with directed & undirected edges) coming soon – graph animation Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Statistical Analysis • Graph measures: – Degree distributions – Average shortest paths – Clustering coefficients • can use existing Java statistical packages – CERN Colt Scientific Library – Visual Numeric’s JMSL for Java Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Demo Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Conclusion • • • • Provides a common language for graphs Complements rather than replaces other graph packages/network tools A powerful framework for working with graphs with rich attribute structure Ideally suited for building tools/applications related to network exploration and data mining Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Adoption • 4000 downloads since August • 200 messages in the forums • Users are writing – – – – social network analyses games animated graph views trust metrics Site Visit for UC Irvine KD-D Project, April 21st 2004 Department of Computer Science, University of California, Irvine Thanks http://jung.sourceforge.net Several demos online Active collaboration is welcome. Site Visit for UC Irvine KD-D Project, April 21st 2004