1 / 22

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

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. Network Stories. SUNBELT 2000 270 People & Structural Holes

toni
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Java Universal Network/Graph Framework (JUNG):A Brief Tour Danyel Fisher PhD CandidateDepartment of Informatics School of Information and Computer Science with Joshua O’Madadhain and Scott White

  2. 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

  3. 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

  4. 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

  5. Overview • Creating a graph • Annotating with data • Filters • Graph drawing • Algorithms • Demonstration

  6. Creating a graph • Load from a file • Pajek • GraphML (XML) • Build from scratch • Create vertices individuallygraph.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

  7. 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

  8. 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 )

  9. 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 )

  10. 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)

  11. Algorithms clustering (k neighborhood) connectivity maximum flow network distances structural equivalence centrality betweenness markov network importance metrics page rank hubs and authorities

  12. Graph types now • self-loops, parallel edges • bipartite and k-partite graphs • hypergraphs • mixed graphs (graphs with directed & undirected edges) coming soon • graph animation

  13. 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

  14. Demo

  15. 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

  16. Adoption • 4000 downloads since August • 200 messages in the forums • Users are writing • social network analyses • games • animated graph views • trust metrics

  17. Thanks http://jung.sourceforge.net Several demos online Active collaboration is welcome.

More Related