code wiki / _hdl_build / nx_oeuvre_graph.nx
nx_oeuvre_graph.nx
buildroot/runtime/_hdl_build/nx_oeuvre_graph.nx
about
nx_oeuvre_graph.nx -- SREACH-OEUVRE O1: the DV2.0 MANY-TO-MANY information graph
foundation, authored into the SOVEREIGN STORE (knowledge/store/oeuvre-) via nx_seg_store.
This is the read-side schema of the "an agent CREATES a product in a PLACE / a person
VIEWS|BUYS a product in a PLACE" model (operator, 2026-06-13): no privileged root --
ANY node (agent person/org, work, franchise, character, medium, place) is a first-class
search anchor, and every relationship is many-to-many (the whole point: search "zatoichi"
-> its MANY feature films, like Google's knowledge panel but sovereign + ground-up).
HONEST SCOPE (rule 5, no-overclaim): O1 proves the SCHEMA + the M:N TRAVERSAL MECHANISM on
a SEEDED FIXTURE (every hub source-anchor = "seed:fixture"). The LIVE enumeration of a real
producer's true body-of-work from wikidata/wikipedia/Commons is authored-by-organ in O2
(resolver) + O3 (enumerator) -- NOT claimed here. This gate is the floor everything founds on.
IDEMPOTENT (rule 10): a record is written only if absent-or-changed; then EVERY record is
read back and the M:N traversals are recomputed FROM THE STORE -> verdict GREEN only when the
store actually holds + traverses what we intended. Negative control (a bogus link, and the
screwdriver NOT in a film series) MUST come back absent, so the gate cannot false-green.
Evidence -> knowledge/status/oeuvre_graph.log. license_tier: ORIGINAL
module: nishi-core.search.oeuvre.graph
depends: nx_seg_store.nx, nx_syscalls.nx
capability: OEUVRE_GRAPH_SCHEMA
dependencies 3 imports · 0 importers
imports: nx_seg_store.nxnx_itoa_lib.nxnx_syscalls.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 27 | const OG_PREFIX: *u8 = "knowledge/store/oeuvre-" |
| 28 | const OG_LOG: *u8 = "knowledge/status/oeuvre_graph.log" |
functions
| 30 | func og_len(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } return n } |
| 32 | func og_w(fd: i64, s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(fd, s, n); return 0 } |
| 38 | func og_wn(fd: i64, v: i64) -> i64 { nxi_fd(fd, v); return 0 } |
| 42 | func og_streq(key: *u8, val: *u8) -> i64 |
| 58 | func og_fields(key: *u8) -> i64 |
| 73 | func og_has(key: *u8, needle: *u8) -> i64 |
| 93 | func og_absent(key: *u8) -> i64 |
| 100 | func og_seg_next() -> i64 |
| 107 | func og_emit(fd: i64, nrec: i64, written: i64, verified: i64, mns: i64, mnwa: i64, mnaw: i64, neg: i64, ok: i64) -> i64 |
| 120 | func main() -> i64 |