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}