Comment by ezst
10 hours ago
Yep, you can totally do that with Trilium. Instead of #topic, you would type @topic in the body of your note, Trilium will autocomplete trying to find matching references (containing "topic" in either their name or attributes or path or prefix), and if none exists, a new "topic" note will be proposed to be created on the fly. You will also be asked whether the new note should derive from a Template or not, and that's where maintaining a collection of Templates and reference notes makes a ton of sense.
For instance, if you type "I went to @ThatOldPub with @Alfred", @ThatOldPub can be created on the fly as a [Place], and just like every other [Place], it will have an attribute ~location=@London (@London being itself a note of type [City] itself having as attribute ~country=@UK, …) ready for you to fill now or later. Same goes for @Alfred being a Person.
That way you are not just building a graph of "related things" with their name as a weak link, you are creating a semantic graph of typed entities, where notes can be approached not just from edge-to-edge but as clusters, and manipulated in bulk.
> The other thing I like are "unreferenced blocks" where if I don't think to tag a stray thought I have about, say, RAG, it'll still show up on my #rag page.
I never trusted that mode, that puts too strong a constraint on how you would name your tags, with essentially typos flying under the radar and leaving an impression that there might be more "strays" than meets the eye. That said, Trilium has a vivid ecosystem of tools, scripts and extensions surrounding it¹, and if hunting for missed references sounds fun, there you go²!
¹: https://github.com/Nriver/awesome-trilium ²: https://github.com/Nriver/trilium-py?tab=readme-ov-file#adva...
oooh I love that. That also hits my qualms with notion too!
I think I'm sold. Thank you for answering all of my questions so thoroughly.