code: @Override
      public void activate(RuleBlock ruleBlock) {
          if (FuzzyLite.isDebugging()) {
              FuzzyLite.logger().log(Level.FINE, "Activation: {0} {1}",
                      new String[]{getClass().getName(), parameters()});
          }
          TNorm conjunction = ruleBlock.getConjunction();
          SNorm disjunction = ruleBlock.getDisjunction();
          TNorm implication = ruleBlock.getImplication();
  
          PriorityQueue<Rule> rulesToActivate = new PriorityQueue<Rule>(
                  numberOfRules, new Ascending());
  
          for (Rule rule : ruleBlock.getRules()) {
              rule.deactivate();
  
              if (rule.isLoaded()) {
                  double activationDegree = rule.activateWith(conjunction, disjunction);
                  if (Op.isGt(activationDegree, 0.0)) {
                      rulesToActivate.offer(rule);
                  }
              }
          }
  
          int activated = 0;
          while (!rulesToActivate.isEmpty() && activated++ < numberOfRules) {
              rulesToActivate.poll().trigger(implication);
          }
      }
docs: Activates the rules with the lowest activation degrees in the given rule
  block
  
  @param ruleBlock is the rule block to activate