Учебники

Слюни – Написание правил

Если вы видите правило по умолчанию, которое записано в проекте Hello World (Sample.drl), используется много ключевых слов, которые мы сейчас расскажем.

Правило по умолчанию

Sample.drl

  • Пакет – каждое правило начинается с имени пакета. Пакет действует как пространство имен для Правил. Имена правил в пакете должны быть уникальными. Пакеты в Правилах аналогичны пакетам в Java.

  • Оператор импорта – к каким фактам вы хотите применить правило, эти факты необходимо импортировать. Например, com.sample.DroolsTest.Message; в приведенном выше примере.

  • Определение правила – оно состоит из имени правила, условия и следствия. Слюни ключевые слова являются правилом, когда, тогда и конец . В приведенном выше примере имена правил: «Hello World» и «GoodBye». Часть when является условием в правилах, а часть then является следствием. В терминологии правила, когда часть также называется LHS (левая сторона), а затем часть как RHS (правая сторона) правила.

Пакет – каждое правило начинается с имени пакета. Пакет действует как пространство имен для Правил. Имена правил в пакете должны быть уникальными. Пакеты в Правилах аналогичны пакетам в Java.

Оператор импорта – к каким фактам вы хотите применить правило, эти факты необходимо импортировать. Например, com.sample.DroolsTest.Message; в приведенном выше примере.

Определение правила – оно состоит из имени правила, условия и следствия. Слюни ключевые слова являются правилом, когда, тогда и конец . В приведенном выше примере имена правил: «Hello World» и «GoodBye». Часть when является условием в правилах, а часть then является следствием. В терминологии правила, когда часть также называется LHS (левая сторона), а затем часть как RHS (правая сторона) правила.

Теперь давайте пройдемся по терминам, используемым в файле Java, используемом для загрузки Drools и выполнения правил.

База знаний

База знаний – это интерфейс, который управляет набором правил, процессов и внутренних типов. Он содержится внутри пакета org.drools.KnowledgeBase . В Drools их обычно называют определениями знаний или знаниями . Определения знаний сгруппированы в пакеты знаний . Определения знаний могут быть добавлены или удалены. Основная цель базы знаний – хранить и повторно использовать их, потому что их создание стоит дорого. База знаний предоставляет методы для создания сеансов знаний.

Сессия знаний

Сеанс знаний извлекается из базы знаний. Это основной интерфейс для взаимодействия с Drools Engine. Сессия знаний может быть двух типов –

  • Сессия знаний без гражданства

  • Сессия Stateful Knowledge

Сессия знаний без гражданства

Сессия Stateful Knowledge

Сессия знаний без гражданства

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

  • Проверка

    • Имеет ли этот человек право на ипотеку?

Проверка

Имеет ли этот человек право на ипотеку?

  • расчет

    • Рассчитать ипотечную премию.

расчет

Рассчитать ипотечную премию.

  • Маршрутизация и фильтрация

    • Фильтруйте входящие сообщения, такие как электронные письма, в папки.

    • Отправлять входящие сообщения в пункт назначения

Маршрутизация и фильтрация

Фильтруйте входящие сообщения, такие как электронные письма, в папки.

Отправлять входящие сообщения в пункт назначения

Сессия Stateful Knowledge

Сеансы с сохранением состояния более продолжительны и допускают итерационные изменения с течением времени. Некоторые общие случаи использования для сеансов с состоянием включают:

  • мониторинг

    • Мониторинг и анализ фондового рынка для полуавтоматической покупки.

мониторинг

Мониторинг и анализ фондового рынка для полуавтоматической покупки.

  • диагностика

    • Поиск неисправностей, медицинская диагностика

диагностика

Поиск неисправностей, медицинская диагностика

  • Логистика

    • Отслеживание посылок и обеспечение доставки

Логистика

Отслеживание посылок и обеспечение доставки

Построитель знаний

Интерфейс KnoledgeBuilder отвечает за создание пакета знаний из определений знаний (правил, процессов, типов). Он содержится внутри пакета org.drools.builder.KnowledgeBuilder . Определения знаний могут быть в различных форматах. Если возникают какие-либо проблемы со сборкой , KnowledgeBuilder сообщит об ошибках с помощью этих двух методов: hasErrors и getError .

Следующая диаграмма объясняет процесс

KnoledgeBuilder

В приведенном выше примере, поскольку мы берем простой пример сеанса с информацией без сохранения состояния, мы вставляем факт в сеанс, а затем вызывается метод fireAllRules (), и вы видите вывод.

В случае сеанса с отслеживанием состояния после запуска правил объект сеанса с отслеживанием состояния должен вызвать метод dispose (), чтобы завершить сеанс и избежать утечек памяти.