I would like to propose a new idea for GSoC 2011 and hopefully get some feedback from the community. I've already talked with some people on Gephi's IRC channel about it, but I also would like to discuss it with possible mentors and other students.
I don't know if you're familiar with Tinkerpop's
Blueprints, but basically it's a property graph model interface (think JDBC, but for property graph databases). There are some useful graph tools that work with Blueprints and, by having a Gephi Blueprints implementation, we could use all these tools with Gephi.
By having a Blueprints implementation, users could use the
Gremlin graph traversal language to query the graphs created within Gephi, enabling a powerful tool to work with the structures and test new algorithms.
Also, we could have a
MuTanT console inside Gephi. A MuTanT console would allow access to the graphs created with Gephi in any scripting language that has a ScriptEngine compatible with
JSR 223 (Ruby, Gremlin and Groovy, to name a few).
One of the main advantages of a MuTanT console is that you can change the current ScriptEngine without losing the variable pool. Or, in other words, you could import the graph into a variable, run some source code in Groovy, change the language to Gremlin and do a graph traversal, without losing the global variables on the variable pool, for instance. You can see a MuTanT example session like this
here.
Since the MuTanT console would be a powerful tool to experiment with algorithms on the graph structures created within Gephi, this feature would certainly bring a new kind of users to Gephi: people interested not only in graph visualization and manipulation, but also graph algorithms. For example, one could experiment a new flow algorithm to solve some optimization problem with a graph created in Gephi in just a few minutes. I'm sure that many of the current Gephi's users also would like to have a tool to experiment with algorithms and querying graphs under Gephi.
What do you think about this idea?