Source code for pyreason.scripts.rules.rule

import pyreason.scripts.utils.rule_parser as rule_parser


[docs] class Rule: """ Example text: `'pred1(x,y) : [0.2, 1] <- pred2(a, b) : [1,1], pred3(b, c)'` 1. It is not possible to have weights for different clauses. Weights are 1 by default with bias 0 """ def __init__(self, rule_text: str, name: str = None, infer_edges: bool = False, set_static: bool = False, custom_thresholds=None, weights=None): """ :param rule_text: The rule in text format :param name: The name of the rule. This will appear in the rule trace :param infer_edges: Whether to infer new edges after edge rule fires :param set_static: Whether to set the atom in the head as static if the rule fires. The bounds will no longer change :param custom_thresholds: A list of custom thresholds for the rule. If not specified, the default thresholds for ANY are used. It can be a list of size #of clauses or a map of clause index to threshold :param weights: A list of weights for the rule clauses. This is passed to an annotation function. If not specified, the weights array is a list of 1s with the length as number of clauses. """
[docs] self.rule = rule_parser.parse_rule(rule_text, name, custom_thresholds, infer_edges, set_static, weights)