Если вы видите правило по умолчанию, которое записано в проекте 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 .
Следующая диаграмма объясняет процесс
В приведенном выше примере, поскольку мы берем простой пример сеанса с информацией без сохранения состояния, мы вставляем факт в сеанс, а затем вызывается метод fireAllRules (), и вы видите вывод.
В случае сеанса с отслеживанием состояния после запуска правил объект сеанса с отслеживанием состояния должен вызвать метод dispose (), чтобы завершить сеанс и избежать утечек памяти.