Supporting symmetric and transitive relationships between notes?

Here is an example from language learning. Suppose that we use an amazing Jo Mako’s deck for studying kanji. For each kanji, there is a section that is called ‘Looked Alike Kanji’, and right now it’s populated by hands. It’s nice to have such list in order to quickly compare different kanjis and do fewer mistakes.

For example: kanji 人 is similar to kanji 大. It means that kanji 大 is similar to 人, so we have symmetric relationship. It would be nice to only add the similarity once to one of the notes, instead of visiting both cards.

It’s also a transitive relationship: if 人 is similar to 大 and 大 is similar to 太 then probably 人 is similar to 太. So normally, if i just store similar kanjis in the field Similar_Kanjis as a list, I would need to visit and edit all three notes.

My goal is to somehow suport symmetry and transitivity between the notes. How do you think that could be achieved?