join from the right

Ryan Minor
  • Ryan Minor
    Ryan Minor

    I am wondering if someone can explain briefly or point to a source that discusses what is a "join from the right"?

  • Gary Riley
    Gary Riley

    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:

    (defrule example
    (a ?x)
    (not (b ?x)
            (not (and (c ?x)
                          (d ?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: This paper by Doorenbos,, 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