API Reference ExDatalog v#0.5.0

Copy Markdown View Source

Modules

ExDatalog — a pure Elixir Datalog engine.

A Datalog atom: a relation reference with a list of terms.

A BEAM callback predicate: an Elixir function invoked during rule evaluation.

Capability metadata for storage backends and constraint sets.

Compiles a validated ExDatalog.Program into an ExDatalog.IR program.

Assigns strata to relations and rules in a validated Datalog program.

Built-in predicates: comparisons, arithmetic, type checks, string predicates, membership, and extensible constraint evaluation.

Evaluation context passed to constraint implementations.

Aggregate constraint evaluation: count, sum, min, max.

Arithmetic constraint implementation for the Constraint behaviour.

Evaluation of BEAM callback predicates.

Comparison constraint implementation for the Constraint behaviour.

Membership constraint implementation for the Constraint behaviour.

String predicate constraint implementation for the Constraint behaviour.

Type predicate constraint implementation for the Constraint behaviour.

Raised when a DSL macro cannot be compiled.

Behaviour for pluggable Datalog evaluation backends.

Binding environment for Datalog rule evaluation.

Constraint evaluation for Datalog rule bodies.

Single-rule evaluation using k-position semi-naive delta computation.

Stateless join primitives for semi-naive Datalog evaluation.

Semi-naive fixpoint evaluation engine.

Derivation tree explanation for Datalog knowledge.

A node in a derivation tree representing a rule-derived fact.

Intermediate representation (IR) types for compiled Datalog programs.

An IR atom: a relation reference with a list of IR terms.

An IR callback predicate: an Elixir function invoked during evaluation.

An IR constraint: a comparison or arithmetic predicate.

An IR fact: a ground tuple asserted as true for a given relation.

An IR relation: a named schema with arity and type information.

An IR rule: a head atom, a body of literals, an assigned stratum, and optional metadata.

An IR stratum: a group of rules and relations that must be evaluated together, ordered by stratum index.

The complete knowledge base produced by Datalog evaluation.

Magic-sets program transformation for demand-driven (goal-directed) evaluation.

Query/evaluation planner for ExDatalog.

A planned join: one positive body atom position within a rule.

An execution plan for a compiled IR program.

A planned predicate: a non-relational body element (constraint, aggregate, or callback) classified by kind.

A planned stratum: the rules and relations evaluated together at one stratum index.

Builder for constructing Datalog programs.

A Datalog rule: head :- body [, constraints].

An Ecto-inspired DSL for defining Datalog programs.

Metadata for a callback predicate declared with the predicate/5 macro.

Behaviour for pluggable relation storage backends.

ETS-based storage implementation using per-relation tables.

Map-based storage implementation using Maps and MapSets.

Telemetry event definitions for ExDatalog evaluation.

Term types used in Datalog atom arguments.

Returned when a DSL feature is recognized but not yet implemented.

Validation pipeline for ExDatalog programs.

Structured validation error types for ExDatalog programs.

Variable safety and range restriction checks for ExDatalog programs.

Stratification checks for ExDatalog programs.