def __parse_lpad(self, lpad): self.__weights = Weights() self.__logicProgram = LogicProgram() self.__constraints = [] self.__rule_counter = 0 for line in open(lpad): line = line.strip() self.__parse_AD(line)
def __call__(self,logic_program,weights,queries,evidence): self.__original_program = logic_program self.__original_weights = weights self.__new_program = LogicProgram() self.__new_weights = Weights() self.__built_rules = {} for lit in queries | evidence: self.__get_rule(lit) new_evidence = set([]) for lit in evidence: if lit.truth_value: for (new_lit,_) in self.__built_rules[lit]: new_evidence.add(new_lit) else: for (new_lit,_) in self.__built_rules[-lit]: new_evidence.add(-new_lit) return self.__new_program, self.__new_weights, new_evidence