My simple 4 node graph is:
(thing:Steve) -[is]-> (thing:Person) -[does]-> (action:living) <-[is]- (action:breathing)
but this query
MATCH (a:thing),(b:action)
OPTIONAL MATCH (a)-[r]-(b)
OPTIONAL MATCH (a)-[r1]-(a)
OPTIONAL MATCH (b)-[r2]-(b)
return *
returns
│"a" │"b" │"r" │"r1"│"r2"│
│{"name":"Steve"} │{"name":"living"} │null│null│null│
│{"name":"Steve"} │{"name":"breathing"}│null│null│null│ │{"name":"person"}│{"name":"living"} │{} │null│null│ │{"name":"person"}│{"name":"breathing"}│null│null│null│
Why doesn't the query return R1 (steve is person) nor R2 (breathing is living)?
(It only returns a->b... person is living)