Двигатели правил в некоторых случаях могут предложить большую ценность.
Во-первых, многие механизмы правил работают более декларативно. Очень грубым примером будет AWK, где вы можете назначить регулярные выражения для блоков кода. Когда регулярное выражение видит файловый сканер, блок кода выполняется.
Вы можете видеть, что в этом случае, если у вас есть, скажем, большой файл AWK, и вы хотите добавить еще одно «правило», вы можете легко перейти к нижней части файла, добавить регулярное выражение и логику, и покончим с этим. В частности, для многих приложений вас не особо беспокоит то, что делают другие правила, и эти правила на самом деле не взаимодействуют друг с другом.
Таким образом, файл AWK становится больше похожим на «суп из правил». Эта природа «супа правил» позволяет людям очень пристально сосредоточиться на своей области, не обращая внимания на все остальные правила, которые могут присутствовать в системе.
Например, Фрэнк интересуется заказами на общую сумму более 1000 долларов, поэтому он подключается к системе правил, которая ему интересна. «IF order.total> 1000 THEN email Frank».
Тем временем Салли хочет получить все заказы с западного побережья: "IF order.source == 'WEST_COAST' THEN email Sally".
Итак, вы можете видеть в этом тривиальном надуманном случае, что ордер может удовлетворять обоим правилам, но оба правила не зависят друг от друга. Заказ на 1200 долларов с Западного побережья уведомляет Фрэнка и Салли. Когда Фрэнк перестанет беспокоиться, он просто вытянет свое правило из супа.
Для многих ситуаций эта гибкость может быть очень мощной. Как и в этом случае, он может быть представлен конечным пользователям для простых правил. Использование высокоуровневых выражений и, возможно, легких сценариев.
Теперь ясно, что в сложной системе существуют всевозможные взаимосвязи, которые могут возникнуть, и именно поэтому вся система не «покончила с правилами». Кто-то где-то будет отвечать за то, чтобы правила не выходили из-под контроля. Но это не обязательно уменьшает ценность, которую может обеспечить такая система.
Имейте в виду, что это даже не относится к таким вещам, как экспертные системы, где правила запускают данные, которые они могут создавать, но к более простой системе правил.
В любом случае, я надеюсь, что этот пример показывает, как система правил может помочь дополнить более крупное приложение.