The queries are something like
Return all vertices such that (reachable from (A and (B or C))) and (not reachable from (D and E)).
The query can be formed with any kind of boolean constraints on reachability.
Are there efficient methods to do this query fast? Other than actually find the set of all item reachable vertex of concern, then do unions, intersections and set minus on those sets?