<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gephi</title>
	<atom:link href="http://gephi.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://gephi.org</link>
	<description>graph exploration and manipulation</description>
	<lastBuildDate>Thu, 26 Aug 2010 20:13:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Scientist Christian Tominski about Gephi</title>
		<link>http://gephi.org/2010/scientist-christian-tominski-about-gephi/</link>
		<comments>http://gephi.org/2010/scientist-christian-tominski-about-gephi/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 16:37:22 +0000</pubDate>
		<dc:creator>Mathieu Bastian</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[0.7]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[infovis]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=3020</guid>
		<description><![CDATA[Guest blog post from Dr. Tominski who accepted to review Gephi 0.7alpha4 for us.
Christian Tominski received his diploma (MCS) from the University of Rostock in 2002. In 2006 he received doctoral degree (Dr.-Ing.) from the same university. Currently, Christian is working as a lecturer and researcher at the Institute for Computer Science at the University [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Guest blog post from Dr. Tominski who accepted to review Gephi 0.7alpha4 for us.</strong></p>
<p class="reclame" style="text-align: left; font-weight: normal;margin-top:20px;"><img class="alignright size-full wp-image-3024" title="ct" src="http://gephi.org/wp-content/uploads/2010/08/ct.jpg" alt="" width="118" height="150" /><a href="http://www.informatik.uni-rostock.de/~ct/">Christian Tominski</a> received his diploma (MCS) from the University of Rostock in 2002. In 2006 he received doctoral degree (Dr.-Ing.) from the same university. Currently, Christian is working as a lecturer and researcher at the Institute for Computer Science at the University of Rostock. Christian has authored and co-authored several articles in the field of information visualization. His main interests concern visualization of multivariate data in time and space, visualization of graph structures, and visualization on mobile devices. In his research, a special focus is set on interactivity, including novel interaction methods and implications for software engineering.</p>
<p style="margin-top:50px;">
Recently, I stumbled upon the Gephi Project – an open source graph visualization system. As I’ve done some research in the area of interactive graph visualization, I was eager to see how Gephi works and if it brings some new concepts or if it’s yet another <strong>graph visualization</strong> system. I’ll share my thoughts on Gephi from three perspectives. The first one is the user perspective. I’ll take the role of a user who is interested in getting a visual depiction of some graphs. Secondly, I’ll take the role of a developer and shed some light on the aspect of software engineering. And finally, I’ll be a scientist and try to foresee if and in which regard Gephi might have some impact on visualization research.</p>
<h3>The User’s Perspective</h3>
<p>Gephi has been designed with the users and their needs in mind. The system welcomes its users with a familiar look and feel. It is quite easy to load graph data into the system. Many of the known file formats for graphs are supported, as for instance, DOT, GML, GraphML, or Tulip’s file format TLP. A nice thing about the data import is that an import report provides essential information about the <strong>import process</strong> (e.g., number of nodes and edges, edge-directedness, potential problems, etc.). Once imported, the graph is shown as nodes and links in a main view, and several complementary views provide additional information.</p>
<p>The main view is the core for visual graph exploration. It allows users to zoom in, to select nodes, to adjust node size and color, to find shortest paths, and to access attributes of nodes and edges. In addition to letting users set sizes and colors manually, the system can also set these automatically based on attributes associated with nodes and edges. What is called “Partition” in Gephi is used to assign unique colors to nodes and edges based on qualitative data attributes (e.g., class affiliation). Quantitative data values can be mapped to size and color of nodes, edges, and labels using the “Ranking” tool. All these tools are customizable. It is worth mentioning, that Gephi provides some nice <strong>user controls</strong> to parameterize the color coding.</p>
<p>Gephi also supports graph editing, i.e., insertion and deletion of nodes and edges as well as manipulation of attribute values. What is missing in terms of editing the data is the possibility to add (and delete) attributes, for instance to generate some derived data values using simple formula.</p>
<p>A key aspect in graph exploration is the layout of node and edges. As it is usually unclear what will be the best <strong>layout</strong> for a given graph, Gephi offers various layout algorithms to choose from. While a layout is being computed, the main view constantly updates itself to provide <strong>feedback</strong> of the progress made. A big plus is that users can interrupt the layout algorithm once they deem the result to be ok or if they find that it might be more suitable to use the current result as the initial setup for another algorithm. This way users can easily tune the layout to fit the graph and the particular needs. Users may put the finishing touches to the layout by moving nodes manually in the main view.</p>
<p>Once a suitable visual representation has been created, the final step is to export nice pictures of the graph. To this end, Gephi follows the philosophy of providing a dedicated export interface with many options to create high quality <strong>printouts</strong>.<br />
People that have been working with larger graphs might know that some computations on graphs (including layout computation) are quite complex and take some time. While other systems are blocked during computation and in the best case provide a progress bar, Gephi is different. <strong>Long running calculations are concurrent to the main application.</strong> From my point of view, this is one of the strongest points of Gephi, the system does not block during costly computations. The benefit for the users is that they can always interact, for instance to initiate some other computations or to cancel running ones when they recognize that a re-parameterization would yield better results.</p>
<p>Concurrency is Gephi’s solution to offering computations of statistics about the graph. Currently, Gephi supports a variety of classic graph statistics including degree distribution, number of connected components, and others. Based on data attributes and computed statistics, the graph can be filtered to reduce nodes and edges to those that fulfill the filter criteria. In a <strong>dynamic filtering UI</strong>, several filters can be combined using drag’n’drop and thresholds can be manipulated easily, for instance via sliders. Besides using filtering for data reduction, Gephi also provides basic support for graph clustering. However, the currently implemented MCL algorithm is still experimental. But there is the possibility to manually group nodes to build a hierarchical structure on top of the visualized graph. Yet, this is quite cumbersome for larger graphs. Additional tools are needed to support the user in creating a navigable hierarchy on top of a graph. Configurable clustering pipelines that combine several strategies for clustering (e.g., based on attributes or based on bi-connected components) in addition to a clustering wizard user interface would be helpful.</p>
<p>In summary, I see a much potential in Gephi, the overall shape of the system impressed me – me as a user. I personally felt it easy to work with Gephi and explore some of my own data sets and some provided at Gephi&#8217;s website. Given the fact that the version I’ve worked with is 0.7 alpha, <strong>there is also much space for improvements</strong>. In the first place I would like to mention the navigation of the graph. The main view provides just basic zoom and pan navigation, which is even imprecise in some situations. Navigation tools like those provided in Google Earth and navigation based on paths through a graph would be really helpful. Moreover, I was missing the concept of linking between views. Selecting an element (node or edge) in one view should highlight that element in all other views. Right now this is not really an issue as the number of views seen in parallel is quite low. But once additional views are needed, for instance to focus on data attributes in a Parallel Coordinates Plot or to visualize the cluster hierarchy in a dedicated view, or when one and the same graph is shown in parallel in two or more main views for comparing different analytic results, linking will be crucial for user experience. But these things are not too complex and should be easy to integrate in future versions of Gephi. Another aspect regards highlighting in the main view: instead of marking the selected node, all non-selected nodes faded out to focus on the selected node. This implies rather big visual changes because all but one nodes change their appearance when a single node gets selected and deselected.</p>
<table border="0">
<tbody>
<tr>
<td><strong><img class="alignnone size-full wp-image-3021" title="Pros" src="http://gephi.org/wp-content/uploads/2010/08/tick-circle.png" alt="" width="16" height="16" /> Pros:</strong></td>
<td><strong><img class="alignnone size-full wp-image-3022" title="Cons" src="http://gephi.org/wp-content/uploads/2010/08/minus-circle.png" alt="" width="16" height="16" /> Cons:</strong></td>
</tr>
<tr>
<td>
<ul>
<li>Easy graph import and export</li>
<li>Many options for visual encoding</li>
<li>Various layout algorithms to choose from</li>
<li>Support for dynamic filtering</li>
<li>Computation of graph statistics</li>
<li>Basic support for graph clustering</li>
<li>System does not block during long running computations</li>
</ul>
</td>
<td valign="top">
<ul>
<li>Graph navigation can be improved</li>
<li>No linking among views</li>
<li>Few visual glitches</li>
<li>Still an alpha version with bugs here and there</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3>The Developer’s Perspective</h3>
<p>Now let me switch to the developer’s view. Gephi is open source software so that everybody can participate in improving the system or can adapt the system to personal or business needs. Gephi seems to be very well designed on the back-end. The project is based on the Netbeans platform and the Java language. It is subdivided into a number of modules that define several APIs and SPIs and that provide implementations of these interfaces. <strong>Thanks to the modular structure, Gephi can be extended quite easily.</strong> The best way to do so is to implement plugins. Plugins can be used, for instance, to add further layout or clustering algorithms, statistical computations, filter components, or export methods. The modular structure also allows for using only specific parts of the Gephi project in one’s own projects. The Gephi Toolkit is a good example. It is not an end-user desktop application, but a class library that provides all the functionality of Gephi to those who want to reuse Gephi’s functionality and data structures in different ways.</p>
<p>As I’ve mentioned in the user perspective, the way how Gephi deals with long running computations is a big plus. Given the fact that <strong>aspects of multi-threading are inherent in the system</strong> from the very beginning and are manifested at the systems core, I sincerely hope – no, I’m quite sure that Gephi will not run into all the problems that are likely to occur when multithreading is integrated into an existing single-threaded system, as I have experienced it myself. Also I conjecture that others will find it much easier to implement concurrent non-blocking extensions of the system simply by following the way how existing code handles things in Gephi.</p>
<p>As Gephi is split up into many different modules, it took me a while to get accustomed to the system and to learn which functionality can be found in which module. But I have to add that I had no prior experience in Netbeans platform development and the module concept that is used there. I also found that the code documentation could be improved in several parts of Gephi’s sources. On the other hand, the Gephi website provides informative wiki pages with various examples and tutorials.</p>
<p>My view from the developer’s perspective can be summarized as the following pros and cons:</p>
<table border="0">
<tbody>
<tr>
<td><strong><img class="alignnone size-full wp-image-3021" title="Pros" src="http://gephi.org/wp-content/uploads/2010/08/tick-circle.png" alt="" width="16" height="16" /> Pros:</strong></td>
<td><strong><img class="alignnone size-full wp-image-3022" title="Cons" src="http://gephi.org/wp-content/uploads/2010/08/minus-circle.png" alt="" width="16" height="16" /> Cons:</strong></td>
</tr>
<tr>
<td>
<ul>
<li>Open source</li>
<li>Modular structure</li>
<li>Well defined interfaces</li>
<li>Extensible via plugins</li>
<li>Inherently multithreaded</li>
</ul>
</td>
<td valign="top">
<ul>
<li>In-code documentation can be improved</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3>The Scientist’s Perspective</h3>
<p>As a scientist I’m not so much interested in developing fully-fledge end-user software, but in developing solutions to scientific questions and in publishing the results. <strong>A difficulty in interactive visualization is that usually one needs a broad basis of fundamental functionality to be able to develop such solutions.</strong> Previous attempts of establishing a common infrastructure for interactive data exploration made notable progress, but eventually did not fully succeed or are no longer actively maintained. This is due to the fact that a single researcher usually simply does not have the time to do decent research and at the same time to maintain a larger software project.</p>
<p>I personally feel that Gephi can become such a fundamental infrastructure. Maintained by an active community, the system allows researchers to focus on solutions in form of plugins, while they can utilize the functionality that the system provides. Visualization researchers will be happy if they can simply plug in <strong>new visualization techniques</strong> as additional views, test new layout algorithms, and experiment with new clustering methods. Moreover, new solutions can be easily disseminated to real users in the community. This might prove beneficial when it comes to acquiring <strong>early user feedback</strong> or when more formal user evaluation is needed prior to publishing new techniques and concepts.</p>
<p>A big issue in visualization research is <strong>visual analytics</strong>, that is, the combination of analytical, interactive, and visual means to facilitate making sense of large volumes of data. In terms of analytic means, a goal is to <strong>break analytic black boxes</strong> and make analysis algorithms interactively steerable. With the architecture of Gephi, where parameterizable algorithms run concurrently and provide feedback in form of intermediate results, I believe this goal can be reach in the future. A thing that I’m curious about is if it is also possible to come up with concepts that allow for <strong>plugging in new interaction techniques</strong>. As interaction is usually quite tightly bound to a view, I wonder if interaction could be implemented as independent plugins as well, and if novel interaction concepts will be supported in the future (e.g., touch interaction)? Furthermore, aspects of interactive collaboration of multiple users working to solve a common analysis problem could be of interest. A question related to the visual side is whether it is possible to use Gephi with different displays and display environments such as tabletop displays, display walls, smart phones, or multi-display environments?</p>
<p>A facet of graph visualization that I did not mention in the user’s perspective as I felt it more suited to be mentioned here is dealing with dynamically changing graphs. Visualization of <strong>time-varying graphs</strong> is a hot research topic and Gephi is about to face this challenge. There is preliminary support for exploring time-dependent graphs via a time slider. But there is more to this that just browsing in time. Concepts have to be integrated to support easy comparison of multiple snapshots of a graph and to highlight significant changes in the development of a graphs history.</p>
<p>Let me try to put my thoughts into a pros and cons list:</p>
<table border="0">
<tbody>
<tr>
<td><strong><img class="alignnone size-full wp-image-3021" title="Pros" src="http://gephi.org/wp-content/uploads/2010/08/tick-circle.png" alt="" width="16" height="16" /> Pros:</strong></td>
<td><strong><img class="alignnone size-full wp-image-3022" title="Cons" src="http://gephi.org/wp-content/uploads/2010/08/minus-circle.png" alt="" width="16" height="16" /> Cons:</strong></td>
</tr>
<tr>
<td>
<ul>
<li>Potential infrastructure for visualization research</li>
<li>Researchers can focus on solutions in form of plugins</li>
<li>Potential to use community for user feedback and evaluation</li>
<li>Partial results for current research questions (graph clustering, steerable algorithms, dynamic graphs)</li>
<li>Nice playground for experimentation and testing new ideas</li>
</ul>
</td>
<td valign="top">
<ul>
<li>Unclear if new and alternative technologies will be supported</li>
</ul>
</td>
</tr>
</tbody>
</table>
<h3>Summary</h3>
<p>Since I’ve put hands on Gephi I’m infected. Maybe I’m dazzled by the beautiful demo video or the nice pictures that have been generated using Gephi, but in my opinion Gephi has the potential to become a big player in interactive visual graph exploration and analysis. From all perspectives that I’ve taken I see many positive things – and plenty of room for improvements or additional features. I do hope that the people behind Gephi will continue their work to the benefit of all users, developers, and researchers.</p>
<h3>Related Stuff</h3>
<p>There are many other systems and frameworks out there that do a great job in interactive graph visualization or in supporting it as a toolkit. I would like to give credit to these systems, because they can be the source of many ideas and much inspiration:</p>
<ul>
<li><a href="http://tulip.labri.fr/TulipDrupal/">Tulip – A great visualization system</a></li>
<li><a href="http://www.cytoscape.org">Cytoscape – Sophisticated network visualization for bio-medicine</a></li>
<li><a href="http://graphexploration.cond.org">GUESS – Interactive graph exploration at its best</a></li>
<li><a href="http://vlado.fmf.uni-lj.si/pub/networks/pajek/">Pajek – Graph analysis at its best</a></li>
<li><a href="http://prefuse.org">prefuse – The well known information visualization framework</a></li>
<li><a href="http://jung.sourceforge.net">JUNG – A library for graph structures and algorithms</a></li>
<li><a href="http://www.jgrapht.org">JGraphT – Another library for graphs</a></li>
</ul>
<div class="reclame" style="margin-top:20px;">To go further about Gephi design, see also this <a href="/gephi-initiator-interview-how-semiotics-matter/">article</a> about semiotics.</div>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/scientist-christian-tominski-about-gephi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GSoC mid-term: Shader Engine</title>
		<link>http://gephi.org/2010/gsoc-mid-term-shader-engine/</link>
		<comments>http://gephi.org/2010/gsoc-mid-term-shader-engine/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 14:54:41 +0000</pubDate>
		<dc:creator>Mathieu Bastian</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Functionality]]></category>
		<category><![CDATA[gpu]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[visualization]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=3010</guid>
		<description><![CDATA[
My name is Antonio Patriarca. The aim of my Shader Engine project is to implement a new visualization engine in Gephi based on modern graphics card capabilities. The current one is in fact designed to be very portable and only uses legacy features which are not optimal on modern hardware.
The OpenGL API, which Gephi uses, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2977" style="border: 5px solid #cccccc;" title="Antonio picture" src="/wp-content/uploads/2010/08/primo_piano-100x100.jpg" alt="" width="100" height="100" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">My name is Antonio Patriarca. The aim of my <a href="http://wiki.gephi.org/index.php/Specification_-_GSoC_Shader_Engine">Shader Engine</a> project is to implement a new visualization engine in Gephi based on modern graphics card capabilities. The current one is in fact designed to be very portable and only uses legacy features which are not optimal on modern hardware.</p>
<p>The <strong>OpenGL</strong> API, which Gephi uses, has changed a lot in the last years to follows the evolution of the hardware. Several parts of the first versions are now considered deprecated and they are difficult to implement efficiently in the drivers. For this reason, it is often necessary to redesign the graphics engines based on old versions to get the best from modern hardware.</p>
<p>In the old days, graphics primitives were rendered using a fixed pipeline implemented in hardware. The programmers had to set several states in order to control the rendering logic. Several tricks has to be invented to achieve not supported effects. At each new OpenGL version, several new states were introduced to give more freedom and power to the users and the pipeline soon became very complex and difficult to manage. This is how the current Gephi visualization engine is still implemented.</p>
<p>Inspired by the success of the RenderMan Shading Language, graphics card manufactures finally introduced some programmable stages to the graphics pipeline. These stages give the ability to precisely and easily define the rendering logic without taking care of a large number of states. At first, the only way to implement the programs, called <strong>shaders</strong>, running in these programmable stages was using an assembly language. But the GLSL language was soon designed to simplify shader implementation in OpenGL and other similar high level languages were introduced in the other APIs as well. The number of the programmable stages of the graphics pipeline are increased since their first introduction and modern GPUs are now often used as general purpose stream processors. The <strong>new visualization engine</strong> will use the shaders to render the nodes and edges of the graph in a more efficient way, while achieving an higher quality image.</p>
<p style="text-align: center;"><img class="size-medium wp-image-3013     aligncenter" style="margin-top: 15px; margin-bottom: 15px;" title="GPU" src="http://gephi.org/wp-content/uploads/2010/08/gpu-300x296.jpg" alt="" width="228" height="224" /></p>
<h3>Current Gephi Visualization Module issues</h3>
<p>It is useful to discuss the problems of the current architecture to better understand the new engine design. The current Gephi Visualization Module was designed to be very portable and only use features available in the first OpenGL version. It is therefore based on the fixed pipeline and it sends the geometry to the GPU using the immediate mode or display lists. The new engine <strong>will still support legacy hardware</strong>, but it will also includes a more modern pipeline. Some issue will be only solved in the new pipeline.</p>
<p>Each renderable object (nodes, edges and labels) implements a common interface which take care of how it is rendered and responds to changes in the graph. In the rendering loop, the engine iterates over each edge, node and label and calls the corresponding method to render it. This is not optimal on modern graphics cards for several reasons.<br />
A modern GPU is composed by <strong>several cores</strong> which runs the same program (they may execute different parts of it though) in parallel. Each time a state change, the GPU may stall waiting for each core to terminate before updating the state. In the current design, several states change between consecutive renderable objects causing the GPU to be idle most of the time. Moreover, each renderable object is composed by a small number of polygons and it is unable to use all the available cores. The best way to render objects using a modern graphics card is to sort them by state change and render them in <strong>batches</strong>. This is the strategy which will be implemented in the new visualization engine.</p>
<p>The OpenGL API is optimized to render 3D polygonal meshes. Therefore, the only ways to draw vector objects were to approximate them using polygons or textures. They both have issues when the objects are bigger enough which can be solved using additional memory. The current engine draw circles and spheres using a polygonal approximation. Shaders gives to the programmers a lot of additional freedom and it is now possible to draw general objects rendering a <strong>single polygon</strong>. The shapes generated using shaders looks good regardless of the size of the objects. The engine will use this method where possible.</p>
<h3>New Visualization Module design</h3>
<p><img class="alignright size-thumbnail wp-image-3012" title="Node " src="http://gephi.org/wp-content/uploads/2010/08/node_new-100x100.jpg" alt="" width="100" height="100" />The new visualization engine will be composed by three parts: the <strong>viewer</strong>, the <strong>controller</strong> and the <strong>data manager</strong>. The viewer controls the drawable object and the main rendering loop. The controller updates both the camera and the selection area and handles all the window and mouse events. The data manager updates the graph information in the engine and decides what to draw each frame. Each part of the engine runs in a different thread. Therefore, it shouldn’t freeze when the graph is modified as it sometimes happen in current engine.</p>
<p>The rendering system of the new visualization engine will use concrete and immutable representations of the renderable objects. Each data manager frame, after the graph has been updated, each node, edge and label data is inserted in a render batch which is then inserted in the specific render queue. All the render queues (one for each renderable object type) are sent with the current camera to the Viewer for rendering. The Viewer then updates the current render queues and wait the following display method call.</p>
<p>The rendering logic for each renderable object will be defined in the renderers. Each renderer will be only able to render a specific type of object and it will render the entire render queue. There will be no way to directly render a single renderable object in the new visualization engine. The viewer will maintain a single renderer for each object type and it will then use them to render the current render queues. Two renderers will be implemented for each renderable object (one using the OpenGL 2.0 version and one using the OpenGL 1.2 version) and the viewer will decide what renderer to use based on the installed graphics card and user preferences. A detailed description of all the renderers will be soon published in the specification.</p>
<h3>New features</h3>
<p>The majority of the changes in the new visualization engine will be invisible to the user, but there will be also some new features. The most important ones are the following (some of them will also requires some works in the other Gephi modules):</p>
<ul>
<li><strong>Different node shapes for each node</strong>. It will be possible to define a different shape for each node and therefore use node shapes to distinguish between the different groups of nodes.</li>
<li><strong>Images as node shape</strong>. It will be possible to load images to use instead of the predefined node shapes.</li>
<li><strong>Wider choice of 2D node shape</strong>. Several node shapes will be supported in addition to circles and rectangles.</li>
<li><strong>Starting and ending color for edges</strong><strong></strong>. It will be possible to define a different color for the starting and ending part of the edges and use gradients to define edge directions.</li>
<li><strong>Clusters implemented as halos or depth-aware borders around nodes</strong>. Clusters will be supported rendering additional halos or borders of increasing depth of the cluster color around each node in the cluster.</li>
<li><strong>Per primitive anti aliasing (PPAA)</strong>. Shaders allows the implementation of an anti aliasing strategy independent to multisampling. The new engine will implement these strategies to achieve a better image quality. In the figure above it is possible to observe the PPAA technique applied to the transition between the inner part and the border of a node in an old prototype without multisampling. The effect is slightly exaggerated.</li>
</ul>
<h3>Current status and future work</h3>
<p>The engine is currently implemented as a standalone application independent of the rest of Gephi. The engine has been implemented in this way to be able to focus on the most important parts of the engine from the start. Gephi wasn’t in fact independent enough from the current visualization engine to immediately substitutes it with the new one. When the project will terminate, the standalone application will not have all the desired features and it will not be ready to be included in Gephi. The basic rendering system logic and the general engine architecture will be probably implemented in time though.</p>
<p>When the GSoC project will terminate the interaction layer with Gephi will be implemented and some parts of the code will be adapted to work with it. The project will be rewritten as a Gephi module and the required interfaces with the rest of the application will be implemented.</p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/gsoc-mid-term-shader-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing Data Laboratory</title>
		<link>http://gephi.org/2010/introducing-data-laboratory/</link>
		<comments>http://gephi.org/2010/introducing-data-laboratory/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 15:04:09 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Functionality]]></category>
		<category><![CDATA[0.8]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[edition]]></category>
		<category><![CDATA[laboratory]]></category>
		<category><![CDATA[manipulation]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2964</guid>
		<description><![CDATA[
My name is Eduardo Ramos and this summer I have been working on a project for Gephi called Data Laboratory, which was initially designed as an idea for a GSoC project. The first specifications can be found at this wiki page . The new data laboratory features will be included in the 0.8 version of [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2977" style="border: 5px solid #cccccc;" title="Eduardo Ramos" src="/wp-content/uploads/2010/08/eduardo_ramos1.png" alt="Eduardo Ramos" width="80" height="95" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">My name is Eduardo Ramos and this summer I have been working on a project for Gephi called Data Laboratory, which was initially designed as an idea for a GSoC project. The first specifications can be found at <a href="http://wiki.gephi.org/index.php/Google_Summer_Of_Code_2010#Data_Laboratory">this wiki page</a> . The new data laboratory features will be included in the 0.8 version of Gephi, released later this year.</p>
<h3>Presentation</h3>
<p>The general purpose of this project is to improve the basic and common features offered in &#8220;Data Laboratory&#8221; section of Gephi software.<br />
In this section there are two tables (nodes and edges) that show the attributes of every node or edge as table columns. Before starting this project, the available features for modifying the table structure and values were not enough so there was a lack of <strong>graph manipulation and edition</strong>, refine or even create a graph with attributes in a tabular view.</p>
<p>New key-features coming:</p>
<ul>
<li><strong>Graph edition in many ways</strong></li>
<li><strong>Columns add/remove</strong></li>
<li><strong>Search &amp; Replace</strong></li>
<li><strong>Import &amp; Export CSV files</strong></li>
<li><strong>Charts and statistics reports</strong></li>
<li><strong>Sparlines</strong></li>
<li><strong>Merge columns</strong></li>
<li><strong>And the possibility of extending all of this with plugins!</strong></li>
</ul>
<p>Data Laboratory needed to provide an API/SPI for using and extending the new options available as plugins. A complete API is being designed to be able to use these new general features from any module or plugin. As this API is independent from the user interface, these actions <strong>will be included in the toolkit</strong>.</p>
<h3>Types of manipulators (i.e actions) and how they look in the UI</h3>
<div id="attachment_2995" class="wp-caption alignnone" style="width: 703px"><a href="http://gephi.org/wp-content/uploads/2010/08/manipulators3.png"><img class="size-large wp-image-2995" title="Data Laboratory Manipulators" src="http://gephi.org/wp-content/uploads/2010/08/manipulators3-1024x593.png" alt="" width="693" height="401" /></a><p class="wp-caption-text">Click to enlarge image</p></div>
<h4>General actions</h4>
<p>These are not related to a specific element like nodes, edges or columns and normally provide a UI. They appear as buttons in the toolbar at the top of data table, and can be grouped in a drop down button called “Plugins” if necessary.</p>
<p>Some of the new basic features of this type are: <strong>Add node/edge</strong> or <strong>Clear graph and clear edges</strong>. The rest of general actions in the picture are more special. <strong>Search/Replace</strong> shows an advanced UI to search and replace values in the table cells. It can do a normal search or a regular expression based search, among other useful options. It is implemented in a separate controller that is part of the Data Laboratory API.</p>
<p><img class="alignnone size-full wp-image-2975" title="Search Replace in Data Laboratory" src="http://gephi.org/wp-content/uploads/2010/08/search-replace.png" alt="" width="634" height="437" /></p>
<p>Export CSV table allows the user to export the data in the current table selecting the desired columns, separator and charset to use:</p>
<p><img class="alignnone size-full wp-image-2969" title="export" src="http://gephi.org/wp-content/uploads/2010/08/export.png" alt="" width="236" height="394" /></p>
<p>Import CSV does the contrary operation, showing a wizard to configure the import settings in 2 steps:</p>
<div id="attachment_2971" class="wp-caption alignleft" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/import1.png"><img class="size-medium wp-image-2971" title="import1" src="http://gephi.org/wp-content/uploads/2010/08/import1-300x238.png" alt="" width="300" height="238" /></a><p class="wp-caption-text">Click on the image to enlarge.</p></div>
<div id="attachment_2972" class="wp-caption alignleft" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/import2.png"><img class="size-medium wp-image-2972" title="import2" src="http://gephi.org/wp-content/uploads/2010/08/import2-300x165.png" alt="" width="300" height="165" /></a><p class="wp-caption-text">Click on the image to enlarge.</p></div>
<p style="clear: both;">
<h4>Nodes/Edges actions</h4>
<p>These actions are shown in a context menu on right click on one or more table rows that represent a node or an edge.<br />
The currently implemented manipulators for nodes are:</p>
<ul>
<li><strong>Edit node properties</strong> – Shows edit window for the clicked node</li>
<li><strong>Select on graph view</strong> – Centers graph view on the clicked node</li>
<li><strong>Select neighbor nodes on table</strong> – Modifies the same table rows selection to highlight neighbor nodes of the clicked node</li>
<li><strong>Delete</strong> – Deletes the selected node(s)</li>
<li><strong>Clear node data…</strong> – Shows a UI to choose what columns to clear of the selected node(s)</li>
<li><strong>Copy node data to the other selected nodes</strong> – Is only enabled when more than one node is selected, and copies the chosen columns of the clicked node to the other nodes</li>
<li><strong>Group</strong> – Groups the selected nodes</li>
<li><strong>Ungroup</strong> – Ungroups the selected groups</li>
<li><strong>Ungroup recursively</strong> – Ungroups the selected groups, and all their descendant groups</li>
<li><strong>Move to group&#8230; </strong>– Shows a UI to choose an available group to move the selected nodes</li>
<li><strong>Remove from group</strong> – Removes the selected nodes from their group, putting them in the superior level of hierarchy</li>
<li><strong>Settle and Free</strong> – Lock/Unlock the node(s) position</li>
<li><strong>Set node size</strong> – Sets the given size in the UI to the selected node(s)</li>
<li><strong>Link nodes</strong> – Is only enabled when more than one node is selected and shows a UI to select a source node which will be linked to all the other selected nodes</li>
<li><strong>Copy node</strong> – Makes the desired number of copies of the selected node(s) with their attributes and properties</li>
</ul>
<p>And for edges:</p>
<ul>
<li><strong>Select source node on graph view</strong> – Centers graph view on the source node of the clicked edge</li>
<li><strong>Select target node on graph view</strong> – Centers graph view on the target node of the clicked edge</li>
<li><strong>Select source and target on nodes table</strong> – Modifies the nodes table row selection to highlight the source and target nodes of the clicked edge</li>
<li><strong>Delete</strong> – Deletes the selected edge(s)</li>
<li><strong>Delete with nodes</strong> – Deletes the selected edge(s) and the nodes that the user chooses in the UI (source and/or target)</li>
<li><strong>Clear edge data</strong>… – Shows a UI to choose what columns to clear of the selected edge(s)</li>
<li><strong>Copy edge data to the other selected edge</strong> – Is only enabled when more than one edge is selected, and copies the chosen columns of the clicked edge to the other edges</li>
</ul>
<h4>Attribute columns  actions</h4>
<p>Like nodes or edges manipulators, these are designed to operate with a specific type of data, attribute columns in this case.<br />
They appear in Data Laboratory UI as independent (or grouped by type) drop down buttons. Each one represents an action that can be done with a single attribute column, therefore when the button is clicked, a list of the available columns for that operation (being the conditions specified by the manipulator) is shown to select one for execution.</p>
<p><img class="size-full wp-image-2967" title="attribute-columns" src="http://gephi.org/wp-content/uploads/2010/08/attribute-columns.png" alt="" width="612" height="400" /></p>
<p>Some of the implemented attribute column manipulators are:<br />
Basic operations like <strong>adding</strong> columns, deleting columns, <strong>clearing </strong>and <strong>copying</strong> columns data, <strong>filling </strong>a column with some value and <strong>duplicating</strong> a column to other with the data type that the user needs, doing a <strong>data conversion</strong> when possible.</p>
<p><img class="size-full wp-image-2968" title="duplicate-column" src="http://gephi.org/wp-content/uploads/2010/08/duplicate-column.png" alt="" width="524" height="409" /></p>
<p>Other column manipulators operate with specific types of columns data like boolean or numeric or use regular expressions to obtain a new column from other column.</p>
<div id="attachment_2976" class="wp-caption alignleft" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/statistics.png"><img class="size-medium wp-image-2976" title="statistics" src="http://gephi.org/wp-content/uploads/2010/08/statistics-300x151.png" alt="" width="300" height="151" /></a><p class="wp-caption-text">Click on the image to enlarge.</p></div>
<div id="attachment_2970" class="wp-caption alignleft" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/frequencies.png"><img class="size-medium wp-image-2970" title="frequencies" src="http://gephi.org/wp-content/uploads/2010/08/frequencies-300x296.png" alt="" width="300" height="296" /></a><p class="wp-caption-text">Click on the image to enlarge.</p></div>
<p style="clear: both;">
<h4>Columns merge strategies</h4>
<p>Finally, other part of the project SPI can define different strategies for merging various columns.</p>
<div id="attachment_2974" class="wp-caption alignnone" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/merge-strategies.png"><img class="size-medium wp-image-2974" title="merge-strategies" src="http://gephi.org/wp-content/uploads/2010/08/merge-strategies-300x249.png" alt="" width="300" height="249" /></a><p class="wp-caption-text">Click on the image to enlarge.</p></div>
<h3>Conclusion</h3>
<p>This project has been a great opportunity for me to experience working with an open source community and learn about many programming aspects like API/SPI design, creating better user interfaces and creating modular applications and I will be happy to participate on future projects for Gephi.</p>
<p>Some more information can be found at <a href="http://wiki.gephi.org/index.php/Google_Summer_Of_Code_2010#Data_Laboratory">this wiki page</a> which will be updated soon with more documentation and help about how-to extend Data Laboratory using the new SPI.</p>
<p>Also your opinion and needs are very important to improve Gephi, so you can suggest and ask anything about Data Laboratory project at <a href="http://forum.gephi.org/viewtopic.php?f=21&amp;t=348">this forum post</a>.</p>
<p><strong>Eduardo Ramos</strong></p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/introducing-data-laboratory/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>GSoC 2010 mid-term: Adding support for Neo4j in Gephi</title>
		<link>http://gephi.org/2010/gsoc-2010-mid-term-adding-support-for-neo4j-in-gephi/</link>
		<comments>http://gephi.org/2010/gsoc-2010-mid-term-adding-support-for-neo4j-in-gephi/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 14:02:09 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[0.8]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[neo4j]]></category>
		<category><![CDATA[scalability]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2867</guid>
		<description><![CDATA[
During this summer, six students are working on Gephi with the Google Summer of Code. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.

My name is Martin Škurla and this summer I was working on GSoC project called “Adding support for Neo4j in Gephi”. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2010/08/martin.jpg" style="border: 5px solid #cccccc;" alt="Martin Škurla" title="Martin Škurla" width="80" height="108" class="alignright size-full wp-image-2939" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">During this summer, six students are working on Gephi with the <a href="the-gsoc-rocket-launched">Google Summer of Code</a>. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.</p>
<p><img src="/wp-content/uploads/2010/08/neo4jgephi.png" alt="" title="neo4jgephi" width="577" height="164" class="aligncenter size-full wp-image-2876" /></p>
<p><strong>My name is Martin Škurla and this summer I was working on GSoC project called “Adding support for <a href="http://neo4j.org/">Neo4j</a> in Gephi”. In this article we will look at implemented features including these under the hood, pictures of dialogs, common use cases and future plans.</strong></p>
<p>&nbsp;</p>
<h3>Gephi project</h3>
<p>At first I want to make quick introduction into Gephi project. Gephi is Open Source Visualization Platform build on top of the NetBeans platform. It is written in Java so you can run it on various Operating Systems including Windows, Linux, Mac OS. It supports many interesting graph analysis capabilities <a href="/features/">including</a>:</p>
<ul>
<li>Real-time visualization</li>
<li>Layout</li>
<li>Metrics</li>
<li>Dynamic network analysis</li>
<li>Cartography clustering and hierarchical graphs</li>
<li>Dynamic filtering</li>
</ul>
<h3>The story so far</h3>
<p>The main idea of my project is to add support for <a href="http://neo4j.org/">Neo4j</a> in Gephi. This means the ability to transform the Neo4j graph into Gephi graph. In fact, both graph models are different so the first task was to make mapping between Neo4j graph items and Gephi graph items and vice versa.</p>
<p>There was also a mismatch between types supported in Neo4j and these supported by Gephi. This mismatch was solved by adding new “List” types into Gephi, so now every type in Neo4j has its appropriate type in Gephi.</p>
<p>There were also some changes under the hood which are not visible to end user, but must be defined and implemented. The most interesting thing is adding “Delegating mechanism”. This mechanism is responsible for getting values from storing engine (Neo4j) as well as manipulation with data. In fact during the importing process, graph representation of Neo4j graph is created in Gephi, but all values are not stored directly, but they are queried using delegating mechanism.</p>
<p>Another minor tasks were to customize the open dialogs used for importing local Neo4j database and debugging the imported database. The open dialog for importing accepts only valid Neo4j database directories. I defined valid Neo4j database directory structure and every valid directory now includes picture of Neo4j in the open dialog. User is able to open only valid Neo4j directories in the process of importing. The open dialog for debugging accepts only Java class files that can be used for debugging process. This simply means they have to implement required interface and have public nonparam constructor. Every valid class file will have Neo4j picture and after selecting a valid debug file, Target and Visualization options will be automatically filled based on data from selected class file.</p>
<p>&nbsp;</p>
<div id="attachment_2948" class="wp-caption alignleft" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/Open-database-dialog.png"><img src="/wp-content/uploads/2010/08/Open-database-dialog-300x237.png" alt="" title="Open database dialog" width="300" height="237" class="size-medium wp-image-2948" /></a><p class="wp-caption-text">Open Neo4j directory dialog customization</p></div>
<div id="attachment_2949" class="wp-caption alignleft" style="width: 310px"><a href="/wp-content/uploads/2010/08/Open-debug-file-dialog.png"><img src="/wp-content/uploads/2010/08/Open-debug-file-dialog-300x233.png" alt="" title="Open debug file dialog" width="300" height="233" class="size-medium wp-image-2949" /></a><p class="wp-caption-text">Open Neo4j debug file dialog customization</p></div>
<p style="clear:both">&nbsp;</p>
<h3>Neo4j integration</h3>
<div id="attachment_2947" class="wp-caption alignnone" style="width: 310px"><a href="/wp-content/uploads/2010/08/Menu.png"><img src="/wp-content/uploads/2010/08/Menu-300x242.png" alt="" title="Menu" width="300" height="242" class="size-medium wp-image-2947" /></a><p class="wp-caption-text">Menu integration</p></div>
<p>All possible actions started in menu. As we can see, this is the entry point to import from, export to and debug the Neo4j graph. Both importing and exporting support local as well as remote Neo4j databases. </p>
<h3>Importing</h3>
<div id="attachment_2952" class="wp-caption alignnone" style="width: 559px"><a href="http://gephi.org/wp-content/uploads/2010/08/Whole-import-dialog.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Whole-import-dialog.png" alt="" title="Whole import dialog" width="549" height="297" class="size-full wp-image-2952" /></a><p class="wp-caption-text">Whole graph import dialog</p></div>
<p>Importing process consist of 2 approaches:</p>
<ul>
<li>whole import</li>
<li>traversal import</li>
</ul>
<p>Whole graph import dialog is designed for importing whole graph. We can customize the rules responsible for returning nodes by defining filtering expressions. For example previous dialog can be used when we want to find all people working on project Gephi with maximum age 30 years. Only people with at least 5 years of experience and those which have driver licence types A, B and C will be included.</p>
<p>Let&#8217;s have a deeper look at the dialog:</p>
<ul>
<li><strong>Property key</strong> is the name of property we want to filter</li>
<li><strong>Property value</strong> is the value which will be compared to actual Node property value using chosen operator. Values will be automatically converted into appropriate types and if the value cannot be converted, the node will not be included into graph. All types supported in Neo4j are supported in this dialog. We can also see the support for array types in the last filter expression.</li>
<li><strong>Operator</strong> will be applied on the final expression and if the expression is evaluated to true, node will be included</li>
<li><strong>Match case</strong> means the ability to compare String, char, String[] and char[] types with respect of the same case</li>
<li><strong>Restrict mode</strong> is used to restrict some nodes. Imagine we have people stored in database which have only subset of required property names used in filtering expressions. If the Restrict mode is on, only nodes which have all property names and all filtering expressions evaluated to true will be included. If the Restrict mode is off, every node which has any subset of required property names (even empty subset) will be included if all the filtering expressions applicable to the subset will be evaluated to true.</li>
</ul>
<p>All the filtering expressions are combined together using AND and the list of current supported operators consist of: ==, !=, &lt;, &lt;=, &gt;, &gt;=.</p>
<p>In fact, usefulness of adding new operators as well as including OR and other useful import options is the main idea behind Questionnaire which is part of this article.</p>
<p>Traversal graph import dialog is designed for importing any subgraph using traversal capabilities of Neo4j v 1.1. Traversal import adds additional options:</p>
<ul>
<li><strong>Start node</strong> can be set in two ways, either by its id or by its indexing key and value pair</li>
<li><strong>Order</strong> can be set to depth or breadth first algorithms</li>
<li><strong>Max depth</strong> can be set to concrete number or to end of graph</li>
<li><strong>Relationships</strong> can be restricted too. We can set any combination of Relationship types and directions which should traversal include. The list of Relationship types is dynamically filled from database with existing values.
</li>
</ul>
<p>&nbsp;</p>
<div id="attachment_2951" class="wp-caption alignnone" style="width: 571px"><a href="http://gephi.org/wp-content/uploads/2010/08/Traversal-import-dialog.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Traversal-import-dialog.png" alt="" title="Traversal import dialog" width="561" height="636" class="size-full wp-image-2951" /></a><p class="wp-caption-text">Traversal graph import dialog</p></div>
<p>This was the quick summary of Gephi Neo4j importing capabilities implemented in the project. We focused on more features and one of them is the support for exporting. We can export any loaded graph into local or remote Neo4j database. The exporting process can be customized in similar way as importing.</p>
<h3>Exporting</h3>
<div id="attachment_2946" class="wp-caption alignnone" style="width: 392px"><a href="http://gephi.org/wp-content/uploads/2010/08/Export-dialog.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Export-dialog.png" alt="" title="Export dialog" width="382" height="420" class="size-full wp-image-2946" /></a><p class="wp-caption-text">Export dialog</p></div>
<p>Exporting means opposite process to importing. Previous dialog shows exporting options as well as validation. We can customize exporting process by setting:</p>
<ul>
<li><strong>From column</strong> is used to set the RelationshipType to appropriate values from any of Gephi edge columns. During importing Neo4j graph, column with name “Neo4j Relationship Type” is automatically created.</li>
<li><strong>Default value</strong> is used in the case when processed Gephi edge does not have value in selected From column</li>
<li><strong>Export Node columns</strong> is the set of Gephi columns in node table which will be exported</li>
<li><strong>Export Edge columns</strong> is the set of Gephi columns in edge table which will be exported</li>
</ul>
<h3>Remote importing/exporting</h3>
<p>The only difference between local and remote importing/exporting is the existence of Remote dialog, where we need to set following connection information:</p>
<ul>
<li><strong>Remote database URL</strong></li>
<li><strong>Login</strong></li>
<li><strong>Password</strong></li>
</ul>
<p>All of them must be filled in order to successfully import/export remote graph.</p>
<div id="attachment_2950" class="wp-caption alignnone" style="width: 418px"><a href="http://gephi.org/wp-content/uploads/2010/08/Remote-import-dialog.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Remote-import-dialog.png" alt="" title="Remote import/export dialog" width="408" height="243" class="size-full wp-image-2950" /></a><p class="wp-caption-text">Remote import/export dialog</p></div>
<h3>Delegation process</h3>
<div id="attachment_2943" class="wp-caption alignnone" style="width: 310px"><a href="http://gephi.org/wp-content/uploads/2010/08/Data-laboratory-nodes-values.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Data-laboratory-nodes-values-300x160.png" alt="" title="Nodes values exploration" width="300" height="160" class="size-medium wp-image-2943" /></a><p class="wp-caption-text">Nodes values exploration (click on the image to enlarge)</p></div>
<p>As we can see from previous picture, we can very simply explore all the node and edge values. This is exactly the place where delegating mechanism is used. All values are in fact not stored directly in memory in some kind of Gephi data structure, but the storing engine (Neo4j) is requested for actual values every time we need them.</p>
<h3>Debugging</h3>
<p><a href="http://gephi.org/wp-content/uploads/2010/08/Debugging-in-action.png"><img src="http://gephi.org/wp-content/uploads/2010/08/Debugging-in-action.png" alt="Debugging in action" title="Debugging in action" width="566" height="694" class="alignnone size-full wp-image-2944" /></a></p>
<p>We can see debugging in action in previous picture. The dialog is initialized with data from chosen debug class file, but we can change all of them at the runtime too. Any change in options will automatically update graph visualization. We can change visibility of nodes and edges as well as colors for both nodes and edges. User proceeds to next step of debugging/traversal by clicking on the Next button.</p>
<h3>Use cases</h3>
<p>That was the quick summary of all implemented features and now we can summarize common use cases every user can be interested in.</p>
<h4>Visualizing Neo4j graphs</h4>
<p>One of the main ideas of my project was to implement the ability to visualize Neo4j graphs, even big ones. As we saw from the dialog pictures, we have many options how to customize the importing process including filtering. After the import we can use all the rich graph analysis features Gephi provides.</p>
<h4>Analyzing only part of the whole graphs</h4>
<p>Quite common use case is to analyze only part of the graph, which is possible in Gephi too. We can take advantage of traversing where we can set starting node and other traversal options. After that we can visualize and analyze only part of the graph.</p>
<h4>Export graph stored in text files/databases into Neo4j</h4>
<p>Another use case could be exporting graphs stored in graph text files or relational databases into Neo4j. In fact, every graph loaded into Gephi can be easily exported to Neo4j database. Importing formats depends on Gephi abilities themselves, currently following formats are supported:</p>
<ul>
<li>Text <a href="/users/supported-graph-formats/">formats</a>: GEXF, GDF, GML, GraphML, Pajek NET, GraphViz DOT, CSV, UCINET DL, Tulip TPL, XGMML</li>
<li>Relational databases: MySQL, PostgreSQL, SQL Server</li>
</ul>
<h3>Future plans</h3>
<p>There are more things which we want to implement, including:</p>
<ul>
<li>support for Gephi Toolkit, which is in general set of Gephi core libraries which you can use in your own Java projects for graph visualization and manipulation</li>
<li>implementing proof of concept Web application using both Gephi Toolkit &#038; Neo4j to manipulate with Neo4j database &#038; show results (probably using GWT)</li>
<li>more features, bug fixing, performance optimizations</li>
</ul>
<h3>Questionnaire</h3>
<p>One of the big advantages of Gephi is the fact that it is developed as Open Source project. We want to add additional features according to user requests and their opinions. That&#8217;s why we created questionnaire focusing on usefulness of proposed additions. We will be very happy if you fill the questionnaire because it is very valuable source of information and we can focus on features Neo4j users think useful. Please <a href="/users/gephi-and-neo4j-cooperation-survey/"> fill in the questionnaire</a>.</p>
<h3>Conclusion</h3>
<p>I am very happy that I can be part of the Gephi developer community and introduce integration with Neo4j. During this summer I learned a lot and I am proud that I was chosen as GSoC student. The fact is that none of these features can be done without great help of my mentors, so big thank to both of them: Mathieu Bastian &#038; Tobias Ivarsson.</p>
<p>If you are interested in and want to test the code, you can download source codes from my branch using <code>bzr branch lp:~bujacik/gephi/support-for-neo4j</code></p>
<p>All the pictures were made on data stored in testing Neo4j database which can be created using Java SE project and you can download it using:<br />
<code>bzr branch lp:~bujacik/+junk/testing-new-neo4j-traversal-api</code></p>
<p>&nbsp;</p>
<p><strong>Martin Škurla</strong></p>
<p><img src="/wp-content/uploads/2009/02/pdf.png" /> <a href='/wp-content/uploads/2010/08/Neo4j_GSoC_Midterm_Evaluation.pdf'>Download this article in PDF.</a></p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/gsoc-2010-mid-term-adding-support-for-neo4j-in-gephi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Semantic plugin: AlchemyAPI</title>
		<link>http://gephi.org/2010/semantic-plugin-alchemyapi/</link>
		<comments>http://gephi.org/2010/semantic-plugin-alchemyapi/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 10:41:12 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[mining]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2905</guid>
		<description><![CDATA[A new plugin is available for Gephi that utilizes the power of natural language processing (NLP) software to analyze text documents and visualize their contents. The plug-in was created by AlchemyAPI (alchemyapi.com), and utilizes the AlchemyAPI REST service to semantically process a web page or text file and show all the subjects of the text [...]]]></description>
			<content:encoded><![CDATA[<p class="reclame" style="text-align: left; font-weight: normal;">A new plugin is available for Gephi that utilizes the power of <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Natural_language_processing">natural language processing</a> (NLP) software to analyze text documents and visualize their contents. The plug-in was created by AlchemyAPI (<a href="http://alchemyapi.com/">alchemyapi.com</a>), and utilizes the AlchemyAPI REST service to semantically process a web page or text file and show all the subjects of the text (people, places and things, known collectively as <strong>named entities</strong>) as nodes in Gephi.</p>
<p>&nbsp;</p>
<div id="attachment_2911" class="wp-caption aligncenter" style="width: 610px"><img src="/wp-content/uploads/2010/08/Gephi_AlchemyAPI_Example11.png" alt="" title="Gephi Alchemy API Example 1" width="600" height="402" class="size-full wp-image-2911" /><p class="wp-caption-text">Graph of the American Revolution wikipedia entry.</p></div>
<p>The plug-in is a powerful tool to distill dense and <strong>unstructured textual data</strong> into easy to understand graphs. Extracted entities possess a relevance attribute which is a measure of how pertinent the subject is to the source text, and also a count attribute that indicates the number of times the subject is named in the source text. Both of these attributes can be used to affect the visualization.</p>
<p>Once installed, the plug-in can be accessed through the File-&gt;Generate-&gt;Semantic Analysis menu. As an example of the functionality of the plug-in, we&#8217;ll examine the wikipedia entry for the American Revolution. To make a graph with this article, enter the article&#8217;s url into the Semantic Analysis dialog box. The plug-in will extract over 350 people, places, and things from the wikipedia page. You can use this data to create a word cloud type visualization of the article, like the one above.</p>
<p>If subtype analysis is enabled, you can also visualize the types and subtypes of named entities. For example, the nodes in the image below were extracted from a recent news article.  They represent Dmitry Medvedev and his ontological classifications. The edges from Medvedev&#8217;s node identify him as a Person, Politician, and President (classifications he shares with Mahmoud Ahmadinejad). A complete list of the subtypes AlchemyAPI returns can be found at <a href="http://www.alchemyapi.com/api/entity/types.html">http://www.alchemyapi.com/api/entity/types.html</a>.</p>
<div id="attachment_2916" class="wp-caption aligncenter" style="width: 460px"><img src="/wp-content/uploads/2010/08/Gephi_AlchemyAPI_Example22.png" alt="" title="Gephi AlchemyAPI Example 2" width="450" height="443" class="size-full wp-image-2916" /><p class="wp-caption-text">Detail of named entity subtypes</p></div>
<p>The plug-in can also be used to visualize the connections between <strong>multiple text documents</strong>. Connections will be drawn between the document node and the entities that the texts share, creating a powerful way of discovering recurring themes within an archive. As an example, see the connections shared between the wikipedia pages for the American Revolution and the French Revolution in the picture below. Common entities like ‘France’, ‘Britain’, and ‘Thomas Paine’ are linked by both the French Revolution and American Revolution articles.</p>
<div id="attachment_2914" class="wp-caption aligncenter" style="width: 610px"><img src="/wp-content/uploads/2010/08/Gephi_AlchemyAPI_Example31.png" alt="" title="Gephi AlchemyAPI Example 3" width="600" height="280" class="size-full wp-image-2914" /><p class="wp-caption-text">Graph of connections between American and French Revolution wikipedia entries.</p></div>
<p>As more documents are added to the graph, a web of entities form. The relevance and count of connected entities increase with the number of documents that mention them.</p>
<p>We hope you use this plug-in to make the data in your text more accessible. If you have any questions or suggestions for the makers of this plug-in, please leave them in the comments section.</p>
<p>Our thanks to the Gephi team for their remarkable visualization program, and all the documentation and help that made this plug-in possible.<br />
<iframe id="seadragon" src="/seadragon-samples/espn_out_2/seadragon.html" border="0" frameborder="0" width="700" height="600"></iframe><br />
Graph of <a href="http://espn.com/">espn.com</a> front page and linked articles.</p>
<p><strong>Shaun Roach</strong></p>
<p>Download the Gephi plugin for AlchemyAPI <a href="/plugins/alchemyapi-plugin/">here</a>, or find it in your Gephi plug-in center.</p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/semantic-plugin-alchemyapi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSoC 2010 mid-term: Dynamic attributes and statistics</title>
		<link>http://gephi.org/2010/gsoc-2010-mid-term-dynamic-attributes-and-statistics/</link>
		<comments>http://gephi.org/2010/gsoc-2010-mid-term-dynamic-attributes-and-statistics/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 23:29:53 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Functionality]]></category>
		<category><![CDATA[0.8]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[gexf]]></category>
		<category><![CDATA[gsoc]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2883</guid>
		<description><![CDATA[
During this summer, six students are working on Gephi with the Google Summer of Code. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.
&#160;
The project which is done by Cezary Bartosiak focuses special attention on further development of dynamic network analysis (DNA) in Gephi. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gephi.org/wp-content/uploads/2010/08/cbartosiak.jpeg" style="border: 5px solid #cccccc;" alt="Cezary Bartosiak" title="Cezary Bartosiak" width="80" height="100" class="alignright size-full wp-image-2901" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">During this summer, six students are working on Gephi with the <a href="the-gsoc-rocket-launched">Google Summer of Code</a>. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.</p>
<p>&nbsp;</p>
<p><strong>The project which is done by Cezary Bartosiak focuses special attention on further development of <a href="http://en.wikipedia.org/wiki/Dynamic_network_analysis">dynamic network analysis (DNA)</a> in Gephi. The aim is to create a framework which would make it possible to build and query a dynamic graph with use of proper API. It has got a practical purpose, for instance <a href="http://arxiv.org/pdf/cond-mat/0106144v2">analyzing evolution of networks</a> (see in particular <a href="http://arxiv.org/pdf/cond-mat/0306304">M. Argollo de Menezes, A.-L. Barabási Fluctuations in Network Dynamics</a>) or <a href="http://www.cmu.edu/joss/content/articles/volume7/deMollMcFarland/">dynamic networks visualization</a>. The article shows the most important features provided by <a href="http://wiki.gephi.org/index.php/Specification_-_GSoC_Dynamic_attributes_and_statistics">this GSoC project</a>.</strong></p>
<p>&nbsp;</p>
<p>In the current 0.7 version we can import dynamic graphs written in GEXF syntax and then filter them using Timeline component. Unfortunately, it only filters graphs topologies and that means hiding nodes and/or edges.</p>
<p>The obvious step is make it possible to handle dynamic changes not only of graph topology but also attributes connected with nodes and edges. It can be done by creating a proper API. This API could be used by other modules, like Statistics to make dynamic versions of them. Computing metrics like <a href="http://wiki.gephi.org/index.php/Degree_Power_Law">Degree Distribution</a> or <a href="http://wiki.gephi.org/index.php/Avg_Clustering_Coefficient">Clustering Coefficient</a> for each time interval in the time series has got a great interest to analyze graphs within time.</p>
<p>So, getting down to brass tacks, the most important tasks are:</p>
<ul>
<li>A data structure to host dynamic attributes efficiently which would make it possible to present them in <a href="http://wiki.gephi.org/index.php/Specification_-_Data_Laboratory">Data Laboratory</a> module.</li>
<li>A Dynamic API which has got the following features: the <em>Dynamic Graph Decorator</em>, that wraps the graph and a time interval, returns static graphs copies for given time intervals, attributes values arrays for given nodes/edges and time intervals.</li>
<li>Adapting <a href="http://wiki.gephi.org/index.php/Metrics_portal">Metrics framework</a> to use Dynamic API to propose dynamic versions of existing metrics.</li>
</ul>
<p>There are also additional features, which will be done in the future (probably they will not be included in the nearest release):</p>
<ul>
<li>Dynamic visualization of attributes.</li>
<li>Dynamic version of the <em>Ranking module</em> – dynamic visualization attributes transformation.</li>
</ul>
<p>I’ll try to shortly describe how these features are done.</p>
<h3>Dynamic attributes</h3>
<p>It is a very interesting task from a programmer’s point of view since it requires implementing a complicated data structure like <a href="http://en.wikipedia.org/wiki/Interval_tree">Interval Tree</a> (see also <a href="http://w3.jouy.inra.fr/unites/miaj/public/vigneron/cs4235/l5cs4235.pdf ">Antoine Vigneron &#8211; Segment trees and interval trees</a>). But also users will judge it necessary. The purpose is to make it possible to read dynamic attributes from GEXF files and host them efficiently. Thanks to that we are able to get values of attributes of different time intervals. It goes without saying how powerful feature it is. To show how it is working, let’s consider one node (written in <a href="http://gexf.net/format/">GEXF</a> syntax):</p>
<p><code>&lt;node id="1" label="Some node"&gt;<br />
  &lt;attvalues&gt;<br />
    &lt;attvalue for="0" value="abcdefgh"/&gt;<br />
    &lt;attvalue for="2" value="1" end="2009-03-01"/&gt;<br />
    &lt;attvalue for="2" value="2" start="2009-03-01" end="2009-03-10"/&gt;<br />
    &lt;attvalue for="2" value="1" start="2009-03-10"/&gt;<br />
  &lt;/attvalues&gt;<br />
&lt;/node&gt;<br />
</code></p>
<p>As we can see we have got one dynamic attribute (id = 2) which has three different values in different time intervals. The first interval starts in the “negative infinity”. We simply assume that it only ends, never starts. But if we have got some bounds, for instance, a related graph has its start and end times, this attribute would “start” in the same moment as the graph. It is rather intuitive. The second interval exists from 2009-03-01 to 2009-03-10 and the last one exists from 2009-03-10 to “positive infinity” or graph’s bound.</p>
<p>After importing this to Gephi we can simply get values of ANY time interval we want, for example [-inf, +inf]. But we should know how to estimate a final value. In the above example we have got three values: 1, 2 and 1. To solve the problem which of them should be returned, we provide a set of estimators like AVERAGE, MEDIAN, MODE, SUM, MIN, MAX, FIRST and LAST. Each of them has got different behavior that depends on a type of attribute, i.e. for real numbers they behave like in statistics.</p>
<p>So, users will be able to get values of different time intervals on demand, for instance in Data Laboratory module or (in the future) see them on the screen as a part of a rendered graph. For instance we have got some attribute like <em>priority</em>. A potential user will be able to choose between several possibilities like: <em>nothing</em> (it means this attribute should not be visualized), <em>color</em>, <em>stroke, thickness</em> etc. It means, for instance, that if some node has got this attribute close to its upper bound its stroke thickness would be very high. And, on the other hand, if one node has got this attribute close to its lower bound only its internal color could be visualized.</p>
<h3>Metrics framework</h3>
<p>For now it is possible to count a set of important metrics but all of them take a “static graph” into consideration. The idea of dynamic metrics is then to execute the static ones in a loop, where the graph changes according to time interval. The following screen shows that use of these additional metrics is similar to their static brothers:</p>
<div id="attachment_2884" class="wp-caption aligncenter" style="width: 310px"><a href="/wp-content/uploads/2010/08/dynamic_metric.png"><img src="/wp-content/uploads/2010/08/dynamic_metric-300x161.png" alt="" title="dynamic metric" width="300" height="161" class="aligncenter size-medium wp-image-2884" /></a><p class="wp-caption-text">Dynamic Metric (click on the image)</p></div>
<p>In the screen we can see only <em>Dynamic Degree Power Law</em>, but of course every dynamic metric will be implemented (during writing this article this module was still under development – it also means that the final product could differ from this one presented above). So, user inserts important information like time interval etc. and gets a separate report for every time interval. What are the other results?<br />
The result for each node/edge is written in the graph, so one can see this in <em>Data Laboratory</em>.<br />
General result is also written and presented in the report.</p>
<h3>Conclusion</h3>
<p>Evolution of networks, network dynamics and dynamic network analysis are hot topics nowadays. There is growing interest in studying these issues. It causes that there is bigger and bigger need of DNA analysis tools. In my opinion Gephi is heading towards being one of the best&#8230;</p>
<p><strong>Cezary Bartosiak</strong></p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/gsoc-2010-mid-term-dynamic-attributes-and-statistics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSoC 2010 mid-term: Graph Streaming API</title>
		<link>http://gephi.org/2010/gsoc-2010-mid-term-graph-streaming-api/</link>
		<comments>http://gephi.org/2010/gsoc-2010-mid-term-graph-streaming-api/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 15:05:38 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Functionality]]></category>
		<category><![CDATA[0.8]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[dynamics]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[streaming]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2850</guid>
		<description><![CDATA[
During this summer, six students are working on Gephi with the Google Summer of Code. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.
The purpose of the Graph Streaming API project, run by André Panisson, is to build a unified framework for streaming graph [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://gephi.org/wp-content/uploads/2010/08/andre-panisson.jpg"  style="border: 5px solid #cccccc;" alt="andre-panisson" title="André Panisson" width="80" height="108" class="alignright size-full wp-image-2863" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">During this summer, six students are working on Gephi with the <a href="the-gsoc-rocket-launched">Google Summer of Code</a>. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.</p>
<p><strong>The purpose of the <a href="http://wiki.gephi.org/index.php/Specification_-_GSoC_Graph_Streaming_API">Graph Streaming API project</a>, run by <a href="http://www.di.unito.it/~panisson/">André Panisson</a>, is to build a unified framework for streaming graph objects. Gephi&#8217;s data structure and visualization engine has been built with the idea that a graph is not static and might change continuously. By connecting Gephi with external data-sources, we leverage its power to visualize and monitor complex systems or enterprise data in real-time. Moreover, the idea of streaming graph data goes beyond Gephi, and a <a href="http://forum.gephi.org/viewtopic.php?f=19&#038;t=303">unified and standardized API</a> could bring interoperability with other available tools for graph and network analysis, as they could start to interoperate with other tools in a distributed and cooperative fashion.</strong></p>
<p>&nbsp;</p>
<p>With the increasing level of connectivity and cooperation between systems, for a system that aim to be interoperable, it is imperative to comply with the available standards. Graph objects are abstractions that can represent a wide range of real-world structures, from computer networks to human interactions, and there are a lot of standards to exchange graph data in different formats, from text-based formats to xml-based formats. But the real-world structures are constantly changing, and the current formats are not suitable to exchange such type of dynamic data.</p>
<p>A lot of well-established systems already stream data to its users using a streaming API. Twitter for example defined a <a href="http://dev.twitter.com/pages/streaming_api">Streaming API</a> to allow near-realtime access to its data. They are using two different formats: XML and JSON, but JSON is strongly encouraged over XML, as JSON is more compact and parsing is greatly simplified.</p>
<p>We are not the first to implement a Graph Streaming API, and another very interesting experience is the <a href="http://graphstream.sourceforge.net">GraphStream Java Library</a>. It is composed of an API that gives a way to add edges and nodes in a graph and make them evolve. The graphs are composed of nodes and edges that can appear, disappear or be modified, and these operations are called events. The sequence of operations that occur in a graph is seen as a stream of events.</p>
<p>So, as other people already had successful experiences with graph streaming, why not start our work based on these experiences? That&#8217;s what we are doing, and beyond finding these experiences very useful, we are also trying to be compatible with the available work. The first Gephi Graph Streaming release will use two formats: JSON for flexibility, and a text-based format, based in the GraphStream implementation.</p>
<p>The first version of the Graph Streaming features will be available in the next release of Gephi, but it&#8217;s already possible to taste some of these features. To illustrate how simple it will be to connect to a master, the following video shows Gephi connecting to a master and visualizing the received graph data in real time. The graph in this demo is a part of the Amazon.com library, where the nodes represent books and the edges represent their similarities. For each book, a node is added, the similar books are explored, adding the similar ones as nodes and the similarity as an edge.</p>
<p>&nbsp;</p>
<p><object width="660" height="405"><param name="movie" value="http://www.youtube.com/v/7SW_FDiY0sg&amp;hl=fr_FR&amp;fs=1?border=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7SW_FDiY0sg&amp;hl=fr_FR&amp;fs=1?border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="660" height="405"></embed></object></p>
<p>&nbsp;</p>
<p>The Graph Streaming specification goes beyond the simple fact that a client can pull data from a master: in fact, clients can interact with the master pushing data to it, in a REST architecture. The same data format used by the master to send graph events to the clients is used by clients to interact with the master.</p>
<p>In the next example, we will transform Gephi in a master to provide graph information to its clients. At the Streaming Tab in the Gephi application, you can access all the features of graph streaming. You can connect to a Master by clicking the &#8216;+&#8217; button, but you can also transform your Gephi in a master by right-clicking the &#8220;Master Server&#8221; and selecting &#8220;Start&#8221; (You are not limited to a single master by host: each Gephi workspace can be available as a master). By default, the HTTP server will listen at port 8080 in plain HTTP, and at port 8443 using SSL. The server path depends on your workspace: each workspace uses a different path. You can configure these parameters (and also Basic Authentication) at the &#8220;Settings&#8230;&#8221; button:</p>
<p>&nbsp;</p>
<div id="attachment_2848" class="wp-caption aligncenter" style="width: 422px"><img src="/wp-content/uploads/2010/08/screenshot-start.png" alt="" title="Graph Steaming Server start" width="412" height="267" class="size-full wp-image-2848" /><p class="wp-caption-text">Graph Steaming Server start</p></div>
<div id="attachment_2847" class="wp-caption aligncenter" style="width: 690px"><img src="/wp-content/uploads/2010/08/screenshot-settings.png" alt="" title="Graph Steaming Settings Panel" width="680" height="402" class="size-full wp-image-2847" /><p class="wp-caption-text">Graph Steaming Settings Panel</p></div>
<p>&nbsp;</p>
<p>Now, you can connect to it using some simple HTTP client. For example, you could use curl to see the data flowing. First of all, open a shell window and execute the following command:</p>
<p><code>curl "http://localhost:8080/workspace0"</code></p>
<p>With this, you are connecting to your workspace at Gephi. If the workspace is empty, you will receive no data, but you will remain connected, so you will receive all events from now.</p>
<p>Now open another shell prompt, and with the following commands, you could see a triangle appearing at Gephi:</p>
<p><code>curl "http://localhost:8080/workspace0?operation=updateGraph" -d $'<br />
{"an":{"A":{"size":10,"r":1,"g":0,"b":0,"z":0,"y":500,"x":70}}}\r<br />
{"an":{"B":{"size":10,"r":1,"g":0,"b":0,"z":0,"y":90,"x":250}}}\r<br />
{"ae":{"AB":{"source":"A","target":"B","weight":10,"r":0,"g":0,"b":0,"directed":false}}}\r<br />
{"an":{"C":{"size":10,"r":1,"g":0,"b":0,"z":0,"y":90,"x":-90}}}\r<br />
{"ae":{"BC":{"source":"B","target":"C","weight":10,"r":0,"g":0,"b":0,"directed":false}}}\r<br />
{"ae":{"CA":{"source":"C","target":"A","weight":10,"r":0,"g":0,"b":0,"directed":false}}}'</code></p>
<p>At the same time, all events will be sent to your connected client, in the other shell window.</p>
<p>With the following commands you can retrieve some of the data:</p>
<p><code>curl "http://localhost:8080/workspace0?operation=getNode&#038;id=A"<br />
curl "http://localhost:8080/workspace0?operation=getEdge&#038;id=AB"</code></p>
<p>And you could start manipulating your graph through command line, as you like. There are other event types for changing and removing edges and nodes, for more information about them see the current status of the JSON Streaming Format, available at <a href="http://wiki.gephi.org/index.php/Specification_-_GSoC_Graph_Streaming_API#Current_Status_of_JSON_Streaming_Format">this page</a>. We recall that this format is subject to changes, as the API was build to be very flexible and more requirements are being added to it.</p>
<p>But what about connecting two different Gephi instances together? One instance will be master, and the other client. Using the Graph Streaming API, a change in a graph at the master&#8217;s workspace should cause a change in the client&#8217;s workspace, and a change at the client&#8217;s workspace will cause it to send requests to the master to update its graph accordingly. Both instances working in a distributed mode. In fact, different people could work in a distributed mode to construct a graph: it&#8217;s the Collaborative Graph Construction.</p>
<h3>My personal impressions about it</h3>
<p>For me as a researcher, Gephi has the potential to become a de-facto standard for manipulating and visualizing large scale graphs. I believe that the research community is still lacking a high-quality, general-purpose, community-supported framework for exploratory analysis of large-scale dynamical graph data, and I believe that Gephi has the potential to fill this gap. I&#8217;m working also in collaboration with ISI Foundation at the <a href="http://www.sociopatterns.org/">SocioPatterns</a> project, an example of research use case that currently uses Gephi for exploratory data analysis and visualization. The support for dynamic networks, the readiness of the Gephi data model for dynamical update of graph topology and attributes and, in a near future, the support for graph streaming are exciting features that suit very well the large-scale real-time data sources we are dealing with. The potential for processing live streams from our experiments is a unique feature that we are eager to see working.</p>
<p><strong>André Panisson</strong></p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/gsoc-2010-mid-term-graph-streaming-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Graph visualization on the web with Gephi and Seadragon</title>
		<link>http://gephi.org/2010/graph-visualization-on-the-web-with-gephi-and-seadragon/</link>
		<comments>http://gephi.org/2010/graph-visualization-on-the-web-with-gephi-and-seadragon/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 14:01:56 +0000</pubDate>
		<dc:creator>Mathieu Bastian</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[interactive exploration]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[seadragon]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[webgl]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2802</guid>
		<description><![CDATA[The project takes another big step forward and bring dynamic graph exploration on the web in one click from Gephi with the Seadragon Web Export plugin.
Mathieu Bastian and Julian Bilcke worked on a Seadragon export plugin. Directly export large graph pictures and put it on the web. Seadragon is pure Javascript and works on all [...]]]></description>
			<content:encoded><![CDATA[<p>The project takes another big step forward and bring <strong>dynamic graph exploration on the web</strong> in one click from Gephi with the <a href="http://gephi.org/plugins/seadragon">Seadragon Web Export</a> plugin.</p>
<p>Mathieu Bastian and Julian Bilcke worked on a <a href="http://www.seadragon.com/">Seadragon</a> export plugin. Directly export large graph pictures and put it on the web. Seadragon is pure Javascript and works on all modern browsers. As it uses images tiles (like Google Maps), there is <strong>no graph size limit</strong>.</p>
<p><img src="http://gephi.org/wp-content/uploads/2010/03/orange_arrow.gif" alt="" title="arrow" width="12" height="12" class="alignnone size-full wp-image-2203" />Go to your Gephi installation and then to the Plugin Center (Tools &gt; Plugin) to install the plugin. You can also <a href="http://gephi.org/plugins/seadragon">download</a> manually the plugin archive or <a href="https://code.launchpad.net/~gephi.team/gephi/seadragon">get the source code</a>.</p>
<p><iframe id="seadragon" src="/seadragon-samples/diseasome/seadragon.html" border="0" frameborder="0" width="700" height="500"></iframe></p>
<div class="aligncenter" style="margin-bottom:15px;">Sample with <a href="http://diseasome.eu">Diseasome</a> Network dataset directly exported from Gephi</div>
<p>Communication about (large) graphs is currently limited because it&#8217;s not easy to put them on the web. Graph visualization has very much same aims as other types of visualization and need powerful web support. It&#8217;s a long time we are thinking about the best way to do this and found that there is no perfect solution. We need in the same time <strong>efficiency</strong>, <strong>interactivity</strong> and <strong>portability</strong>. The simpleness of making and hacking the system is also important, as we want developers to be able to improve it easily. </p>
<p>By comparing technologies we found that <strong>Seadragon</strong> is the best short-term solution, with minimum efforts and maximum results. It has however still a serious limitation: interactivity. No search and no click on nodes are possible for the moment. But as it is JS, I don&#8217;t see hurdles to add these features in the future, <strong>help needed</strong>.</p>
<p>The table below see our conclusions on technologies we are considering. We are very much eager to discuss it <a href="http://forum.gephi.org/viewtopic.php?f=21&amp;t=349">on the forum</a>. As performance is the most important demand, WebGL is a serious candidate but development would require time and resources. We plan to start a WebGL visualization engine prototype next summer, for Google Summer of Code 2011, but we would like to discuss specifications with anyone interested and make this together.</p>
<div class="aligncenter" style="width:500px;margin-top:22px;">
<table border="1">
<tbody>
<tr>
<td></td>
<td width="85">Portability</td>
<td width="85">Efficiency</td>
<td width="85">Effort</td>
<td width="85">Interactivity</td>
</tr>
</tbody>
<tbody>
<tr>
<td>Flash</td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #FF4848;"></td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #C4E484;"></td>
</tr>
<tr>
<td>Java2D/Processing</td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #FFA54A;"></td>
</tr>
<tr>
<td>Canvas (Processing.js/RaphaelJS)</td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #FF4848;"></td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #C4E484;"></td>
</tr>
<tr>
<td>WebGL</td>
<td style="background-color: #FFA54A;"></td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #FF4848;"></td>
<td style="background-color: #C4E484;"></td>
</tr>
<tr>
<td>Seadragon</td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #C4E484;"></td>
<td style="background-color: #FF4848;"></td>
</tr>
</tbody>
</table>
<div style="text-align:center;"><strong>Figure:</strong> Comparing technologies able to display networks on the web.</div>
</div>
<h3>How to use the plugin?</h3>
<p style="margin-bottom:25px;margin-top:20px;">Install the plugin from Gephi, &#8220;Tools > Plugin&#8221; and find <strong>Seadragon Web Export</strong>. After restarting Gephi, the plugin is installed in the export menu. Load a sample network and try the plugin. Go to the Preview tab to configure the rendering settings like colors, labels and edges.</p>
<div id="attachment_2822" class="wp-caption aligncenter" style="width: 488px"><img src="http://gephi.org/wp-content/uploads/2010/07/seadragon-plugin-export.png" alt="" title="Gephi Seadragon Plugin - Export graph to web" width="478" height="383" class="size-full wp-image-2822" style="border: 1px solid black;" /><p class="wp-caption-text">Export directly from Gephi Export menu</p></div>
<p style="margin-bottom:25px;margin-top:20px;">The settings asks for a valid directory where to export the files and the size of the canvas. Bigger is the canvas, more you can zoom in, but it takes longer time to generate and to load.</p>
<div id="attachment_2823" class="wp-caption aligncenter" style="width: 489px"><img src="http://gephi.org/wp-content/uploads/2010/07/seadragon-plugin-settings.png" alt="" title="Gephi Seadragon Plugin Settings" width="479" height="399" class="size-full wp-image-2823" style="border: 1px solid black;" /><p class="wp-caption-text">Export settings, configure the size of the image</p></div>
<p>Note that result on the local hard-drive can&#8217;t be viewed with Chrome, due to <a href="http://code.google.com/p/chromium/issues/detail?id=40787&#038;q=ajax%20local&#038;colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS">a bug</a>. Run Chrome with &#8220;&#8211;allow-file-access-from-files&#8221; option to make it work.</p>
<p style="margin-top:30px;">Kudos to <a href="http://livelabs.com/">Microsoft Live Labs</a> for this great library, released in <a href="http://www.opensource.org/licenses/ms-pl.html">Ms-PL</a> open source license. Thank you to <a href="http://lumberjaph.net/">Franck Cuny</a> for the <a href="http://cpan-explorer.org/">CPAN Explorer</a> project that inspired this plugin. Other interesting projects are <a href="http://gexf.net/explorer/">GEXF Explorer</a>, a Flash-based dynamic widget and <a href="http://jmcampanini.posterous.com/gexf4js-powered-by-protovis">gexf4js</a>, load GEXF files into Protovis.</p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/graph-visualization-on-the-web-with-gephi-and-seadragon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSoC 2010 mid-term: Direct Social Networks Import</title>
		<link>http://gephi.org/2010/gsoc-2010-mid-term-direct-social-networks-import/</link>
		<comments>http://gephi.org/2010/gsoc-2010-mid-term-direct-social-networks-import/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 14:08:20 +0000</pubDate>
		<dc:creator>Sebastien Heymann</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[0.8]]></category>
		<category><![CDATA[emails]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[new-york times]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[sna]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2741</guid>
		<description><![CDATA[
During this summer, six students are working on Gephi with the Google Summer of Code. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.
Yi Du is adding the module Direct Social Networks Import during this summer, which provides several kinds of importers like Emails, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2778" style="border: 5px solid #cccccc;" title="Yi Du" src="/wp-content/uploads/2010/07/yestin.jpg" alt="Yi Du" width="80" height="80" /></p>
<p class="reclame" style="text-align: left; font-weight: normal;">During this summer, six students are working on Gephi with the <a href="the-gsoc-rocket-launched">Google Summer of Code</a>. They contribute to Gephi by developing new features that will be integrated in the 0.8 version, released later this year.</p>
<p>Yi Du is adding the module <a href="http://wiki.gephi.org/index.php/Specification_-_GSoC_Direct_Social_Networks_Import">Direct Social Networks Import</a> during this summer, which provides several kinds of importers like Emails, Twitter or Facebook. The goal of this article is to briefly introduce some of the importers, as well as several samples provided.</p>
<p>The ability to import any kind of structured data and build network from it is essential for users. This step is often missing and requires time and scripting abilities, although tools and libraries able to read and parse all type of data already exist. Moreover it has never been so easy to quickly access meaningful datasets online.</p>
<p><strong>Email importer</strong></p>
<p>Email is a simple and widely used tool in communication among people, yet many people have no knowledge of its mechanism. To some extent, our work on analyzing emails can help people better know their relationship with others.  In our email importer module, each email address is represented as a node. If there are two email addresses with the same display name, an option will be provided to allow the user to determine whether to regard them as a node or two different nodes. Afterwards, if there is an email from A to B, an edge will be built, along with an option permitting the user to determine whether Cc or Bcc will be viewed as an edge.</p>
<p>We provide two ways to import emails: on the one hand, the emails are obtained from the email server (POP3 or IMAP), in a one-by-one manner. On the other hand, we get the emails from local files or folder. This importer will arise a problem, that is, different email clients may have different file format. Fortunately, our importer has an easy-to-extend API, as well as a default implementation (EML files). EML is standard and can be obtained from Thunderbird, Outlook and Gmail with tools like Gmail Backup.</p>
<p>This is a sample to illustrate how email importer outputs the data (2000 emails with EGO filter, 700 nodes, 1300 edges).<br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig1a_The_EGO_graph.png"><img class="alignnone size-medium wp-image-2745" title="The EGO graph" src="http://gephi.org/wp-content/uploads/2010/07/fig1a_The_EGO_graph-300x168.png" alt="fig1a_The_EGO_graph" width="300" height="168" /></a> <a href="http://gephi.org/wp-content/uploads/2010/07/fig1b_Graph_whose_indegrees_bigger_than_0.png"><img class="size-medium wp-image-2746" title="Graph whose indegrees bigger than 0" src="http://gephi.org/wp-content/uploads/2010/07/fig1b_Graph_whose_indegrees_bigger_than_0-300x168.png" alt="fig1b_Graph_whose_indegrees_bigger_than_0" width="300" height="168" /></a><br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig1c_Modularize_the_graph.png"><img class="alignnone size-medium wp-image-2747" title="Modularize the graph" src="http://gephi.org/wp-content/uploads/2010/07/fig1c_Modularize_the_graph-300x168.png" alt="fig1c_Modularize_the_graph" width="300" height="168" /></a> <a href="http://gephi.org/wp-content/uploads/2010/07/fig1d_Subgraph_who_has_the_max_number_of_Modularity_count.png"><img class="alignnone size-medium wp-image-2748" title="Subgraph who has the max number of Modularity count" src="http://gephi.org/wp-content/uploads/2010/07/fig1d_Subgraph_who_has_the_max_number_of_Modularity_count-300x168.png" alt="fig1d_Subgraph_who_has_the_max_number_of_Modularity_count" width="300" height="168" /></a><br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig1e_The_hottest_group.png"><img class="alignnone size-medium wp-image-2749" title="The hottest group" src="http://gephi.org/wp-content/uploads/2010/07/fig1e_The_hottest_group-300x168.png" alt="fig1e_The_hottest_group" width="300" height="168" /></a></p>
<p><strong>Twitter importers</strong></p>
<p><a href="http://twitter.com">Twitter</a> is a very popular social network. People can send and receive short messages, which we usually call tweets, using Twitter. We can follow person we are interest in and topics we like. Twitter networks has been popularized by <a href="http://nodexl.codeplex.com/">NodeXL</a> which has a similar feature. See this nice <a href="http://www.flickr.com/photos/marc_smith/sets/72157622437066929/">gallery</a>.</p>
<p>We provide two kinds of networks: &#8220;Twitter Search Network&#8221; and &#8220;Twitter User Network&#8221;.</p>
<p>We support Twitter search network to analyze people who search or mention similar keywords. We present one Twitter user as a node and define three kinds of edge construction:</p>
<ul>
<li>Replies-to relationship: If A reply to B in a searched tweet, an edge from A to B will be added.</li>
<li>Mentions relationship: If A mentions B in a searched tweet, an edge from A to B will be added.</li>
<li>Followers relationship: If A follows B in constructed graph, an edge from A to B will be added.</li>
</ul>
<p>The second network we provide is &#8220;twitter user network&#8221;. We analyze people who follow each other to show the relationships between twitter users. We add an edge from A to B if A follows B in the whole graph by default. We provide three options for vertex construction:</p>
<ul>
<li>Person followed by the user: If searched user A follows B, B will be added as a vertex.</li>
<li>Person following the user: If A follows searched user B, A will be added as a vertex.</li>
<li>Both: Both the above two options.</li>
</ul>
<p>The interface of the two importers are shown as below.<br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig2a_User_network_importer_ui.png"><img class="alignnone size-medium wp-image-2750" title="User network importer UI" src="http://gephi.org/wp-content/uploads/2010/07/fig2a_User_network_importer_ui-239x300.png" alt="fig2a_User_network_importer_ui" width="239" height="300" /></a> <a href="http://gephi.org/wp-content/uploads/2010/07/fig2b_Search_network_importer_ui.png"><img class="alignnone size-medium wp-image-2751" title="Search network importer UI" src="http://gephi.org/wp-content/uploads/2010/07/fig2b_Search_network_importer_ui-300x280.png" alt="fig2b_Search_network_importer_ui" width="300" height="280" /></a></p>
<p><strong>New-York Times importer</strong></p>
<p>The New York Times is an American daily newspaper founded and continuously published in New York City. It has a series of <a href="http://developer.nytimes.com/">APIs for developers</a> on news and social networks. There are several APIs of NYT, such as Article Search API, Best Seller API, etc.</p>
<p>We provide two kinds of social network importers in Gephi: &#8220;Article Network&#8221; and &#8220;TimesPeople Network&#8221;. We use article network to analyze articles with specific filters (date, facets, etc). User can choose which option constructs the edge. For example, user can choose date as the edge. If two articles have the same date attribute, an edge between them will be built. TimesPeople is a social network for Times readers, it&#8217;s similar to Facebook, we can analyze the relationship between them.</p>
<p>Interface of NYT article network import and TimesPeople network are shown below:<br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig3a_NYT_article_network_importer_ui.png"><img class="alignnone size-medium wp-image-2752" title="NYT article network importer UI" src="http://gephi.org/wp-content/uploads/2010/07/fig3a_NYT_article_network_importer_ui-270x300.png" alt="fig3a_NYT_article_network_importer_ui" width="270" height="300" /></a> <a href="http://gephi.org/wp-content/uploads/2010/07/fig3b_NYT_timespeople_network_importer_ui.png"><img class="alignnone size-medium wp-image-2753" title="NYT TimesPeople network importer UI" src="http://gephi.org/wp-content/uploads/2010/07/fig3b_NYT_timespeople_network_importer_ui-300x228.png" alt="fig3b_NYT_timespeople_network_importer_ui" width="300" height="228" /></a></p>
<p>Display of TimesPeople network:<br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network1.png"><img class="alignnone size-medium wp-image-2754" title="Display of TimesPeople network" src="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network1-300x168.png" alt="Display of TimesPeople network" width="300" height="168" /></a> <a href="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network2.png"><img class="alignnone size-medium wp-image-2755" title="Display of TimesPeople network" src="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network2-300x168.png" alt="Display of TimesPeople network" width="300" height="168" /></a><br />
<a href="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network3.png"><img class="alignnone size-medium wp-image-2756" title="Display of TimesPeople network" src="http://gephi.org/wp-content/uploads/2010/07/fig3c_Display_of_TimesPeople_network3-300x168.png" alt="Display of TimesPeople network" width="300" height="168" /></a></p>
<p><strong>Conclusion and future work</strong></p>
<p>In this article, we introduced several importers: Email, Twitter and NYT. By using these importers, users can import data they want and analyze them. They can find the hottest group, the relationship of their friends, the most related author of a facet and other import information by analyzing them.<br />
Until the end of the GSoC, we will have four major importers: Email, Twitter, NYT and Facebook. Among these four importers, Twitter will have &#8220;Twitter User Network&#8221; and &#8220;Twitter Search Network&#8221;. NYT will have &#8220;NYT article search network&#8221; and &#8220;NYT TimesPeople Network&#8221;. Facebook will have &#8220;Facebook Friends Network&#8221; and &#8220;Facebook Group Network&#8221;. Besides adding Facebook importer, we will also optimizing the UI of the importers, and make them more user friendly.</p>
<p><strong>Yi Du</strong></p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/gsoc-2010-mid-term-direct-social-networks-import/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Announcing the Gephi Toolkit</title>
		<link>http://gephi.org/2010/announcing-the-gephi-toolkit/</link>
		<comments>http://gephi.org/2010/announcing-the-gephi-toolkit/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 09:38:45 +0000</pubDate>
		<dc:creator>Mathieu Bastian</dc:creator>
				<category><![CDATA[Announcement]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[toolkit]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://gephi.org/?p=2718</guid>
		<description><![CDATA[We are announcing today the first release of the Gephi Toolkit. The Toolkit project packages essential modules (Graph, Layout, Filters, IO&#8230;) in a standard Java library, which any Java project can use for getting things done. The toolkit is just a single JAR that anyone could reuse in a Java program and script Gephi features.
The [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-2720" title="toolkit-reuse-and-mashup" src="http://gephi.org/wp-content/uploads/2010/07/toolkit-reuse-and-mashup.png" alt="" width="194" height="141" />We are announcing today the first release of the <strong>Gephi Toolkit</strong>. The Toolkit project packages essential modules (Graph, Layout, Filters, IO&#8230;) in a standard Java library, which any Java project can use for getting things done. The toolkit is just a <strong>single JAR</strong> that anyone could reuse in a Java program and script Gephi features.</p>
<p>The toolkit is the counterpart of the desktop application. Gephi&#8217;s user interface aims to be simple, intuitive and without command-line or scripting needed. The toolkit is made for people who want to:</p>
<ul>
<li> <strong>Script, automate features &amp; reproduce the same procedure over and over</strong></li>
<li><strong>Reuse Gephi features and algorithms in other projects and softwares</strong></li>
<li><strong>Develop all types of mashups or web-services that deals with networks</strong></li>
</ul>
<p><a href="http://gephi.org/toolkit"><img class="alignnone size-full wp-image-2658" style="margin-top: 10px; margin-bottom: 5px;" title="Download Gephi Toolkit" src="http://gephi.org/wp-content/uploads/2010/06/download-toolkit.png" alt="" width="168" height="44" /></a></p>
<p>A lot of new content is coming with the release of the Toolkit. A <a href="http://wiki.gephi.org/index.php/Toolkit_portal">new portal</a> appeared on the wiki, with documentation. Above all we provide <a href="http://wiki.gephi.org/index.php/Toolkit_portal">demos and examples</a> and a <a href="http://www.slideshare.net/gephi/gephi-toolkit-tutorialtoolkit">tutorial</a> for newcomers. The cool thing is that it is very easy to use and this is all  compatible with Gephi plugins. What is done for Gephi desktop can be  reused in the toolkit.</p>
<p style="text-align: center;"><img class="size-full wp-image-2594  aligncenter" title="separator" src="http://gephi.org/wp-content/uploads/2010/06/separator.png" alt="" width="98" height="20" /></p>
<p>Gephi is designed in a <strong>modular</strong> way and splitted into  different modules. All features are wrapped into <strong>separated  modules</strong>, for instance a module for the graph structure, a  module for the layout algorithms and so on. Moreover business modules  are separated from user interfaces modules. That allows to keep only  business modules and <strong>remove UI</strong> without any problems.  That is the purpose of the toolkit, which wraps only core modules and  removes all the UI layer. So the toolkit is just taking what already exists in Gephi and packages it.</p>
<p><img class="alignnone size-full wp-image-2536" title="quotes66" src="http://gephi.org/wp-content/uploads/2010/05/quotes66.gif" alt="" width="35" height="29" /> That is all thanks to the power of <strong>Java and Netbeans Platform</strong>.  The way modular development is encouraged and the ability to manually extract modules from the Netbeans Platform is all thanks to the way they designed the architecture and use standards like &#8216;ant&#8217; and plain Java. It&#8217;s a good occasion to say <strong>Kudos</strong> to them!</p>
<p style="text-align: center;"><img class="aligncenter" title="separator" src="http://gephi.org/wp-content/uploads/2010/06/separator.png" alt="" width="98" height="20" /></p>
<p>With the release of the toolkit, we are also moving to the <a href="http://www.gnu.org/licenses/agpl-3.0.html">AGPL license</a>, as announced earlier. The GNU Affero General  Public License is a modified version of the ordinary GNU  GPL version 3.  It has one added requirement: if you run the program on a server  and  let other users communicate with it there, your server must also allow  them  to download the source code corresponding to the program that it’s  running. If  what’s running there is your modified version of the  program, the server’s users  must get the source code as you modified  it.</p>
        ]]></content:encoded>
			<wfw:commentRss>http://gephi.org/2010/announcing-the-gephi-toolkit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
