Course outline
AcademyModule 2 · Build and maintain a knowledge graph
Document saves and graph extraction
What you'll learn
- you can explain what background extraction does after every save, and what the change gate decides to skip
- you can read every lifecycle badge in the file tree and pick the right action for each
- you can open the "Key facts" dialog and check any fact against the exact sentence that states it
- you can use a note's connection graph to see what it links to
- you can explain why extraction never touches your markdown files
It's 4:58 pm. You finish a project meeting note (who owns what, which deadline slipped) and hit save. A few seconds later, Consilience knows that Mina owns the launch checklist and that the deadline moved to March.
You didn't click an import button, and nothing left your machine except one AI call. All you did was save a markdown file.
Search finds the sentences you already wrote; this lesson opens up how the app learns what they mean. You'll see what background extraction does and how it decides whether a save is worth re-reading. Then you'll trace any fact back to the sentence that states it.
Extraction after a document save
With "Automatic knowledge-graph extraction" on (off by default on desktop; enable it in Settings), saving a markdown note can kick off a background read. The app never edits your file: it reads a copy, runs it through the extraction model, and records what it learned in the knowledge graph.
What it records is the entities the note mentions (people, projects, places, ideas) and the named relationships between them. If "Capture your decisions and questions" is on, it also records your own verbatim statements.
- You save the note. The app checks the change gate first (next section). If the body hasn't changed, there's nothing to re-read.
- A changed note joins a background queue and waits its turn.
- The AI reads the note and records the entities, relationships, and statements it finds.
- The results go into that note's own named graph in the local store, replacing only what this note said before.
- The UI catches up live: the file-tree badge clears, the "Key facts" count updates, and the note's connection graph refreshes.
Quiet by design
Saving one note never interrupts you. The most you'll ever see is a faint hint naming the note being extracted, warning that recent edits may not be in the graph yet. It just means a chat answer you send this second might briefly miss your newest edit. Bulk imports are chattier. A solo save stays quiet.
Document changes and re-extraction conditions
Every note carries a quiet fingerprint of its body text, and that fingerprint is the gatekeeper. When you save, the app compares the old fingerprint against the new one. If they match, there's nothing new to read, so the AI is never called. Change a single character and the fingerprint changes too, so the note re-extracts and its facts are rewritten from scratch.
- Even a one-line note gets extracted. A single character of body is enough. Empty notes, or ones with only whitespace, are left alone.
- "Re-extract everything" (in the graph view's "Extraction" panel, which a later lesson tours) and Settings' "Rebuild knowledge graph" clear the gate on purpose, so every note re-queues under the latest logic.
Re-extraction only touches that note
Each note's facts live in that note's own named graph, so re-extracting swaps out only that note's contribution. Rename a note and its graph is re-keyed. Delete the note and its graph goes with it. Nothing another note said ever gets disturbed. This is why the graph can always be rebuilt safely.
Reading the file-tree badges
The file tree in the Workspace sidebar answers one question at a glance: has the AI read this yet? A colored dot sits at the right edge of each file row (folders and excluded files never get one). Hover or click the dot and a card pops up that names the state and offers a one-click fix:
| State | Badge | Card says | Button |
|---|---|---|---|
| Never extracted | red dot | "Not added to AI search yet" | "Add to AI" |
| Stale: edited since extraction | orange dot | "Changed, AI hasn't caught up" | "Update" |
Click the button and the file joins the queue. The badge flips to "Adding…" and a toast confirms "Adding to AI search…". A row with no badge at all is the state you want: the file is fully current, and what the AI knows about it matches what's on disk.
The tree shows freshness at a glance
Glance down the file tree and you can read your whole workspace's freshness at once. A clean tree means the graph knows everything your notes do.
Key facts: audit what a note asserted
Open any markdown note and look at the document sidebar. A "Key facts" button carries a live count of the facts pulled from this note. Click it and the "What this note says" dialog opens. This is your per-note audit view. Before anything is extracted, it just says "No key facts yet".
- "Key facts" tab: one readable card per entity the note mentions. You get the name in bold, a kind chip (like "Person"), an "Aliases" line, a one-line description, then relation rows linking it to other entities.
- "Connections" tab: this note's neighborhood, laid out as lists. Backlinks, unlinked mentions, notes related by meaning, and knowledge-graph neighbors. Click any of them to open that note.
- "Connection graph" (right side): "The people, projects and ideas this note connects to." It's everything one step away from this note, drawn with the same 3D view as the full graph you'll tour later. Click a node to isolate its neighborhood, click it again to exit.
Every relation row can prove itself. Hover one and Consilience shows the exact sentence in your note that states the fact, with its line number and the heading it sits under. It's always checked against your note's current text, so it stays accurate. Edit the note and, instead of quoting something that's no longer there, it says "Couldn't find a sentence stating this. The note may have changed."
One sentence, three facts
Say your note contains one line: "Mina leads Atlas, our March launch project." The Key facts tab shows a card for Mina (kind chip "Person") and one for Atlas ("Project"), with a relation row like "leads" between them. Hover the row and it quotes that exact sentence back, line number included.
However the AI phrases a fact, it traces back to a real sentence you can check. One plain sentence becomes three connected facts.
The dialog is built to be read by a person. Entities that show up name-only (no facts, aliases, type, or description) are set aside as noise, so what's left is only what the note actually asserted.
Your markdown is never touched
All of this happens in a separate store beside your files, one per workspace, kept on your device. Extraction reads a copy of your note and writes only to that store.
Your notes stay byte-for-byte what you wrote. The graph is just a rebuildable index, and Settings' "Rebuild knowledge graph" regenerates the whole thing from your files whenever you want.
Named graphs are provenance
In RDF, a fact is a triple: subject, predicate, object. A quad store adds a fourth slot for which graph the triple belongs to. Consilience spends that fourth slot on provenance. Every fact lives in a named graph derived from the note that asserted it, so the answer to "which note said this?" is part of the fact's own structure.
It's also why re-extraction stays contained: swapping out one note's named graph cannot disturb what any other note said.
- background extraction
- The on-save pipeline that reads a changed note and writes entities, relationships and statements into the graph.
- change gate
- A quiet fingerprint of a note's body text. If it hasn't changed, the note is never re-read.
- named graph
- The per-note compartment in the store that holds exactly what that note asserted. It is the provenance record.
- lifecycle badge
- The colored dot on a file row telling you whether the AI's knowledge of that file is current.
- source sentence
- The exact sentence in your note that states an extracted fact, shown with its line number and heading.
Watch a save reach the graph
- Check that Settings' "Automatic knowledge-graph extraction" is on (off by default on desktop) and that you're signed in.
- Create a note with "New document", give it a real name, and write two plain sentences that name a person and a project. For example: "Mina leads the Atlas project. Atlas launches in March."
- Save, then watch the file's row in the Workspace sidebar for a few seconds: the red "Not added to AI search yet" dot clears once extraction catches up.
- Open the document sidebar and click "Key facts", then check the count badge on the button.
- In "What this note says", hover a relation row and wait for its source sentence to appear.
- Click a node in the "Connection graph" to isolate its neighborhood, then click it again to exit.
Entity cards for your person and project, a plain-English relation between them, and, on hover, your exact sentence quoted back with its line number.
Recap
- Saving a changed note quietly re-extracts it. An unchanged save is never re-read.
- The file-tree dot is your dashboard: red = not in, orange = behind, nothing = current.
- "Key facts" is the per-note audit view, and each fact links to the exact sentence that states it.
- Extraction writes only to the separate store. The graph is a rebuildable index.
That's one note, arriving quietly. Bringing in the hundreds of files you already have, all at once, is what the Import lesson and its Extract sources wizard are for.