Джесс о фактах и правилах
Я использую Jess Rule Engine с Java, и у меня есть шаблонный человек с рядом фактов. Я извиняюсь за правило, касающееся людей, и я хотел бы получить число фактов, которые удовлетворяют правилу и вызвали его возгорание. Это возможно; egCommand engine.executeCommand("(run)") возвращает только 0 или 1 в случае применения правила
1 ответ
В зависимости от того, что именно вам нужно, вы можете сделать несколько вещей. Функция (run)
на самом деле возвращает количество правил, которые сработали, поэтому, если каждый факт активирует одно правило, то возвращаемое значение (run)
сделал бы это.
Если вам нужно сделать что-то более сложное, вы можете зарегистрировать JessEventListener
получать уведомления при срабатывании каждого правила. JessEvent
будет содержать всю запись активации правила, так что вы сможете просмотреть ее и считать факты так, как вам нравится. Поскольку правила могут соответствовать несуществованию фактов или существованию хотя бы одного факта, который соответствует шаблону, и т. Д., Вопрос о том, "сколько фактов активировало правило", не совсем прост. Но с активационной записью в руках, вы можете считать их, сколько захотите.