Drools에서는 정의 된대로 DRL 파일에서 규칙을 결합 할 수 있습니까? 예를 들어 다음과 같은 두 가지 규칙이있는 경우 :Drools 전문가의 규칙 논리 결합
rule A
// definition
end
rule B
// definition
end
A 또는 B와 같은 논리를 구현하는 다른 규칙을 사용할 수 있습니까?
Drools에서는 정의 된대로 DRL 파일에서 규칙을 결합 할 수 있습니까? 예를 들어 다음과 같은 두 가지 규칙이있는 경우 :Drools 전문가의 규칙 논리 결합
rule A
// definition
end
rule B
// definition
end
A 또는 B와 같은 논리를 구현하는 다른 규칙을 사용할 수 있습니까?
두 개의 규칙 A와 B 은이고 A 또는 B (xor가 아님)의 논리적 등가물입니다.
다른 규칙을 참조 할 수는 없지만 쿼리를 정의하고 동일한 LHS 조건 내에서 두 개 (또는 그 이상)의 쿼리를 호출 할 수 있습니다.
그러나 논리의 전반적인 패턴은 진실 유지 관리라고하는 파생 된 사실로 삽입하여 서로 다른 규칙의 일치가 확실한 방식으로 완전히 다른 접근 방식을 제안 할 수 있습니다.
rule A when ... then
insertLogical(new Fired("A"));
end
rule B when ... then
insertLogical(new Fired("B"));
end
rule AorB when
Fired(rule == "A" || rule == "B") // other patterns for other combinations, e.g. &&
then
...
end
자세한 내용은 정확한 조언이 필요합니다.
하나의 규칙을 실행하고 다른 규칙을 취소하는 활성화 그룹을 볼 수도 있습니다.
내 상황에서는 잘 작동합니다. 시스템의 상태를 모델링하려고합니다. 그래서 저는 Drools에게 규칙을 포착하고 시스템의 상태를 알리고 나중에 추론을 할 수 있습니다. –