department of computer science, university of california, irvine site visit for uc irvine kd-d...
TRANSCRIPT
Department of Computer Science, University of California, Irvine
Site Visit for UC Irvine KD-D Project, April 21st 2004
The Java Universal Network/Graph Framework (JUNG):
A Brief Tour
Danyel FisherPhD Candidate
Department of InformaticsSchool 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 21st 2004
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
Department of Computer Science, University of California, Irvine
Site Visit for UC Irvine KD-D Project, April 21st 2004
Programmatic Solution
• ProgrammableMake it easy to do the same thing again
• LibraryCan be a server, a client, or a small part of a larger
application
• ExtensibleIf you need a new routine, you can put it in yourself
• Open SourceTake 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 21st 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 21st 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 21st 2004
Creating a graph
• Load from a file– Pajek– GraphML (XML)
• Build from scratch– Create vertices individually
graph.add( new SparseVertex() );
– Specify edgesgraph.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 21st 2004
Adding user-defined data
key-value pairs associated withgraphs, 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 21st 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 21st 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 21st 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 21st 2004
Department of Computer Science, University of California, Irvine
Site Visit for UC Irvine KD-D Project, April 21st 2004
Algorithms
clustering (k neighborhood)
connectivitymaximum flownetwork distancesstructural equivalence
centralitybetweennessmarkov
network importance metrics page rankhubs and authorities
Department of Computer Science, University of California, Irvine
Site Visit for UC Irvine KD-D Project, April 21st 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 21st 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 21st 2004
Demo
Department of Computer Science, University of California, Irvine
Site Visit for UC Irvine KD-D Project, April 21st 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 21st 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 21st 2004
Thanks
http://jung.sourceforge.net
Several demos onlineActive collaboration is welcome.