The path between two things

Pick two nodes and get the shortest chain of typed relationships between them, with the kind of every step named.

Shortest, and bounded

The search is breadth-first, so the first route found is the shortest one. It is bounded by depth on purpose: an unbounded walk over a large graph is a hang rather than an answer, and a hang is indistinguishable from "there is no path".

Filter by what you mean

Restricting the search to containment answers a different question from letting it follow dependencies. A path that exists through "related to" and nothing else is a much weaker claim than one that runs entirely through "part of", so the kinds you allow are yours to choose.

No path is a real result

When nothing connects the two within the bound, that is reported plainly. It means this dataset records no chain — not that none exists in the world.

Questions

Can a path cross grains?

Yes, and that is the point of having one model. Where a node in one grain is linked to a node in another, a single path traverses both.