AI_Kit aims to be a single dependency for various clssic AI algorithms.
Core project goals are:
convenient and ergonomic interfaces to various algorithms by building around traits.
only build what you need through the use of feature flags
easy to understand implementations
All of the algorithms (documented below) operate on several core traits,
The constraints module implements a very basic system for checking and solving constraints.
The core module contains the core data structures and traits used by all other modules.
The datum module provides a data structure, Datum, that implements the Unify trait. Datum aims to be a drop-in for any algorithm in ai_kit that operates on the Unify trait.
The infer module implements basic forward chaining inference by applying any applicable Operations to a vector of Unifys.
The pedigree module implements functionality for tracking which Unify and Operation structures were used to derive a new Unify.
The planner module implements a basic system for backtracking planner.
The rule module provides a data structure, Rule, that implements the Operation trait. Rule aims to be a drop-in for any algorithm in ai_kit that operates on the Operation trait.