Убедитесь, что правило DMN не перекрывается при добавлении нового правила в таблицу DMN

Я использую camunda DMN в своем приложении (в angular, java, spring).

Я хочу проверить, не перекрывается ли правило при добавлении нового правила в таблицу DMN.

например, следующая моя таблица DMN,


| x | y | o/p |

| ‹9 | > 50 | «Азбука» |

| ‹20 | > 100 | «XYZ» |

Считайте, что пользователь такой тупой: D и может создавать правила, как указано выше.

Теперь, если i / p для указанного выше DMN равны x = 10 и y = 99, то он удовлетворяет обоим правилам.

Если я использую УНИКАЛЬНУЮ политику попаданий, она не будет показывать мне ошибку во время добавления нового правила, скорее она будет показывать мне во время оценки таблицы DMN. И я этого не хочу :(

Как избежать наложения правил при самостоятельном создании правила с помощью api camunda dmn js или camunda dmn java api?


person Prashant Shilimkar    schedule 08.02.2016    source источник


Ответы (3)


В настоящее время это невозможно, поскольку для этого потребуются знания обо всех возможных комбинациях ввода. Также довольно сложно сделать вывод о перекрывающемся диапазоне значений всех правил.

person Sebastian Menski    schedule 08.02.2016
comment
Спасибо за ответ :). Только один вопрос, есть ли функция Java, например, с учетом рассматриваемой таблицы dmn, которая возвращает мне все правила, где x = 10 (скажем, вход x не будет иметь никакого выражения. Он будет иметь только номер) - person Prashant Shilimkar; 08.02.2016
comment
Нет, возможно, вы могли бы использовать API модели DMN для реализации такой функции. Он обернут вокруг XML-структуры DMN и позволяет вам получить доступ к различным элементам, например, см. tests. - person Sebastian Menski; 08.02.2016
comment
Данке :) Ссылка очень помогла. - person Prashant Shilimkar; 09.02.2016

Как отметил Себастьян, для этого нет встроенных функций. Однако мы обсуждали в проекте, что вы можете создать параметризованный тестовый пример JUnit и самостоятельно запустить его со всеми перестановками возможностей ввода. Вы получите исключение, если вызовете таблицу решений с вводом, не имеющим уникального результата.

Ура Бернд

person Bernd Ruecker    schedule 08.02.2016

Взгляните на https://arxiv.org/pdf/1603.07466v1.pdf, это могло помочь. В документе есть ссылка на проект github с dmn-js, где добавлена ​​проверка правил, а также на онлайн-версию, где вы можете увидеть, как это работает.

person Stefan Houtzager    schedule 17.12.2016