API Reference ExDatalog v#0.2.0

Copy Markdown View Source

Modules

ExDatalog — a pure Elixir Datalog engine.

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

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.

Arithmetic constraint implementation for the Constraint behaviour.

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.

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 query results.

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 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.

Builder for constructing Datalog programs.

Structured result from Datalog evaluation.

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

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.

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.