private void FillRulesAndFactorsLogicalOutput(IList <Rule> baseRuleTree, WorkingMemory workingMemory)
 {
     foreach (Rule rule in baseRuleTree)
     {
         if (this.workingMemory.HaveJudgments(rule.Antecedent.JudgmentList))
         {
             this.rulesOutput[this.iteration].Add(rule);
             this.factorsOutput[this.iteration].Add(rule.Consequent.Judgment);
         }
         else
         {
             this.FillRulesAndFactorsLogicalOutput(rule.GetChildRules(), workingMemory);
         }
     }
 }