department of computer science, university of california, irvine site visit for uc irvine kd-d...

22
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

Upload: ernest-reed

Post on 15-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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

Page 8: 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

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 )

Page 9: 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

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 )

Page 10: 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

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)

Page 11: 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
Page 12: 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
Page 13: 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
Page 14: 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

Department of Computer Science, University of California, Irvine

Site Visit for UC Irvine KD-D Project, April 21st 2004

Page 15: 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
Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

Department of Computer Science, University of California, Irvine

Site Visit for UC Irvine KD-D Project, April 21st 2004

Demo

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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.