Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show minimized edges #434

Open
keyserj opened this issue May 31, 2024 · 0 comments
Open

Show minimized edges #434

keyserj opened this issue May 31, 2024 · 0 comments
Labels
clarity makes something easier to understand enhancement New feature or request grasping large topic helps to better understand, use, build a topic that has a large number of nodes QoL small change the improves the feel of using the tool

Comments

@keyserj
Copy link
Collaborator

keyserj commented May 31, 2024

Describe your issue

When I have a large diagram, I often create views with certain nodes hidden, so that certain aspects of the diagram can be focused on. But if a connecting node is hidden, that can create islands of nodes, losing some context where two nodes are actually connected through a node being hidden.

Solution you'd like

A toggle option to show minimized edges, like so:
image

rather than the current strategy, which just hides all the edges, creating islands:
image

Questions:

  • should all hidden paths be shown, or just a max of one path (shortest) between the nodes?
    • multiple paths might not work well because they'd result in two edges between the same two nodes, which isn't yet possible in Ameliorate
    • using only one path would solve the islanding problem but still hides some contextual information
  • what to do about paths that change directions? e.g. solution -has-> component, obstacle -obstacle-of-> component, with component hidden
    • in this case, due to the component relation, it seems ideal to show obstacle -obstacle-of-> solution; but in general this seems hard to figure out and probably just ok to let the obstacle be islanded or manually tied as obstacle of the solution

Alternatives you've considered

No response

Additional context

  • this might eliminate the need for automatically creating edges for component relations
    • and actually might be better, since without these, implied component edges wouldn't exist/need to be hidden in the first place
  • this also would help with the question of "to show detriments above or below solutions?"
    • because a downside of showing detriments above is that, if detriments have a creates or created-by relation to benefits/effects, then they can't be easily visually separated from benefits/neutral effects; showing minimized edges would allow quickly using the "hide benefit/effect node types" functionality to visually focus on detriments, without losing the causal chain and creating a confusing island to the detriments

Technical ideas and questions

  • probably just check (during layout) all pairs of displayed nodes for if there are no displayed paths but are hidden paths
    • if there are hidden paths, create an edge of type MinimizedEdge that has the path (list of edges?) between the nodes, and have the MinimizedEdge component show the labels of each hidden edge
  • could use Dijkstra's shortest path algo, there's probably a library with that method somewhere
@keyserj keyserj added enhancement New feature or request QoL small change the improves the feel of using the tool clarity makes something easier to understand grasping large topic helps to better understand, use, build a topic that has a large number of nodes labels May 31, 2024
keyserj added a commit that referenced this issue Aug 4, 2024
e.g.: if solution -has-> component1 -has-> component2, and
solution -has-> component2, both solution "has" edges will be hidden.

it's hard to determine properly when these component edges should be
hidden. probably not worth keeping them around long-term, but
just adding a hack now with a TODO to maybe
remove later in favor of #434.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarity makes something easier to understand enhancement New feature or request grasping large topic helps to better understand, use, build a topic that has a large number of nodes QoL small change the improves the feel of using the tool
Projects
Status: No status
Development

No branches or pull requests

1 participant