Gephi week 2024 – peek from the inside!

This new edition of the Gephi week takes place in Copenhagen, organized by Mathieu Jacomy who lives there and works as a professor at Aalborg University. It was a closed meeting, contrary to the Gephi week 2 years ago in Paris, because of the complexity to organize a public event. This one was smaller and streamlined: 11 participants in one meeting room booked for 5 days. So, what’s happening? I’ll give some personal impressions, interspersed with pictures I took of the event.

The event is pretty important because while Gephi is a passion for all of us, and needs lots of work to develop, the reality is that the actors most involved in the development of Gephi are all super busy with the rest of their lives. The week offers a place and a short window in time where these individuals can work and interact in a highly focused state – that’s 100% Gephi for a couple of days.

One highlight is the participation of Mathieu Bastian (Gephi architect) and Eduardo Ramos (Gephi lead dev), who could spend a few days together and work on the upgrading of Gephi’s viz engine. This is a long term project, started years ago and that perfectly illustrates the difficulty to move on complex subjects with constrained resources.

The promise is to get a new version of the viz engine that will easily accomodate graphs of the size of hundreds of thousands of nodes. Spoiler alert: their project is sufficiently advanced that they could show a demo running within Gephi, and yes gigantic networks can be opened and manipulated just like you’d handle a tiny one today. Looks quite magical. Don’t expect it to be released soon though, as lot of work remains so that the engine works for all platforms and edge cases – that’s many tiny paper cuts to fix.

Another big component of the week is the team of Ouestware working on Gephi lite, which is the web version of Gephi. Lighter than Gephi as the name implies, in the sense that it is not meant to include every feature of Gephi, but evokes a similar experience in terms of graph viz and exploration. It has a much easier learning curve, and it opens Gephi to the features that web technologies afford (modern UI, interfacing with other web services, etc.)

The Ouestware team was joined by Mathieu’s colleagues: Anders Kristian Munk, Johan Irving Søltoft and Lasse Uhrskov Kristensen who provided extensive user reports and insights on Gephi lite (the app being so young, there is still a long road to improve the user experience).

By the way, the development of Gephi lite opens interesting issues: are we witnessing the birth of a kind of “Gephi family” of tools and products? If so, how can it be reflected? Should “Gephi” be called “Gephi desktop” to distinguish it from Gephi lite? What about the visual identity of Gephi? Discussions were exploratory, and in practice the first concrete steps have been taken to redesign the Gephi website to explain better the different assets and use cases for Gephi.

On Mathieu Jacomy’s side, there was interesting work (actually still ongoing, the week is not finished!) on implementing the “connected closeness” algorithm, that he designed and published about (link to the paper, link to the very detailed Observable notebook). What does it do?

It is very simple and powerful: when you layout a network, this algorithm provides a measure of how “good” the layout is. What is “good” then, that’s the big question! A good algorithm is one that brings connected nodes closer to another. Hence the name of the algorithm. Can’t wait to try it!

Another ongoing contribution is by Emilien Schultz, research engineer at ENSAE, who acted both as a participant and an observer: he is interested in Gephi as a topic in sociology of science so he gathered information on the project, all while coding a project that would trace the network of contributors on Github who interacted with Gephi in some capacity. A network that would then be easily explored… in Gephi 🙂

On my side, I spent the week trying to increase the speed of the Force Atlas 2 algorithm, which is this high quality layout developed by Mathieu Jacomy and al., which makes the networks so intelligible. When the graphs are super big (thousands of nodes and dozens of thousands of edges), there are so many computations to be done to lay it out that it is very slow. After 3 days of work, I could double the speed, which is both great but also sligthly disappointing, as I had higher hopes. Besides this result, I learned a lot about the algorithm itself, which has many different parts. It will keep me thinking.

To finish: the atmosphere!

The atmosphere is one of intense focus: participants who made room for a few days to spend time on Gephi and so not wasting a minute. As the pictures show, the meeting room was often silent, just with the noise of keyboard typing. Many or most participants being French, some interruptions came to comment on the political turmoil in France. No tourism on my side except for great culinary experiences in the evening. Copenhagen has great food!

Next steps?

Check out the Gephi website as I’d expect its new version to be published in the not distant future. Then, push me to publish the “speed” version of Force Atlas 2, which is not included in the main Gephi code base yet. And try out Gephi lite, while waiting for the major update to Gephi’s visualization engine! ✨

14 ways you can contribute to Gephi

> this blog post is a cross-posting from the blog of nocodefunctions.com, which is a companion toolbox for Gephi developed by the author.

How can we give back to Gephi so that it continues to thrive in the years to come?

I am not steering Gephi, so please do not take the following as anything “official” nor definitive on the topic. Please check the recent posts on the Gephi blog by Mathieu Jacomy and Mathieu Bastian to get the latest views from the core Gephi team.

Ok, let’s dive in:

Interests should be aligned – and money makes things complicated

Gephi is used by a large diversity of actors: students to governments, librarians, academics and professional scientometricians, dataviz designers, social media listeners, citizen journalists, fraud detection analysts and NGO volunteers to professional osint and infosec specialists and many more.

take-my-money

In this list of users, companies would have been natural contributors to the development of Gephi: “take my money, and in exchange I have a voice in Gephi to develop this or that feature”. However Gephi is a free and open source software, and it will not accept funding in return for a right to control how it is developed.

This stance is not a mistake nor a handicap! It is a conscious choice to evolve Gephi for all – not just in the direction that is set by the stakeholders which can fund it. But as a result, a very common resource – funding money – is not directly available to Gephi.

This simple absence of a market mechanism (I buy, you deliver) prevented Gephi from accessing resources that would have been so useful – and it is also why I esteem and respect the team who develops this software for so long, to provide it as a digital commons.

So, are we stuck? No!

There are many alternatives to contribute to Gephi, in ways that make the best of your abilities AND with tangible feedbacks beyond the existence of Gephi itself.

This blog post will be expanded as I get your feedback: do you see new ways to support Gephi? Would you like to be cited as a contact point for any of those?

Are you a company or for-profit organization?

1. Fund Gephi, despite the hurdles

At the moment, there is no legal entity that is set to accept funding for Gephi, though it is bound to come one day. However, events sponsored by Gephi could still receive funding, through the university that will host the event or a similar channel?

What to expect from it?

The 2nd edition of the Gephi week (August 2022) has been extremely productive. It delivered bug fixes, new plugins, new directions for development but most of all it generated a renewed energy to participate and contribute. By funding the next edition, you contribute in a very concrete manner to making Gephi more stable in the long term.

Are you an academic?

2. Make use of your unique power: citations!

As a librarian, professor, student… a very impactful action in support of Gephi is to cite it in the bibliography of the documents your produce – in articles of course but in every publication really, including applications to projects and reports. These are the two papers referencing the tool you love:

> Bastian, M., Heymann, S., & Jacomy, M. (2009, March). Gephi: an open source software for exploring and manipulating networks. In Proceedings of the international AAAI conference on web and social media (Vol. 3, No. 1, pp. 361-362). link

> Jacomy, M., Venturini, T., Heymann, S., & Bastian, M. (2014). ForceAtlas2, a continuous graph layout algorithm for handy network visualization designed for the Gephi software. PloS one, 9(6), e98679. link

What to expect from it? Gephi has an excellent academic standing, with the original contribution cited more than 10,000 times and Gephi being mentioned in over 39,000 academic publications. Explicitly referencing Gephi in your publications contributes to making Gephi visible by making its impact measurable: it enhances its legitimacy and fosters adoption. And for you? Gephi having an established presence and growing reputation will make it easier to convince reviewer #2 that Gephi was indeed the right choice for this network analysis 😉

3. What about organizing an academic conference?

I think that Gephi has actually never been the central topic of an academic conference 🤔. Would you like to be the first? This could be about Gephi itself, or Gephi in relation with your scientific specialty (network analysis, social networks, organizational mapping, biological networks, computer science, forensics, etc.). Gephi is part of a broader ecosystem of software for the visual exploration of networks: Cytoscape, NodeXL, Graphext… come to mind. Organizing a conference around these would make total sense!

4. Grant writing!

At the suggestion of a Gephi user and academic: it would actually make sense to apply for funding to any local / international research funding agency, where Gephi would be listed as an essential resource in need of financing. Either directly or through the dedication of a research engineer / research designer / data scientist position working on Gephi, within the project team… these are just initial thoughts.

I personnally would love the idea. I could also connect you to academics who would be outstanding contributors to such a grant writing project in France or the European Union. Do get in touch! (my contacts are at the bottom of this post).

Do you ever write tutorials, how-tos, blog posts?

5. Write a simple intro about your experience using Gephi, help others discover it

A classic writer’s block about Gephi is that “I am not expert enough” to write about it. You are probably much more expert than you think (see next paragraph), but in any case you can explain and document the use case that you worked on with Gephi.

This is a very, very useful contribution to Gephi. It makes it discoverable, easier to understand and it showcases what it can do. Again, a common conception is that what we do is never “original enough” to be worth writing about. Absolutely not: each dataset or research question has interesting specificities. Help fellow users understand what you did and how you did it! And if the case is confidential, don’t let it stop you! Transform and abstract your case and showcase the principles you followed.

6. Shoot videos or shorts, any kind of social media postings are useful, too

I mentioned written pieces because that’s in my comfort zone. But videos, short or long, or posts on your favorite social media would be perfectly useful!

Examples

These are quite “high effort” examples, just to inspire you about the variety of formats. Do start with something smaller in scope!

What to expect from it?

You gain the warm glow of knowing that you helped users discover what is possible with Gephi. Not interested in warm feelings? Then do it for the SEO, as Gephi is at the cross-road of network analysis, data science and data visualization: all SEO boxes checked at once.

Are you a beginner or moderately experienced with Gephi?

7. Help translate Gephi in your language!

Gephi is available in 22 languages, which is a good start but we can do better to bring the software to many other linguistic communities! Also, not all of the current 22 languages are translated at 100%. What you can do is participate in the translation! It all happens online, here.

Even if the interface looks intimidating at first, do register and get a start! And as always, don’t hesitate to request help on the Gephi Facebook group 🙂

8. Chat and contribute to the Gephi group on Facebook!

Yes, Facebook is really not anyone’s cup of tea. Discord, LinkedIn, Slack, a WordPress forum… all these would be preferable in some way and yet ten times less used than the group on Facebook. So we stay there for the moment.

The Gephi Facebook group has close to 10,000 members and is a very welcoming and friendly community. Join, post and read! Stuck in any way? Want to showcase a result? Definitely the place to post about it. And if you see anyone requesting assistance, which happens several times per week actually, have a look and it might well be something you have the answer to! Don’t be shy to offer your assistance, again my feeling is that we all tend to underestimate how helpful even a small piece of advice or assistance can be.

What to expect from it?

By giving back to the community, you are helping somebody who is a beginner just like you were some time ago. You help the community grow. Contributing to the Gephi Facebook group will also push you up on the learning curve by exposing you to a variety of cases, questions and solutions that you did not encounter in your usual flow of work with Gephi. A kind of learning platform!

Are you quite experienced with Gephi?

9. Join the Slack group for Gephi!

This Slack group exists in some form for many years and is used by the core developers of Gephi. I think it became more widely used at the occasion of the Gephi Week for 2022.

It is different from the Facebook group in the sense that it is a channel with a lower frequency of postings, with bursts of discussions around organizing and developing Gephi, rather than users helping other users. So it is quite exciting because you can see “Gephi in the making” but to remain productive, it should remain concentrated on that – steering and pushing Gephi forward, not really discussing how to use filters 😉

If you feel that you could contribute to this kind of discussions, do join here. You are not absolutely certain? Do join and be a listener for the first weeks, and you’ll see whether you want to be part of the discussions or not.

What to expect from it?

Well, that is super interesting to get close to the core of the Gephi app and community! This is the place where you could learn about the things brewing for the next months, and suggest contributions you can make: in skills, time, money, credit, etc.

I would like to emphasize that on this channel the most important are contributions (things you can do), not suggestions (things others should do…). The entire group of Gephi core contributors are pretty overwhelmed already, let’s give them some help, not a wishlist! 🙂

Are you a consultant / free-lancer / slasher?

10. Organize trainings and workshops!

It is not always super clear that Gephi as a topic and as an asset is for everyone – it doesn’t have to be contained to the gephi.org website or in the Gephi software. You can develop a free or commercial and / or for-profit activity about Gephi. One obvious activity would be training sessions or workshops about Gephi, or any consulting activity in a given sector, leveraging Gephi. Maybe that when this gets clarified, we’ll see a broader offer for trainings in Gephi?

What to expect from it?

Designing a training or workshop about Gephi is always a great occasion to re-learn what had become habitual. Besides the revenues you will generate from it, it will also establish your credentials in the domain.

Are you an indie developer, a startup or a larger company with resources for R&D?

11. Develop the ecosystem around Gephi!

Gephi provides hooks of an outstanding quality, that make it super convenient to develop your projects with a strong base:

  • the Gephi Toolkit is a standalone Java library that provides all the goodness of Gephi in of your projects, out of the box, with plenty of documentation
  • the gexf network format, which the Gephi team developed, provides a rich description of your networks – attributes, visual features and dynamic dimension as needed
  • the Gephi graphstore is the low level, standalone graph engine that powers Gephi and you could use it in your own projects too!
  • Gephi lite, a web-based version of Gephi for interactive visualizations in the browser – read about it in the Gephi blog.

What to expect from it?

Using these Gephi assets in your projects will save you time, not reinventing the wheel of a network app that includes the graph itself but also the algorithms, layouts, filters, management of attributes, I/O machinery etc. that you will also need pretty quickly. By doing so, you serve Gephi as you will naturally get involved in pushing Gephi and its various assets forward.

Are you a developer with significant experience?

It is on purpose that I kept this item for the end of the list. Indeed, we often assume that if we can’t code, we can’t contribute to Gephi. The 11 ways to contribute to Gephi listed just before have changed your outlook, I hope. Gephi really needs these 11 first types of contributions!

As a senior developer (or better said: not a full beginner in Java), you can also contribute to Gephi in several ways:

12. Java developer: shine!

Everybody has their own learning path, here is one:

  • one way to get acquainted with Gephi is to play with the Gephi Toolkit, which is the Gephi headless library for Java. It will give you a sense of how the API is structured, with a strong modular architecture and some not-so-common design patterns (not familiar with SPIs? You will be served! 😀).
  • then you might be interested in developping a plugin, which is another steep learning curve but very rewarding because, upon publication, your plugin becomes available to the entire Gephi user base (you can also choose to keep it private, of course).
  • in the course of using the Gephi toolkit or developing a plugin, you might open issues on Github. And depending on your expertise and grit, you will also look at the source code of Gephi and find things to solve. This is very welcome, of course.

13. Developer of desktop apps / Rich Client Applications

Gephi is built on top of the Apache NetBeans Platform, which is the Rich Client Application of the NetBeans IDE. If you have a strong interest in NetBeans / RCA / desktop applications / or the intrincaties of targetting a desktop app specifically for Windows of MacOS, you could make contributions of critical importance.

14. OpenGL for Java

I might be sloppy here as I have close to zero knowledge of the domain, but the visualization engine of Gephi is using OpenGL and that is of course quite a tricky aspect. I don’t have the details but Gephi is in the middle of a major upgrade of the underlying technologies for this OpenGL stuff, so if you or your organization is knowledgeable about this subject, you could also make essential contributions.

What to expect from it?

Gephi is led by developers who are first-class in their trade. Did you know that Gephi won a Duke Award back in the days? Contributing to this open source project would be a great learning experience for everyone involved and would speed up the delivery of key features. Gephi is also an open and free software: if you personally care about contributing to a FOSS, Gephi is a perfect choice ❤️.

In the end

If you’d like to contribute to Gephi in any of the ways listed above, a great place to initiate a discussion would be the Gephi Facebook group. I’d also love to get in touch! Just to discuss, give suggestions and point to the right person or resource. Don’t hesitate! I am Clement Levallois and my email is clement.levallois at gephi dot org.

Intro to the Gephi codebase

How is Gephi made? Peek under the hood with Mathieu Bastian in this one-hour video.

It is primarily intended for developers who wish to get oriented with Gephi’s codebase, for instance to make a pull request or a plug-in. Mathieu gives a practical introduction to Gephi’s modular architecture, how its internal API system works, how the main modules are structured, and the build and release process.

This lecture was initially given to the participants of the Gephi Week 2022 in Paris (but we have cut the Q&A parts to not waste your time). It’s now on our YouTube channel. Subscribe!

The slides of the presentation are available down below.

Gephi 0.10 released

Gephi 0.10.0 is here! Download it from http://gephi.org (only patch versions auto-update, it’s intentional). This time around we focused on a few long-awaited features, while keeping our pace on code and sustainability improvements. This release improves the usability and reliability. Here are 5 highlights:

1. Quick search

Searching the graph was previously only possible within the Data Laboratory. There is now a global quick search feature that allows to find nodes and edges in the graph and highlight them. Each result can be acted upon with the same right-click operations found in the Data Laboratory. Quick search is brand new and we’re interested in your feedback as we plan to extend it in future releases.

2. Dark mode

We’ve introduced a new dark look-and-feel in a previous version but a number of components weren’t adjusted accordingly. We have fixed all of these issues and the dark mode is now fully usable.

New dark mode in Gephi

3. Support for Apple Silicon

Gephi now supports the Apple Silicon architecture. As a result, both x64 and aarch64 bundles now exist for Mac OS. The performance improvements for M1/M2 processors is substantial as Gephi can now run natively on this architecture. It loads much faster and complex operations such as layouts run smoother.

4. Preview Improvements

We shipped two major improvements to the Preview module: arrows on curved edges and node border matching the Overview style.

Directed curved edges now have arrows as well. Previously only straight edges had arrows.

Node borders style now match the one seen on Overview: darker node color and size proportional to the node’s size. The border color and size remains entirely configurable.

5. Project and Workspace Management

We reorganised how projects work in Gephi to make it easier to use and pave the way for future features.

Gephi now keeps track of all the projects you’ve worked on in a project list. It’s also now easier to give projects and workspaces names so you can organise your work better. Finally, it’s now possible to duplicate any workspace with all of its settings.

New workspace management

List of improvements

You can check our changelog in the release page:
https://github.com/gephi/gephi/releases/tag/v0.10.0

More about this release

This release is a follow-up to the code sustainability retreat 2022. You can read our report in our last blog post. Not all the features we discussed and worked on are included in this release but it certainly served as an accelerator. We also welcomed contributions from new developers with this release, which is great to see.

Check our road map as of Summer 2021 to have a better idea of where we are going. With this release, we continued to focus on core improvements that pave the way for future big features such as the undo/redo. Specifically, the core improvements to Project Management bring us much closer to it.

Mac OS Users

Note that some users have been experiencing hangs with previous versions, at startup or when switching perspectives. We are aware of the issue and unfortunately there isn’t a complete fix or workaround available at this point. We’re still working on it and you can follow updates on this thread. With this release we hope to have mitigated the issue, while we work on a complete resolution.

As usual, please share your experience/feedback on our Facebook group or on Twitter.

Gephi Lite

Authors: Mathieu Jacomy, Alexis Jacomy, Paul Girard, and Benoît Simard

It is a spin-off

For a long time, one could think of the Gephi as both a piece of software and a project; the purpose of the project would be to develop and maintain the tool. But from the start, our project was about more than Gephi’s code: websites, tutorials, forums, plugins, events, social media, fundraising… We now take this further with an unprecedented decision (for us): the Gephi project will host 2 different tools.

Gephi Lite will be a web version of Gephi, with the same basic features, but reduced to a minimalistic package. It will remain similar to Gephi and be compatible with it, but will have less options. It will not be able to open big networks, but it will be simpler and more ergonomic.

It will not dilute our efforts to maintain and improve Gephi. If you think of the energy we can afford to dedicate to Gephi as a cake, you may think that we will now have to split the cake into 2 shares, one for Gephi and one for Gephi Lite. But in fact, we will have a bigger cake. Indeed, the development is taken in charge by a different team, namely Alexis Jacomy, Paul Girard and Benoît Simard from Ouestware.

Bootstrapping Gephi Lite during the Gephi Week

The Gephi community has known Ouestware for a long time thanks to their work on network visualization on the web, to which we must add Guillaume Plique from the Sciences Po médialab. Let us call them the JS community in this context. Over the years, these developers have been contributing to a long series of libraries, prototypes, and tools adjacent to Gephi. Here is a quick list of their collective contributions to network visualization:

  • Libraries: Graphology, to handle graphs; and SigmaJS, to render them on the web.
  • Prototypes: ManyLines, to share networks as explorable slides; MiniVan, to share networks online as browsable documents; and a top-secret project to make up networks quickly.
  • Tools: Retina, an online network visualizer with filtering and search; and Gephisto, a one-click network visualizer for teaching.

We have also given a joint talk about Gephi and JS at the FOSDEM. We mention all of this to highlight that there was a fertile ground for something new. The skills were there, but everyone had pushed their own projects and explored different directions. Could we coordinate our efforts in the future?

Long story short: we met at the Gephi Week, it happened, and the outcome is Gephi Lite. Here is an account of the project after the Gephi Week and a follow-up sprint at OuestWare.

A very early prototype of Gephi Lite: the graph rendering is already functional thanks to Graphology and Sigma.

What makes Gephi Gephi?

We explored that question because we had to answer this: what should Gephi Lite be like? Indeed, what makes Gephi Lite different from the tools above is that it tries to stick to the Gephi recipe. But what is that recipe?

We distilled Gephi to this feature set:

  • Load data
  • Render layouts
  • Compute metrics
  • Apply filters
  • Select data
  • Set the semiotics (appearance panel)
  • Save data
  • Export as images
  • Export on the web
  • Manual intervention (create and edit data, for ex. attributes)
  • Plugins (Note: we will leave this aside for Gephi Lite for now)

To which we add:

  • Gephi Lite must interoperate with Gephi
  • Reuse the Gephi look and feel when possible (consistency)

We used this list as a starting point to decide Gephi Lite’s scope.

Sketching the scope of Gephi Lite

About the name: what does “Lite” mean?

Lite means that Gephi Lite will always be at a higher level than Gephi desktop. Further from the metal, as we say. More blackboxed, with more layers of software. More usable, but at the core, less efficient. This is why it will have lower scaling capacities in terms of size of graph.

Lite also means that we aim at less complex usages than Gephi. This principle has to be taken as a general guideline and not a strict rule. Indeed Gephi Lite differs also by the fact that it is on the web. It is a drawback at times, but it also brings opportunities to do things differently and add new features. So Lite does not mean that Gephi Lite is Gephi with missing pieces. It has its own feature set..

We considered the name “Gephi Web” but we decided that making it clear that it would not be as scalable as Gephi would help manage people’s expectations. The discussion is not entirely closed, though.

Data-driven rendering

Here is where Gephi Lite will differ from Gephi. The semiotic work on the visualization (node color and size, edge thickness…) will always be tied to the data. That is why we call it “data-driven”.

In Gephi, you can do whatever you want. You can manually paint a bunch of nodes in red. You can paint some nodes with a gradient of colors representing their degree, and other nodes with a color representing a cluster they belong to. You can play with this feature. You can do art. You can do things so weird you could not even explain. It’s flexible and powerful, but it comes with complications. And notably, you cannot always have a caption, because Gephi cannot keep track of what the colors or sizes mean.

Gephi Lite has a limited set of features, and it sometimes creates opportunities. We decided to allow no manual coloring of the nodes and edges, and to use a rule-based mapping of colors and sizes. For example, you can only apply colors according to an attribute or a simple combination of attributes. Think of the rule as something like “Democrat blogs in blue and Republicans in red”, or something a bit more complicated but not too much. In Gephi Lite, the appearance of nodes and edges will be fully determined by such rules. As a benefit, it can keep track of what the colors mean, apply them dynamically, and build a caption. For most users, it will be simpler.

For the record, to make this system work, we settled on this set of features:

  • No manual coloring.
  • Add quali/quanti tags on node/edge attributes to help users make meaningful semiotic choices.
  • Nodes/edge appearance is dynamic: we watch attribute changes.
  • Appearance is determined by rules which are always applied, even if not in the filtered version. In other words, the modalities taken into account to set colors account for hidden nodes as well. It does not depend on how the network is currently filtered.
  • Missing values are systematically handled.
  • Gephi Lite will be able to draw a caption.
  • Gephi Lite will contribute and use the GEXF new v1.3 spec by prototyping it and contributing to its specifications.
  • Original GEXF viz attributes will be used as special “gexf_viz” prefixed data attribute when no caption is present (GEXF <= 1.2) to be able to reuse it at export and use those default in the default appearance state.

Appearance panel

Like in Gephi, a dedicated space in the user interface will allow setting the semiotics of the map. In Gephi, it is the appearance panel. A similar space will exist in Gephi (whether that’s a panel or something else).

As we have just seen, the semiotics are rule-based and dynamic. In addition to this, we decided the following:

  • Appearance gathers all visual variables to draw nodes, edges and their labels (size, color).
  • Nodes and edges labels sizing will be dealt with in the appearance bloc.
  • Considered feature: applying different rules to different parts of the graph (see “partitions” later).
  • Appropriately handle missing values, anomalous values (ex: a string among numbers), unexpected values (ex: negative weight), and errors.
  • Always ask the user how to render undefined values. Undefined values could be the cases above or valid values that have not been set for different reasons. Those can typically be dealt with using a default color and size.

Something we have been discussing but we have not solved yet: where is the caption? We could generate a caption on-demand, but since the appearance is fully dynamic, we could as well have a caption accessible at all times. Is the caption part of the appearance panel? If not, is it redundant? We will be iterating over this question.

The appearance panel in our earliest work-in-progress.

Filtering

The filters UI in Gephi is both too complex for the scope of Gephi Lite, and inconsistent with web UX design. WE have an opportunity to do better, albeit simpler. We chose a new abstraction, that is less flexible but much simpler to manipulate:

  • Filters are a stack (and not a tree like in Gephi)
  • Each filter is applied on the graph resulting from the previous filter (they cascade)
  • The filters can be on nodes or edges
  • A filter can be related to an attribute, a custom script (written or pasted by the user), or a topological filter (ex: the main component filter).

We have to experiment with the design of filtering, but let us acknowledge that filtering has to be simple for the user. Our priority is to keep our user experience straightforward.

Statistics

Gephi Lite will feature statistics (computable metrics), although with less choice as Gephi. Those statistics are those included in Graphology, and if we add new ones they will also be included in Graphology. We want to make it possible to choose the name of the attribute where the output is generated (with a warning if it already exists).

Layout

Similarly to statistics, we will use the Graphology layout algorithms and possibly extend them.

Not only related to the layout, but let us share with you a complicated question that can give you a practical idea of the design challenges we face. In Gephi, the node size is relative to the layout. They use the same coordinate system. By contrast, in other contexts like with Sigma, the node size may vary independently. The scaling of the layout is, after all, arbitrary. But because Gephi Lite is a companion to Gephi, we want to enforce consistency between them. Therefore the node size should behave similarly to Gephi. It turns out that this behavior conflicts with the current architecture of Sigma, due how the renderer layer behaves. We see no other solution than to introduce a breaking change in Sigma (the v3 is therefore in preparation).

Buckets

The simplification of the filters and appearance systems gets in the way of some popular scenarios that we want to make possible in Gephi Lite. We are therefore adding a new concept to support these advanced uses, in a way that would be transparent to beginners. We call this feature buckets.

A bucket is a set of nodes and edges. A subgraph, technically. But you may think of it as a partition of your network, or a layer, or a selection. It’s just a way to handle a subset of your network in a few places where we think it is necessary.

The users who do not understand this concept can ignore it completely. It is not required to know what a bucket is in most situations. However, you may need it if you feel limited by the way filters and appearance settings work. For example if you have a two-mode network and you want to set the size of the nodes according to their degree, but with a different scale for each type of node, because one type consists of a few nodes with many links (they would be too big) and the other of many nodes with a few links (they would be too small). If you meet this kind of problem, then using buckets is the way to go.

We are aware that this feature makes the memory structure of Gephi Lite a bit more complicated to write, but we consider that it is worth the effort.

UX organization

We identified a few problems. For instance:

  • The appearance panel will be heavier than in Gephi
  • It is just too heavy to display all panels all the time
  • We cannot have tabs because the browser already has tabs
  • We do not want to split the app into pages (screens) for similar reasons

The solution we found (currently) entails:

  • A compact sidebar on the left with shortcuts to different panels: metrics, layout, appearance and filter.
  • When clicking on a shortcut in the compact sidebar, the corresponding panel opens in an additional sidebar next to the compact sidebar (the panel unfolds in a collapsible column).
  • A column on the right with graph context (visible nodes and edges) and contextual information and actions (for instance, what is selected etc.)
The organization of the sidebars as it currently exists in our prototype.

Our approach is to design by drafting (no mockups) but leaving aside all graphic design choices for the moment. Those will be designed later on in “live wireframes” (or as we call it, “ugly soulless prototypes”).

We have three personas in mind when making our design decisions:

  • The cartographer
  • The data scientist
  • The collaborator: someone who wants to share the exploration of a network

Cloud file management

Because we are on the web, it can be really useful to save the project’s file on the cloud. To achieve that we identified the following needs:

  • To sign-in
  • To list and/or search the files that are compatible with Gephi Lite
  • To load a file
  • To save a file

The first implementation that we want to provide is Github Gist.  Gephi has a plugin to publish a graph on the web that generates a GEXF file and saves it in Github as a Gist (we will post about that at a later point). Github Gist allows CORS (a major constraint of this approach), so an internet application can load a gist file like Retina does. 

How we see the lifecycle of a file in Gephi Lite:

  1. Use Gephi
  2. Export on the web
  3. Use Gephi Lite
  4. Import the GEXF into Gephi

The last part (importing a remote GEXF file in Gephi) doesn’t exist yet, but it’s easy to develop as a plugin. Using Github Gist gives us also the opportunity to see revisions of a file (history management, rollback…). This system is compatible with other providers that we could add in the future like Nextcloud, Google Drive, Dropbox, etc.

MVP

Our design intentions, as stated in this post, can be seen as a long-term road map for the project. Our short-term goal is the MVP, the “minimum viable product”. The MVP is the smallest version of Gephi Lite that can be useful, the point before which it makes no sense to release the tool. Therefore, developing the features of the MVP are the priority. The rest is “nice to have” because it requires the MVP to work. But deciding what belongs to the MVP is not just a matter of technical constraints, it is also a subjective call about what “necessary” and “useful” mean in the context of network analysis.

No final choice has been made for the moment, and we need a better view of the implementation complexity of the various components we have to do. But some things are already clear to us.

We do want the following features in the MVP:

  • Load and save a GEXF file, local or GIST
  • Visualize (zoom, pan the view, search)
  • Appearance (node color and size)
  • Filter (at least one)
  • Statistics (at least one)
  • Layout (Force Atlas 2)

We can wait later for:

  • Buckets
  • Custom scripts
  • Data edition

Roadmap

The next work iteration on Gephi Lite should happen in early 2023. There will be no prototype release before then. We will communicate on our advances at that point. See you there!

– Mathieu, Alexis, Paul and Benoît

Gephi Week 2022: debriefing

From 29 August to 2 September 2022, about 20 people met in Paris and online to make the Gephi codebase more sustainable, discuss the project, experiment with potential features, improve the design, and get closer to the 1.0 version. It was a follow-up to the 2021 code sustainability retreat, and its theme was community detection. In this post we present what we have done.

The event was sponsored by the SoBigData++ project, hosted by the Sciences Po médialab, and live-streamed by Nicolas Bouchaib from First Link. Tommaso Venturini, Axel Meunier and Simon Bourdieu-Apartis carried the burden of organization. We warmly thank all of them for having made this event possible!

Work done

We have covered a broad spectrum of topics. Find the list below. Just keep in mind that not every project could be finalized during the week. About a half of the contributions will need some time to be released to the users. The forthcoming 0.10.0 version will include the rest, and is to be expected for the end of the year (2022).

These features and experimentations will be developed in upcoming blog posts:

  • Gephi Lite, an upcoming web version of Gephi. Alexis Jacomy has been paving the road map and leading the discussion about its features.
  • Revamping the icons in Gephi. Côme Brocas reworked the icons system and Mathieu Bastian reworked the implementation. This will also contribute to the upcoming dark mode!
  • New web export based on OuestWare’s Retina, with a plugin developed by Clément Levallois and Alexis Jacomy.
  • New Neo4J plugin, developed by an expert of that technology, Benoît Simard.
  • Rethinking how we visualize community detection in Gephi, and notably when it comes to the ambiguity about the groups with which each node can be associated with. Tommaso Elli, Andrea Benedetti, Mathieu Jacomy and Guillaume Plique reflected on visualizing the process of the algorithm. Benjamin Ooghe-Tabanou, Étienne Côme and Guillaume reflected on metrics and visualizations to assess the ambiguity itself.
  • Video presenting the codebase, by Mathieu Bastian. To be released soon!

These features are developed below in this post:

  • Allowing the export of node coordinates as columns in the data, an often demanded feature added by Sukankana Chakraborty.
  • Making the edge types editable in the data laboratory, which matters to multigraphs, by Matthieu Totet.
  • Exporting the same node borders as in the overview, by Roberto Luna-Garcia.
  • Exporting with a transparent background, by Roberto Luna-Garcia.
  • Adding arrows to curved edges when you export an image. Mathieu Jacomy tackled this seemingly simple issue, but it was more complicated than it looked.
  • Revamping the online documentation for developers notably, by Mathieu Bastian and Matthieu Totet.

Takeaways

A few general points before diving into the details.

Gephi is expanding to the web. We will develop this in an upcoming post, but in short, we are committed to stabilize a web version of Gephi, with a reduced scope but a more modern UX, called Gephi Lite. The team at OuestWare (Alexis Jacomy, Benoît Simard and Paul Girard) has taken the lead of this branch of our project. It will be based on Graphology and SigmaJS, and benefit from the invaluable help of Guillaume Plique.

Gephi is popular, and many people are willing to help the project. This second edition attracted more participants than the last. More varied people, too: designers, researchers, data analysts, content creators, OSINT practitioners, and developers. Those categories are not mutually exclusive.

It is hard to recruit Java developers. One of the reasons seems to be that Java Desktop and Swing are not sexy, but more importantly, we are not that well connected to the Java dev world. We find our contributors either through plugins, or in the overlap of data science and dev: people who use Gephi and happen to also know how to dev. We will keep communicating about our need to stabilize a community of developers, and we believe that a lively non-dev community around Gephi (users, content creators, designers…) contributes indirectly to a more lively dev community.

We still need to stabilize the codebase. We are not ready yet to move to finalizing a version 1.0, at least because we still need to rework the visualization engine to get rid of unmaintained dependencies. This will require a separate effort later on this year.

The Gephi Week was very beneficial to the project. Although we struggle to be attractive to Java developers, the Gephi Week was an occasion for everyone to improve their knowledge about the codebase. Some contributors like myself were rusty, and it was for us an opportunity to exercise our coding muscles again, under the excellent coaching of Mathieu Bastian, who also recorded a guided tour of the codebase. Newcomers could also learn the basics, and the codebase received more scrutiny. Little by little, we build the ability to help and support each other, and improve our autonomy. And beyond the central concern about the sustainability of the codebase, the project immensely improved in many unexpected directions, such as rethinking the design of popular features like community detection, revamping big parts of the visual identity (icons), and building a web sibling to the Java version, Gephi Lite. Even beyond these developments, the coding retreat spawned satellite events like a meeting with the local OSINT community (many Gephi users!), live-streaming with YouTubers, and discussing with renowned researchers. Around the coding retreat, something like a mini-festival is growing by itself.

We remain committed to keeping this event yearly, and we expect it to grow again next year.

Wrap-up videos

As our wrap-up was live streamed, we had the opportunity to share that moment with you. The stream has been cleaned up and sliced. We published it on our YouTube channel as a playlist (see below). The playlist, about 100 minutes-long, is in the order it was recorded. For a more thematic approach, each video will be featured separately as we explain what we have done during the Gephi Week, starting in the next section.

Playlist of the wrap-up on YouTube. 100 minutes.

More about what we have done

Allowing the export of node coordinates

An often demanded feature added by Sukankana “Schuh” Chakraborty. The (x,y) coordinates of nodes are native to Gephi. They are not like any other attribute insofar as they are used to draw the layout. As an unfortunate consequence, they used to be omitted during the export of data. Which is a problem, notably if you want to draw the nodes in another environment like Tableau. Schuh addressed this issue and added the option.

Screenshot of the settings panel
Schuh (Sukankana Chakraborty) explains her work on making the node coordinate exportable.

Making the type of edges editable

In multigraphs, each edge has a given “type”, also sometimes called “kind”. Those differentiate the represented relations, for example mother, sister, niece… Like for Schuh’s issue just before, the edge type was a special attribute, and we could not change it in the data laboratory. As Mathieu Bastian explains below, Matthieu Totet addressed the issue (he could not be present during the wrap-up).

Mathieu Bastian explains his work with Matthieu Totet on making edge kind editable for multigraphs in Gephi.

Exporting the same node borders as in the overview

You may have noticed that the nodes have a different look in the Overview and in the Preview. The Preview (the image exporter) can generally do more than the Overview, but one feature was missing: having node borders colored with a darker version of the node color. Roberto Luna-Garcia added this option to the settings.

Roberto Luna-Garcia showcases his work on adding node borders in the export.

Exporting a PDF with transparent background

Roberto also addressed the need to export network map with a transparent background:

Roberto Luna-Garcia showcases his work on making the background transparent when you export a Gephi visualization.

Adding arrows to curved edges

When Mathieu Jacomy picked this seemingly simple issue, he thought it would take a few hours. Alas, deep down the rabbit hole, a much more fearsome beast awaited. Bezier curves had to be replaced with circle arcs, which came with their own share of implementation weirdness, as each renderer speaks three different languages: SVG, PDF, and Java2D.

Mathieu Jacomy shows his work on adding arrows to curved edges during the Gephi Week.

Revamping the online documentation

How to write accessible documentation for developers? Matthieu Totet and Mathieu Bastian drew inspiration from the OpenRefine community, and reworked the system around Gephi, with a good share of automation.

Mathieu Bastian explains his role in the Gephi Week and showcases his work with Matthieu Totet on improving the online Gephi documentation.

Photos

Most of the week consisted of this collective workshopping that one would totally expect. Andrea, Guillaume, Étienne, Benjamin, Mathieu B, Matthieu T and Nicolas.
It’s not just coding, it’s also thinking without coding. Guillaume and Benjamin enjoy the vibe while Mathieu J contemplates despair.
As expected, one could see networks. Here Guillaume is tinkering with semantic zooming.
Clément skimming through the book recommended by Mathieu B to understand the codebase better: The Definitive Guide to NetBeans Platform 7, by Heiko Böck.
Côme at work redesigning icons that are too specific to be present in existing libraries.
Nicolas hosting a stream with Viviane (Scilabus on YouTube) and Mathieu J.
Nicolas installing the streaming setup for the wrap-up session.
It was exhausting but very enjoyable. Mathieu B, Matthieu T, Nicolas, Clément and Roberto.

This event is supported by the European Union – Horizon 2020 Program under the scheme “INFRAIA-01-2018-2019 – Integrating Activities for Advanced Communities”, Grant Agreement n.871042, “SoBigData++: European Integrated Infrastructure for Social Mining and Big Data Analytics” (http://www.sobigdata.eu).

Call for participants: Gephi code sustainability retreat 2022

We are organizing a second code sustainability retreat (check the first one), and we are looking for Java developers willing to contribute to Gephi’s core codebase over the next few years. It will be one of the two tracks of a broader event, the Gephi Week, the other one being dedicated to the question of visualizing community structure in networks (we will make a dedicated post for that).

Our goal: Make Gephi’s codebase sustainable, and beyond this, recruit a team of developers into the project.

When: 29 August to 2 September (one week, Monday to Friday)

How long: 4 to 5 days. Let’s see how travel goes for everyone.

Where: In Paris, France.

How many participants: We aim at about 5 Java developers, not counting the Gephi core team (~3 people).

Funding: We pay for travel and accommodation thanks to the sponsoring of the SoBigData++ project. We will also offer a small compensation for your time and effort (~100€/day).

What we will do during the retreat: Our lead developer will share knowledge about the codebase. We will get an overview of the state of Gephi, set up a more technical road map (identify the main challenges, decide of the best course of action) and code part of it – in short, we will push the cart further. Furthermore, we will get to know each other better and have some good time together.

HOW TO APPLY
Send an email to the organiser
mathieu.jacomy@gmail.com

What’s next: We will probably meet you online for a quick talk and check that we are on the same page. If too many people apply, we will make a choice and inform you of the result. We will deal with travel and accommodation, and then meet you in Paris!

Feel free to ask if you have any question (to the email above, in comments, or via Twitter to @Gephi).

To know more about this, you can check the report to the Gephi code sustainability retreat 2021.


This event is supported by the European Union – Horizon 2020 Program under the scheme “INFRAIA-01-2018-2019 – Integrating Activities for Advanced Communities”, Grant Agreement n.871042, “SoBigData++: European Integrated Infrastructure for Social Mining and Big Data Analytics” (http://www.sobigdata.eu).

Transition to semantic versioning

You may have noticed two things.

First, we released several versions recently. Gephi 0.9.2 was released in September 2017. Then the version 0.9.3 in March 2022, with a 4+ years hiatus. Then 0.9.4 three weeks ago, in April 2022. Then 0.9.5 a week ago, in May. What is going on?

Second, the splash screen. Version 0.9.1 and 0.9.2 were like this:

Then version 0.9.3 changed color, to mark the end of the hiatus. It was somehow a big change.

…but since version 0.9.4 it just features the version number 0.9 (without the last bit):

What is going on?

We are transitioning to semantic versioning

Semantic versioning is a certain logic to attribute version numbers. It uses three numbers:

  1. The major version number. It is incremented when the new version breaks compatibility. It matters to the user because they may not want to upgrade, or not yet, because it may break for them.
  2. The minor version number. It is incremented when features are added, but in a compatible way. The user generally wants to upgrade, but may not like the changes, so we need a way to refer to that specific version.
  3. The patch number. It is incremented when it is just bug fixes. The user always wants to upgrade.

So far, Gephi was not versioned that way. In part because numbers have a cultural meaning. For example, 0.9 feels like we are getting close to version 1.0, and in many ways we are getting closer, but at the same time this does not have to do with the fact that we have release about 10 major versions. If it takes us 15 steps, then so be it. The next minor version will be 0.10 – which is not like version 0.1! Weird, but version numbers do not work like decimal numbers.

Semantic versioning is a reasonable and safe way to version, and we are getting there, but not in one go. We will only fully do that from version 1.0.0, which requires meeting a number of goals on our road map. Nevertheless, we need to be able to push bug fixes to everyone, and for that, the best is to use the patch number. Which is why we had two more versions in just a month. But it remains less dramatic than the move from 0.9.2 to 0.9.3, which is why we removed the mention of the patch number from the splash screen. Like for semantic versioning, new patch versions should not feel like new versions to the user. And importantly, patch versions are pushed to all users through the automatic update mechanism. So to recap, it works like this:

As final word, you may wonder: why not have the post-hiatus version numbered 0.10.0 instead of 0.9.3? You’d be totally right! It should have been. We did not realize it soon enough, unlike the most savvy members of our community. Oops! But we’re doing it now. Better late than never 🙂

Gephi 0.9.3

Gephi 0.9.3 is here! Download it from http://gephi.org. No crazy new features, but many improvements and bug fixes. Here are 5 highlights:

1. No more Java installation required.

Gephi is installed on top of Java, so you had to install it before Gephi. On some computers, a bug related to theJava path caused the infamous “Cannot find Java 1.8” issue. This does not happen anymore, as you do not have to install Java anymore! It is packaged with Gephi.

2. New look and feel

Gephi now has a flat look and feel. This is much better for Linux users, as well as some Mac users who had issues with the appearance (one did not see which tab was selected etc.).

3. New community detection algorithm via statistical inference

Tiago Peixoto attended the code sustainability retreat 2021 and we implemented a version of his approach to community detection. It uses the same convergence heuristic as the Louvain algorithm (“modularity” in Gephi), also looks for assortative structures, but optimizes a different criterion, based on Bayesian inference.

You can look at Tiago’s blog for more information about it, or the two papers it is based on:

4. GEXF 1.3

The file format often used with Gephi, GEXF, has been updated to 1.3. This version is more mature and reliable than the previous one, and is implemented in Gephi. Check the announcement for the final specification there:
http://gexf.net/history.html

5. High DPI screens

High resolution screens are mainstream. We corrected a number of issues to fully support them.

List of improvements

You can check our changelog in the release page:
https://github.com/gephi/gephi/releases/tag/v0.9.3

For plugin maintainers

Check a specific announcement about your plugin right there:
https://github.com/gephi/gephi-plugins/discussions/245

More about this update

This update is a follow-up to the code sustainability retreat 2021. You can read our report in our last blog post. Not all the features we discussed and worked on are included in this update. We are working on it, but it’s just better to release updates as soon as usable improvements are ready.

Check our road map as of Summer 2021 to have a better idea of where we are and where we go. We are still working on big features such as a new graphic engine and the infamous undo feature.

We will also have a code sustainability retreat in 2022 with funded travel and accommodation, if you are interested in contributing to Gephi. We will almost certainly hold it the week of the 29th of August. A call for participation will come soon.

As usual, please share your experience/feedback on our Facebook group or on Twitter.

Gephi code sustainability retreat 2021: debriefing

From 29 November to 3 December 2021, 6 people met in Copenhagen to make the Gephi codebase more sustainable, discuss the project, pave the way to the long-waited version 1.0, and improve the tool overall. Before the event even started, it had already tackled its main goal. In this post we present what we have done.

The event was sponsored by the Aalborg University TANT Lab in Copenhagen, whom we warmly thank, because they basically funded the whole thing, and hosted us. The participants featured a whooping 50% of Mathieux, and more importantly, a healthy mix of skills:

  • Mathieu Bastian, who was Gephi’s lead dev for many years, and knows the codebase like none;
  • Mathieu Jacomy, who designed Gephi’s UX and some of its algorithms, and organized the event;
  • Matthieu Totet, who authored the Gephi Twitter plugin;
  • Eduardo Ramos Ibáñez, Gephi’s current lead developer;
  • Tiago Peixoto, world-class expert on community detection;
  • and Antonin Delpeuch, the main developer of Open Refine.

We spend the first two days discussing and preparing stuff, and the last three to code. The coding went surprisingly well, compared to many comparable situations, for example hackathons. That is why I wrote above that it had tackled its main goal before it even started: the codebase is sustainable. I know someone who cleans their house before the house cleaning service comes, because they don’t want to expose the actual messiness of their lives. Similarly, Mathieu Bastian and Eduardo had so well prepared the codebase in anticipation of the retreat that there was nothing left to do on that front. Bravo!

Code sustainability was our main goal, but that is not where it ends. We changed our perspective in the process. Let’s start with the main takeaways: goals met or not, and what we have learned.

Takeaways

Code sustainability. The codebase is in a good shape and developers can healthily engage with it. However, we can improve the documentation and entry points for aspiring developers.

Enrolling new developers. This did not work so well, but we will get there. We hoped for more new developers to come to this retreat. We had room and funding for two more people, so our call for participation did not work great. However, some developers manifested themselves during the event, when we started communicating about the retreat on Twitter. We aim at more participants next time.

Anticipating the fundraising phase. We learned a lot from the Open Refine project through Antonin. They have a fiscal sponsor: a structure that represents them legally and manages money, allowing them to collect funds and pay developers. This is what we need, and our next step will be to seek one.

Goodwill. There is still a huge amount of it around the project. The response of the public to this event was outstandingly positive. This is important notably to raising funds.

Dev infrastructure. The GitHub issues system, that we use to track and fix bugs, does not work that great for us in practice. We are thinking of an alternative.

Web presence. Reflecting on our website, blog, and online tools was an explicit non-goal: we decided to focus on that another time. But we could see that it definitely required a good reworking. We are aware of it.

Governance. As the project involves funds and more people, we will need to change our model. We want to talk about it with potential fiscal sponsors.

Mailing list. We have to make one, dedicated to developers, at least for the moment.

Achieved

Here is a summary of what we have achieved during the three coding days. Note that it does not directly translate into a release. You will have to wait for Christmas at least for that (it requires more work).

  • We triaged a lot of issues and tested the contribution process.
  • We fixed a bunch of bugs on our bug bash.
  • We defined and enforced code style on the repository, making it simpler going forward to collaborate between developers.
  • We made the project saving/loading more resilient, preventing users from losing their work due to corrupted .gephi files.
  • We embedded the Java JRE on the Windows and Linux installation, so that users don’t need to install Java by themselves anymore.
  • We migrated the localization system from Transifex to Weblate, making it easier to translate Gephi.
  • We made unit testing easier so that developers are more productive.
  • We integrated the new visualization engine into the Gephi desktop app. We got it working the first day, but without workspace switch support.
  • The following days we implemented the workspace switch, added support for High DPI screens, and got most of the interactivity and tools working fine.
  • We implemented Tiago Peixoto’s statistical inference algorithm for community detection and its unit tests (in progress).
  • We sketched a specification for the undo/redo feature.

Discussed

We discussed the state of the project in various ways during the first two days: its community of developers and users, its scientific state, the infamous (lack of) undo, our road map, governance, funding… We learned a lot from Antonin (Open Refine), and on community detection algorithms from Tiago. That part is hard to transcribe here, but I will write down a few knowledge points we have established.

Our community is broad. It consists of developers and users, and we find those in various scientific fields: digital humanities, SNA (social network analysis), network science (notably teaching). Outside of research, we also find users in data journalism, activism, and in the industry: SEO (search engine optimization), social media listening, patents and papers analysis, intelligence (OSINT), and cybersecurity. We noted that Open Refine does user surveys to know their community better (we’ve done so in 2016).

Gephi is not a commercial product. By that, we mean that we do not want to make Gephi for a specific public. We do not aim at normalizing or formatting usage. We just want to help different kinds of people, even when they want different things. [Mathieu Jacomy’s note: as I am writing this I realize that part of our audience will rightfully remark that we do have methodological commitments and that we necessarily shape usage. Hence this precision:] In other words, contrary to a company whose interest might be to serve certain consumers to the detriment of others, for example because they have higher purchasing powers, we do not have a fixed persona in mind when we make Gephi. We aim at satisfying the existing users including those who have marginal needs. In short, the features are decided on the pragmatic ground of usefulness to people versus implementation difficulty.

Do people leave Gephi and why? We don’t think we have a “users leave Gephi” problem. Here is what we believe: many users naturally move to more advanced tools, yet they may go back to Gephi on various occasions, because it’s easy to use. Using Gephi is sporadic anyway (one does not need to use it every day). That being said, some developers leave Gephi when they write code, because it’s easier to script (e.g. Python).

Web presence. Nice things we want to have: an introductory video to Gephi, a list of the best tutorials produced by the community, a simpler website because there is too much irrelevant information, the content for developers should be moved somewhere else (e.g. GitHub), remove the content about the Gephi Consortium (obsolete), a unified navigation bar over our different online spaces, a YouTube channel, and a way to promote the good content produced by the community.

Book. We would like to write one. Or a MOOC. The Gephi 1.0 release would be the ideal moment.

Community detection. Tiago Peixoto presented his work on the topic. He champions a Bayesian inference approach and considers modularity maximization as an obsolete (disproven) method. He also acknowledged that not everyone necessarily agrees in the research community. He documented his perspective in a series of blog posts (1, 2 & 3). We collectively agreed that we would keep the current popular Louvain method, add the more recent Leiden method, and add Tiago’s statistical inference approach. We will also group them in a specific section of the statistics panel, so that the users can identify them as alternatives, and muscle their own critical thinking by engaging with them.

Undo/redo. We learned how it is done currently in Open Refine, the problems it creates, and how it could be done better. The feature is doable in Gephi, and we sketched an architecture.

Funding. From Antonin’s feedback on the Open Refine project, we realized that what we needed was a fiscal sponsor, for instance Code for Science and Society. We also aggregated a list of possible funders: crowdfunding, Google Summer of Code (good to engage devs over the long run), Outreachy (idem), Chan Zuckerberg Initiative…

Feedback

Here is what we thought of how it went, to remember for next time.

To be improved: organization of travel and accommodation; we should identify decisions when we make them and note them apart; we should record some of the talks, notably the introduction to the codebase; it would be nice to have a (social) occasion to interact with Gephi users; the big map of the source code was not useful.

Went well: the coding was well prepared, thanks to Mathieu Bastian and Eduardo; the coding went often beyond our expectation; knowledge exchange across Gephi and Open Refine was great thanks to the meeting being in person; the live tweeting was engaging to our community including developers; the T-shirts are nice.

To consider for next time: live-streaming moments; a hybrid format or possibly a 100% online edition; preparing explainer videos.

Photos

Here is a small selection ofpictures of us at work, to get you an idea of what it looked like. We hope it makes you consider joining next time! Also, in the meanwhile, consider proposing a talk and attending the Open Research Tools and Technologies devroom where, notably, the Gephi team met Antonin: it’s a great place to meet like-minded people.

Mathieu Jacomy explaining stuff
Tiago Peixoto presenting his approach to community detection. On the left, Antonin Delpeuch at work.
Mathieu Bastian discussing how the Gephi architecture could support an undo/redo à la Open Refine (action stack).

In short, this is the Gephi codebase.

Coding session with Matthieu Totet (left), Eduardo Ramos Ibáñez (center), and Mathieu Bastian (right).

Tiago Peixoto monitoring his algo.

Antonin Delpeuch sieving Gephi issues. Behind, a map of the Gephi source code.
Attempts to track the steps of Tiago’s community detection algorithm during a debugging session.

A social event in the company of Ann-Sofie and Martin Grandjean, who visited us.

The end of the retreat intersected with the university’s Christmas party. More social events!

During this party, Matthieu Totet became a Danish legend (here with Anders Munk on the right).

One cannot fully know what will happen at a Gephi coding retreat. Consider applying in 2022!