This is a pure-Ruby forward-chaining inference engine based on the classic Rete algorithm.

Word of caution

This is complex and fragile machinery, and there may be subtle bugs that are only revealed with nontrivial usage.
Be conservative with upgrades, test your rules extensively, and please report any behaviour that is not consistent with your expectations.