Connected evidence.

Some answers only show up when you follow the chain: who knows whom, and whom that person knows.

01

The analogy

You need a plumber. You don't know one, but your neighbor's sister does. The answer was never in one place; you got it by following two links. Stop after the first link and you come back empty-handed.

Here the links are facts pulled from company documents: who runs which company, who invested in whom, where each one operates. The slider decides how many links the search may follow before it gives up.

In the diagram below

a person you know
an entity in the graph
a link
one fact that joins two entities
a friend of a friend
an answer two or three links away
"I can't reach that"
a refusal when more links are needed
02

Try it

Thirteen questions about a set of companies. Five need one link, three need two, one needs three, two need counting, and two ask about things the documents never say.

Your move / Predict, then test

Before you run it, place a bet: following up to 2 links, does it answer all 13 questions correctly?

Choose your prediction, run the experiment, then reveal the result. You can also explore without predicting.

Each square is one question, in order. Green got the right answer, or correctly said the documents don't have it. Blue was out of reach with this many links. Red would be a wrong answer.

Place your bet and press Run it.

03

The graph or a plain search

Same thirteen questions, same documents. One side follows links in the graph; the other reads the closest passage, one at a time.

04

Where it fits

Worth it

When the useful answer sits across several documents and only appears by joining them. I picture a credit team checking who really stands behind a company: its owners, their investors, their other businesses.

Not needed

When each answer lives in one passage, like a policy lookup. A plain search is simpler and just as good there.

05

What it proves

I split questions by how many links they need and let the system refuse when the chain is longer than it may follow. A missing link shows up as a blue square, and the search never makes up the last step.

For engineers
  • Facts are extracted from the documents as typed triples, entity names are resolved (exact, alias, then trigram similarity) and the graph is traversed by relation keywords in the question.
  • The link cap refuses when a question needs more relations than allowed. Aggregations count neighbors over one relation and need one link.
  • Answers per cap are pinned in a fixture read by the TypeScript and Python suites. The plain-search baseline uses the same documents and top 3 passages.
  • Stack: Next.js 16, TypeScript, Python, Vitest, pytest.
Source code →