At the heart of KnowledgeBench is a rules engine that has access to the knowledgebase and to any information submitted by the user. The rules consist of a number of pattern matching conditions (for example "the filler in the current formulation is inorganic" or "the specification requires 'low sodium'"). If all the conditions in a rule are "true"—that is, the current state matches the patterns—then the rule fires and the actions of the rule are carried out. Each action can add or remove candidates from lists, add an ingredient to a candidate formulation, display a web page, or a number of other different sorts of action. The rules are organised into rulesets and within a ruleset, forward chaining is used to determine which rules should be tested and in which order.