Есть ли ошибка с механизмом выполнения PMML drools для сложной частичной оценки? - PullRequest
0 голосов
/ 15 апреля 2019

Мы попытались выполнить некоторые формулы complexPartialScore с использованием drools pmml и обнаружили, что возникла ошибка при использовании нескольких fieldRef в одной формуле complexPartialScore.

В complexPartialScore.mvel мы столкнулись с ошибками в @end {,}. при запуске следующей функции.

<Apply function="+">
    <Apply function="*">
        <Constant>0.03</Constant>
        <FieldRef field="age"/>
    </Apply>
    <FieldRef field="income"/>
</Apply>

@declare{'complexPartialScore'}

rule "PartialScore_RowScore @{context}_@{complexScore.characteristicName}_@{complexScore.attributeIndex}"
when
   $sc: @{name}ScoreCardData( @foreach{ field: complexScore.fldNames }
                             m@{ compactUpperCase(field) } == false, 
                             @{ compactAsJavaId(field) }: v@{ compactUpperCase(field) } != null@end{,})
   $sr: ScoreRow( characteristic == "@{complexScore.characteristicName}", id == "@{complexScore.characteristicName}@{complexScore.attributeIndex}" )
then
   Double score = @{complexScore.complexScore};
   System.out.println("setting a score!");
   modify( $sr ) {
      setValue(score);
   }
end

@end{}
@includeNamed{'complexPartialScore'}]`

Мы ожидали, что движок сможет выполнить и рассчитать оценку, однако обнаружил ошибку.

Изменив null @ end {,} на null @ end {','}, мы обнаружили, что движок способен правильно выполнить формулу.

Проверка, действительно ли это реальная ошибка или у нас есть какие-либо неправильные представления о том, что на самом деле поддерживается PMML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...