This page collects canonical diagrams for schema shape, query-stage behavior, and salience flow. The first Mermaid block mirrors the payload returned by GET /api/ui/datamodel.

GEM operators on memory state

Companion to the prose on Formal state (GEM lens): observations advance Dt through ingest; queries read through St stages; revise and forget reshape Dt under Pt after traffic.

flowchart LR Obs([Observation]) --> Ingest[Ingest] Ingest --> Dgraph["D_t: Kuzu graph"] Q([NL query]) --> Retrieve["Retrieve: S_t stages"] Retrieve --> Dgraph Dgraph --> Revise[Revise] Revise --> Dgraph Dgraph --> Forget["Forget: P_t thresholds"] Pt["P_t: Policies"] -.-> Ingest Pt -.-> Forget

Canonical topic graph shape

flowchart LR subgraph TopicA[Topic A] metaA[title summary salience topic_kind embedding] fieldsA[fields_json] end subgraph TopicB[Topic B] metaB[...] fieldsB[fields_json] end TopicA -->|RELATED kind| TopicB fieldsA -.->|ref_topic_id| TopicB

Query execution stages

flowchart TD A[POST /v1/query] --> B{semantic stage on?} B -- yes --> C[embedding KNN or cosine pick] B -- no --> D[use topic_ids allowlist or fallback] C --> E[build topic bundles] D --> E E --> F{structural stage on?} F -- yes --> G[add neighbors + fields] F -- no --> H[skip structural expansion] G --> I{temporal + explain?} H --> I I -- yes --> J[include full field history] I -- no --> K[current snapshot only] J --> L[salience bump + topic history append] K --> L L --> M[QueryResponse]

Reasoner trigger view

flowchart LR ingest_complete --> R1[reasoner.run] query_complete --> R1 cron --> R1 memory_pressure --> R1 R1 --> F1[forget low salience] R1 --> F2[revise duplicate titles]
If Mermaid does not load (for example offline environment), the source text remains visible in page HTML and can be rendered in any Mermaid-compatible viewer.