Scraper Обновлено: 3 October, 2019

Что такое Rule-Engine?

  Перевод   Ссылка на автора

Здесь я пытаюсь объяснить механизм правил очень простым способом. Давайте начнем с проблемы. Предположим, если я скажу вам, что вам нужно создать банковское приложение, в котором вы должны реализовать логику, как указано ниже.

Логика:

A person is eligible for car loan if, he has monthly salary more than 70K and his credit score is more than 900 then, approve the car loan and sanction the 60% of requested amount.

Вы можете легко реализовать эти типы правил или логики в своем приложении. Но если вы получите некоторые дополнительные требования, такие как:

  • Если существует большое количество логик, как вы будете эффективно их искать и применять? (Хорошее выступление.)
  • Если логики часто меняются, и вы обычно кодируете свою логику в приложении, то как вы будете управлять или изменять код так часто? (Избегайте частого развертывания.)
  • Разработайте приложение так, чтобы оно могло быть легко поддержано и понято деловыми людьми. (Использование нетехническими участниками)
  • Если вам нужно хранить всю свою бизнес-логику в централизованном месте и отдельно от всех приложений, то где вы будете ее хранить?

Для достижения всех этих требований в нашем приложении мы можем использоватьПравило двигатель,Но прежде чем запускать механизм правил, давайте разберемся с несколькими терминологиями и опытом.

терминологической:

  • Правило:Это набор условий, сопровождаемых набором действий.Он представляет логику системы. Правила в основном представлены вif-thenсформироваться. Он содержит в основном две части,состояние, а такжедействие, Правило также известно какпроизводство,
Rule = Condition + Action

Условие также известно какфакт или предшественники или шаблоны, И действие также известно какследствие,

  • Человек-эксперт:Человек, который является экспертом в соответствующей области бизнеса. Этот человек предоставляет знания в виде правил. Например, вышеупомянутая логика для автокредитования предоставляется банковским экспертом.

Знание в виде правил:

Rule 1: A person is eligible for car loan?
if:
1. He has monthly salary more than 70K.
2. His credit score is more than 900.then:
1. Approved car loan.
2. Sanctioned 60% of requested car loan amount.Rule 2: A person is eligible for car loan?
if:
1. He has monthly salary more than 35K.
2. His credit score is more than 700.then:
1. Approved car loan.
2. Sanctioned 90% of requested car loan amount.
  • Экспертная система:Это программа, которая использует знания человеческого эксперта для решения проблем и предоставления решения. Это также известно какоснованная на правилах системаилисистема производства,
Экспертная система
  • Механизм логического вывода:Это мозгэкспертная системакоторые управляют большим количеством правил и фактов внутри экспертной системы. Его работа заключается в подборе правил, применении данных и выработке решения. Мы обсудим это подробно.

Теперь давайте попробуем разобраться с движком правил.

Правило-Engine

Это программа экспертной системы, которая запускает правила для данных и, если выполняется какое-либо условие, выполняет соответствующие действия.

Правило-Engine

На приведенной выше диаграмме показано, что мы собираем знания в форме правил (форма if-then) и храним их в любом магазине. Правила могут храниться в любом хранилище, таком как файлы или базы данных. Теперь механизм вывода выбирает правила в соответствии с требованиями и запускает их на входных данных или запросах. Если какие-либо шаблоны / условия соответствуют, тогда он выполняет соответствующее действие и возвращает результат или решение.

Механизм логического вывода

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

  1. Прямая цепочка
  2. Обратная цепочка

Программа Inference-Engine работает в три этапа, чтобы выполнить правило для данных.

Механизм логического вывода

Этап 1 - Матч:На этом этапе механизм вывода сопоставляет факты и данные с набором правил. Этот процесс называется сопоставлением с образцом.

Алгоритм, который мы можем использовать для сопоставления с образцом:

  • линейный
  • Сеть
  • Лечить
  • Leaps

Drools является одной из реализаций двигателя правил и использовать Алгоритм повторения для сопоставления с образцом. Это один из лучших алгоритмов для сопоставления с образцом.

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

Этап 2 - Решить:На этом этапе механизм вывода управляет порядком противоречивых правил. Это разрешает конфликт и дает выбранным правилам. Для разрешения конфликта он может использовать любой из следующих алгоритмов.

  • закон
  • новизна
  • MEA
  • Refactor
  • Приоритет мудрый

Этап 3 - Выполнить:На этом этапе механизм логического вывода просто запускает действие выбранного правила для данных и возвращает результат / результат клиенту.

Методы вывода:

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

  1. Прямая цепочка
  2. Обратная цепочка

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

1. Направленная на цель / обратная аргументация:Это работает в обратном направлении от цели Здесь мы начнем с основной цели, а затем перейдем к подцелям. Таким образом, в целенаправленных рассуждениях, если мы хотим достичь главной цели, мы должны думать, что «чтобы достичь главной цели, какие подцели мы должны достичь ».

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

2. Обоснование данных / пересылка:Он начинается с доступных данных и использует правила для извлечения дополнительных данных, пока не будет достигнута цель. Здесь мы смотрим на данные, и если мы нашли какой-то шаблон, то он выполняет соответствующее действие.

Пример:Предположим, мы должны выяснитьокрас питомца по кличке Фрицс заданными правилами и данными.

Правила:

1. If X croaks and X eats flies - Then X is a frog
2. If X chirps and X sings - Then X is a canary
3. If X is a frog - Then X is green
4. If X is a canary - Then X is yellow

Данные:

1. Fritz croaks
2. Fritz eats flies

Здесь, используя данные правила и данные, мы можем извлечь больше данных, таких как:

Fritz is a frog.
Fritz is green.

Итак, теперь давайте обсудим методы вывода:

Прямая цепочка:

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

Обратная цепочка:

  • Это реализацияОбратное рассуждение,
  • Это целеустремленно.
  • Начните с заключения (Цели) и, если не найден, ищите подцели.

Есть еще одна категория под названиемГибридная цепочка, Слюни используют это. Это сочетание прямой и обратной цепочки.

Преимущества правила двигателя

Все приведенные выше конкретные требования в данном примере можно рассматривать как преимущества механизма правил.

  1. Правила очень легко читаются и кодируются любым нетехническим человеком, таким как бизнес-аналитик, команда клиентов и т. Д. Здесь вы должны сосредоточиться на «Что делать», а не «Как делать».
  2. Вы храните все свои правила в хранилище центра. Это означает, что у вас есть центральное место, где существуют все ваши бизнес-правила и логика. Это будет источником правды для вас.
  3. Логика управляется отдельно от базовой логики приложения, поэтому ее можно использовать и использовать повторно.
  4. В механизме правил мы используем различные алгоритмы сопоставления с образцом и разрешения конфликтов, которые обеспечивают высокую производительность.
  5. Для часто меняющихся требований мы можем легко обновить правила. Никаких изменений кода не требуется.
  6. Сложность кода больше, если он содержит много точек принятия решения. Механизм правил может справиться с этим гораздо лучше, потому что они используют согласованное представление бизнес-правил.
  7. Различные приложения могут использовать один и тот же механизм правил для одной и той же логики. Это увеличивает возможность повторного использования.

Реализация правил двигателя

Есть много реализаций, доступных для движка правил. Немного похоже на:

  • Drools :Drools - это решение системы управления бизнес-правилами (BRMS). Это объектно-ориентированный механизм правил для Java.
  • JRule: JRuleEngine - это механизм правил Java, основанный на запросе спецификации Java 94.
  • EasyRules: Easy Rules - это механизм правил Java, вдохновленный статьей под названием« Должен ли я использовать движок правил? »из Мартин Фаулер,