Open gdalle opened 2 years ago
Here are a few topics that seem important to discuss, in no particular order. Feel free to add your own!
Support vertex and edge metadata
Add easier access to edges
Relax restrictions on vertex indices & iterators
Clarify support (or lack thereof) for multigraphs
Settle the question of flows and matchings
Improve usability of shortest paths
Improve code style
Fix heisenbugs in Parallel tests
It would be nice for us to use a generic interface to metadata that's not exclusive to graphs.
I would add higher order networks to this list. Simplicial Sets (Vertices, Edges, Triangles, Tetrahedra ...), Hypergraphs (V, S\subset Powerset(V)), Directed Hypergraphs, Bipartite graphs, etc would be good to think about.
get_edge
function ?@Tokazama Have you a more precise idea of your suggestion ? I'm not sure to understand what it would looks like.
In terms of trait support I'd like to suggest two things:
IndexStyle
for graphs. I did a quick gist using GraphStyle
a while ago. We could account for direct access to edges across different graph structures using this without creating a complex type hierarchy.@Tokazama Have you a more precise idea of your suggestion ? I'm not sure to understand what it would looks like.
This is a very rough draft of a generic interface for metadata I've been working on. My OSS time has been severely limited the past month due to a short term shift in my work schedule, so not much progress has been made. I think I need to write up a more exhaustive proposal describing the issue that needs to be solved with some input from other interested developers (it's a bit high level for most users). I've thought about putting something on discourse but I fear getting input from everybody that happens upon it will be a bit distracting.
There's discussion related to metadata here https://github.com/JuliaData/DataAPI.jl/issues/22
Regarding the multigraphs, I have the impression it would be fairly easy to have support in the Graphs.jl
Have a look at WrappedMultiGraphs.jl.
Basically, this package kills this if statement and deals with the repercussions.
I think something like that could be incorporated in Graphs.jl and possibly provide a trait IsMulti
similar to IsDirected
.
I'll take a look!
Recently, a lot of interesting but compatibility-breaking suggestions have emerged when dealing with specific issues. In order for these ideas not to be forgotten, here is a thread where we can start to organize major changes with a possible 2.0 release in mind.