Extension:Collaboration Diagram

What this extension can do
CollaborationDiagram allows one to visualize the graph of users' contribution. The extension can draw the following diagrams It uses the free graph drawing program GraphViz and GraphVizExtension for creating and rendering graphs.
 * 1) The diagram of user contribution for the given article.
 * 2) The diagram for several articles.
 * 3) The diagram for all pages in the given category.

In the diagram the user contributed the most will have the thickest arrow pointed to the article. That can be funny and useful form of article eition summary.

Dependencies

 * GraphViz
 * Extension:GraphViz
 * Extension:SocialProfile if you want avatars to be shown on a diagram.

How to install
To install this extension, first you shoul install the dependencies. Then you can download it and add the following toLocalSettings.php:

Configuration
There are some configuration option that allow you to more fully enjoy the extension:

Usage
Here are examples of using the collaborationdia tag.

Diagram for current page
To insert the diagram for the current page just place the collaborationdia tag anywhere in the article:



Diagram for one page
If you want to draw the diagram for the specific page use the collaborationdia tag with page parameter 



Diagram for the set of pages
Do you want to see who contributed in several pages? It's easy too: just use the page parameter for the list of names delimited by semicolon. 



Diagram for all pages in category
Another option is to view the diagram for the given category. Use the category parameter for that. 

Compact mode
If your diagram are too huge and you need more compact mode you can configure CollaborationDiagram for that. This is an example of filtering the authors who make only one edits and the figures view. Set the following in your LocalSettings.php:

And all the diagrams will look like that



Social Profile Integration
If you have Extension:SocialProfile installed there's one more cool option possible. In the standard mode it's possible to show avatars of users in a Collaboration Diagram. Just set the  and all the diagrams will be looking like that:



Special Page and tab
Go to ?title=Special:CollaborationDiagram&page= and you'll see collaboration diagram for the page Your_pagename. Alternatively you can click on the tab collaborationdiagram that located near the History tab. This tab is porved to be working on Vector and Monobook skins.



Skin support
In our terminology skin is a header of generated graphviz code. The default skin is default.dot located in the Collaboration Diagram extension folder. You can write your own skin, put it in the extension folder and set $wgCollaborationDiagramSkinFilename to the skin filename in LocalSettings.php:

There are two skins there by default: the default skin and fdp skin. Here are some examples of using skins:

Further work
0.2 version includes a lot more features that 0.1 but still the're are more to come! For example I want to make graphviz graphs prettier, add shadows and gradients so they could look cool. There is also a number of other ideas for viewing users' contributions. Seeproject tracker for gory details.

Theory
From: Bipartite Networks of Wikipedias Articles and Authors: a Meso-level Approach A bipartite network is a graph G = (U, V, E) whose vertices (or `nodes') can be divided into two disjoint sets U and V such that every edge (or `link') E connects a vertex in U to a vertex in V; that is, U and V are independent sets.

When we consider articles in Wikipedia and their editors, a bipartite network is a convenient representation: U is the set of editors and V is the set of articles in Wikipedia. The bipartite network formalism is ideal for studying collaboration, because the network structure encodes knowledge about which articles editors have edited together. By studying the clusters (or `modules') in the bipartite network, we are able to discover clustering of editors and articles and smaller patterns of collaboration. These dense groups could also be called 'epistemic communities' as used by Roth (2006) [12] where epistemic communities are understood as a descriptive instance only, not as a coalition of people who have some interest to stay in the community: it is a set of agents who participate in building the same knowledge.

Camille Roth, "Co-evolution in Epistemic Networks Reconstructing Social Complex Systems", Structure and Dynamics: eJournal of Anthropological and Related Sciences : Vol. 1: No. 3, Article 2, 2006.