Obsidian Bidirectional Links and Knowledge Graph

Bidirectional links are the core capability that distinguishes Obsidian from traditional note-taking software. They are not simple hyperlink jumps, but a mechanism for knowledge toperceive each other— when you connect two notes, this relationship is visible at both ends simultaneously.


Internal Links: [[ ]] Syntax

In Obsidian, use[[note name]]to create a link to another note.

Type[[afterward, Obsidian will automatically pop up a search box, supporting fuzzy matching of note names.

Example

## My Study Notes

When learning[[Python Basics]], you need to first understand[[variables and data types]]。
These concepts, in[[object-oriented programming,]]are also used.

You can refer to[[Design Patterns]]for the factory pattern implementation.

Click the link to jump to the corresponding note.

If the note the link points to does not exist yet, Obsidian displays it as a gray link. After clicking, it willautomatically createthe corresponding blank note. This feature lets you naturally build a knowledge framework: draft links first, then fill in content note by note.

Alias Links

Sometimes a note's file name is not natural enough. Use[[file name|display text]]syntax to make the link text more consistent with the context.

Example

When learning object-oriented programming,[[python-oop-advanced-2024|Python OOP Explained]]
is a great reference article.

A better approach is to set aliases in the target note's Front Matter. After that, all links pointing to that note can use the aliases:

Example

---
aliases
:
 - Python OOP
- Python OOP
- Python Class Tutorial
---

Recommended alias usage: define standard aliases in the note's Front Matter, rather than using the pipe character each time|to rewrite temporarily. This way aliases are managed centrally, and a single modification takes effect across the entire vault.


Block References and Heading References

In addition to linking entire notes, you can also precisely reference specific paragraphs or headings within a note.

Heading Reference

Use[[note name#heading]]to directly link to a heading position in a note.

Example

See[[Python Basics#List Comprehension]] for the example code.
For configuration, refer to[[Environment Setup#macOS Installation Steps]].

Block Reference

At the end of the target paragraph, add a^block ID, then in other notes use[[note name#^block ID]]to reference that paragraph.

Example

<!-- Define a block in the "Python Basics" note -->
List comprehension is a concise syntax for creating lists in Python,
It can write loops and conditionals on one line. ^list-comp-def

In another note, reference this block:

Example

For example[[Python Basicsas stated in #^list-comp-def]], list comprehension can greatly simplify code.

In the target note, the block reference will berendered as an embed, displaying the original content, rather than just a jump link.

Embedding an Entire Note or Paragraph

Add an exclamation mark before the link![[note name]], and you can embed the entire content of the target note into the current note.

Example

## Common Code Snippets

![[Python List Operations Cheat Sheet]]

![[Environment Setup#Environment Variable Configuration]]

Embedding is suitable for summary notes — for example, create a "Common References" note, embed the contents of multiple cheat sheet notes inside it, and form a dashboard view.


Backlinks Panel

This is one of Obsidian's most valuable features.

When you open a note, the "Backlinks" area in the right panel listsall other notes that reference the current note。

For example, you write a note on "Closures". One day, while writing "Python Decorators", you link to it. A few weeks later, you link to it again in "JavaScript Advanced Functions".

The moment you open "Closures", these associations automatically appear before you — no manual memorization needed, no index maintenance needed.

Linked Mentions vs Unlinked Mentions

The Backlinks panel is divided into two areas:

  • Linked Mentions: places that have explicitly linked to the current note using the [[bidirectional link]] syntax
  • Unlinked Mentions: places that mention the title text of the current note but have not added a [[ ]] link

Unlinked Mentions is a powerful tool for discovering "missed links" — you may have mentioned the word "Closures" in several notes but forgot to add a bidirectional link.


Relationship Graph

The Relationship Graph visually displays the linking relationships between notes.

Local Graph

In any note, click "More Options → Open Local Graph" in the top-right corner to display a link network centered on the current note.

The default display depth of the Local Graph is 1 level (direct neighbors), and you can adjust it to 2-5 levels to see broader connections.

Global Graph

Click the graph icon in the left sidebar to view the link relationship diagram of the entire vault.

Meanings of symbols in the graph:

  • Node size: the more times it is linked, the larger the node — naturally highlighting the core concepts in your knowledge system
  • Line thickness: if two notes link to each other, the line is thicker
  • Node color: you can assign colors by path, tag, file name, and other conditions using the grouping feature

Graph Grouping and Filtering

In the Global Graph settings, you can create grouping rules:

Example

Group #1: Programming Notes
- path: Programming/
- Color: Blue

Group #2: Reading Notes
- path: Reading/
- Color: Green

Group #3: Diary
- path: Diary/
- Color: Gray

With grouping, the graph can clearly show the scale and cross-relationships of different fields at a glance.

Filters can hide nodes you don't need to display by keyword, tag, or file path, preventing the graph from becoming too dense.

The graph is more like a mirror, reflecting your existing knowledge structure, rather than a navigation tool. Don't spend too much time making it "look nice" — the real value lies in exposing isolated knowledge points and unexpected cross-disciplinary connections.


Unlinked Mentions: Complete Your Knowledge Graph

The Unlinked Mentions area at the bottom of the Backlinks panel lists all places that mention the current note's title but have not added a bidirectional link.

Regularly checking Unlinked Mentions is a low-cost way to organize knowledge: click the "Link" button next to each item to add a [[bidirectional link]] with one click.

This is similar to "patching leaks" in the knowledge network, turning originally invisible connections into explicit links.


Practical Tips for Writing with Bidirectional Links

StageApproach
When first writingWhenever a concept comes to mind, boldly add a [[link]], even if the target note does not exist yet. First build the framework, then fill in the content.
When finished writingTake a quick look at Unlinked Mentions, check other keywords mentioned during editing, and confirm whether links should be added.
Regular maintenanceBrowse the global graph and observe whether there are a large number of isolated nodes. If so, consider connecting them to existing core notes.
Avoid overdoing itNot every sentence needs to become a link. Only link notes that substantially help in understanding the current content; better fewer but better.
Other extensions