code wiki / _hdl_build / nx_rel_measure.nx

nx_rel_measure.nx source

↩ module page · 46 lines · 2203 B

1// nx_rel_measure.nx -- MEASURE the grown-organ semantic extractor on the text in 2// /tmp/page.txt (produced by runtime/nx_page_fetch_tmp). Lives in _hdl_build so 3// its imports of the research organs resolve. Imports only the research-organ 4// tree (no fetcher). Honest before/after: number-only extractor got ~4 5// digit-facts/page; this counts QUALITATIVE (subj->rel->obj) claims. expect_exit: 0. 6 7import "nx_syscalls.nx" 8import "nx_research_extract.nx" 9import "nx_research_relation.nx" 10import "nx_research_relations.nx" 11const K_MAGIC_2097152: i64 = 2097152 12const K_MAGIC_1600: i64 = 1600 13 14func w(s: *u8) -> i64 { var n: i64 = 0; while s[n] != (0 as u8) { n = n + 1 } sys_write(1, s, n); return 0 } 15func wn(v: i64) -> i64 { 16 let b: *u8 = sys_mmap(28); var m: i64 = v 17 if m < 0 { m = 0 - m; sys_write(1, "-" as *u8, 1) } 18 let t: *u8 = sys_mmap(28); var k: i64 = 0 19 if m == 0 { t[0] = 48 as u8; k = 1 } 20 while m > 0 { t[k] = (48 + (m % 10)) as u8; m = m / 10; k = k + 1 } 21 var i: i64 = 0; while i < k { b[i] = t[k - 1 - i]; i = i + 1 } 22 sys_write(1, b, k); return 0 23} 24 25func main() -> i64 { 26 let len: *i64 = (sys_mmap(8)) as *i64 27 let txt: *u8 = sys_read_file("/tmp/page.txt" as *u8, len) 28 if len[0] <= 0 { w("READ-FAIL (run nx_page_fetch_tmp first)\n" as *u8); return 1 } 29 w("=== grown-organ semantic extractor: MEASURED on real text ===\n" as *u8) 30 w("baseline (number-only extractor, prior run): ~4 digit-facts/page\n" as *u8) 31 w("text_bytes=" as *u8); wn(len[0]); w("\n" as *u8) 32 33 let rep: *u8 = sys_mmap(K_MAGIC_2097152) 34 let cnt: i64 = nx_rel_extract_doc(txt, len[0], rep, K_MAGIC_2097152) 35 w("RAW qualitative claims = " as *u8); wn(cnt); w("\n" as *u8) 36 37 let rep2: *u8 = sys_mmap(K_MAGIC_2097152) 38 let cnt2: i64 = nx_rel_extract_doc_clean(txt, len[0], rep2, K_MAGIC_2097152) 39 w("CLEANED claims (rung-3 filter) = " as *u8); wn(cnt2); w("\n" as *u8) 40 w("--- cleaned sample (first ~1600 bytes) ---\n" as *u8) 41 var rn: i64 = 0; while rep2[rn] != (0 as u8) { rn = rn + 1 } 42 var show: i64 = rn; if show > K_MAGIC_1600 { show = K_MAGIC_1600 } 43 sys_write(1, rep2, show) 44 w("\n--- end sample ---\n" as *u8) 45 return 0 46}