quipu_knot
Assert RDF triples into a bitemporal knowledge graph with optional SHACL validation, recording provenance, valid time, and snapshot-based fact replacement.
Instructions
Assert facts into the knowledge graph (with optional SHACL validation)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Who is making the assertion | |
| graph | No | Named-graph IRI to write into. Must already be registered committed-class (graph_create). Unknown IRI is an error, never interned. Omit for ROOT. | |
| shapes | No | Optional SHACL shapes in Turtle for validation | |
| source | No | Provenance source (episode, file, etc.) | |
| turtle | Yes | RDF data in Turtle format to assert | |
| snapshot | No | Stable producer key (e.g. 'bobbin-chunks:myrepo'). Facts written with it, with or without replace_snapshot, are owned by source 'snapshot:<key>' and a later replace under the same key retracts them; 'source' is then ignored. Scoped to the target graph. | |
| timestamp | No | TRANSACTION time: when this store came to believe the facts. Defaults to now. Also the valid-time unless valid_from is given. | |
| valid_from | No | VALID time: when the facts became true OF THE WORLD, independent of when they were ingested. RFC 3339; a UTC offset (e.g. git's 2026-09-07T07:19:41+02:00) is normalised to Z and sub-second precision is dropped, because valid-time is compared as text. Malformed values are refused before anything is written. Omit to reuse timestamp — the absent case is byte-identical to the old behaviour. | |
| blank_node_scope | No | Explicit document scope: distinct IDs separate identical loads; the same ID shares nodes across graphs only for identical input bytes. | |
| replace_snapshot | No | Replace the prior facts written under this snapshot key (diffed: unchanged facts stay live). Requires 'snapshot'. |