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