@manta-eu/datalog-parser
v0.1.7
Published
RDFox Datalog parser and AST builder with inference verification
Maintainers
Keywords
Readme
@manta-eu/datalog-parser
Datalog parser and AST builder with inference verification.
Features
- Complete Datalog Parser: Parses Datalog rules into type-safe ASTs
- Syntax Validation: Comprehensive rule validation with error reporting
- Built-in Function Support: CONCAT, STR, IF, IRI, SKOLEM, ROUND, REGEX functions
- Advanced Constructs: Support for FILTER, BIND, AGGREGATE, NOT EXIST patterns
- Inference Verification: Validate that rules produce expected inferences
- Transaction Management: Safe rule management with rollback capabilities
API
Core Functions
import { parseDatalogRule, validateDatalogRule, areRulesEquivalent } from "@manta-eu/datalog-parser";
// Parse rule into AST
const ast = parseDatalogRule(`:Product[?p] :- :Item[?p], :category[?p, "electronics"] .`);
// Validate syntax
const { valid, error } = validateDatalogRule(ruleText);
// Compare rules
const equivalent = areRulesEquivalent(rule1, rule2);Advanced Features
import { verifyRuleInference, withTransaction } from "@manta-eu/datalog-parser";
// Verify rule produces expected inferences against a running datastore
await verifyRuleInference(rule, endpointUrl, datastoreId, authorization);
// Manage transactions
await withTransaction({ endpointUrl, datastoreName, authorization }, async (connectionId) => {
// Rule operations here
});AST Types
import type { DatalogRule, DatalogAtom, DatalogBodyFormula } from "@manta-eu/datalog-parser";Grammar Support
- Head Atoms: Property atoms, class atoms, general atoms
- Body Formulas: All atom types plus FILTER, BIND, AGGREGATE, SKOLEM, negation
- Expressions: Binary operators, function calls, literals
- Built-in Functions: The full built-in function library
- Complex Patterns: NOT EXIST clauses with mixed formulas
