Suggested Principles

Use the above queries to track relationships, and keep all the relationship data in the notes.

Be mainly a layer for surfacing, browsing, and querying the relationships that are built in the notes.

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.

This also enables including blocks in the knowledge graph

This allows for more dynamic use of the knowledge graph with less “pre-planning”. This can have some downsides too, as it could create less clear ideas for what relationships mean if you’re using support to mean slightly different things in different contexts.

Downside, it would be harder to add inline CSS for links like Discourse Graph does