A basic, no-plugin version

Syntax: relationship + arrow

Support the following syntax for aspects (term to describe a “subject - relationship - object” phrase)

- [[some evidence]]
    - [[supports]] ->
        - [[a claim]]
- [[claim]]
    - <- [[supports]]
        - [[some evidence 1]]
        - [[some evidence 2]]
a claim (on the page)
- <- [[supports]]
	- [[some evidence]]
some evidence (on the page)
- [[supports]] ->
	- [[a claim]]

Pros

The arrow solves the problem of dealing with complements

Arrow provides a language agnostic relationship direction indicator

Uses existing block hierarchy structure already core to Logseq

Familiar to Discourse Graph users

Cons

Less readable when the arrow is pointing “backwards” since default is not to create a separate phrase as the complement

Queries

I haven’t finished converting these to Logseq queries yet. Can see my work in progress here: Knowledge graph queries.

x relationship ->: e.g. on evidence page, get claims it supports

for block x (e.g. current page)

for every block r that contains a page reference to x

get child block c of r

if c contains -> AND a page reference to [[relationship]]

return all children of c

get parent block p of r

if r contains <- AND a page reference to [[relationship]]

return parent of p

<- relationship x: e.g. claim page, get supporting evidence

for block x

for every block r that contains a page reference to x

get parent block p of r

if block p contains -> and a page reference to relationship

return parent of s

get child block c of r

if block c contains <- and a page reference to relationship

return all children of s