/** * Datalog Evaluator — Rule-based recursive queries. * * Provides transitive closure, reachability, and other recursive * graph queries via Datalog-style rules evaluated over the EAV store. * * Built-in rules: * - `reachable(?src, ?tgt)` via a named link attribute * - `ancestor(?x, ?y)` (generic transitive closure over any link) * * Custom rules can be registered via `addRule()`. * * @module trellis/core/query */ import type { EAVStore } from '../store/eav-store.js'; import type { DatalogRule } from './types.js'; import { QueryEngine } from './engine.js'; /** * Creates a transitive closure rule over a specific link attribute. * * `reachable(?x, ?y) :- (x attr y)` * `reachable(?x, ?y) :- (x attr ?z), reachable(?z, ?y)` */ export declare function transitiveClosureRules(ruleName: string, linkAttribute: string): DatalogRule[]; /** * Creates a reverse reachability rule (follows links backwards). */ export declare function reverseReachabilityRules(ruleName: string, linkAttribute: string): DatalogRule[]; /** * Creates a "sibling" rule — entities that share a common parent via a link attribute. * * `sibling(?a, ?b) :- (?a attr ?parent), (?b attr ?parent)` * FILTER ?a != ?b */ export declare function siblingRules(ruleName: string, linkAttribute: string): DatalogRule[]; export declare class DatalogRuntime { private engine; constructor(store: EAVStore); /** Register a Datalog rule (or multiple). */ addRule(rule: DatalogRule): void; addRules(rules: DatalogRule[]): void; removeRule(name: string): void; /** Register built-in transitive closure for a link attribute. */ registerTransitiveClosure(ruleName: string, linkAttribute: string): void; /** Register built-in reverse reachability for a link attribute. */ registerReverseReachability(ruleName: string, linkAttribute: string): void; /** Register built-in sibling rule for a link attribute. */ registerSiblings(ruleName: string, linkAttribute: string): void; /** Get the underlying QueryEngine for direct query execution. */ getEngine(): QueryEngine; } //# sourceMappingURL=datalog.d.ts.map