Якщо переглядати (можливо, старші) посібники з Drools або деякі інші двигуни правил, однією з ілюстрацій їх додаткової вартості є розгадування загадок, таких як головоломка «Міс Маннерс» (посібник з Drools). Тепер такі головоломки природно формулюються та вирішуються за допомогою Prolog або новіших мов програмування обмежень, і виникає питання, чому хтось би використовував Drools для цієї мети. Додана цінність, яку надають Prolog та CPL в цьому випадку, полягає в їх здатності природним чином складати головоломку як набір логічних предикатів і автоматично шукати простір рішень (CPL є більш ефективним у цьому відношенні). Але яка додаткова цінність такого продукту, як Drools (я маю на увазі, окрім дзвіночків, як взяти, наприклад, файл Excel та перекласти його на набір правил)?
Більш конкретно, Prolog здійснює пошук зворотних треків, CLP здійснює пошук зворотних треків із поширенням обмежень, і тому замість пошуку, так би мовити, всього декартового продукту просторів для окремих змінних, вони вирізають великі частини цього простору продукту. Саме це робить їх ефективними та корисними. І Пролог, і CLP широко обговорюються в літературі.
З іншого боку, хоча зрозуміло, що алгоритм Rete кешує набір правил у вигляді деяких структур даних, таким чином (наскільки я розумію), що робить його більш ефективним для оцінки результатів, якщо деякі з вхідних даних були змінені, і надаючи засоби для ефективного оновлення цієї структури даних для поступових змін, мені складно (для мене) зрозуміти основну ідею, а тим більше її ефективність (порівняно з тим, що? Prolog? до CLP)? На жаль, важко знайти хороші посилання, які переглядають алгоритм Rete в цьому більш широкому контексті.
Документація щодо Drools, на жаль, не дуже інформативна в цьому відношенні. Найбільше, що я міг знайти, це "Алгоритм Rete, алгоритм стрибків та його нащадки, такі як Reteoo Drools (і Leaps), забезпечують дуже ефективні способи відповідності шаблонів правил до даних вашого об'єкта домену. Це особливо ефективно, коли у вас є набори даних, які не змінюйте повністю (оскільки двигун правил може запам'ятати минулі матчі). Ці алгоритми підтверджені в битві ". Дуже ефективний - порівняно з чим? Битва доведена - чи можна вказувати на реальні програми?
Я був би вдячний, якщо можна було б кинути трохи світла на цю тему або дати справжню інформацію.