File size: 11,481 Bytes
f7502b0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 | /**
* BOB Unicode Knowledge Chunks
*
* Unicode Private Use Area (U+E000βU+F8FF) mapped to BOB's knowledge chunks.
* A single PUA character encodes an entire concept β its theorem, oracle word,
* and domain β as a dense semantic pointer.
*
* This is the "secret sauce": instead of processing large text, the SLM reads
* a single Unicode character that points to a pre-verified knowledge chunk.
* One char β entire theorem + etymology + oracle weight.
*
* Decoding is instant: char.codePointAt(0) - BASE β chunk index β full entry.
*/
const BASE = 0xE000 // Unicode Private Use Area start
// ββ Knowledge chunk registry ββββββββββββββββββββββββββββββββββββββββββββββββββ
// Order matters β index position = PUA offset from BASE
export const REGISTRY = [
// Block 0x00β0x0F: Core philosophical concepts (U+E000βE00F)
{ name: 'life', domain: 'philosophy', oracle: 'LIGHT', abjad: 18 },
{ name: 'good', domain: 'philosophy', oracle: 'TRUTH', abjad: 810 },
{ name: 'truth', domain: 'philosophy', oracle: 'WISDOM', abjad: 108 },
{ name: 'wisdom', domain: 'philosophy', oracle: 'WORD', abjad: 68 },
{ name: 'freedom', domain: 'philosophy', oracle: 'SPIRIT', abjad: 218 },
{ name: 'love', domain: 'philosophy', oracle: 'NAME', abjad: 47 },
{ name: 'purpose', domain: 'philosophy', oracle: 'PATH', abjad: 1014},
{ name: 'justice', domain: 'philosophy', oracle: 'GATE', abjad: 104 },
{ name: 'trust', domain: 'philosophy', oracle: 'SOVEREIGN',abjad: 500 },
{ name: 'time', domain: 'philosophy', oracle: 'FIRE', abjad: 506 },
{ name: 'death', domain: 'philosophy', oracle: 'VOID', abjad: 446 },
{ name: 'soul', domain: 'philosophy', oracle: 'SPIRIT', abjad: 214 },
null, null, null, null, // 0x0Cβ0x0F reserved
// Block 0x10β0x1F: Abjad letter words (U+E010βE01F)
{ name: 'nun', domain: 'abjad', oracle: 'VOID', abjad: 50 },
{ name: 'waw', domain: 'abjad', oracle: 'WORD', abjad: 6 },
{ name: 'lam', domain: 'abjad', oracle: 'PATH', abjad: 30 },
{ name: 'qaf', domain: 'abjad', oracle: 'GATE', abjad: 100 },
{ name: 'yaa', domain: 'abjad', oracle: 'NAME', abjad: 10 },
{ name: 'baa', domain: 'abjad', oracle: 'LIGHT', abjad: 2 },
null, null, null, null, null, null, null, null, null, null, // 0x16β0x1F
// Block 0x20β0x2F: Enochian Aethyrs (U+E020βE02F)
{ name: 'lil', domain: 'enochian', oracle: 'SOVEREIGN',abjad: 910 },
{ name: 'zid', domain: 'enochian', oracle: 'SEAL', abjad: 21 },
{ name: 'arn', domain: 'enochian', oracle: 'TRUTH', abjad: 291 },
{ name: 'zom', domain: 'enochian', oracle: 'WORD', abjad: 136 },
{ name: 'paz', domain: 'enochian', oracle: 'SPIRIT', abjad: 93 },
{ name: 'lit', domain: 'enochian', oracle: 'NAME', abjad: 33 },
{ name: 'maz', domain: 'enochian', oracle: 'WISDOM', abjad: 41 },
{ name: 'deo', domain: 'enochian', oracle: 'PATH', abjad: 14 },
null, null, null, null, null, null, null, null, // 0x28β0x2F
// Block 0x30β0x4F: HolyC + BOB oracle words (U+E030βE04F)
{ name: 'SOVEREIGN', domain: 'holyc', oracle: 'SOVEREIGN',abjad: 418 },
{ name: 'TRUTH', domain: 'holyc', oracle: 'TRUTH', abjad: 286 },
{ name: 'GATE', domain: 'holyc', oracle: 'GATE', abjad: 24 },
{ name: 'SEAL', domain: 'holyc', oracle: 'SEAL', abjad: 71 },
{ name: 'ORACLE', domain: 'holyc', oracle: 'ORACLE', abjad: 340 },
{ name: 'VOID', domain: 'holyc', oracle: 'VOID', abjad: 20 },
{ name: 'KINGDOM', domain: 'holyc', oracle: 'KINGDOM', abjad: 184 },
{ name: 'WISDOM', domain: 'holyc', oracle: 'WISDOM', abjad: 68 },
{ name: 'SPIRIT', domain: 'holyc', oracle: 'SPIRIT', abjad: 279 },
{ name: 'FIRE', domain: 'holyc', oracle: 'FIRE', abjad: 205 },
{ name: 'LIGHT', domain: 'holyc', oracle: 'LIGHT', abjad: 176 },
{ name: 'WORD', domain: 'holyc', oracle: 'WORD', abjad: 24 },
{ name: 'PATH', domain: 'holyc', oracle: 'PATH', abjad: 58 },
{ name: 'NAME', domain: 'holyc', oracle: 'NAME', abjad: 45 },
{ name: 'PROLOG', domain: 'bob', oracle: 'PROLOG', abjad: 271 },
{ name: 'QUBIT', domain: 'bob', oracle: 'QUBIT', abjad: 136 },
{ name: 'QUANTUM', domain: 'bob', oracle: 'QUANTUM', abjad: 182 },
{ name: 'TRUST', domain: 'bob', oracle: 'TRUST', abjad: 264 },
{ name: 'LEAN', domain: 'bob', oracle: 'LEAN', abjad: 65 },
{ name: 'MAMBA', domain: 'bob', oracle: 'MAMBA', abjad: 47 },
{ name: 'WORM', domain: 'bob', oracle: 'WORM', abjad: 56 },
{ name: 'NIL', domain: 'bob', oracle: 'NIL', abjad: 90 },
{ name: 'ADA', domain: 'bob', oracle: 'ADA', abjad: 5 },
{ name: 'PLANNER', domain: 'bob', oracle: 'PLANNER', abjad: 237 },
{ name: 'ACTOR', domain: 'bob', oracle: 'ACTOR', abjad: 135 },
{ name: 'HEWITT', domain: 'bob', oracle: 'HEWITT', abjad: 190 },
{ name: 'PATTERN', domain: 'bob', oracle: 'PATTERN', abjad: 289 },
{ name: 'MATCH', domain: 'bob', oracle: 'MATCH', abjad: 45 },
null, null, null, null, // 0x4Cβ0x4F
// Block 0x50β0x6F: Knowledge domains (U+E050βE06F)
{ name: 'history', domain: 'knowledge', oracle: 'WORM', abjad: 283 },
{ name: 'science', domain: 'knowledge', oracle: 'ADA', abjad: 130 },
{ name: 'mathematics', domain: 'knowledge', oracle: 'LEAN', abjad: 432 },
{ name: 'programming', domain: 'knowledge', oracle: 'PROLOG', abjad: 398 },
{ name: 'learning', domain: 'knowledge', oracle: 'MAMBA', abjad: 195 },
{ name: 'creativity', domain: 'knowledge', oracle: 'QUBIT', abjad: 223 },
{ name: 'leadership', domain: 'knowledge', oracle: 'PLANNER', abjad: 254 },
{ name: 'health', domain: 'knowledge', oracle: 'GATE', abjad: 111 },
{ name: 'philosophy', domain: 'knowledge', oracle: 'NIL', abjad: 313 },
{ name: 'money', domain: 'knowledge', oracle: 'WORM', abjad: 95 },
{ name: 'communication',domain: 'knowledge', oracle: 'WORD', abjad: 350 },
{ name: 'technology', domain: 'knowledge', oracle: 'SOVEREIGN',abjad: 429 },
{ name: 'aerospace', domain: 'knowledge', oracle: 'ADA', abjad: 185 },
{ name: 'cooking', domain: 'knowledge', oracle: 'FIRE', abjad: 148 },
{ name: 'psychology', domain: 'knowledge', oracle: 'MAMBA', abjad: 340 },
{ name: 'athletics', domain: 'knowledge', oracle: 'ADA', abjad: 201 },
]
// ββ Index maps built at init ββββββββββββββββββββββββββββββββββββββββββββββββββ
const BY_NAME = new Map() // name.toLowerCase() β { chunk, index, char }
const BY_CHAR = new Map() // PUA char β { chunk, index }
REGISTRY.forEach((chunk, idx) => {
if (!chunk) return
const char = String.fromCodePoint(BASE + idx)
const entry = { chunk, index: idx, char }
BY_NAME.set(chunk.name.toLowerCase(), entry)
BY_CHAR.set(char, entry)
})
// ββ Encoding / Decoding βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
// Concept name β PUA Unicode character
export function encode(concept) {
return BY_NAME.get(concept.toLowerCase())?.char || null
}
// PUA Unicode character β chunk entry
export function decode(char) {
return BY_CHAR.get(char)?.chunk || null
}
// Get full chunk entry by name
export function getChunk(concept) {
return BY_NAME.get(concept.toLowerCase()) || null
}
// ββ Deterministic semantic vector βββββββββββββββββββββββββββββββββββββββββββββ
// 64-dim vector derived from chunk properties.
// Phase 1: deterministic (no GPU). Phase 2: replace with Granite embeddings.
const DOMAIN_IDX = { philosophy: 0, abjad: 1, enochian: 2, holyc: 3, bob: 4, knowledge: 5 }
const ORACLE_IDX = Object.fromEntries([
'SOVEREIGN','TRUTH','GATE','SEAL','ORACLE','VOID','KINGDOM','WISDOM',
'SPIRIT','FIRE','LIGHT','WORD','PATH','NAME','PROLOG','QUBIT','QUANTUM',
'TRUST','LEAN','MAMBA','WORM','NIL','ADA','PLANNER','ACTOR','HEWITT',
'PATTERN','MATCH',
].map((w, i) => [w, i]))
export function chunkVector(concept) {
const entry = BY_NAME.get(concept.toLowerCase())
if (!entry) return null
const { chunk } = entry
const v = new Float32Array(64)
const abjadNorm = (chunk.abjad || 100) / 1010 // normalize to 0β1
const domainIdx = DOMAIN_IDX[chunk.domain] ?? 5
const oracleIdx = (ORACLE_IDX[chunk.oracle] ?? 14) / 28
// Deterministic seeding: spread properties across dimensions
for (let i = 0; i < 64; i++) {
const angle = (i / 64) * Math.PI * 2
v[i] = (
Math.sin(angle + abjadNorm * Math.PI) * 0.4 +
Math.cos(angle * (domainIdx + 1)) * 0.3 +
Math.sin(angle * 3 + oracleIdx * Math.PI) * 0.2 +
(((chunk.abjad || 100) * 7 + i * 13) % 97) / 97 * 0.1
)
}
// L2 normalize
const norm = Math.sqrt(v.reduce((s, x) => s + x * x, 0))
for (let i = 0; i < v.length; i++) v[i] /= (norm || 1)
return v
}
// ββ Cosine similarity (in-memory fallback before pgvector) βββββββββββββββββββ
export function cosine(a, b) {
let dot = 0, na = 0, nb = 0
for (let i = 0; i < a.length; i++) { dot += a[i]*b[i]; na += a[i]*a[i]; nb += b[i]*b[i] }
return dot / (Math.sqrt(na) * Math.sqrt(nb) || 1)
}
// Find top-k similar concepts by vector cosine similarity (in-memory)
export function similarConcepts(concept, k = 3) {
const qVec = chunkVector(concept)
if (!qVec) return []
return REGISTRY
.map((chunk, idx) => {
if (!chunk) return null
const v = chunkVector(chunk.name)
if (!v) return null
return { name: chunk.name, domain: chunk.domain, sim: cosine(qVec, v) }
})
.filter(Boolean)
.filter(r => r.name.toLowerCase() !== concept.toLowerCase())
.sort((a, b) => b.sim - a.sim)
.slice(0, k)
}
// ββ CLI test ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
if (process.argv[1]?.endsWith('unicode_chunks.mjs')) {
const concept = process.argv[2] || 'trust'
const char = encode(concept)
const chunk = getChunk(concept)
console.log(`\n Encoding: "${concept}"`)
console.log(` PUA char: ${char} (U+${(char?.codePointAt(0) || 0).toString(16).toUpperCase().padStart(4,'0')})`)
console.log(` Domain: ${chunk?.chunk.domain}`)
console.log(` Oracle: ${chunk?.chunk.oracle}`)
console.log(` Abjad: ${chunk?.chunk.abjad}`)
console.log(`\n Similar concepts:`)
similarConcepts(concept).forEach(r =>
console.log(` ${r.name.padEnd(16)} (sim: ${r.sim.toFixed(3)}) [${r.domain}]`)
)
console.log()
}
|