docs: def from_raw(self, rule_ids, outputs, raw_rules):
          """
          A helper function that converts the results returned from C function
          :param rule_ids:
          :param outputs:
          :param raw_rules:
          :return:
          """
          self._rule_pool = [([], [])] + raw_rules
          self._rule_list = []
          for i, idx in enumerate(rule_ids):
              rule = Rule([Clause(f, c) for f, c in zip(*self._rule_pool[idx])], outputs[i])
              self._rule_list.append(rule)
              # self._rule_list.append(rule_str2rule(_rule_name, outputs[i]))
          self._rule_ids = rule_ids
          self._rule_outputs = outputs