aws / graph-explorer

React-based web application that enables users to visualize both property graph and RDF data and explore connections between data without having to write graph queries.
https://github.com/aws/graph-explorer
Apache License 2.0
317 stars 47 forks source link

[Usability] Removing a central node does not remove the neighbors #96

Open joywa opened 1 year ago

joywa commented 1 year ago

Community Note

Describe the bug A clear and concise description of what the bug is and the environment/context.

There was an expectation that removing a central node would also remove all the connected neighbors. Now it just shows all the previously connected objects as singletons in the view.

To Reproduce Steps to reproduce the behavior:

  1. Add a node that has multiple neighbors to Graph View on Graph Explorer
  2. Double-click to expand.
  3. Select the original node in Step 1 and click delete.
  4. See that the node's neighbors are left.

Expected behavior Provide an option to delete node and its neighbors or something similar.

kmcginnes commented 3 months ago

This is a tricky user experience situation to consider.

Let's say I have a graph that looks like this:

flowchart TD
   a(A)
   b(B)
   c(C)
   a --> b
   a --> c

If we delete A then it might make sense to delete B and C as well.

What happens if we instead remove B or C instead of A? Would A be removed since it is a neighbor?

Then let's consider a barely more complex example:

flowchart TD
   a(A)
   b(B)
   c(C)
   d(D)
   a --> b
   a --> c
   b --> d

What happens when I remove A?

Even if we could decide on a proper approach or algorithm, it is asking a lot of the user to understand the rules around removing nodes.

Preferred Solution

I think the core ask of this feature request is that it is too difficult to remove groups of nodes that are related to each other.

If I'm correct in that assumption, a better approach might be to improve the selection mechanisms. If we do that, the user has the option to more easily select multiple nodes and delete them as a group.

Ideas for selection mechanisms could include: