Reteアルゴリズム
個々のタプルについての選択や結合の実行では、存在テスト(あるデータが存在するかどうかの判定)がよく使われる。新たな型のベータノードを実装することで、Reteネットワークで量化を実行することも可能である。存在量化は、この場合ワーキングメモリ内の WME 群に少なくとも1つマッチングする WME が存在するかどうかを判定する。全称量化は、ワーキングメモリ内の全 WME がある条件にマッチするかどうかを判定する。全称量化を拡張して、ある WME 群についてそれらが全て条件にマッチするかを判定するという量化も考えられる。他にもマッチすべき WME 数を指定したり、最低でもどれだけマッチすべきかを指定するということも考えられる。
量化は Reteアルゴリズムを使った推論エンジンに必ず備わっている機能ではないし、実装している場合も様々なバリエーションがある。存在量化のバリエーションとして「否定; negation」がある。存在否定と論理積を組み合わせたベータノードは、入力された WME(群)にある条件がマッチングしないことを判定する。このノードはマッチングしない WME をその後に伝播させる。
新たなトークンはトークンのリストの先頭となり、出力ベータメモリに格納される。
Reteアルゴリズムの一般的な説明では、ベータネットワーク内ではトークンの受け渡しとするのが普通である。しかし、本項ではトークンではなく WME リストの伝播として説明する。1つの WME リストがベータネットワークを流れる間に新たに WME が追加され、ベータメモリにリストが格納される。ベータメモリ内の WME リストは1つのルール(プロダクション)の条件群の部分マッチングを表している。
ベータネットワークの最後まで到達した WME リストは1つのプロダクションとの完全なマッチングを表しており、終端ノードに渡される。終端ノードは、p-ノードとも呼ばれる。'p' とはプロダクションを意味している。各終端ノードは1つのプロダクションに対応している。WME を受け取った終端ノードは対応するプロダクションのインスタンスを「活性化」させ、それを「アジェンダ」に追加する。アジェンダは一般に優先度付きキューとして実装されている。
ベータノードは、ベータメモリに格納されている WME リストとアルファメモリに格納されている個々の WME 群の結合を行う。ベータノードは2つの入力を持ち、アルファメモリに新たな WME が格納されると、対応するベータノードの右側の入力が活性化される。ベータメモリは WME リストを格納し、新たな WME リストが格納される度に対応するベータノードの左側の入力が活性化される。