This figure shows the Rules runtime. It is made up of a Client context and Rule Session context. The client can assert facts as Java objects or XML data to add them to the Rule Session working memory. The client can execute a Ruleset in the Rule Session to add an activation to the agenda in working memory for each matching rule. The client can run the rule session to fire activations: invoking any associated action including fact assertion. The rule session contains rulesets and working memory. Working memory contains asserted facts and an agenda. The agenda contains an activation for each matching rule from the rule set. The rule session provides the ability to fire activated rules and invoke their actions, if any.