Juggl (Out now! 1.0.1): A completely interactive, stylable and expandable graph view plugin!

Hello there, thank you very much for this plugin!

I managed to make it work after some error
(I needed to remove the line “from future import annotations” because I don’t know how to make it work with a newer version of Python (I use conda), and also fixed line 143 in server.py),
and I see in console: “Stream is active!”…

But I don’t know how to use it
please help me since I cannot find anywhere the command
“Neo4j Graph View: Open local graph of note”

I think this should be very simple but I’m new to Obsidian and either Neo4j…
Thanks very much again!

Hi! Thank you for the bug report (and even fixing it!) I wasn’t aware __future__ isn’t backwards compatible. I’ll fix that!

You can open the command selection screen with ctrl/cmd+P. Then you can use the filter to find the command. Alternatively, you can assign this command to a hotkey in the settings. I’ll be sure to make this clearer!

EDIT: May I ask what version of the plugin you’re using? server.py has been renamed a while ago. And what version of Python?

Thank you very much!

Right now the plugin installed is 0.2.1, on Ubuntu 18.04, but I probably messed up with installing the repo both from cloned git and with pip, so I ended up with errors coming from such a path:
“~/.local/lib/python3.6/site-packages/smdc/note.py” and similar.
I could not find a way to choose a python version.
Maybe I’ll try other installation in different computers.

Anyway on Mac I already have difficulty because in console an error appear, pip3 not found, and I don’t know as well where to specify a python installation. I can install with pip3 from shell but it is conda python, while the plugin is searching for another python somewhere else…

…Great plugin! I can see the graph finally! :smiley:
Is there a way to show the complete vault graph instead of local notes?

I haven’t tested on Ubuntu yet, so there might be issues there. It looks like you’re using Python 3.6, which in my tests is running just fine…

Have you installed Python 3 in your system? Ie, https://www.python.org/downloads/ instead of Conda? The plugin looks for your system-installed Python 3, not for conda python.

I’m happy to hear that!

Yes: you can do the following: Add the code block to a note:

```cypher
MATCH (n)
RETURN n LIMIT 100
```

This finds 100 nodes in the graph (you can increase the count, but no guarantees that your computer can handle this!). Put your cursor on that code block, then execute the Obsidian command: “Execute Cypher query”.

Oh thank you very much for your prompt answers!

I find this combination of Obsidian and Neo4j very helpful for note taking and knowledge base building.
I bet this project will grow big!

2 Likes

Hello Emile!

here is an update, I tried to install python right form the download link you provided, now this is what I see when opening a shell and searching for pip3:

~ which pip3
/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3

but still got this error as before:

Error: Command failed: pip3 install --upgrade semantic-markdown-converter --no-warn-script-location --user
/bin/sh: pip3: command not found

Maybe there should be some way to get things working in a way that I ignore?
Thank you again! (and happy new year!)

Dan

Hi Dan! Happy new year :slight_smile: it might be that python isn’t properly added to PATH. Did you enable that setting during installation of python?
Btw, here is an extended installation guide I’ve been working on: https://publish.obsidian.md/semantic-obsidian/Installation+of+Neo4j+Graph+View+Plugin It shows how to make sure it’s added to PATH during installation

Better documentation is now available at https://publish.obsidian.md/semantic-obsidian/Neo4j+Graph+View+Plugin! It gives details on usage and installation of the plugin.

The new version 0.2.3 is now also available, which adds a nice context menu and automatically updates the graph with changes you make.

I’ve also created a Discord community for those who need help or are interested in discussing and developing new features: https://discord.gg/sAmSGpaPgM

3 Likes

Hi Emile,

I was able to install your plugin on Windows 10 pc but I failed few times until I finally did it. I suggest to split topics about installation issues for Windows and Linux versions.

Second, I don’t get it if it is possible to use it as static graph and be able to open it in the same state when I close Obsidian.

My use case: I have a software product which I want to describe in Node1. Then I have 4 child nodes for CRUD: Create node (how to create object in software), Read node (how to read properties of the object), Update node (how to change properties of the object) and obviously Delete node (how to delete the object). Let say in Create node I have 3 different methods to create it, the rest of nodes also have some brunches which are connected together to one node (let say) Integration node.

I want a graph which will keep a layout which I create. There is no point to randomly show me the nodes especially if I don’t see hierarchy.

Am I able to do this? I try to organize nodes but they move only horizontally. For some reason I have to click on every text file in order to see it as a node in the graph.

Is it any limitations in Neo4j or it is possible to implement but it will take some time?
I see this request for graph functionality for ages on this forum but it looks like nobody cares which in my opinion will be a huge step forward in development of software.

Thanks

Hi Alex, thank you for trying out the plugin! I’m copying this message from Discord.

Windows is indeed a bit harder to install. The next thing I’ll work on is to remove the Python dependency. Do you think this will help?

2: This is currently not yet possible. Saving the state of the graph is something I have to implement! (I should document that, actually).

I try to organize nodes but they move only horizontally.
Do you have Hierarchical Layout on in the settings? Without the Hierarchical layout, you should be able to organize the graph layout. But you cannot ‘lock’ a node into place yet. (I’ve also just added this to the roadmap!)

I have to click on every text file in order to see it as a node in the graph.
You can expand the neighbourhood of nodes by double-clicking on them. Or you can select multiple nodes, and then expand all of them. See https://publish.obsidian.md/semantic-obsidian/Using+the+Neo4j+Graph+View#Interacting%20with%20the%20graph

Is it any limitations in Neo4j or it is possible to implement but it will take some time?
No limitation here! I’m pretty sure it should all be possible :slight_smile: And also very useful and general features, so I’ll definitely do them at some point.

Thanks for the input, it’s valuable to hear what people are missing most in the plugin.

Integrating Neo4j relationship types would be massive.

2 Likes

Hi all!
I’ve been working on rewriting this plugin with the new name Juggl. It no longer requires Neo4j and Python, and has a lot more features than Neo4j graph view.

It’s in a pretty good state, and I’ve been testing it already with some people in my Discord.
I’d highly appreciate anyone who would also like to help test! If that’s you, you can join this Discord: https://discord.gg/sAmSGpaPgM

2 Likes

Heya. Was just trying your plugin. I realised that it wasn’t what I was looking for, but it kinda glitched. I still have the option to “Open in Neo4j Graph View”. I tried reinstalling and uninstalling the plugin again, but it just made a second “Open in Neo4j Graph View” option. Any advice on removing that option? Pasted image 20210322132859

Strange. That should be removed if you turn off the plugin and restart Obsidian.

Hi Emile,

In addition to a typed/labeled link syntax within Markdown body, could you please also consider leveraging the structured data (or metadata) within the YAML frontmatter ?

To clarify: I am not suggesting to use any link syntax in the YAML block. Imho, we don’t need any (when dealing with YAML).

Instead, we can just Treat all YAML scalars as potential link targets.

The linked feature-request explains the idea in detail (with examples) and reflects my secret wish for Obsedian to serve as a poor-man’s graph database (or at least plain-text data-entry tool for one), with semantic links implicitly emerging from structured (YAML) data.

Tabulo[n]

Hi Tabulo,
I think we already spoke on the Discord, but this is possible in Juggl! See YAML Styling

Hi all! Juggl, the new graph view that will replace the Neo4j Graph View Plugin, can now be installed. It will be on the community plugin store soon :slight_smile:

Check out the main body post for more info: Juggl (RC1): A completely interactive, stylable and expandable graph view plugin!

3 Likes

First off, i am super impressed with what seems to be possible. I tested it and one thing immidiatly caught my attention - the graph seems to be supposed to work with file numbers under 250.
I could open my around 500 notes with it, but (as expected) it was quite slow and not really navigatable.

Is this supposed to only be used on local graphs?
Or are there plans to make this useable on higher note numbers aswell later?

Yes. Right now this plugin is indeed focused on the local graph, and the global graph is only provided as a convenience option for people with smaller graphs.
I might look into it more in the future, but it will never be as quick as Obsidians (super fast!) graph view. So it’s a tradeoff between amount of features/complexity of styling and speed here. For more info, see Global Graph mode

I’m very happy to announce that the Juggl plugin is released!
It is a graph view with many new features:

  • Complete control over the style of your graph using CSS, YAML and a new Style Pane.
    • Include images!
  • A new mode that lets you build your graph with all nodes that are relevant to your current project
    • Selectively browse and hide nodes, and pin their location so you never lose them
    • Write new ideas and see your graph evolve
    • Save your graph and continue working on it later
  • 4 different layouts to get unique insights
  • A code fence that displays the graph within Obsidian notes
  • Link type support to label edges
  • No need to install Python or Neo4j
  • Extendable through other plugins
  • Works on mobile!

11 Likes