Is it possible to implement link types?
What I’m looking for is how to use links as verbs (similar to, related, is part of) that connect nouns (notes, ideas).
Obviously it can be done in the notes as text or headings, but the idea is to implement it in some way to see it reflected in the database, in the roam-buffer or in the ui.
It’s not as simple as that if you want to integrate it to the buffer or to the graph.
Extensions should not modify the database schema. Any extension that requires the caching of additional data should make a request upstream to Org-roam.
What is the simple alternative if the information is not in the database, complicate things by adding another database?
I suggest you have a look at this very popular post and follow-on discussion. The link categorisation was discussed extensively at an early stage of v1 and not implemented. A few months later, with v2, Jethro suggested an easy way to implement it without DB change. I think you could also think of more extensive change and propose it to @jethro.
Widening the set of types used in the graph is a big can of worms. Once I was able to label your edges, I wanted to group them, and to make statements about them like “this kind of edge should be hidden when I’m reading in public” or “this kind of edge should determine the order of my notes, to the extent possible, when I’m lecturing from the notes”, etc.
I wrote an application called Hode that lets you create not just binary relationships, but relationships among any number of items, any of which can themselves be other relationships. An example would be “_ did _ to _”, which is a relationship among three elements.
It was too hard; I’ve basically abandoned the project.
TypeDB is an open-source project (supported by Vaticle, a corporation) with an equally permissive type system. It’s not designed with personal knowledge management in mind, but it could be adapted to it. If I ever try to write Hode again, I’ll use TypeDB. I hope someone else tries before me.