2015-01-22 6 views
0

Если я определил правила набора в jess, найдется ли какой-нибудь набор правил, которые могут привести к конфликту на основе шаблонов, определенных в правиле LHS.Как найти правила, которые могут противоречить JESS?

(defrule rule1 (образец? Х)
=> (распечатка т "Правило 1 произвел"))

(defrule Rule2 (шаблон? Х)
=> (распечатка т " правило 2 уволено »))

В любом случае, чтобы найти два правила, определенные выше, в будущем возникнет конфликт, если не во время утверждения списка фактов всех активируемых правил?

ответ

0

Я не знаю, что вы подразумеваете под «конфликтом». Если есть два правила, которые срабатывают при одинаковых или почти одинаковых обстоятельствах, то это либо то, что хотел программист, и он будет работать; это не «конфликт» в здравом смысле этого слова. Хотя, если результат не соответствует спецификациям, это просто A Bug.

Поиск любых двух нетривиальных тождеств (ваш пример is тривиальный) - задача, требующая ответа на вопрос, вызывает ли какой-либо набор экземпляров объектов фактов два правила. Это эквивалентно тому, чтобы ответить на вопрос, определяет ли правило А множество, которое является подмножеством того, что определяет правило В (или наоборот).

Если ограничения просты, то разумный анализ значений перечеркивания может дать ответ, но в целом это не так просто. Ограничения могут использовать произвольные комплексные функции.

+0

Есть ли что-нибудь в JESS, похожее на верификатор слюни. – Naresh

+0

Нет, не с распределением Джесс. И, учитывая сложность, изложенную в моем ответе, я сомневаюсь, что она может быть написана с разумными усилиями. – laune

 Смежные вопросы

  • Нет связанных вопросов^_^