UNPKG

meta-log-db

Version:

Native database package for Meta-Log (ProLog, DataLog, R5RS)

144 lines 3.74 kB
/** * Browser-Native Meta-Log Database * * Browser-specific implementation of MetaLogDb using browser file I/O and IndexedDB */ import { MetaLogDbConfig, Fact } from '../types/index.js'; import { BrowserFileIO } from './io.js'; import { IndexedDBStorage } from './indexeddb-storage.js'; import { ChainComplex, HomologyResult } from '../extensions/homology/index.js'; export interface BrowserConfig extends MetaLogDbConfig { enableEncryption?: boolean; mnemonic?: string; indexedDBName?: string; cacheStrategy?: 'memory' | 'indexeddb' | 'both'; r5rsEngineURL?: string; enableHomology?: boolean; enableMetaLogNode?: boolean; enableProjectiveAffine?: boolean; enableDAG?: boolean; enableOrgMode?: boolean; } /** * Browser-Native Meta-Log Database */ export declare class MetaLogDbBrowser { private prolog?; private datalog?; private r5rs?; private jsonl; private rdf?; private shacl?; private config; private fileIO; private storage; private initialized; constructor(config?: BrowserConfig); /** * Initialize browser database (async initialization) */ init(): Promise<void>; /** * Load R5RS engine from URL or IndexedDB */ loadR5RSEngine(pathOrURL: string): Promise<void>; /** * Load canvas file (JSONL or CanvasL) from URL or IndexedDB */ loadCanvas(path: string, url?: string): Promise<void>; /** * Parse JSONL canvas */ parseJsonlCanvas(path: string, url?: string): Promise<any>; /** * Parse CanvasL file */ parseCanvasL(path: string, url?: string): Promise<any>; /** * Extract facts from canvas */ extractFactsFromCanvas(canvas: any): Fact[]; /** * Extract facts */ extractFacts(): Fact[]; /** * Convert JSONL facts to RDF */ jsonlToRdf(facts?: Fact[]): any[]; /** * Execute ProLog query */ prologQuery(query: string): Promise<any>; /** * Build ProLog database from facts */ buildPrologDb(facts: Fact[]): void; /** * Add ProLog rule */ addPrologRule(rule: string): void; /** * Execute DataLog query */ datalogQuery(query: string, program?: any): Promise<any>; /** * Build DataLog program */ buildDatalogProgram(rules: string[]): any; /** * Execute SPARQL query */ sparqlQuery(query: string): Promise<any>; /** * Store RDF triples */ storeTriples(triples: any[]): void; /** * RDFS entailment */ rdfsEntailment(triples: any[]): any[]; /** * Load SHACL shapes from URL or IndexedDB */ loadShaclShapes(path: string, url?: string): Promise<any>; /** * Validate SHACL */ validateShacl(shapes?: any, triples?: any): Promise<any>; /** * Execute R5RS function */ executeR5RS(functionName: string, args: any[]): Promise<any>; /** * Register R5RS function */ registerR5RSFunction(name: string, fn: Function): void; /** * Get configuration */ getConfig(): BrowserConfig; /** * Get file I/O instance */ getFileIO(): BrowserFileIO; /** * Get IndexedDB storage instance */ getStorage(): IndexedDBStorage; /** * Clear cache */ clearCache(): Promise<void>; /** * Validate homology of chain complex * Requires enableHomology: true in config */ validateHomology(complex: ChainComplex): HomologyResult; /** * Compute Betti number for dimension n * Requires enableHomology: true in config */ computeBetti(complex: ChainComplex, n: number): number; } //# sourceMappingURL=database.d.ts.map