brainy/src/neural/embeddedTypeEmbeddings.ts

118 lines
343 KiB
TypeScript
Raw Normal View History

/**
* 🧠 BRAINY EMBEDDED TYPE EMBEDDINGS
*
* AUTO-GENERATED - DO NOT EDIT
* Generated: 2025-11-06T16:58:34.845Z
* Noun Types: 42
* Verb Types: 127
*
* This file contains pre-computed embeddings for all NounTypes and VerbTypes.
* No runtime computation needed, instant availability!
*/
import { NounType, VerbType } from '../types/graphTypes.js'
import { Vector } from '../coreTypes.js'
// Type metadata
export const TYPE_METADATA = {
nounTypes: 42,
verbTypes: 127,
totalTypes: 169,
embeddingDimensions: 384,
generatedAt: "2025-11-06T16:58:34.845Z",
sizeBytes: {
embeddings: 259584,
base64: 346112
}
}
// All noun types in order
const NOUN_TYPE_ORDER: NounType[] = ["person","organization","location","thing","concept","event","agent","organism","substance","quality","timeInterval","function","proposition","document","media","file","message","collection","dataset","product","service","task","project","process","state","role","language","currency","measurement","hypothesis","experiment","contract","regulation","interface","resource","custom","socialGroup","institution","norm","informationContent","informationBearer","relationship"]
// All verb types in order
const VERB_TYPE_ORDER: VerbType[] = ["instanceOf","subclassOf","participatesIn","relatedTo","contains","partOf","references","locatedAt","adjacentTo","precedes","during","occursAt","causes","enables","prevents","dependsOn","requires","creates","transforms","becomes","modifies","consumes","destroys","owns","attributedTo","hasQuality","realizes","affects","composedOf","inherits","memberOf","worksWith","friendOf","follows","likes","reportsTo","mentors","communicates","describes","defines","categorizes","measures","evaluates","uses","implements","extends","equivalentTo","believes","conflicts","synchronizes","competes","canCause","mustCause","wouldCauseIf","couldBe","mustBe","counterfactual","knows","doubts","desires","intends","fears","loves","hates","hopes","perceives","learns","probablyCauses","uncertainRelation","correlatesWith","approximatelyEquals","greaterThan","similarityDegree","moreXThan","hasDegree","partiallyHas","carries","encodes","obligatedTo","permittedTo","prohibitedFrom","shouldDo","mustNotDo","trueInContext","perceivedAs","interpretedAs","validInFrame","trueFrom","overlaps","immediatelyAfter","eventuallyLeadsTo","simultaneousWith","hasDuration","recurringWith","containsSpatially","overlapsSpatially","surrounds","connectedTo","above","below","inside","outside","facing","represents","embodies","opposes","alliesWith","conformsTo","measuredIn","convertsTo","hasMagnitude","dimensionallyEquals","persistsThrough","gainsProperty","losesProperty","remainsSame","functionalPartOf","topologicalPartOf","temporalPartOf","conceptualPartOf","rigidlyDependsOn","functionallyDependsOn","historicallyDependsOn","endorses","contradicts","supports","supersedes"]
// Pre-computed embeddings (338.0KB base64)
const EMBEDDINGS_BASE64 = "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
// Decode embeddings at startup (happens once, <10ms)
function decodeEmbeddings(): Uint8Array {
if (typeof Buffer !== 'undefined') {
// Node.js environment
return Buffer.from(EMBEDDINGS_BASE64, 'base64')
} else if (typeof atob !== 'undefined') {
// Browser environment
const binaryString = atob(EMBEDDINGS_BASE64)
const bytes = new Uint8Array(binaryString.length)
for (let i = 0; i < binaryString.length; i++) {
bytes[i] = binaryString.charCodeAt(i)
}
return bytes
}
return new Uint8Array(0)
}
// Cached decoded embeddings
let decodedEmbeddings: Uint8Array | null = null
/**
* Get noun type embeddings as a Map for fast lookup
* This is called once and cached
*/
export function getNounTypeEmbeddings(): Map<NounType, Vector> {
if (!decodedEmbeddings) {
decodedEmbeddings = decodeEmbeddings()
}
const embeddings = new Map<NounType, Vector>()
const view = new DataView(decodedEmbeddings.buffer)
const embeddingSize = 384
NOUN_TYPE_ORDER.forEach((type, index) => {
const offset = index * embeddingSize * 4
const embedding = new Float32Array(embeddingSize)
for (let i = 0; i < embeddingSize; i++) {
embedding[i] = view.getFloat32(offset + i * 4, true)
}
embeddings.set(type, Array.from(embedding))
})
return embeddings
}
/**
* Get verb type embeddings as a Map for fast lookup
* This is called once and cached
*/
export function getVerbTypeEmbeddings(): Map<VerbType, Vector> {
if (!decodedEmbeddings) {
decodedEmbeddings = decodeEmbeddings()
}
const embeddings = new Map<VerbType, Vector>()
const view = new DataView(decodedEmbeddings.buffer)
const embeddingSize = 384
// Verb embeddings start after noun embeddings
const verbStartOffset = 42 * embeddingSize * 4
VERB_TYPE_ORDER.forEach((type, index) => {
const offset = verbStartOffset + index * embeddingSize * 4
const embedding = new Float32Array(embeddingSize)
for (let i = 0; i < embeddingSize; i++) {
embedding[i] = view.getFloat32(offset + i * 4, true)
}
embeddings.set(type, Array.from(embedding))
})
return embeddings
}
// Import logging
import { prodLog } from '../utils/logger.js'
prodLog.info(`🧠 Brainy Type Embeddings loaded: ${TYPE_METADATA.nounTypes} nouns, ${TYPE_METADATA.verbTypes} verbs, ${(TYPE_METADATA.sizeBytes.embeddings / 1024).toFixed(1)}KB`)