One of the most engaged posts of all time in this forum is about adding meaning to links in Org-roam. The thread itself has been dormant in this year for now, but I believe that many people are still interested in the topic. As far as I can see, the Gellish approach is one of many ways to add a meaning to links and does not look to be unique in design.
For implementation, I think it is do-able and worth the efforts if someone is keen to drive this.
Below is some rough ideas that I could come up with of what the implementation with Org-roam and Org Mode might look like. I’m pretty sure there are better ideas; my two cents only.
The data structure that Org-roam has implemented so far is pretty much in line with the Gellish approach. You can inspect the database schema by looking at variable org-roam-db--table-schemata
; look at the table links
. I’ll illustrate.
If you execute this query in Emacs…
(org-roam-db-query [:select [source dest properties]
:from links
:where (= type "id")])
You will get something like this below. I have added a column heading to make it easier to read.
#+RESULTS:
| SOURCE (ID) | DEST (ID) | PROPERTIES
| 2021-01-18T130000| 2021-01-27T165658| (:outline nil)|
| 2021-01-18T152100| 2021-01-27T173744| (:outline nil)|
| 2021-01-18T152100| 2021-01-27T154809| (:outline nil)|
| 2021-01-18T165223| 2021-01-25T203301| (:outline nil)|
As far as I can inspect, Org-roam at the moment uses PROPERTIES
only for the information of the headline under which links are placed (:outline
property). But it leaves the possibility to enrich data with different properties
(it’s a property list).
… So to implement a way to add a meaning to links, the data structure is mostly ready. As a very rough sketch, the following elements would need to be added to Org-roam and Org Mode (as an extension, or part of the core):
- Extend Org Mode’s grammar for
org-id
[[id:uuid]]
syntax does not have a way for users to add property to the link - Add a function to extract a property from an ID link; insert it in the database
- Add a display feature for Org-roam to show (back)links with the new property / properties
- Add a way for users to add property to links in their note-taking workflow