2016-08-10 2 views
-1

그래서 이미 .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 

누군가가 내가 구문 분석에 대한 위해 규칙의 실제, 특정 데이터를 가지고 있는지 확인할 수 있습니다

는 이제 컴파일 더 내가 원하는 것 같습니다? 다른 곳에 주사를 사용할 수 있습니까? 아마도 나는 이것에 대해 새로운 질문을해야 할 것입니다.

+0

DRL에서 컴파일하고 실행할 때이 규칙이 올바르게 작동합니까? – laune

+0

예! 그래서 여러가지 다른 메소드가있는 객체가 있습니다. 그 중 하나는 올바른 키, 값 쌍을 내부에 배치하는 hashmap입니다. – Kevin

+0

좋습니다. 따라서 이러한 제약 조건을 의사 결정 테이블 형식에 맞추려고 시도하는 동안 실수를했을 수 있습니다. xls을 csv로 내보내고 질문에 편집 할 수 있습니다. -하지만 다른 규칙을 만들 수 있도록 값을 변경할 수 없기 때문에 결정 테이블에서 이익을 얻는 방법을 알지 못합니다. – laune

답변

0

그렇다면 매개 변수가 필요합니다. 그러나 내가 알지 못하는 것은 데이터가 내가 만났던 모든 예처럼 하드 코드 될 필요가 없다는 것입니다. this answer에 걸림돌이되어 감사합니다. 이제 표는 this입니다. 이 문제를 해결 한 다른 사람들에게 도움이되기를 바랍니다. 또한 내 권장 사항은 꽤 많은 복사 및 붙여 넣기 복제본이있는 규칙이 없으면 스프레드 시트를 통과하는 대신 .drl로 drools를 만드는 것입니다. 그것은 어쨌든 내 두 센트입니다.

+0

"의사 결정 테이블"을 연구하십시오. 그들은 차량을 편집하는 규칙이 아닙니다. – laune

+0

나는 규칙을 편집하려하지 않고 단순히 규칙을 만들려고 노력하고있다. 그러나 하나의 규칙을 만드는 것이 의사 결정 테이블이 아닌 .drl 파일에 작성하는 것이 더 간단합니다. 그것은 많은 의미가 있습니다. – Kevin

관련 문제