Crate ai_kit [] [src]

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

  • performance

  • easy to understand implementations

All of the algorithms (documented below) operate on several core traits, BindingsValue, Unify, Operation.

Modules

constraints

The constraints module implements a very basic system for checking and solving constraints.

core

The core module contains the core data structures and traits used by all other modules.

datum

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.

infer

The infer module implements basic forward chaining inference by applying any applicable Operations to a vector of Unifys.

pedigree

The pedigree module implements functionality for tracking which Unify and Operation structures were used to derive a new Unify.

planner

The planner module implements a basic system for backtracking planner.

rule

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.

utils

Internal utilities