Changes for version 0.02
- Added automatic ancestor cycle pruning (variant loop checking) on search states to prevent infinite recursion over cyclic graphs
- Added subgoal tabling and iterative fixpoint answer memoization
- Updated Logic::Relational::Syntax to add 'table' keyword and to fix parsing issues in facts { ... } blocks
- Added distinct_values and all_tuples deduplication helpers for queries
- Added some examples
Modules
A pure-Perl relational logic system.
Represents a rest/slurp wrapper for array unification.
Represents a symbolic constant (atom) in the logic engine.
Event dispatched when logic program changes.
Represents a logic clause (fact or rule).
Domain Specific Language helpers for relational logic.
Represents a finite domain of allowed integer values.
Base class for relational logic goals.
Conjunction of goals (AND).
Constraint goal that all variables must have distinct values.
Disjunction of goals (OR).
Goal representing a predicate call.
Goal that binds the value of an array element at a ground index.
Declarative CLP(FD) arithmetic constraint goal.
Goal to constrain a variable to a range.
Internal marker goal popping an active ancestor call frame.
Goal that always fails.
Represents a lazy step in a generator.
Evaluates a deterministic Perl test block.
Evaluates strict term identity without variable binding.
Evaluates arithmetic expressions and unifies results.
Backtracking labeling goal for domain variables.
Negation as failure (not) goal.
Goal that always succeeds.
Goal that unifies two terms.
Represents the mutable relational logic program.
Manages the execution and backtracking search of a query.
Serializes and deserializes knowledge base snapshots.
Represents a single solution from a logic query.
Represents a frozen search state in the logic engine.
Standard Relational Logic Library.
Represents an immutable variable substitution mapping.
Declarative syntax layer for Logic::Relational.
Represents a compound term in the logic engine.
Event dispatched during query execution tracing.
Performs structural unification of logic terms.
Represents a logical variable in the logic engine.
Examples
- examples/Murdoku.pl
- examples/alter.pl
- examples/api_payload_validator.pl
- examples/battleship_ai.pl
- examples/clpfd_magic_square.pl
- examples/cryptarithmetic.pl
- examples/db_backed_relations.pl
- examples/eligible_users.pl
- examples/factorial.pl
- examples/family.pl
- examples/generators.pl
- examples/list_member.pl
- examples/monkey.pl
- examples/network.pl
- examples/populations.pl
- examples/rbac_policy_engine.pl
- examples/route_finder.pl
- examples/stdlib_demo.pl
- examples/tabling_and_cycles.pl
- examples/temporary_and_expiring.pl