Resolution of pasted [[references]] and `get_by_name`

If I paste some text/markdown with [[reference]] and #tag, how are these references and tags resolved exactly when there are multiple matches? (My testcase suggests that it takes the oldest rem with this name. Is that correct?) Does get_by_name work the same way?

Is there a way to define which rem gets used or do I have to remove/rename all older rems with that name (e.g. I have some older plain text rems with the name “Summary”)?

2 Likes

For [[references]] and ##tags, There is currently no strictly defined order for which Rem is taken. In what scenario do you have multiple matches being found? As no order is yet defined, we could still implement one to make things more deterministic or understandable.

For get_by_name, there are two cases. 1) If the Rem has no parent or no parent is defined, then the order is not defined. 2) If the Rem has a parent specified, then the first matching child is taken.

1 Like

Thanks for the clarification!

I was wondering about this in general when I thought about how to import stuff from Zotero and how to link it up properly. I think this is a hard problem to solve, maybe inherently only manually.

Just some ideas, I have not thought deeply yet:

  • Basic problem: I don’t know what a user does. There are so many different workflows and ways to structure knowledge bases. I think it will be hard to make extensions which work correctly for all users. Concept/Descriptor (or page/block distinction of Roam) might be a way to cope with that. The hierarchical structure of RemNote makes this more difficult though, because:
  • There are homonyms (words which are written the same, but mean different). A user can have Area 1 > ConceptX and Area 2 > Concept X) I don’t know if it makes sense to consider this at all or one might just have to just prefix relevant things. Or have an additional syntax to namespace, like discourse #RemNote:workflow-sharing to signify parents.
  • I often use single words as headlines for structuring (I have many References). If an extension wants to use this as a parent it can end up somewhere undefined. Maybe an extension has to namespace for that, like github.com/zotero-import:References but this is ugly without aliases.
  • Similarly: I might want to access specific, well defined parts of the kowledge base. Example: For a theme switcher I might want to access Custom CSS. If a user has made a note like this new things I discovered > Custom CSS this could fail.
2 Likes