VizSN/

= Visualize Your Social Network =

This the the proposal for Google_Summer_of_Code_2011 for Google Summer of 2011.

AIM: Show a graphical visualization of a Users social network and cluster the Users Community.

Motivation and Possible Applications
Visualizing a social network makes it more interesting. One a normal social network we can only see a list of friends and subscribers. Its a one dimensional list of users on the social network. However a visualization gives two or more dimensions to it. The moment you see how the Users around you are places and how they are interacting amongst themselves you can get a overview of how your thoughts and dents expressed in your social network might be flowing through the universe of dents.

There are a few applications possible with respect to StatusNet.


 * 1) Visualization is a great add-on to a social network and absolutely no other network(facebook or twitter) has it built-in.
 * 2) We can cluster the social network around the User and assign different colors. This can show how a particular user belongs to a cluster comprising of his school mates and his college mates or colleagues etc.
 * 3) For StatusNet, a visualization of the friends can be a graphical way to create lists. The user can be presented with the graph of his friends. He can click certain friends and add them to a list. Alternatively a framework can be created where along with a graph of all the friends, a graph of how the members of a list interact can also be created.
 * 4) Each User when seen on a graph can give some information when clicked on, for example, the last Dent, or location etc.

Possible Difficulties
Since SN instances are federated, all the graph edges (all interactions of friends) may not be available directly on that domain. This information will need to be requested from other Friends. As a flow chat below.


 * 1) Start plotting the graph for a user X.
 * 2) List all his friends as F.
 * 3) Find all the inter connections between each of the friends in F by.

obtaining whether (u,v) are friends will incur a HTTP request to the API or the FOAF file. Social Graph API can also be used.

Possible Visualization Libraries: A Review
Here is a list of few visualization libraries that can be used along with their Pros and Cons.

[www.gephi.org] Gephi is a well established system for social graph analysis and visualization. They have currently floated the web interface for gephi that will use the JS to draw the graph. Using similar technique would be a replication of work and would need expertise in plotting graphs using various techniques for example.
 * WebGL/PhiloGL along with Gephi backend.

 This library contains a well designed algorithm for drawing graphs using force directed fields. Various drawing formats exist for visualizing trees graphs or hypergraphs. They are also part of GSoC 2011. Using this library will ensure that we can concentrate more on the clustering algorithm and the enhancement for SN using the graph.
 * Javascript InfoVis Toolkit.

 This library uses the GWT, SmartGWT and JAVA. This is a very good library but JAVA might not fit well in the SN stack.
 * Mindmap

 Graphviz is a well known tool to plot graphs. However those graphs plotted by php graphviz pear library will be static in nature. Some work can be done to make image maps and allowing a click interface on each node on the graph but the usability of the system for SN might decrease due to lack of time across 3months of GSoC.
 * GraphViz

Thoughts and Possible Extension

 * 1) Develop a general framework that can accept data in form of JSON and display the graph. Each Node will contain some information associated with it and the right sidenav can show that information.
 * 2) Using this various entities can be visualized in future for example, Who dents whom graph, who is friend of whom (this will be achieved during course of GSoC project)
 * 3) Creating peoples tag using the visualization graph, by adding your friends to the list by clicking on their pictures(nodes).
 * 4) Visualizing interconnections between friends in a single tag, etc..