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

some subgraphs are not covered by find-roots #35

Open
JeffreyBenjaminBrown opened this issue Aug 12, 2016 · 1 comment
Open

some subgraphs are not covered by find-roots #35

JeffreyBenjaminBrown opened this issue Aug 12, 2016 · 1 comment

Comments

@JeffreyBenjaminBrown
Copy link
Member

Let us define a "component" of a graph as a maximal connected subgraph.

A component with no root -- as one gets, for instance, by running "find roots" and making one of the results a child of itself -- does not show up in find-roots. This is perhaps reasonable, given the name of the function, but nonetheless dangerous to even SMSN's current second-best user in the world, as well as to at last fifty percent of them.

If cycles are unintended, a solution would be to report any rootlike member, that is any member for which the rest of the component is a descendent. (And some visual indication of which of the results are true roots and which are only rootlike.) The user would figure it out and fix it from there.

If the user actually wants rootless components, they will probably want to designate a "home" node (or a set of them) for each component.

@joshsh
Copy link
Member

joshsh commented Aug 12, 2016

So you want SmSn to do something actually graph-like with the graph? Right now, the functions for roots and isolated atoms are very simple: they find atoms with no parents, or with no parents and no children, and display them in a tree view. I agree that finding connected components would be useful, and it's computationally cheap. There is a question of how to display components, though. In both of our graphs (I suspect) there is a component containing tens of thousands of atoms. Even listing them all is out of the question. How about "root-like" atoms? By your definition, a component doesn't necessarily have any (think of a DAG). As in your example, a component doesn't necessarily have any parentless atoms, either.

I think this may call for a special view with a "size" column, one row per component. Maybe you get one atom from the component center per row.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants