Jeśli przyjrzymy się (być może starszym) instrukcjom Drools lub innym silnikom reguł, jednym z przykładów ich wartości dodanej jest rozwiązywanie zagadek, takich jak łamigłówka Miss Manners (instrukcja Drools). Teraz takie łamigłówki są naturalnie formułowane i rozwiązywane przy użyciu Prologu lub nowszych języków programowania ograniczeń, i zastanawia się, dlaczego ktokolwiek miałby używać Drools w tym celu. Wartością dodaną, jaką Prolog i CPL w tym przypadku dają, jest ich zdolność do naturalnego formułowania układanki jako zbioru logicznych predykatów i automatycznego przeszukiwania przestrzeni rozwiązań (przy czym CPL jest pod tym względem bardziej wydajny). Ale jaka jest wartość dodana produktu, takiego jak Drools (mam na myśli oprócz dzwonków i gwizdów pobrania na przykład pliku Excela i przetłumaczenia go na zestaw reguł)?
Mówiąc dokładniej, Prolog implementuje wyszukiwanie wstecz, CLP implementuje wyszukiwanie wstecz z propagacją ograniczeń, a zatem zamiast przeszukiwać, że tak powiem, cały kartezjański iloczyn przestrzeni dla poszczególnych zmiennych, przycinają duże części tej przestrzeni produktu. To sprawia, że są skuteczne i użyteczne. Zarówno Prolog, jak i CLP są szeroko omawiane w literaturze.
Z drugiej strony, chociaż jasne jest, że algorytm Rete buforuje zestaw reguł w postaci niektórych struktur danych, co (o ile rozumiem) sprawia, że bardziej efektywna jest ocena wyników, jeśli niektóre dane wejściowe uległy zmianie, i dając środki na efektywną aktualizację tej struktury danych pod kątem przyrostowych zmian, trudno (dla mnie) zrozumieć podstawową ideę, a tym bardziej jej skuteczność (w porównaniu do tego, co? do Prologa? do CLP)? Niestety trudno znaleźć dobre referencje, które widzą algorytm Rete w tym szerszym kontekście.
Dokumentacja Drools niestety nie jest bardzo pouczająca w tym zakresie. Najbardziej udało mi się znaleźć „Algorytm Rete, algorytm Leaps i jego potomkowie, tacy jak Retro Drools (i Leaps), zapewniają bardzo skuteczne sposoby dopasowywania wzorców reguł do danych obiektu domeny. Są one szczególnie wydajne, gdy masz zestawy danych, które nie zmieniaj całkowicie (ponieważ silnik reguł zapamiętuje poprzednie mecze). Algorytmy te są sprawdzone w bitwie ". Bardzo wydajny - w porównaniu do czego? Sprawdzony w bitwie - czy można wskazać na aplikacje z prawdziwego świata?
Byłbym wdzięczny, gdyby można rzucić nieco więcej światła na ten temat lub podać ważne odniesienie.