Real Bi-Directional links and Graph extraction from paragraph link co-occurrence

I’d like to propose a very powerful feature for this great tool. In fact, I think this is the main feature that is missing from both Roam and Obsidian, and if someone implements this, they will be absolutely top1 of all other note taking apps.

Most times when you take notes in a lecture, the lecture note taking is in fact linear. It would be a huge amount of work to dissect all small pieces of notes into their own page - and sometimes it’s not even possible to find the ONE correct page where to put it, as the piece of information many times ties together two or more concepts. Thus writing content into it’s own separate page is many times meaningless when taking notes, because taking lecture notes is not like writing wikipedia.
When you write e.g. Lecture1, even if adding links to all concepts, the graph view will look meaningless, the page Lecture1 will point to all other concepts, and no relationship is shown between concepts as the information is in the lecture note, instead of the individual pages. See 1st uploaded picture.

But half of the solution is already done in both Obsidian and Roam, just need to finish it. if you open the backlinks tab for any concept, you can see where the concept is referenced, by individual paragraphs… why not use that information further?!
By scanning through all paragraphs and checking the co-occurrence of concept links it’s possible to link together concepts by the information in the paragraph. See my hand-made hack for this in the 2nduploaded picture.

Optionally if I hide the lecture note, then I get only the knowledge graph of the concepts. See the 3rd uploaded picture.

Of course, I understand, get the last version, the software wants me to write notes per-page… but it is not always possible… may paragraphs reference multiple concepts and many times there is not ONE single but maybe TWO or THREE parents of an information in a paragraph… thus I would need to copy-paste the paragraph into two or three pages… not good… but we should not need to… it’s enough if we write the lecture1, lecture2 notes, then with the correct added concept links, this information is very easy to extract from the text of the lecture note itself.
If this would be implemented, I believe it would make the software the Best note taking app.

9 Likes

Note: this is fairly simple to hack together without a proper implementation.

Possible implementations that I can see:

Using #tags

  • Obsidian should support #tag paragraph co-occurrence graphs in the database. This should be the most straight forward without redesigning the linking structure.
  • One downside is that currently #tags are not as convenient to use. The only way to search for tag occurrence is through the search box - even clicking the tag pane’s tag entry uses the search box, which doesn’t show the full paragraph of any matches, just a sloppy quick look mid-sentence. It would be much more usable if there would be a possibility to see a full paragraph.

Using bi-directional links

  • to do what I did on the pictures, I just go through each paragraph, and copy-paste it (and it’s children if it has any) to all pages of concepts referenced inside the paragraph. Of course copy-paste-ing is dirty. Then I go through children paragraphs and copy-paste them into concepts appearing in this child’s text, of course excluding the ones where the parent was already pasted. Then to the next child, etc. Then to the next paragraph… and it’s children… and next paragraph… etc. it’s just a simple rule based copy paste that I did in a few minutes, in order to be able to show a proper concept graph to make the screen shot.

  • One good way to properly implement is like Thinktool.io, where paragraphs should store parent references and be able to have multiple parents e.g. both “Lecture1”, and “regularization”. Of course, Obsidian operates with simple markdown files and not graphs natively like Thinktoo.io

  • So probably it would be easier to do it another way… Maybe when a [[concept link]] is added, then use it a Real bi-directional link, and actually add a link to “concept link” page, referring to the paragraph in the lecture note.

For myself, I might just write a quick and dirty python script to do the copy-pasting based on the rule, building a tree from the markdowns.

2 Likes

I think that this developments on the linking and graphing features in obsidian would power up the connections and navigations trough concepts a lot. I’m not sure I follow completely de concepts you brought here, but seems already very relevant.
One feature associated to the graphical display I think should potencialize the usage are the local connections graph per page [like the Roams sidebar, capturing the concepts directly linked in the specific page you have open] and also some features for sorting the information in different ways, just like the Roam Graph view where you can sort that like a tree-view of the concepts connections.
Hope they get to develop these features in the near future, or even the community plugins.
:v:t4: