/ graph as dictionary (w contains a loop) /t:.+(`parent`child;(` `a`b`b` `e` ` `j`k`i / `a`b`c`d`e`f`g`h`i`j`k)) /t:.+(`parent`child;(` `a`b`b`y`x`y / `a`b`c`d`b`y`x)) /t:.+(`parent`child;(.job[`ParentId];.job[`JobId])) / invert parent-child invert:{p:?y;c:x@=y;i:&~p=`;.+(p i;c i)} /g:invert . t`child`parent / graph keys gkeys:{{asc(?,/x y)_dv _n}[x]/!x} asc:{x@