Use case or problem
Put simply, I want to be able to assign “link groups” to my internal links, so that I can specify how my notes are related and toggle them in the graph view like this:
Notice that this does not change which files are visible, only how they are connected.
I want to toggle link visibility, not file visibility.
I was able to find a somewhat similar request from about 6 months ago, but I believe my modular approach to solving the problem (explored below) is worthy of its own thread.
The other thread: [Filter outgoing link visibility in Graph View]
Proposed solution
My suggestion would be to update Obsidian’s internal-link syntax to include the option of assigning a “link group” by using a special separator. (I’ll use two colons :: for my demonstrations, but any reserved separator should work fine.)
For example, in a file titled “John Smith” you could write:
[[Jane Smith::Family Members]]
This way you are linking John Smith to Jane Smith (as usual) but you’re also specifying how John and Jane are related.
With a few links in the “Family Members” group, you should now be able to isolate and visualize family relationships in the graph view, like so:
To expand on the example, we may also want to track our friends’ interests, separately. We could do this by creating another link group, titled “Interests”:
[[Snowboarding::Interests]]
[[Painting::Interests]]
[[Personal Knowledge Management|PKM::Interests]]
Now we can toggle “Interests” in the graph view as well!
Notice that in some cases, toggling link visibility causes some file nodes to appear / disappear. This should only happen in edge cases where the presence (or absence) of a link causes the effected file to meet (or fail to meet) the current filter criteria.
Examples:
- Turning off all links to a non-existing file should cause that node to disappear.
- If orphans are disabled via filters and a file becomes an orphan (due to all of its links being disabled), that file should disappear until its links are re-enabled.
Finally, each link should only be allowed one “link group” assignment. That way we can have as many groups as we want and toggle them on and off, independently, without clashing or ambiguity:
Current workaround
For the examples above, I was able to write my own utility that uses a regex replacer to disable / enable specific types of links across all of my vault’s files. This works well enough, but I consider it a poor solution because it relies on modifying the files, somewhat destructively.
If it were possible to write a non-destructive plugin for this feature, I would absolutely do it. But since the best solution requires an update to the internal-link syntax and graph view functionality, I believe this needs to be implemented natively.
Rationale
Since links are a first-class citizen in Obsidian, I believe this feature should be considered essential core functionality.
My rationale for this request is that not all relationships are the same. So we should be able to identify, store, and visualize types of relationships, not only that two notes are related “somehow.”
I believe this feature would be massive for personal knowledge management, because it would enable users to heavily link their files without the threat of mass visual clutter. It would allow us to create multiple ways of organizing and visualizing relationships between ideas.
Personally, I would use this feature every day.
Call to action
If you like this feature idea and you are not a developer for Obsidian, please give this a thumbs up so the developers will find it!
Thanks for reading!