New Plugin: Note Link Graph UI

So far, it is a great experiment. Thank you for that.

Bugs and an RFE:

  • Doesn't redraw correctly every time. I'm not sure if this is related to Joplins other myriad of UI issues though, a lot of which surround managing the space of each panel. I often have to restart the application to see the graph UI. Other people have noted this.
  • I have 8-billion notes. Filtering out by notebook is great start, except it doesn't honor the hierarchy of notebooks. It only filters out notes in that specific notebook and not the twenty subnotebooks below that. :slight_smile: My Graph View is ginormous. Most of my notes I really prefer to not be included, but I would have to filter out probably 50 to 100 subnotebooks. If hierarchical worked, it's only like 10 to 15 notebooks.
  • RFE: a white list as well for filtering. Let me state what notebooks I want to include versus exclude.

Thank you for this. I like Obsidian, from which this was inspired, I am sure. But that has a different purpose in my life. Joplin is my workhorse for most things.

2 Likes

Who have mentioned Obsidian Publish and Sync here?

Me, I was talking about the Community Plugin that Emile have developed and that he gladly will help plugin developers to implement in other editors. It can be implemented as a joplin plugin without any use of Obsidian at all.

3 Likes

Hi @treymo !
Thank you also for this plugin!
One suggestion. It could be to imagine a system which allows to have the graph opened in another window. I don't know if Joplin allows it. If not Org-roam-server for Emacs solves this problem by opening the graph in the browser...

Thanks @bepolymathe ! I would like to see a pop-out version of this UI too. I'm not sure it's possible with Joplin today, but maybe @laurent could confirm.

The browser-based graph is an interesting idea, maybe I could use Joplin's ExportModule to create an HTML file that could be opened in a browser. I don't think it's possible to launch a browser viewing that file automatically from the Joplin plugin system

3 Likes

Yes I think it's a good idea to use the browser, especially because it allows you to work on several screens. The difficulty seems to me to be to have a dynamic graph and not just an html page. By "dynamic", I mean : 1/ that follows the note in which you are writing. 2/ that allows you to go to a note if you click on it on the graph.

It's a great plugin. I love it and it's a great work. I will closely follow its developpement
I still see a few bugs, notably the size of the graph zone, the fact that sometime clicking on the icon don't close the lateral panel, etc. But disabling and renabling the plugin solve the prob. It's a great plugin.
On less reason to add other apps to my workflow.

2 Likes

I really like the plugin. Sadly i can never really see more than just a few nodes at once. My suggestion would be, to shorten the connecting lines, or add an option to do so.

3 Likes

Yeah, I cannot figure out what is going on with the display area not redrawing, being too small or too large.

My workaround is usually to open the Preferences UI and then when I close back out, it forces Joplin to re-draw the graph

This is a good idea, I added an issue on Gitlab to keep track of the suggestion: Allow adjusting the (visual) distance between nodes ยท Issue #28 ยท treymo/joplin-link-graph ยท GitHub

I've added an option to change the distance between modes in v0.9.9

4 Likes

Thank you for implementing that request so quickly, its way more useful now in my opinion!
The only downside is, that the node-labels now tend to overlap sometimes, so that they become hardly readable.
This may be fixable though, as the nodes themselves usually don't overlap, so maybe this behavior can be extended to the labels.

I know it's not a proper solution, but you can also adjust the font size.

I'll try to figure out how to add collision avoidance for the text too. It should be possible but Javascript/the d3 library are not things I'm very familiar with

What a amazing plugin @treymo!

I've had a simple idea that may solve the problem that occur when they are many notes as discussed by @joesfer. In addition to the possibility to ignore specific notebooks, the idea is to center the graph on the currently selected note (or selected notebook if there aren't any selected notes...). This should make it possible to localize the link in proximity to the note of interest. O keyboard shorcut could involved "c" for centering (on the current notes).
In the option, I see that the maximum number of node, most recent nodes have priority. What having priority means? Is this a weight for centering? I guess most recent nodes means the most recently modified notes and not the most recently selected note?
This would not be my first choice, even if by knowing this feature, I could add a space in the note of my interest and it would "have priority".

Another possibilities that could be interesting would be to include a colours code that would distinguish linked notes from notes without link.

Another possibility may be to show only linked notes on graph. The possibility to toggle between show only linked notes to show all notes, could be interesting. I don't know yet all the option.

Another possibility could be to increase size of linked notes in comparison to non linked note but I don't know if this makes sense... Let's forget this idea.

I've seen that the concept of selecting by degree of separation has been included but I don't what this means in the case of a collection of notes that are mostly made of a huge majority of notes without links (I know that link graph is probably expected to be used with notebooks that have links and my case is not relevant to the plugin).

I have a problem with filtering notebooks. Non filtered notes are not schown. I happen to have many notes (about 5000). I just started to create some links. I have a cluster of about 5 linked notes that I'm not able to find them on the in actual scheme. Therefor I filtered out irrelevant notebooks but I could not see my remaining notes. Graph was empty when filtering my fleeting notes even if I have about 60 non fleeting notes. In the field notebooks names to filter out I have: Google Keep importation desktop,Google Keep importation notebook which are two notebooks name. I also tried notebook name without space and it does not improve anything. Graph is till empty.

Is there a way to remove "orphan" anotations, I mean not linked anotations. This may allow people having a lot of anotations to find the anotations that are linked. I was not able to use graph UI to see the any linked anotations.
My options are:

:Slze of the node label font: 20

Distance between nodes 100

Max nodes in graph 400

Notebooks names to filter out (none)

[] Filter out child notebooks

Max degree of separation 0

Maybe, I could improve some options in order to see my linked anotations?

I have two questions:

  1. Is there is a possibility to make the plugin centering on the current annotation or things like that?
  2. Have people having many notes and few linked notes been able to see linked notes with note link Graph UI? (I ask that because I wasn't able to do so, unfortunatly)

There is not currently an option to give you exactly what you want. You can adjust the "Max degree of separation" value to something like 100 to only show nodes currently connected to the currently open Note.

But a warning: This would filter out more than just orphan annotations. It would filter out all notes not connected to the current one (but those filtered out may be connected to some other node).

I created this issue to create a better UI for customizing how the graph is displayed

3 Likes

Again, I would like to thank the creator of that plugin. I started to use it a while ago and it is for me a great and very useful tool. It's such a useful thing to see link between notes. I love it. I started making a lot of links between notes. Great job. Add a lot of value to Joplin.

I would like to know if there is a plan (and it's just a question, not a demand or a criticism) to add function similar to thoses in Obsidian. The graph feature is central in that app and there are great tools in it : the control of forces between notes (repulsion, liaisons, distance between notes, etc).

I would love to contribute to help this plugin in the limit of my non-programmer skillset.

2 Likes

Hey, I'm glad you've found it useful and thank you for the kind words!

I want to add a UI that has the tools and options you are mentioning - I filed a ticket on Github here: Create an on-panel "Display" menu containing options for customizing the graph ยท Issue #31 ยท treymo/joplin-link-graph ยท GitHub.

I haven't started working on it yet, but if you have any ideas about what the interface might look like, you could always make a sketch of the UI and put it on that Github issue to contribute. I'm happy to do the programming part if you want to help out with the design!

2 Likes

Hello, Thank you for offering a great plugin. :pray::pray:t3::pray:t3::pray:t3:
Yet I felt like I have an issue and thought fixing might help everyone and just sharing it as a suggestion, would also like you to take look on to the screenshot Which I'm sharing. It seems difficult to use this plugin when I'm viewing the texts of the connected nodes, they overlap and makes it more confusing, At least If I have given some ability to turn it or rotate it around like a 3d model, I can view the texts of what topics I have connected, easily without overlapping. Hope you would take this as a issue and work on it to solve. But I'm more grateful for this plugin, as it helps in my college studies. The screenshot attachment below...!

Screenshot (42)|690x388

A simple improvement might be to go into the plugin Settings and change the "Distance between nodes" to something higher.

I do want to make the graph smarter and avoid overlapping text, but this could be a quick work-around for you.