Collecting my attempts to improve at tech, art, and life

Obsidian Graph Analysis Plugin


An Obsidian plugin to find hidden connections between vault notes


Every PKM should have this functionality, or at least make it easy to extract enough information to analyze externally.

Analysis Types


Extracted from the README


Count the number of times two notes are linked in the same note, with extra weight for link proximity within the linking note.

Think of co-citations as a 2nd-order backlinks panel: Instead of showing where something is cited, it shows why, or with whom or what it is cited!


Measure how similar two notes are based on their graph connections.

Jaccard Similarity

$$ J(A,B) = \frac{|A \cap B|}{|A \cup B|} = \frac{|A \cap B|}{|A| + |B| - |A \cap B|} $$

where $|A|$ and $|B|$ are the set of connections (in either direction) for any two pages

Similarity functions - Neo4j Graph Data Science

Measure the probability that two notes should connect to each other based on their connections in the graph.

Adamic Adair

[PDF] Friends and neighbors on the Web | Semantic Scholar

$$ A(x, u) = \sum\_{u \in N(x) \cap N(y)} \frac{1}{\log{|N(u)|}} $$

where $N(x)$ is the number of neighbors of $x$.

Common Neighbors

$$ CN(x,y) = |N(x) \cap N(y)| $$

where $N(x)$ is the number of neighbors of $x$.

Community Detection

Try to find groups of similar notes.

Label Propagation

Start by giving each node a unique label (its own name). Then, look at each node’s neighbours, and change it’s label to the most common among it’s neighbours. Repeat this process iterations number of times.

At the end, show the nodes grouped by the last label they had.

Clustering Coefficient

The ratio of the number of triangles the page is a part of to the number of triangles it possibly could have been part of.

$$ C\_{i} = \frac { |{ e\_{jk} : v\_{j}, v\_{k} \in N\_{i}, e\_{jk} \in E }| } { k\_{i}(k\_{i} - 1) } $$

Added to vault 2024-05-11. Updated on 2024-05-11