Add support for automatic, bidirectional and separately named list properties

Use case or problem

I started a PhD, and therefore my Vault is growing fast recently with all the bibliographic content I read and to save in my second brain. However, I am facing a limitation regarding the metadata of my notes. I need to tag notes to say that some are a component of others, and want this to be somehow bidirectional and obvious.

I need automatic, bidirectional and separately named list properties.

As an example, if I work on some construction materials, I want to specify that Particle board, MDF board and Plywood notes are part of my Wood panel note (i.e. they are hyponyms of Wood panel). On the other hand, when looking at Wood panel note, I would like to see that it is the hypernym of Particle board, MDF boards and Plywood.

It would make sense that these two properties, Hypernyms and Hyponyms are one and only one dynamic property that acts bidirectionally but separate in terms of naming. Therefore, I could also register a new Wood panel note, like OSB board from the Wood panel note which is through Hyponyms property. As I could do this linking the other way around, from the OSB board note through its Hypernyms property.

Proposed solution

Implement bidirectional properties that auto-update related notes automatically.
This feature is intended to work like Notion’s databases Relation properties, where one can define a bidirectional relation to other notes and give it a different name depending on the relation.

Notion like Relation property, with separate direction
Figure : Notion like Relation property, with separate direction

Current workaround (optional)

There are two approaches as of now:

  • Manual approcah: Manually create the reverse direction property and manually add links inside every time to create a new link from the opposite direction (cumbersome, won’t do it)
  • Semi-automatic approach: Create one of the directional property (e.g. Hypernyms) and make use of Dataview plugin to list the opposite direction on the other notes (i.e. Hyponyms). Here you need to add a Dataview code on every note basically and to add a hyponym somewhere, you’ll need to go to all hyponym notes and add their hypernym in Hypernyms property.

Related feature requests (optional)

5 Likes

Just replying to say this would be amazing and something I would use all of the time

2 Likes

Can this please happen??? :frowning:

Yes please!

I think this should be implemented in a single update with link types:

Related:

1 Like

Relations are a powerful way to extend Properties to be bi-directional and automatic.

Use case or problem

Obsidian users create implicit or explicit relations between their notes manually all the time.

Consider:

  • Note 1: Music Collection
    “I have a bunch of music. My music collection includes [[Ziggy Stardust]]”
  • Note 2: Ziggy Stardust
    “An album in my [[Music Collection]].”

Backlinks create implicit relations between notes, but consider if we could use Properties in these notes to reference each other:

  • Note: Music Collection
    • Property key: Album, value: [[Ziggy Stardust]]
  • Note: Ziggy Stardust
    • Property key: Contained within, value: [[Music Collection]]

The relation in this case would be consist of the Album ↔ Contained within predicates and the corresponding links.

I want to be able to create Relations in a note that link to a different notes, and on creation results in that note automatically having a corresponding Relation that links back.

These property keys and values are analogous to graph database edges.

Proposed solution

Since a Relation is a pair of related properties each with keys that describe their half of the relation, and a value that is a link to target note for that property, this could be implemented as a special type of property in a note, or potentially as special syntax in markdown links that articulate the Relation within the link.

Again, this is just like a graph database edge between nodes. Relations represent bi-directional subjects with predicates. A Mom note can have a Child of property that links to the Grandma note. A Legal team note can have a Sub-team property that links to a Compliance team note, which itself has an automatic and corresponding Parent team property that links back.

If the Sub-team property is renamed, it is renamed globally without breaking the relation, and likewise for any other predicate properties.

Current workaround

Currently, there is nothing stopping this from being done manually, essentially, but creating these bi-directional property links between notes, but this robs us of the ability to automatically index relations and provide picker-functionality, to be able to populate relations from pre-existing notes with the corresponding properties. For example, if you create a note and add to it a “Parent team” property, you could produce a picker that listed all existing notes with one or more “Sub-team” properties.

5 Likes

Pickers for these properties would work similar to the existing header lookup when creating links starting with [[##. Also, where implemented in internal links instead of note properties, these could look something like [[Music Collection|optional text@@part of]] where @@part of would be handled similarly to a part of note property linking to [[Music Collection]]

This feature request seems to partially overlap with another request: Apply set theory to tags (hyperonyms) : linked tags - #17 by MatrixFr

I’m very intrigued by both suggestions, though I admit I find them both challenging to understand. Forgive me if I haven’t understood the present request correctly.

Personally, the idea I find most interesting is adding hierarchical relations to terms. For example, “Islam” is a {type of} “religion”. So, “religion” is the parent of “Islam” in the {type of} relation. But, “religion” is also a {part of} “culture”, so it is the child of “culture” in the {part of} relation.

The older feature request focuses on adding such relations to tags. The present request wants to add them to properties.

My intuition would be to simply add the functionality of adding hierarchical relations to terms, allowing users to invoke such relations anywhere and everywhere:

  • in properties
  • in tags
  • in searches

I am most interested in using conceptual relations in full-text searches because I hate adding lists of properties/tags to files (I would prefer just to write my thoughts in the note). If I am mentioning “Islam” lots in some notes, I think it is artificial and robotic to think, “hey, maybe one day I will write about other religions, so I should probably add the {type of} relation to the “Islam” tag/property”. Instead, I would prefer to add such conceptual relations only when I want to actually use them, and I want the relations to apply to all previous notes in my library – I don’t want to have to scour through every note in my library and add the relevant tag/property. Thus, the relations should apply to search terms.

This looks like a duplicate of:

1 Like

Is this already a feature in Notion?

I don’t have experience with that app. Could you (or someone else) please say a bit more about how the desired feature is implemented in Notion (in terms of the user’s experience)?

This would be useful for those of us who are trying to make sense of the present feature request – I get the sense that the requested idea complicated to explain despite being inherently very simple.

Yes, you can find more details here: Relations & rollups – Notion Help Center