Skip to content

Implied Relation Rounds

By default, each of your Transitive Implied Relations runs once, meaning they only consider the explicit edges in the graph when deciding if the rule matches. But in some cases, you may want the implied rule to consider other implied edges, that’s where rounds come in:

  • Setting rounds to 0 disables the rule.
  • Setting it to 1 will run the rule once, only considering explicit edges.
  • Setting it to 2 will run the rule again, considering explicit edges and previously added implied edges.

[!TIP] You can think of increasing the rounds as making all previous implied relations explicit.

Say you have the following explicit edges (two notes pointing up to their parent):

flowchart LR
	1(A) -- up --> 2(Parent)
	3(B) -- up --> 2

If you have the Parent’s Child is Sibling implied relation enabled, you may expect A and B to be marked as siblings, since they share the same parent. But in this example, they won’t since there isn’t a chain of [up, down] between the two. Instead, they both point up. To achieve the same effect, we can use the opposite direction implied relation to add the down edges we need:

flowchart LR
	1(A) -- up --> 2(Parent)
	3(B) -- up --> 2
	2 -. down .-> 1
	2 -. down .-> 3

Now there is a chain of [up, down] between A and B (A -up-> Parent -down-> B). But, because the down edge is implied, we have to increase the rounds of the Parents’ Child is Sibling relation to 2 to detect it. If it was only on 1, then it wouldn’t consider the implied edges added by the Opposite Direction relation.

graph LR
	1(A) -- up --> 2(Parent)
	3(B) -- up --> 2
	2 -- down --> 1
	2 -- down --> 3
	1 -. same .-> 3