그래서 이미 .drl 파일에서 작성한 규칙에 따라 의사 결정 테이블을 만들려고했습니다. 그런 다음 다시 .drl로 변환하려고했습니다. drl에서 xls/csv로 멋진 변환을 보지 못했으며 jboss 문서가 충분히 포괄적이지 않았습니다. 규칙이 간단한 의사 결정 테이블에 너무 복잡하기는하지만이 커뮤니티가 나를 도울 수 있기를 바랍니다. Drool 의사 결정 테이블 만들기
rule "Patient: Compute BMI"
when
$basic : BasicInfoModel(
notPresent('bmi'),
isPresent('height'),
isPresent('weight'),
$height : value('height', 0.0),
$weight : value('weight', 0.0))
then
modify($basic){
put('bmi', $weight/Math.pow($height,2))
};
end
그래서이 규칙은 기본적으로 물체의 무게와 높이 필드에서 보이는 다음 BMI를 계산 : 여기
는 DRL이다. 기본적으로 내가 가지고있는 것을 가져 와서 의사 결정 테이블 형식으로 넣으려고했지만 거의 성공하지 못했습니다. 아무것도 실제로 구문 분석 (나는 단지 droolsSpreadSheet.compile을 사용하고 내가 얻은 것을 인쇄하고 있는데 이것은 빈 규칙 전체입니다). 어떤 도움을 주시면 감사하겠습니다!
업데이트 :
package DROOLS;
//generated from Decision Table
import basic.BasicInfoModel;
// rule values at A11, header at A6
rule "Computing BMI"
when
$patient:BasicInfoModel(notPresent('bmi'), isPresent('height'),isPresent('weight'), $height:value('height', 0.0), $weight:value('weight',0.0) == "20,4")
then
end
업데이트 # 2 : This is what my excel sheet looks like 이 내 규칙이 파싱 것입니다 나는 내 구문 분석 문제를 파악 생각합니다. Here is my new and improved spreadsheet., 기본적으로 내가 컴퓨팅 BMI를 가질 수 없다는 것을 알았습니다 : 데이터가 공백인데 규칙을 파싱하려면 뭔가가 있어야합니다. (필자가 읽은 문서에서는 명확하지 않지만, 의사 결정 테이블은 가볍게 두는 초심자이다).
// rule values at A11, header at A6
rule "Computing BMI"
when
$patient:BasicInfoModel(notPresent('bmi'), isPresent('height'), isPresent('weight') == "TRUE")
$weight:value('weight',0.0), $height:value('height', 0.0)
then
modify($patient){put('bmi', $weight/Math.pow($height,2))};
end
누군가가 내가 구문 분석에 대한 위해 규칙의 실제, 특정 데이터를 가지고 있는지 확인할 수 있습니다
는 이제 컴파일 더 내가 원하는 것 같습니다? 다른 곳에 주사를 사용할 수 있습니까? 아마도 나는 이것에 대해 새로운 질문을해야 할 것입니다.
DRL에서 컴파일하고 실행할 때이 규칙이 올바르게 작동합니까? – laune
예! 그래서 여러가지 다른 메소드가있는 객체가 있습니다. 그 중 하나는 올바른 키, 값 쌍을 내부에 배치하는 hashmap입니다. – Kevin
좋습니다. 따라서 이러한 제약 조건을 의사 결정 테이블 형식에 맞추려고 시도하는 동안 실수를했을 수 있습니다. xls을 csv로 내보내고 질문에 편집 할 수 있습니다. -하지만 다른 규칙을 만들 수 있도록 값을 변경할 수 없기 때문에 결정 테이블에서 이익을 얻는 방법을 알지 못합니다. – laune