From 1a996d95ff2f32f6fb1ab6a6e5bb036afa6ab374 Mon Sep 17 00:00:00 2001 From: Jiri Puc Date: Fri, 10 Jul 2026 00:29:15 +0200 Subject: [PATCH] =?UTF-8?q?Requirements:=20observations=20are=20a=20fact?= =?UTF-8?q?=20layer=20=E2=80=94=20fix=20the=20E3=20bullet=20and=20the=20te?= =?UTF-8?q?mporal-split=20paragraph?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two stale spots predating D43/D49/D59 (found while authoring the implementation evals, PR #42): - §Plane E, E3 bullet: was relations-only; now names both fact layers (relations = entity→entity; observations = entity-anchored value/statement facts incl. attributed stances), both bi-temporal, both units of supersession/contradiction; only relations project to the graph. - §Retrieval temporal-split paragraph: "current-fact validity lives only on relations" → "on the fact layers — relations and observations"; claim/relation split renamed claim/fact split; citations extended with D43/D49. Co-Authored-By: Claude Fable 5 --- plan/requirements/requirements_v3.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/plan/requirements/requirements_v3.md b/plan/requirements/requirements_v3.md index 07e76dd..667dd48 100644 --- a/plan/requirements/requirements_v3.md +++ b/plan/requirements/requirements_v3.md @@ -49,9 +49,12 @@ truth, and rebuild semantics. L-numbers from earlier drafts survive as shorthand retained (D59)**: "X believes/said/opposes Y" is a verifiable proposition about X, kept and normalized to a stance observation on the holder — so "what does X think about Y, and did it change?" is answerable memory content. -- **E3 — Relations**: distinct facts `(subject, predicate, object)` normalized from claims; - many-to-many evidence links between claims and relations; the unit of supersession and - contradiction. +- **E3 — Relations + Observations**: the fact layers, normalized from claims. **Relations** are + distinct entity→entity facts `(subject, predicate, object)`; **observations** are facts about + one entity whose object is a value or statement (a headcount, a revenue figure, an attributed + stance — D43, D59), entity-anchored and untyped. Both carry bi-temporal validity and + many-to-many evidence links to claims, and both are units of supersession and contradiction; + only relations project to the graph. - **Registries** (cross-cutting substrate of plane E — registries canonicalize, layers transform): canonical **entities** with aliases and resolution; governed **predicate** vocabulary with an escape hatch and periodic promotion. @@ -149,15 +152,16 @@ on** (citations), so staleness, deletion reach, and audit are mechanical, never - Named search recipes on top of composable primitives. - **No LLM calls on the core search path** — query latency is retrieval-bound. - Full flexibility is the goal: agents choose strategies, the system does not impose one. -- **The query surface must make the claim/relation temporal split explicit to agents.** Claims have +- **The query surface must make the claim/fact temporal split explicit to agents.** Claims have **no temporal supersession** — they are immutable evidence (what a source asserted, including the validity interval *it* asserted), never closed or invalidated. **All supersession / current-fact - validity lives only on relations.** So the querying system must surface, and its API/recipe naming - must enforce, the distinction: a relation as-of query answers *"what does the system currently - believe held at T"* (it honors supersession); a claim query answers *"what did sources assert"* - (evidence, possibly stale, contradictory, or later superseded at the relation level). An agent must - never read a claim's validity as the system's current belief, and "is this still true?" must route - through relations, never through claims. (See D3, D6, D41.) + validity lives on the fact layers — relations and observations.** So the querying system must + surface, and its API/recipe naming must enforce, the distinction: a fact as-of query (over + relations or observations) answers *"what does the system currently believe held at T"* (it honors + supersession); a claim query answers *"what did sources assert"* (evidence, possibly stale, + contradictory, or later superseded at the fact level). An agent must never read a claim's validity + as the system's current belief, and "is this still true?" must route through relations and + observations, never through claims. (See D3, D6, D41, D43, D49.) ## Operational properties