How to best discern between different types of links?

This is meant both a a question and as a prompt for discussion. I organise my learning materials in Obsidian, and throughout my studies there arised the need for at least two different types of links between individual notes:

The plain old “wiki”-style explanatory link

  • provides detailed information about a particular term, definition or phenomenon
  • doesn’t hint at a deeper connection between the linked notes
  • a lot times one of the connected notes is a “parent note” in a sense — it explains a very common concept, and is linked to from many places
  • its main value is in the reading phase — you’re reading through the note, and if you see a foreign term, you just click it and you’re taken to another note explaining it
  • its value during explanatory phase is marginal

Example

B-cell is a type of [[Cell]] in the [[Adaptive immune system]]. It is one of the few cells in the body that can change its own genetic information through a process of [[VDJ Recombination]].

The new “here’s an interesting connection” link

  • connects notes that have a meaningful connection
  • usually both of the connected notes have the same “weight” to them — they are just two small interlinked concepts
  • its main value comes in the explanatory phase, where you skim through your notes looking for interesting connections and new understanding
  • its value during the reading phase is smaller

Example

B-cell is a type of [[Cell]] in the [[Adaptive immune system]]. It is one of the few cells in the body that can change its own genetic information through a process of [[VDJ Recombination]].

Now, to my questions:

  1. Do you also find you’d like to discern between those types of links?
  2. Do you find you need some other type of link as well?
  3. How would you go about implementing this in the current version of Obsidian?
  4. How do you think it could be handled in the future versions? (given that we’re already stretching the markdown standart) Maybe there could a be heuristic based on the frequency in which the note is linked to? (trying to guess if the note is just a general common concept, or something more meaningful)
5 Likes

Good ideas and questions.

Have you considered creating multiple notes with the same name with each suffixed by the link type. These would contain the basic definition and perhaps a few links.

Then you could have one main note for that idea without a suffix that could have each of the various link flavors transcluded within specific headers labeled with the idea and link type. This way you could have the freedom to compose text around the transclusions yet still be still free to link or transcluded the composite or various versions elsewhere.

I would see linking to the various versions of specific link type, level of connection, to allow all of those related back links to gather in that appropriate spot. But for ideas relating to more developed ideas and concepts created in the composite, linking there could distinguish them from the rest.

This is not actually an exact workflow I have used, but I have sometimes done things similar to this for scenarios where I do not want to rely on tags or note title naming conventions.

Anyways, while this doesn’t fully address your questions, I figured I would throw something out there, because I like where you are going with this.

Thanks.

1 Like

Thanks, that’s actually a good idea — as in, it is as “hacky” as I expected it to be, but it fulfils the original needs more thoroughly than I have foreseen.

Unfortunately, at least without any automation, this seems like quite an unwieldy process, especially in my case; I have literally dozens of notes which would need this treatment, and doing this ceremony manually would put me out of flow.

The good news is this could probably be automated away pretty easily. Just call a command a five different notes are created with the specific naming scheme and all linked to the original. The bad news is this could add to clutter in the graph view.

Here is a relevant feature request: Add support for link types

3 Likes

You will probably find many different kinds of links (relationships) between the pages. If you want to add descriptions about the meaning of the links, and the type of things you’re describing and linking, then you’re trying to create something akin to the Semantic Web.

It would be interesting to provide this additional information to Obsidian and then let it display the links with different colors or symbols, and the graph with link types written over the connecting lines or differently colored lines, or maybe even make them change the shape of the graph, e.g. by adding forces that will push “parent” links to the top of “child” links.

So believe this could have its merits, but this would be a huge effort for the developers, and add a lot of complexity. Ultimately, I think Markdown is not an adequate format to describe such webs. The page source will very soon become undreadble and uneditable, and the effort will surmount the use. Particularly if it’s only for human consumption. Semantic webs make more sense if you want to describe the relationships to computers so that they can be used by algorithms.

If you only want some more clues added to your links, you could simply add emojis like :point_left: :point_up: :point_right: :point_down: to indicate whether you’re going upwards, downwards or sidewards in the hierarchy of your knowledge-tree, or symbols for other types of links.

Funnily enough, I just created a note for B cells and VDJ recombination!

I think explicitly defining different link types would be cool if it is easy to implement, and I would definitely make heavy use of it. But in my personal experience I don’t find it necessary. A huge reason why is that I actually want interesting connection links to be separate from the main body of the text. I want it to stand out to me. Here is my general workflow. I have three general link types, excluding external links:

  • Wikis -> A main page to define a particular term and collect concepts associated with it.
  • #concepts -> Larger picture ideas I come across that I’d like to collect more data about.
  • #connections -> New ideas I spin out based on connecting concepts together.
  • Generally not a link, but… #questions -> Questions that come up - can lead to a link if interesting enough

I have a template for each of these pages.

Within the main notes, the links are usually Wikipedia style explanatory links. However at the very top of the document, I have a concepts, connections, and questions section. When a concept or connection is sparked, I create the page at the top of the document.

Then within the concept or connection document, I have a section where I explicitly delineate which section/blocks sparked the idea in the first place.

This all to say that I’m all for it if the devs find it can be easily implemented, but I feel like my workaround is sufficient for me. Nonetheless, I do think we are all finding that we need different note styles for different phases of learning, so I’d love to continue hearing your and others’ thoughts on this subject!

7 Likes

Check out this discussion

It is worth looking at Neo4j. They created a cypher query language that allows you to have relationship types. The syntax if pretty straight forward too.
(:person) --[:works for]–>(:company)
(:person) --[:owns]–>(:car)

1 Like

What is Aspen?
Aspen is like Markdown but for graph data.

  • Nobody

Aspen is a simple markup language for creating graph data.

Aspen lets you write about people, places, things, and the relationships between them using marked-up text, and converts your text to valid Cypher that can be used in Neo4j graph databases.

So, Aspen is both a markup language and a software tool that converts text to Cypher.

Aspen does not aspire to be a query language—Cypher is a truly elegant language for querying graph data, and we’re frankly in awe of it. Aspen is intended to make it easy to write graph data by hand.

2 Likes

Obsidian already supports Mermaid which is a bit similar, but supports more graph types.

It also has a syntax to describe the type of links inside the graph, see here.