Walk the graph from node/refId, reconstruct the object.
select edges with name propname, list source nodes of those edges
select nodes with 'constructor' in values (NB: currently we don't differentiate), select edges with dest at those nodes select source nodes of those edges
given the target object, select edges with dest(obj), select source nodes
select closure variable edges with name 'varname', select source nodes.
Transitive closure of the graph gives a faster list of all nodes reachable from a given node, but does have a rather large edge explosion (factorial on path length?).
- Graph walking to apply labels, e.g.,
- in-degree, out-degree (easier searching)
- size (for composition)