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.
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.
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.
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.
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.
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 also agree, this is not semantic that can be achieved any other way and would actually be the bare minimum to claim “links as first citizen” in a software. I miss it dearly to make sense of my tons of interconnected notes.
All formal systems have canonical ontologies—an ordering, grouping, and classification.
For example in biology, the system based on Carl Linnaeus, to comprehensively categorize any living creature: Kingdom > phylum > class > order > family > genus > species. This is an ontology, and as a canonical ontology, it is a pre-defined tree. (translation: it is accepted by everyone. No one should re-invent this, is expected to re-invent it, or indeed, is permitted to re-invent it).
if i write an article on a special kind of crab i read about, i should be able to place it within that classical ontology.
Similar ontologies exist for philosophical systems, political systems, engineering, etc.
These ontologies should not be created by any Obsidian user or coder. The pre-existing, open-source hierarchical structures need to be identified (i don’t know where they exist, but they do exist), and linked or imported into Obsidian
In addition to static hierarchies (parent, child, sibling relationships), knowledge is also characterised by dynamic composition (i.e., a user roll his/her own combinations in personal notes, without altering the base ontologies), and ordering. Ordering is an important component of knowledge, which gives the sequence (first this , then that) , which is quite different from parent-child-sibling.
For example, the concept “semiconductor” is IMPOSSIBLE to understand without first understanding “electricity”, “conduction”, and “doping” (at the least).
These are universal characteristics of knowledge. The fact that an obsidian user can roll his/her own label set, hierarchies, or MOCs, cannot and should not overwrite canonical hierarchies.
Obsidian needs an efficient way to represent, or pigeon-hole, notes within specialized ontologies. This will truly open it up.