Description
Automatic Edge Discovery finds useful relationships that a person or importer did not explicitly draw. For a newly accepted or imported entity, it reads existing embeddings and tags, builds candidate similarities, infers a specific allowed edge verb, synthesizes reasoning, and creates confidence-bearing graph edges. A bulk backfill path applies the same behavior to existing entities.
Discovery combines deterministic signals with governed graph semantics. Embedding similarity identifies candidates with related meaning, tag overlap adds interpretable evidence, DIIICE-aware inference selects a relationship type, and a cross-vault prediction prior can inform the ranking. The engine reads stored row embeddings directly, so discovery does not pay to re-embed source content during each run.
Selling Points
- Makes the graph richer as knowledge lands without requiring exhaustive manual linking.
- Uses specific edge verbs instead of emitting a vague generic relationship.
- Stores reasoning and confidence so automatically drawn connections remain inspectable.
- Reuses existing embeddings and SQL metadata, avoiding duplicate model cost.
- Supports both post-accept discovery and bounded backfill over historical rows.
User Story
As a knowledge worker importing a set of related research notes, I want Dots to surface meaningful connections among them automatically. I can inspect why a link was proposed and benefit from richer navigation without tagging or linking every note by hand.
Extension Surface
The rating is configurable because thresholds, feature weights, limits, and company graph settings shape discovery through packages/knowledge-graph/src/discovery/config.ts and packages/knowledge-graph/src/service.ts. Extension contracts in packages/knowledge-graph/src/contracts/discovery.ts allow composition to supply prediction and post-accept collaborators, but the shipped engine still enforces the core candidate and type rules.
Capabilities & Limits
Capabilities include embedding similarity, tag overlap, inferred edge types, human-readable reasoning, post-import triggering, and bulk backfill. Repo file and code symbol kinds are enrolled alongside ordinary rows. The principal limit is same-kind discovery: a file can be compared with files and a row with equivalent row kinds, but the engine does not automatically connect arbitrary row-to-code or conversation-to-document pairs. Such cross-kind behavior needs explicit pair rules and a controlled backfill.
Implementation Map
packages/knowledge-graph/src/discovery/embedding.tspackages/knowledge-graph/src/discovery/tags.tspackages/knowledge-graph/src/discovery/infer-edge-type.tspackages/knowledge-graph/src/service.ts