in rules/predicate.py [0:0]
def generate_discrete_predicates(attribute_name: str, values: Set) -> Set[Predicate]:
preds = set()
# In a boolean attribute (e.g., True, False), there is no need to generate 4 predicates:
# (attribute_name != values[0]) implies (attribute_name == values[1])
if len(values) == 2:
values = list(values)
preds.add(Predicate(attribute_name, "==", values[0]))
preds.add(Predicate(attribute_name, "==", values[1]))
return preds
for v in values:
pred_eq = Predicate(attribute_name, "==", v)
preds.add(pred_eq)
pred_neq = Predicate(attribute_name, "!=", v)
preds.add(pred_neq)
return preds