Sources · Reference

Graph

The typed entity-relation graph that connects code, work, and data into one ontology.

The graph source is the typed entity-relation graph that connects every other source into one ontology. It is not an external data source — it is derived from the code source and enriched by relations from work items, commits, and databases.

What it contains

  • Entities — typed nodes: modules, symbols, tables, columns, work items, commits, PRs, documents. Every entity has a kind, a name, and a ref.
  • Relations — typed, directional edges: "calls," "imports," "writes_to," "reads_from," "implements," "references." Each relation names its source entity, its target entity, and its type.
  • Cross-plane edges — the relations that connect the three planes (code, work, data). "This module writes to that table" and "this commit resolves that ticket" are cross-plane relations.

How it is built

The graph is built in layers:

  1. Deterministic layer — parsers extract the code structure; catalog introspection extracts the database schema. This layer is reproducible.
  2. Derived layer — cross-references are resolved: a commit message mentions a ticket ID, a code comment references a table name. These are matched by rules, not by a model.
  3. Interpreted layer — a model classifies ambiguous references and infers relations not stated explicitly. Every interpreted relation is labeled as such and carries a confidence score.

Why the graph matters

A search index finds documents that mention a thing. The graph tells you what the thing *is*, what it depends on, and what depends on it. "What breaks if I drop this column?" is a graph traversal, not a keyword search.

Searching the graph

You can search the graph source specifically to find entities and their neighborhoods:

bash
curl -X POST "$ECHO_URL/projects/$PROJECT_ID/knowledge/search" \
  -H "X-API-Key: $SERVICE_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "query": "session token validation", "sources": ["graph"], "top_k": 5 }'

Graph hits include the entity's relations, so you immediately see what depends on the matched entity.

Next: Docs.