@@ -128,6 +128,7 @@ Default path: `~/.mempalace/knowledge_graph.sqlite3`
128128| ` add_entity(name, entity_type='unknown', properties=None) ` | Name, type, props dict | ` str ` (entity ID) | Add or update entity node |
129129| ` add_triple(subject, predicate, obj, valid_from, valid_to, confidence, source_closet, source_file) ` | See below | ` str ` (triple ID) | Add relationship triple |
130130| ` invalidate(subject, predicate, obj, ended=None) ` | Entity names, end date | — | Mark relationship as ended |
131+ | ` supersede(...) ` | Entity names, replacement value, optional boundary | ` str ` (new triple ID) | Atomically replace one current relationship with another |
131132
132133** ` add_triple ` parameters:**
133134
@@ -142,6 +143,42 @@ Default path: `~/.mempalace/knowledge_graph.sqlite3`
142143| ` source_closet ` | ` str ` | ` None ` | Link to verbatim memory |
143144| ` source_file ` | ` str ` | ` None ` | Original source file |
144145
146+ ** ` supersede ` signature:**
147+
148+ ``` python
149+ supersede(
150+ subject,
151+ predicate,
152+ old_obj,
153+ new_obj,
154+ at = None ,
155+ confidence = 1.0 ,
156+ source_closet = None ,
157+ source_file = None ,
158+ source_drawer_id = None ,
159+ adapter_name = None ,
160+ )
161+ ```
162+
163+ ** ` supersede ` parameters:**
164+
165+ | Parameter | Type | Default | Description |
166+ | -----------| ------| ---------| -------------|
167+ | ` subject ` | ` str ` | — | Source entity name |
168+ | ` predicate ` | ` str ` | — | Single-valued relationship type |
169+ | ` old_obj ` | ` str ` | — | Current value to close if it is open |
170+ | ` new_obj ` | ` str ` | — | Replacement value to open |
171+ | ` at ` | ` str ` | current UTC instant | Handoff boundary; date-only values normalize to midnight UTC |
172+ | ` confidence ` | ` float ` | ` 1.0 ` | Confidence score 0.0–1.0 |
173+ | ` source_closet ` | ` str ` | ` None ` | Link to verbatim memory |
174+ | ` source_file ` | ` str ` | ` None ` | Original source file |
175+ | ` source_drawer_id ` | ` str ` | ` None ` | Source drawer provenance |
176+ | ` adapter_name ` | ` str ` | ` None ` | Source adapter provenance |
177+
178+ Use ` supersede ` when a single-valued relationship changes, such as a model, employer, address, or primary assignment.
179+ It closes the old fact and opens the new fact at the same precise boundary, so an as-of query at the handoff returns only the successor.
180+ Use ` invalidate ` for facts that simply ended, and ` add_triple ` for facts that can coexist.
181+
145182#### Query Methods
146183
147184| Method | Parameters | Returns |
0 commit comments