private function disparaRegla(regla $r, bh $bh) { $dispara = TRUE; foreach ($r->getAntecedente() as $literal) { $dispara = $dispara && $this->disparaLiteral($literal, $bh); } return $dispara; }
$l1->setOprel(literal::$MAYOR_IGUAL); $h6 = new hecho(); $h6->setVariable('p'); $h6->setValor(1); $h6->setEsNumerico(TRUE); $r2 = new regla(); $r2->addLiteral($l1); $r2->setConsecuente($h6); $bwx->setReglas($r2); $l2 = new literal(); $l2->setHecho($h6); $l2->setOprel(literal::$IGUAL); $l3 = new literal(); $l3->setHecho($h4); $l3->setOprel(literal::$IGUAL); $r3 = new regla(); $r3->addLiteral($l2); $r3->addLiteral($l3); $h7 = new hecho(); $h7->setVariable('m'); $h7->setValor('oscar'); $h7->setEsNumerico(FALSE); $r3->setConsecuente($h7); $bwx->setReglas($r3); $meta = new hecho(); $meta->setVariable('m'); $literal = new literal(); $literal->setHecho($meta); $literal->setOprel(literal::$IGUAL); $bwx->bwcr($meta, $bh); var_dump($bh);