Enhancements to Node, Link and Text on Graph View

Graph view would benefit as a research / analytics tool with a few “simple” enhancements:

  • Add editable minimum and maximum values to node size and allow the selection of the metric for the calculation.

  • Offer a choice of linear / logarithmic / exponential node size growth to be able to spot differences more easily or smooth differences.

  • Similar requests for link thickness.

Check examples of node / link metrics: https://reference.wolframcloud.com/language/guide/GraphMeasures.html
I’m sure the development team is well aware of the possibilities here given the amazing work they delivered already.

  • Allow the selection of nodes and links colours based on metrics (based on tags is already a feature request).

  • Add filters to hide / show nodes and links below or above certain thresholds for the metrics.

  • Add a node text size parameter on the graph view. The current setting tends to generate very small fonts on my setup (modern Mac with external 4K monitor). For others it might be too large, or maybe perfect… but let us decide what we need, please.

Use cases:
On large and complex vaults this allows us to identify key notes, relevant paths and links. This information highlights what is important that we might be overlooking, what can be ignored (filtered) because it’s noise, what needs further research because it’s not strong enough (doesn’t have enough evidence references or citations, for example).

A couple of examples of what is possible on graph analysis:

Node and link size/thickness

and colour

8 Likes

Maybe this is a good plugin idea?

This is great. I think that integrating this into the core of interlinked software like Obsidian will really help show some of their potential for helping us think, and will make adopting new users easier.

I really think Obisidian could benefit for the graph from the amazing Org-roam project, which is open-source roam alternative for emacs.

org-roam/org-roam-server: A Web Application to Visualize the Org-Roam Database

Here’s a short video I recorded

here’s a better .gif with more of it’s excellent features. (from the original repo)

Most important features to use as inspiration:

  • sidebar note
  • quick hover preview
  • different colors
2 Likes

@Jotapa I am intrigued by the idea of colouring nodes and links based on metrics or criteria - the example colour graphic you provided is food for thought indeed haha :smiley:

Could you add a link to the existing feature request you mentioned? It would be a good addition to your post (and I’d like to have a read too!)

While the colour graphic you included is absolute eye candy for myself personally, I wonder how you envision Obsidian morphing from what it provides now, to how it could provide something closer to that graphic or indeed what you are envisioning?

I can imagine something like the ability to highlight graph nodes / links based on search terms (which I think is something that has been discussed in another thread, I’ll return with a link if I can find it) but the example colour graphic makes me think of a graph that asks for inputs that don’t exist yet. Perhaps a set of predefined keywords in a config file that should contribute to highlights, with each keyword being a different colour. Or perhaps those keywords should be automatically (AI-tomagically) defined. Or something else?

Interested to hear your thoughts!

@santi I have seen the sidebar of Roam cited as one of its favoured features more than once, to say the least. What aspect of it is your favourite? (or aspects!)

I haven’t used Roam myself, but I have seen some videos of folks describing their usage of Roam. Sometimes those descriptions include more sidebar invocations than others, and I’ve started to build up an idea (again, without any hands-on experience myself) of how it could be useful, but I haven’t directly asked someone more familiar than myself what they use it for most, or what they favour it for most? Are you someone who could answer, or have I hinged on your org-roam mention a little too much? :smiley:

1 Like

Graph analytics is a well established discipline in Academia and software industry. Relevant vendors include companies like neo4J and Tigergraph or open source solutions such as Cytoscape or Gephi.

I don’t expect Obsidian to be a graph analytics tool or a Knowledge Graph solution but it can borrow a lot of ideas from those two spaces. Here are some examples of how to use metrics to color a graph:

Betweenness centrality


Definition: Betweenness centrality measures the number of times a node lies on the shortest path between other nodes.

What it tells us: This measure shows which nodes are ‘bridges’ between nodes in a network. It does this by identifying all the shortest paths and then counting how many times each node falls on one.

When to use it: For finding the notes who influence the flow around the knowledge base.

EigenCentrality


Definition: EigenCentrality measures a node’s influence based on the number of links it has to other nodes in the network, how many links their connections have, and so on through the network.

What it tells us: By calculating the extended connections of a node, EigenCentrality can identify nodes with influence over the whole network, not just those directly connected to it.

These examples were adapted from: Cambridge Intelligence

Other metrics could be:

  • Colour nodes (different shades of blue, for example) by the number of links from or backlinks to a note. (e.g. How many times is a research paper cited on other papers?)

  • Number of different Tags (implying different topics).

  • Note length (number of words).

The nodes could also be coloured according to categories:

  • Tags: Football: Blue; Basketball: Green; Hockey: Yellow; Multiple Tags: Red; No Tags: Grey

  • Links to: Football: Blue; Basketball: Green; Hockey: Yellow; Multiple Links: Red; No Links: Grey

We would need a proper interface and metadata to handle these classifications.

Glad to work with anyone willing to develop a Plugin / CSS if that’s the fastest solution to have this available. I can’t code but can help test and tweak someone else’s code if needed.

4 Likes

Please don’t post double-barrelled (or, perhaps in this case, triple-, quadruple, or quintuple-barrelled) feature requests. These complex feature requests are impossible to track and compare with others. Keep requests atomic.

And search before adding new threads! I’m closing this one—feel free to copy-paste your contributions to the appropriate previously-existing feature requests linked below.

See: