AI a Modern Approach brings up the rete algorithm when discussing inference in first-order logic.
However, all descriptions of the rete algorithm I found seem to use