Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Network Stories SUNBELT 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Overview Creating a graph Annotating with data Filters Graph drawing Algorithms Demonstration
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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 )
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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 )
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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)
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Algorithms clustering (k neighborhood) connectivity maximum flow network distances structural equivalence centrality betweenness markov network importance metrics page rank hubs and authorities
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Graph types now –self-loops, parallel edges –bipartite and k-partite graphs –hypergraphs –mixed graphs (graphs with directed & undirected edges) coming soon –graph animation
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Demo
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 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
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Adoption 4000 downloads since August 200 messages in the forums Users are writing –social network analyses –games –animated graph views –trust metrics
Department of Computer Science, University of California, Irvine Site Visit for UC Irvine KD-D Project, April 21 st 2004 Thanks Several demos online Active collaboration is welcome.