Designing notes with types and links with types

I posted a note in Help yesterday that fell foul of the guidelines. Sorry about that; I’ll try to avoid writing content that looks like spam.
My idea for a plugin is the ability to create specific types of notes that conform to either an existing ontology or a custom ontology. Ideally the note will take on the properties deriving from the ontology class. For a very trivial example, I may want to have a set of notes that I decide are of type myLocalOntology:Article. Each such note could have a hasAuthor property pointing to another note of type myLocalOntology:Person. This property would therefore amount to a typed link. It would be an inverse property, so the Person note would have a corresponding authorOf property pointing back to my Article note.

This would involve being able to define the object properties (relations to other things in the model that may be inverse or symmetrical) and the data properties (pure data values and one-way linked only) for a given note type. Could this perhaps be done in a template?

Anyway, this may all be pie in the sky, but it feels to me like it would be a valuable enhancement to Obsidian. In my earlier thread I had an interesting reply from brimwats but but I have not been able to reply to it. It would be good to pick up that conversation.


Hello Ian,

Could you explain a little how conforming to an existing model would enhance the Obsidian experience?

Apologies in advance for the verbose answer; this is a bit of a hobby horse of mine and it’s an important question that you’ve asked.
The simple answer is that I don’t know that it would enhance the experience of all Obsidian users. I can see from the articles and videos that I’ve researched that people have used the product very effectively in a variety of ways to improve their personal knowledge management. And I can see that people want the freedom to make notes and link them together in whatever way they see fit. What I’m suggesting would not compromise that way of working, but I think it might come to be seen as a useful additional tool in the toolbox.

Like many users here, I have explored many different products and approaches like the usual note-taking applications, plus less well-known products like the Mac-only Tinderbox. These products all lack a couple of capabilities that I would find very helpful in my personal knowledge management, and that I think could apply well to my business.

  1. Having the option (and it need only be an option) to declare the type of thing that I am making; as an old boss of mine was fond of saying, “a little structure goes a long way”. As a trivial example, if I was looking for a person by name in one of my notes it would be helpful if I could restrict the scope of the search to person things and a field or property of the things that held name information. The alternative seems to be a full-text search and anyone who has worked in the search world knows what a world of pain that can be. OK, the context is important; if I wanted to find that person’s name in any context across all of my notes then search is really the only solution. But in my work I am more often looking to build in structure in order to limit ambiguity and aid discoverability.
  2. Conforming to a structure can also improve your knowledge management if you can add some semantics to the link between things. If I had a set of Person notes I could introduce typed links such as knows, worksWith and so on (all of which are provided by the underlying information model that I have chosen to use). Then, if I have other typed notes that represent documents or projects or even abstract ideas, (to me, all of these are things - objects that conform to a class), then I can build links from a Person to those things, such as Person A isAuthorOf Document Z, Person B worksOn Project XYZ, Person C invented OriginalIdea W. In each case what we benefit from the application of the semantic link is greater information value; it’s not just two notes that have a generic link, it’s two well-characterised things that have an equally well-defined relationship.

I’ve been very excited by what I have seen of Obsidian so far, and I’m keen to see whether I can make it part of my work. However, I can see that some of the common problems of finding and making better use of knowledge are only partly addressed through things such as MoCs (which, by the way, I like a lot). I think the missing piece is the extra context and decreased ambiguity that come about through application of a little structure. In exploring your information space, for example, you would get to be able to ask novel questions like “where are all Documents with a known author?”, or “show me the affiliations to all my projects”. Being able to ask “Describe the Person Ian Piper” would return all of the typed links that exist for that Person thing.
This is taking us close to real knowledge graphs of course, which is where I would like to end up, and my gut feel is that this would definitely improve the Obsidian experience for many users.

1 Like

On the topic of spam: that was an automatic discourse flagging. Most of discourse’s flags aren’t accurate, but it prevents bot attacks better than discord. In your case we ruled that everything was alright, so don’t worry about it.

Ah, thanks for letting me know. Looking forward to some stimulating conversations!

Hi @ianpiper ! thanks for the response.

I agree :slight_smile:

The obsidian community already does some amazing things with the dataview plugin, which has its own query language, and even has DataviewJS that allows the use of Javascript.

Also, what people put in the notes can be very diverse; they might describe trails of thoughts, or ‘things,’ etc. For instance, links between ‘people’ might differ from links that create an argumentative structure.

I still don’t know how to write down my relations. There is a discussion about support for note types that might be interesting.

I imagine the editor could use link types to become ‘smarter’, whatever it would be :).

Sometimes I write relations just to better ‘think’ while writing a digital note.

Or a user that wants to build/curate/maintain a knowledge graph…

I do that simply with tags, each note is: #Person or #Date or #File or #Journal
links cant be tagged though, so they do really need “types of links”