I quite like some of your ideas about how to design note-taking software and I think I have a partial answer to the issues you point to:
Make the repository of notes more semantic than usual, halfway between pure text notes and a structured database. If the notes exist in a graph database then it becomes possible to write database queries (probably with something like SPARQL).
Allow the user to store queries within notes so the query is run whenever the note is opened. Maybe allow for a graph visualization of the query. This way the semantic structure becomes a part of the normal way to interact with the “hub” notes.
The ontology used on a topic is defined by the structure of the links. If the user wants a new ontology they just create it on top of the old one and let the old one rot. No need to erase it and it does not distract from the new one (maybe there is some name reuse in the link/attribute names, but that’s trivial to fix).
Use LLMs to correctly annotate notes with the semantic information that populates the database (links, tags, some attributes, …) This way they don’t need taste to know how to edit, they just follow the pattern that comes with a given ontology. Perhaps this requires the user to create templates.
Provide a good CLI (Command Line Interface) for the software. This way the user can write scripts to update their notes using any language. It becomes easy to apply the new ontology to the old notes, possibly fully automagically but most of the time there is probably a bit of manual work left afterward. That’s fine.
(unrelated to your post) let the GUI be a VScode extension so the user can use whatever other existing extension they like, this way there is no need to also design a good text editor.
I quite like some of your ideas about how to design note-taking software and I think I have a partial answer to the issues you point to:
Make the repository of notes more semantic than usual, halfway between pure text notes and a structured database. If the notes exist in a graph database then it becomes possible to write database queries (probably with something like SPARQL).
Allow the user to store queries within notes so the query is run whenever the note is opened. Maybe allow for a graph visualization of the query. This way the semantic structure becomes a part of the normal way to interact with the “hub” notes.
The ontology used on a topic is defined by the structure of the links. If the user wants a new ontology they just create it on top of the old one and let the old one rot. No need to erase it and it does not distract from the new one (maybe there is some name reuse in the link/attribute names, but that’s trivial to fix).
Use LLMs to correctly annotate notes with the semantic information that populates the database (links, tags, some attributes, …) This way they don’t need taste to know how to edit, they just follow the pattern that comes with a given ontology. Perhaps this requires the user to create templates.
Provide a good CLI (Command Line Interface) for the software. This way the user can write scripts to update their notes using any language. It becomes easy to apply the new ontology to the old notes, possibly fully automagically but most of the time there is probably a bit of manual work left afterward. That’s fine.
(unrelated to your post) let the GUI be a VScode extension so the user can use whatever other existing extension they like, this way there is no need to also design a good text editor.
I sent you a DM to talk more about this.