The Java Universal Network/Graph Framework (JUNG): A Brief Tour

advertisement
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
Download