New Plugin: Note Link Graph UI

Always a bit disingenuous to make such promise, knowing full well that it's a meaningless one. They can change their mind, or their shareholders might decide the app should no longer free, or the company could be bought by a bigger one, etc. Eventually they'll do what they have to do to turn a profit, that's the game.

The nice thing with open source is that there's no need to make any promises. The source is there and the conditions are enforced by a license, so there's no surprises.

10 Likes

Thanks treymo - this is awesome and has already helped me surface connections I had forgotten about.

1 Like

the major defense with Obsidian against increased expense or other major disruption is that your files are all text and stored locally (even if published, etc.), and easily accessible in the regular file system;
there is a big difference with Joplin in where files are stored, and how easy it is to find them (esp. the naming conventions).
AND: I absolutely love & use both, for different reasons.

1 Like

I've some problem in using the plugin search feature of 1.7.11 and have to install manually. Is there any download link for the JPL file?

Hmmm, I haven't been having issues with the search feature. A couple options to get the JPL file:

  1. Check out my github repository and build it following the dev instructions I have in the README (but don't start Joplin in dev mode, just load the jpl file from the publish folder that is generated by npm run dist)
  2. Download the NPM repository (npm i joplin-plugin-link-graph-ui) and then you can find the jpl file in the node_modules/joplin-plugin-link-graph-ui/publish folder

JPL files are also available in the plugin repository

Link graph plugin is here

3 Likes

Great initiative,
I just found this, and as other people here I have also looked at Obsidian...
I have also started to look at Foam, where you can style your Nodes...

I use Network Graph, Knowledge Graph and Consept Map Software for my research, (Constellation, Cytoscape, Gephy, Vue, CMAP and more) so at the moment I have a multi-step workflow to be able to visualize my Notes, 3 things are essential, Styling Nodes, Styling Edges, and Clusters.

So my questions is:

  1. Will you add visual styling of Nodes (Notes), using i.e YAML keywords and/or JSON/CSS or is it already possible and if, any documentation?
  2. Same Q as 1. but for Edges (relations, connections)
  3. Will you be able to implement Clusters in the Graph View, based on YAML Keywords, Folder locations or similar?

PS. I do understand that this is questions that is for advanced usage and I also understand that it might be something You are not planning to implement, so it is just questions about some extended feature to easier be able to do simple research on Notes instead of export them and convert to another format...
It would be great to be able to "color code" different Note Types i.e. Books, Newspapers, People, Places, To-Do's and so on...

I'm glad you mentioned Foam - turns out Foam is also written in JS/Typescript as a VSCode plugin.

I'm thinking, rather than implementing these feature myself, I'd rather investigating re-using the graph built for Foam and just turning my plugin into a compatibility layer between Joplin and the Foam graph library.

I don't really have the time or JS skills to build all this in a reasonable amount of time.

2 Likes

That is absolutely understandable, and if you can use Foam or other libraries that already have a lot of this implemented, nothing is better than that...

An alternative Graph Library is Cytoscape.js, that have everything you need for a "full feature-set of Network Graphs" already there, but it also seems that the underlying graph library that Foam use has the feature of both Node and Edge Styling and Labeling, but I don't know if they have implemented all the features... I have not found any documentation other than those for Nodes Styling with YAML keywords (Type).

fre. 5. feb. 2021 kl. 22:49 skrev Trey via Joplin Forum <cozic@discoursemail.com>:

Hey, awesome plugin. I now have a reason to add links between my notes instead of copy/pasting the relevant parts, thanks for your work on this.

I think I saw you mentioning somewhere that the plugin API doesn't allow to display the graph in a popup window, and since your plugin need a lot of screen space, that would probably be the best solution. However, I noticed the Favorites plugin has an option to toggle visibility which could be a good option (please include a keyboard shortcut for it, though. It's missing from the Favorites plugin).
With this, it would be possible to have the graph in the main panel below the editor/preview, and collapse it when unneeded.

5 Likes

I've followed the instructions and built the JPL from source. Thanks!

1 Like

So, I noticed the option to hide the graph is already here, but unlike the favorite plugin, the panel above isn't resized when I hide the graph view.

@treymo
I talked to Emile, the guy developing the Advanced Graph View plugin for Obsidian, and he didn't mind me pointing you in "his" direction, and that is a graph view with really huge potentials... so maybe that would be something you could look at.

He is really active and have a lot of great plans for that solution, he is developing a version now without interaction with neo4j, but will continue the option to use neo4j also...
Contributing - Semantic Obsidian - Obsidian Publish

just another tips...

The Obsidian webpage says that Publish ($8-16) and Sync ($4-8) are add-on services.

1 Like

Mimi,

You are correct, both Publish and Sync are add-on services. But, neither one is needed for the core Obsidian functioning. Since Obsidian's files are simple markdown plain text, you don't need their sync services You can use, say, Dropbox to save and sync your files.

Publish lets you mirror your set of markdown files on the internet so that anyone with an internet connection can follow the links you set up in your Obsidian "vault" and read your notes. This isn't of value to the average Obsidian user. However, Dr. Dan Allosso, a history professor at Bemidji State University uses a shared Obsidian vault as a teaching aide for his students.

1 Like

I've been giving this plugin a go, and it is awesome -- the graph view is great for 'wandering' through notes. Thank you for your work!

I noticed that the graph gets pretty unwieldy with lots of notes, however. I've had a go at trying to narrow down the query by clamping the "degrees of separation". I don't have experience writing joplin plugins, but I've sent you a pull request to see if you like the concept. Currently the code defaults to "all notes" when the limit is set to zero, but other people might have better ideas :slightly_smiling_face:

1 Like

Hello!
I were founded a bag.
If links have comment - graph not draw this node.
Example of links test

P.S.
And if plugins can draw difference between note and to-do - It would be fantastic!

1 Like

@joesfer, There are existing settings to ignore specific Notebooks and to set a max number of nodes. Obviously, this isn't what you're asking for but it was settings I could implement in a few minutes to mitigate these issues locally. I just wanted to point this out for other people reading the thread

Thanks for your PR and that's definitely a better solution! I will try to review it as soon as I can!

2 Likes

I've been toying with the plugin for the past few days/weeks, and besides the hiding panel which stops working as soon as I move the separation between the graph panel and my notes, I noticed a few things:

  • Maybe the most important/bug: If I hide the graph panel and restart the app, the graph view is only displayed in a tiny (like 30*30px) square, making it unusable. Opening and closing the 'Change layout' restore the view.
  • The text size feels too small compared to the nodes' size, and the huge spacing between nodes only allows me to fit two nodes in the panel if I want to be able to read the title.
2 Likes

This is really great! At the moment, I am in the cold start and not many of my notes are connected.

Have you considered adding note-tag relations? This will greatly improve connectivity between notes, and their discoverability. Tags can be marked with another color.

1 Like