You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Several algorithms modify the graph they are passed. Specifically they relabel nodes and edges. This is a pretty serious issue since it is not an expected behavior for an algorithm to just randomly rename things.
The long term solution to this is complex because it will require something like this (as pseudo-code; these functions don't exist.):
# Create our working copy of the graphworking_pg=pg.Copy()
# Relabel nodes and edges as neededpermutation=RelabelThings(working_pg)
# Run the actual algorithmRunAlgorithm(working_pg, output_properties)
# Copy the output properties back to the original graph, reverting the permutation.pg.AddProperties(PermuteProperties(working_pg, output_properties, permutation))
Though as RDGs mature, the ideal would be having a lazily constructed relabel of the graph that is created and then cached between algorithm runs. We would still need some support for moving/reordering properties between different relabels of graphs.
The text was updated successfully, but these errors were encountered:
Several algorithms modify the graph they are passed. Specifically they relabel nodes and edges. This is a pretty serious issue since it is not an expected behavior for an algorithm to just randomly rename things.
Currently this affects:
You can search for my TODOs with: https://github.com/KatanaGraph/katana/search?q=%22Don%27t+mutate+the+users+topology%22
The long term solution to this is complex because it will require something like this (as pseudo-code; these functions don't exist.):
Though as RDGs mature, the ideal would be having a lazily constructed relabel of the graph that is created and then cached between algorithm runs. We would still need some support for moving/reordering properties between different relabels of graphs.
The text was updated successfully, but these errors were encountered: