Z tego, co widziałem w Prologu, wydaje się, że byłby idealny do stworzenia silnika reguł dla aplikacji. Jednak nie sądzę, żebym kiedykolwiek widział silnik reguł napisany w Prologu. Czy jest jakieś nieodłączne ograniczenie w Prologu (np. Słaby algorytm zbierania śmieci), które uniemożliwiałyby jego wykorzystanie do budowy silnika reguł?
prolog
rules-engine
Onorio Catenacci
źródło
źródło
Odpowiedzi:
Silniki reguł w początkowej fazie były pisane prawie wyłącznie w Prologu - był to język logiczny. Przy niewielkim zestawie reguł działali świetnie. Okazało się jednak, że nie skalowały się zbyt dobrze. Nie mam definitywnego odniesienia, ale rozumiem, że sposób, w jaki Prolog radzi sobie z łańcuchem reguł, jest nieefektywny - model rekurencyjny stworzony do tworzenia bardzo dużych stosów, które doprowadziły go do pełzania.
Opracowanie algorytmu RETE i jego następców pozwoliło na bardziej efektywny sposób przetwarzania dużych ilości reguł, a więc przejęło.
Być może współczesny prolog byłby bardziej wydajny niż w latach 80., kiedy wykonano większość wczesnych prac.
źródło
Zuchwała odpowiedź: ponieważ jeśli twórcy Reguł Silników wiedzieliby o Prologu (lub Merkurego, PLANERA lub…), nie pisaliby Silników Reguł, używaliby Prologu.
źródło
Generalnie chodzi o to, że silnik reguł jest częścią innej aplikacji. Rzadko widuje się aplikacje napisane w Prologu i nie ma powszechnie dostępnego interfejsu do łączenia Prologu z aplikacjami napisanymi w innych językach.
Jednym z narzędzi opartych na regułach dla mechanizmów reguł, które jest napisane w celu dodania do innych aplikacji, jest CLIPS . CLIPS został oparty na OPS5 i wykorzystuje algorytm Rete do reguł przycinania.
źródło