Description
I am just thinking out loud here..
Quite commonly I need to deal with subgraphs (i.e. induced_subgraph
) or merged graphs (i.e. merge_vertices
).
It's quite handy to have the bank !
variations (i.e. merge_vertices
vs merge_vertices!
), but they are not consistent across Graphs.jl. E.g. induced_subgraph
doesn't have a corresponding bank version.
Sometimes I want to operate on a resulted converted graph, without losing the original but still influencing it.
It's like a combination of a bank !
and without.
This basically means having a view of the original graph.
The whole idea is very similar to the DataFrames.jl
view
https://dataframes.juliadata.org/stable/man/basics/#Views
That might be more relevant for Metagraphs, since graphs will carry data that can be shallow- or deep-copied.
A view, e.g., should implement shallow copying (if not by reference)
Also it might be useful for different indexing, which might enable us to get rid of the vmap
property that some functions return.
I know it's a lot; I just wanted to share since now a lot of discussions are taking place for a Graphs.jl 2.0
I am still not 100% persuaded on this, but it looks to me like there could be some value.
What do you think and could you see different use cases ?