The graphs ecosystem

In the meantime, I can give a brief situation update:

  • General design is being discussed in the issues of the nascent GraphsBase.jl package, check out the list of issues.
  • The idea is that GraphsBase.jl will contain the basic interface as well as a few basic structures for graphs with or without metadata. Ideally we would like it to replace SimpleWeightedGraphs.jl, MetaGraphs.jl and MetaGraphsNext.jl at the same time.
  • The associated code will be transferred there from this PR sometime soon (it’s summer break after all :sunglasses: also @etienne_dg is kind of busy with his thesis)
  • In parallel, we’re trying to clean up Graphs.jl and merge longstanding PRs to release a decent 1.9 (and perhaps 1.10) before the breaking 2.0. Some of that work includes a new wave of tests on generic graphs, introduced by @simonschoelly.
  • I’ll probably update the JuliaGraphs website soon to link to this discussion and mention the ongoing work.
5 Likes

Nice to hear that so much work is going on with that!

It might be a bit hectic to organize a Zoom call during JuliaCon, but I would be interested in chatting over Zoom about this another time. (EDIT: If there are others interested in having a discussion about this at JuliaCon, happy to loop you in on Zoom @gdalle.)

My biggest takeaway was that if code in Graphs.jl was a bit more generic (i.e. either not as hard-coded for “simple”, i.e. contiguous integer, vertex labels, or more explicit about that assumption when it is really needed), then a lot of code for defining a labelled/named vertex graph type like the one we have in NamedGraphs.jl could be removed or simplified. Perhaps even a VertexStyle trait would be warranted to distinguish different indexing/vertex styles, like the IndexStyle trait in Base Julia. That would be useful since right now functions defined for AbstractGraph in Graphs.jl can be overloaded for non-integer vertex types, but for integer vertex types we can’t currently distinguish that functions are designed for contiguous integer vertices (“simple vertices”) or non-contiguous integer vertices (i.e. general labelled/named vertices that happen to be integers), which causes ambiguity issues.

Sorry if this is rehashing things that have already been discussed, I haven’t been following all of the design discussions in the Graphs ecosystem.

I’d like to talk about graphs and metadata in Julia. I have been rolling my own metadata. I have very little time for Julia these days. But will be at JuliaCon. I am on Zulip (also slack).

I noticed most of the graph-related talks take place on 27.07 Thursday morning at room 32-123. I guess that’s where most of the people interested in Graphs.jl will be. If nothing else is organized at least this can serve as an atypical place and time to mingle.

Good idea, maybe we could meet in room 32-123 during the lunch break (starting at 12:30) on Thursday?

1 Like

For those who follow this thread, you might be interested in joining the upcoming graphs community calls!

4 Likes

Hello,

I noticed recently Apache GraphAr https://graphar.apache.org/
GitHub - apache/incubator-graphar: An open source, standard data file format for graph data storage and retrieval.

See Enhancing Data Lakes with GraphAr: Efficient Graph Data Management with a Specialized Storage Scheme

This kind of format looks promising.

Any opinion?