graphblas-algorithms icon indicating copy to clipboard operation
graphblas-algorithms copied to clipboard

multi-property graphs and handling of "weight" parameter

Open eriknw opened this issue 3 years ago • 0 comments

Currently, graphblas_algorithms.Graph objects only have a single edge attribute, and the "weight" parameters are ignored when passed a Graph object from our library (it's used when passed a networkx graph). We should strive to match networkx, so we should allow multi-property graphs and handle weight parameters.

To do this, it probably makes the most sense to use multiple graphblas matrices to hold edge data. One matrix should be boolean of all True to indicate the structure, and then we should have a new matrix for each edge property (which may have fewer elements than the structural matrix).

We should also consider how this will affect caching of properties (which probably needs reconsidered anyway). Perhaps we should create a pseudo-syntax (one that doesn't use eval) such as A.select(tril) for structural and A[myweight].select(tril) for a property.

eriknw avatar Jun 21 '22 17:06 eriknw