Forward trigger literal

Home / Glossary / Forward trigger literal

A forward trigger literal (FTL) is a literal that is found in the antecedent of a forward rule and which will cause the rule to fire when an assertion matching it is added to the KB.

Normally, all the literals of a forward rule are FTLs, except literals with predicates that can’t be asserted or stored in the KB, such as #$evaluate. However, one may use #$pragmaticRequirement and #$forwardTriggerLiteral to declare which literals should be used to trigger a rule, and all other literals not so tagged will be treated as forward non-trigger literals.

Declaring FTLs this way can improve forward inference efficiency, because forward rules with FTL declarations won’t be considered at all until a GAF matching the literal becomes true, either by being asserted or by being deduced. However, this can lead to race conditions: if a rule is triggered before all of the other literals of the rule are satisfied, it won’t fire, and if they become true later it also won’t fire. In short, when a FTL pragma is placed on a rule, the assertion times of the literals of the antecedent matter.

For more information on declaring forward trigger literals, see the training module Logical Warrant vs. Pragmas.

7718 Wood Hollow Drive, Suite 250
Austin, TX 78731, USA