I am wondering if someone can explain briefly or point to a source that discusses what is a "join from the right"?
Joins from the right allow more complex topologies to be supported by the join network, specifically groups of nested patterns within a not conditional element:
(not (b ?x)
(not (and (c ?x)
In early implementations of the rete algorithm, the right input to a join was an alpha memory (a pattern matching a single fact). Joins from the right allow the right input to be a beta memory (a group of patterns). There's an article on of the rete algorithm on wikipedia: http://en.wikipedia.org/wiki/Rete_algorithm. This paper by Doorenbos, http://reports-archive.adm.cs.cmu.edu/anon/1995/CMU-CS-95-113.pdf, also describes a method for handling what it refers to as conjunctive negations which is similar to the method used by CLIPS in versions prior to 6.3