unrdf
Version:
Production-ready RDF knowledge graph library with Knowledge Hooks, SPARC methodology, and Knowledge Substrate optimization
1 lines • 14.7 kB
Source Map (JSON)
{"version":3,"file":"knowledge-engine.mjs","names":["options","TransactionManager"],"sources":["../src/knowledge-engine.mjs"],"sourcesContent":["/**\n * @file Main entry point for the Knowledge Engine.\n * @module knowledge-engine\n * \n * A comprehensive RDF processing engine that provides:\n * - Parsing and serialization (Turtle, N-Quads, JSON-LD)\n * - SPARQL querying with Comunica\n * - SHACL validation\n * - N3 reasoning with eyereasoner\n * - Canonicalization and isomorphism checks\n * - Transaction management with hooks and receipts\n * \n * @version 1.0.0\n * @license MIT\n */\n\n// Core parsing and serialization\nexport { \n parseTurtle, \n toTurtle, \n toNQuads,\n parseJsonLd,\n toJsonLd\n} from './knowledge-engine/parse.mjs';\n\n// SPARQL querying\nexport { \n query,\n select,\n ask,\n construct,\n describe,\n update,\n getQueryStats\n} from './knowledge-engine/query.mjs';\n\n// SHACL validation\nexport { \n validateShacl,\n validateShaclMultiple,\n formatValidationReport,\n hasValidationErrors,\n getValidationErrors,\n getValidationWarnings\n} from './knowledge-engine/validate.mjs';\n\n// N3 reasoning\nexport { \n reason,\n reasonMultiple,\n extractInferred,\n getReasoningStats,\n validateRules,\n createReasoningSession\n} from './knowledge-engine/reason.mjs';\n\n// Canonicalization and isomorphism\nexport { \n canonicalize, \n isIsomorphic,\n getCanonicalHash,\n groupByIsomorphism,\n findDuplicates,\n getCanonicalizationStats,\n createCanonicalizationSession\n} from './knowledge-engine/canonicalize.mjs';\n\n// Transaction management\nexport { \n TransactionManager,\n printReceipt\n} from './knowledge-engine/transaction.mjs';\n\n/**\n * Create a complete knowledge engine instance with all capabilities.\n * @param {Object} [options] - Engine options\n * @param {string} [options.baseIRI] - Base IRI for parsing\n * @param {boolean} [options.strictMode] - Enable strict validation mode\n * @param {number} [options.maxHooks] - Maximum number of transaction hooks\n * @returns {Object} Knowledge engine instance\n * \n * @example\n * const engine = createKnowledgeEngine({\n * baseIRI: 'http://example.org/',\n * strictMode: true\n * });\n * \n * // Parse data\n * const store = await engine.parseTurtle(ttl);\n * \n * // Query data\n * const results = await engine.query(store, 'SELECT ?s ?o WHERE { ?s ?p ?o }');\n * \n * // Validate data\n * const report = engine.validateShacl(store, shapes);\n * \n * // Reason over data\n * const reasoned = await engine.reason(store, rules);\n * \n * // Canonicalize data\n * const canonical = await engine.canonicalize(store);\n * \n * // Manage transactions\n * const tx = new engine.TransactionManager();\n * const result = await tx.apply(store, delta);\n */\nexport function createKnowledgeEngine(options = {}) {\n const {\n baseIRI = 'http://example.org/',\n strictMode = false,\n maxHooks = 100\n } = options;\n\n return {\n // Core options\n baseIRI,\n strictMode,\n maxHooks,\n\n // Parsing and serialization\n async parseTurtle(ttl) {\n const { parseTurtle } = await import('./knowledge-engine/parse.mjs');\n return parseTurtle(ttl, baseIRI);\n },\n\n async toTurtle(store, options = {}) {\n const { toTurtle } = await import('./knowledge-engine/parse.mjs');\n return toTurtle(store, options);\n },\n\n async toNQuads(store, options = {}) {\n const { toNQuads } = await import('./knowledge-engine/parse.mjs');\n return toNQuads(store, options);\n },\n\n async parseJsonLd(jsonld, options = {}) {\n const { parseJsonLd } = await import('./knowledge-engine/parse.mjs');\n return parseJsonLd(jsonld, { baseIRI, ...options });\n },\n\n async toJsonLd(store, options = {}) {\n const { toJsonLd } = await import('./knowledge-engine/parse.mjs');\n return toJsonLd(store, options);\n },\n\n // SPARQL querying\n async query(store, sparql, options = {}) {\n const { query } = await import('./knowledge-engine/query.mjs');\n return query(store, sparql, options);\n },\n\n async select(store, sparql, options = {}) {\n const { select } = await import('./knowledge-engine/query.mjs');\n return select(store, sparql, options);\n },\n\n async ask(store, sparql, options = {}) {\n const { ask } = await import('./knowledge-engine/query.mjs');\n return ask(store, sparql, options);\n },\n\n async construct(store, sparql, options = {}) {\n const { construct } = await import('./knowledge-engine/query.mjs');\n return construct(store, sparql, options);\n },\n\n async describe(store, sparql, options = {}) {\n const { describe } = await import('./knowledge-engine/query.mjs');\n return describe(store, sparql, options);\n },\n\n async update(store, sparql, options = {}) {\n const { update } = await import('./knowledge-engine/query.mjs');\n return update(store, sparql, options);\n },\n\n async getQueryStats(store, sparql, options = {}) {\n const { getQueryStats } = await import('./knowledge-engine/query.mjs');\n return getQueryStats(store, sparql, options);\n },\n\n // SHACL validation\n async validateShacl(store, shapes, options = {}) {\n const { validateShacl } = await import('./knowledge-engine/validate.mjs');\n return validateShacl(store, shapes, options);\n },\n\n async validateShaclMultiple(store, shapesList, options = {}) {\n const { validateShaclMultiple } = await import('./knowledge-engine/validate.mjs');\n return validateShaclMultiple(store, shapesList, options);\n },\n\n async formatValidationReport(validationResult, options = {}) {\n const { formatValidationReport } = await import('./knowledge-engine/validate.mjs');\n return formatValidationReport(validationResult, options);\n },\n\n async hasValidationErrors(validationResult) {\n const { hasValidationErrors } = await import('./knowledge-engine/validate.mjs');\n return hasValidationErrors(validationResult);\n },\n\n async getValidationErrors(validationResult) {\n const { getValidationErrors } = await import('./knowledge-engine/validate.mjs');\n return getValidationErrors(validationResult);\n },\n\n async getValidationWarnings(validationResult) {\n const { getValidationWarnings } = await import('./knowledge-engine/validate.mjs');\n return getValidationWarnings(validationResult);\n },\n\n // N3 reasoning\n async reason(store, rules, options = {}) {\n const { reason } = await import('./knowledge-engine/reason.mjs');\n return reason(store, rules, options);\n },\n\n async reasonMultiple(store, rulesList, options = {}) {\n const { reasonMultiple } = await import('./knowledge-engine/reason.mjs');\n return reasonMultiple(store, rulesList, options);\n },\n\n async extractInferred(originalStore, reasonedStore) {\n const { extractInferred } = await import('./knowledge-engine/reason.mjs');\n return extractInferred(originalStore, reasonedStore);\n },\n\n async getReasoningStats(originalStore, reasonedStore) {\n const { getReasoningStats } = await import('./knowledge-engine/reason.mjs');\n return getReasoningStats(originalStore, reasonedStore);\n },\n\n async validateRules(rules) {\n const { validateRules } = await import('./knowledge-engine/reason.mjs');\n return validateRules(rules);\n },\n\n async createReasoningSession(initialStore, rules, options = {}) {\n const { createReasoningSession } = await import('./knowledge-engine/reason.mjs');\n return createReasoningSession(initialStore, rules, options);\n },\n\n // Canonicalization and isomorphism\n async canonicalize(store, options = {}) {\n const { canonicalize } = await import('./knowledge-engine/canonicalize.mjs');\n return canonicalize(store, options);\n },\n\n async isIsomorphic(storeA, storeB, options = {}) {\n const { isIsomorphic } = await import('./knowledge-engine/canonicalize.mjs');\n return isIsomorphic(storeA, storeB, options);\n },\n\n async getCanonicalHash(store, options = {}) {\n const { getCanonicalHash } = await import('./knowledge-engine/canonicalize.mjs');\n return getCanonicalHash(store, options);\n },\n\n async groupByIsomorphism(stores, options = {}) {\n const { groupByIsomorphism } = await import('./knowledge-engine/canonicalize.mjs');\n return groupByIsomorphism(stores, options);\n },\n\n async findDuplicates(stores, options = {}) {\n const { findDuplicates } = await import('./knowledge-engine/canonicalize.mjs');\n return findDuplicates(stores, options);\n },\n\n async getCanonicalizationStats(store, options = {}) {\n const { getCanonicalizationStats } = await import('./knowledge-engine/canonicalize.mjs');\n return getCanonicalizationStats(store, options);\n },\n\n async createCanonicalizationSession(options = {}) {\n const { createCanonicalizationSession } = await import('./knowledge-engine/canonicalize.mjs');\n return createCanonicalizationSession(options);\n },\n\n // Transaction management\n async getTransactionManagerClass() {\n const { TransactionManager } = await import('./knowledge-engine/transaction.mjs');\n return TransactionManager;\n },\n\n async createTransactionManager(options = {}) {\n const { TransactionManager } = await import('./knowledge-engine/transaction.mjs');\n return new TransactionManager({\n strictMode,\n maxHooks,\n ...options\n });\n }\n };\n}\n\n/**\n * Utility function to create a simple knowledge engine with default settings.\n * @param {string} [baseIRI] - Base IRI for parsing\n * @returns {Object} Simple knowledge engine instance\n * \n * @example\n * const engine = createSimpleEngine('http://example.org/');\n * const store = await engine.parseTurtle(ttl);\n * const results = await engine.query(store, 'SELECT * WHERE { ?s ?p ?o }');\n */\nexport function createSimpleEngine(baseIRI = 'http://example.org/') {\n return createKnowledgeEngine({ baseIRI });\n}\n\n/**\n * Utility function to create a strict knowledge engine with validation enabled.\n * @param {string} [baseIRI] - Base IRI for parsing\n * @returns {Object} Strict knowledge engine instance\n * \n * @example\n * const engine = createStrictEngine('http://example.org/');\n * // All operations will use strict validation\n */\nexport function createStrictEngine(baseIRI = 'http://example.org/') {\n return createKnowledgeEngine({ \n baseIRI, \n strictMode: true,\n maxHooks: 50\n });\n}\n"],"mappings":"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"}