I suggest continuing to use the existing simple syntax convention for relationships to add any grammar. This feels more in line with the outliner DNA of Logseq, as it uses the block hierarchies to encode information, and keeps everything visible in the markdown (rather than in an extra layer of data that only exists within the plugin).
Use the existing syntax and create a new relationship (calling them whatever they want, here I use type
)
Then to actually restrict relationships, the plugin could reserve a special relationship (e.g. grammar
) for declaring the grammar of a relationship:
In order to translate your knowledge graph to be integrated into someone else’s, the more detail around how your relationships work, the better.
↑ 1 References
Proposal for a knowledge graph plugin
→Suggested Principles
→Keep the grammar non-restrictive and let users create relationships between any two notes by default. The plugin can still make it possible to create a more restrictive grammar as well, and you can see in this section how I suggest doing so: # How and when to add restrictive grammar
For one, a non-restrictive grammar allows users to not have to create prefix links in the front of every linked note like in Discourse Graph. This will be beneficial for use cases that want to connect a large volume of notes in their knowledge graph but don’t want to be restricted to a specific note naming system.