KG/dot-kg Discovery — 04 dot-kg Process Evidence Graph
04 — dot-kg Process Evidence Graph (Workstream C)
Evidence drawn live from dot_tools (36 DOT_KG_*), v_axis_process_inventory, dot_iu_command_run, job_queue, event_type_registry, and the law §6/§7. No DOT executed.
4.1 Per-DOT evidence (all 36, by pair)
Common to all 36: status=active, execution_engine=pg_function, script_path/file_path NULL, last_executed NULL (0 runs), paired_dot set, component_count=1 in inventory. Input/output below are hypotheses from the law's process A–J text (no per-DOT spec exists).
| pair | producer (Cấp B, on-demand, orphaned) | verifier (Cấp A, cron/dual, in inventory) | domain | proc | input → output (hypothesis) |
|---|---|---|---|---|---|
| 1 | EXTRACT | COMPLETENESS (cron) | kg.formation | A | row → entities+relations / audit coverage |
| 2 | CLASSIFY | VALIDATE (dual) | kg.formation | A | candidates → species+labels / validate→quarantine |
| 3 | LINK | CONSISTENCY (cron) | kg.formation | A | entities → edges+Qdrant / consistency audit |
| 4 | INTENT-CAPTURE | INTENT-RECALC (cron) | kg.business | B | chat/form → intent signal / recalc weights |
| 5 | RECOMMEND | FEEDBACK (cron) | kg.business | B | context → recommendation / feedback loop |
| 6 | JOURNEY-UPDATE | TIMELINESS (cron) | kg.business | B | event → journey node / staleness audit |
| 7 | CORRECT | ORPHAN (cron) | kg.quality | C | flag → correction / orphan-edge scan→auto-link |
| 8 | SIMILARITY | HEALTH (cron) | kg.quality | C/D | embedding → similar set / health snapshot 07:00 |
| 9 | SCAFFOLD-BUILD | SCAFFOLD-VALIDATE (cron) | kg.scaffold | E | Đ38 → scaffold subgraph (dirty) / validate→clear dirty |
| 10 | SCOPE-PROJECT | SCOPE-VERIFY (cron) | kg.priority | F | person+role+goal → subgraph / ACL verify |
| 11 | PRIORITY-DECOMPOSE | PRIORITY-RECALC (cron) | kg.priority | F | goal → HTN priority tree / recalc on action done |
| 12 | DISCOVER+PROPOSE | CONSTRAINT-CHECK (cron) | kg.governance | G/C2 | data → proposed edges (APR) / realtime compliance gate |
| 13 | PROVENANCE-TAG | PROVENANCE-AUDIT (cron) | kg.governance | gov | edge → provenance JSONB / audit "no-prov=quarantine" |
| 14 | EXPLAIN | EXPLAIN-VERIFY (dual) | kg.explain | C7 | decision → explanation_path / verify path validity |
| 15 | SELF-SCORE | SELF-LEARN (dual) | kg.learning | I | outcome → self score / bounded weight update+snapshot |
| 16 | CONVERSE-EXTRACT | CONVERSE-VERIFY (cron) | kg.conversational | J | chat → extracted knowledge / auto-or-APR verify |
| 17 | EVICT-SCAN | EVICT-VERIFY (cron) | kg.eviction | H | stale scan → eviction candidates / verify→soft-delete |
| 18 | OVERRIDE-LOG | OVERRIDE-AUDIT (cron) | kg.governance | C12 | override → log (who/what/why) / audit outcomes |
Health/error signal: none available (0 executions, kg_quality_log not yet producing). Confidence per DOT: structural HIGH (defined, paired, governed, law-backed), runtime ZERO (never run).
4.2 Component graph
┌──────────────── PRODUCERS (Cấp B, on-demand, event-fired) ────────────────┐
Đ38 / data / │ EXTRACT CLASSIFY LINK INTENT-CAPTURE RECOMMEND JOURNEY-UPDATE CORRECT │
chat / goal → │ SIMILARITY SCAFFOLD-BUILD SCOPE-PROJECT PRIORITY-DECOMPOSE │ → universal_edges / KG state
│ DISCOVER+PROPOSE PROVENANCE-TAG EXPLAIN SELF-SCORE CONVERSE-EXTRACT │
│ EVICT-SCAN OVERRIDE-LOG │
└───────────────────────────────┬───────────────────────────────────────────┘
│ each producer pairs 1:1 with…
┌────────────────────────────────▼──────────────────────────────────────────┐
│ VERIFIERS (Cấp A, cron/dual, scheduled) — "Cấp A IDLE = Cấp B đúng" │
cron 02–07h → │ COMPLETENESS VALIDATE CONSISTENCY INTENT-RECALC FEEDBACK TIMELINESS ORPHAN │ → kg_quality_log
│ HEALTH SCAFFOLD-VALIDATE SCOPE-VERIFY PRIORITY-RECALC CONSTRAINT-CHECK │
│ PROVENANCE-AUDIT EXPLAIN-VERIFY SELF-LEARN CONVERSE-VERIFY EVICT-VERIFY │
│ OVERRIDE-AUDIT │
└─────────────────────────────────────────────────────────────────────────────┘
The cluster is a continuous 24/7 loop (no single linear start→end): producers fire on events, verifiers audit on cron; HEALTH (07:00) snapshots the whole.
4.3 Suspected start / end nodes
- Start nodes (event-driven): EXTRACT (A, on PG insert/update), SCAFFOLD-BUILD (E, on Đ38 enact), INTENT-CAPTURE / CONVERSE-EXTRACT (B/J, on chat), DISCOVER+PROPOSE (G, weekly). There is no single start — the law defines 10 parallel processes, each with its own trigger.
- End nodes: none are terminal; HEALTH (D, 07:00 snapshot →
kg_quality_log) is the closest to a "settle" point; SELF-LEARN (I) closes the feedback loop. The process is cyclic, not terminating — a key reason it cannot be modelled as one start→end pipeline.
4.4 Missing edges
- No materialised edges between DOTs. Pairing is the only relation (
paired_dot); the producer→verifier and A→J sequencing exists only in the law text, not in any edge table (universal_edgeshas no DOT→DOT edges). - No correlation edge: nothing links a producer run to its verifier run (no shared
process_run_id).
4.5 Orphan components (the headline finding)
- 18 producer DOTs (on-demand) are orphaned from
v_axis_process_inventory(which only ingests cron/event/dual/on-deploy). Surfaced live inv_process_discovery_orphan_componentswithorphan_class='ORPHAN_PRODUCER_PAIR_COVERED'— i.e. each one's verifier IS counted but the producer is not. This means the process axis literally shows half the KG automation. - Inventory granularity orphan: even the 18 counted verifiers are
component_count=1singletons — the 18 pairs and the single A–J cluster are not represented as composite processes anywhere.
4.6 Duplicate / obsolete components
None obsolete. Possible near-duplicate by token outside KG (e.g. *-validate, *-verify across families) but within KG the 18 pairs are distinct. The law explicitly forbids splitting/renumbering the matrix (pair #12 silent-patch note).
4.7 Relation to IU 10649925
IU 10649925 (#7-36-dot-kg, technical_spec) is the sole content artifact describing these 36 DOTs. It is the textual bridge: topic knowledge_graph → this IU → 36 DOT_KG_* rows. The pairing matrix in the IU is reproduced 1:1 in dot_tools.paired_dot. No per-DOT IU exists below this one — D2 reconstructs operations from it + the process A–J text.
4.8 Scoreability
The graph is complete enough to score: nodes (36), pairs (18), roles (producer/verifier), triggers, domains, inventory-coverage, runtime-evidence (all zero), correlation (none for DOTs). The live v_process_discovery_quality_score consumes exactly this and returns dot:kg = strong_candidate_structural (confidence 50/100): full structure, zero runtime/correlation. See doc 08 for the scoring detail.