D'après ce que j'ai vu de Prolog, il semble que ce serait idéal pour créer un moteur de règles pour une application. Pourtant, je ne pense pas avoir jamais vu un moteur de règles écrit en Prolog. Y a-t-il une limitation inhérente à Prolog (par exemple, un mauvais algorithme de collecte des ordures) qui l'empêcherait d'être utilisé pour construire un moteur de règles?
prolog
rules-engine
Onorio Catenacci
la source
la source
Réponses:
Les moteurs de règles à leurs balbutiements étaient écrits presque exclusivement en Prolog - c'était le langage logique. Pour un petit ensemble de règles, ils ont très bien fonctionné. Cependant, il s'est avéré que leur échelle n'était pas très bonne. Je n'ai pas de référence définitive, mais je crois comprendre que la façon dont Prolog gère le chaînage des règles est inefficace - le modèle récursif conçu pour créer de très grandes piles qui l'a amené à une analyse.
Le développement de l'algorithme RETE et de ses successeurs a permis de traiter plus efficacement de grandes quantités de règles et a donc pris le relais.
Peut-être que le prologue moderne serait plus efficace que dans les années 80, lorsque la plupart des premiers travaux ont été effectués.
la source
Réponse ironique: parce que si les créateurs de Rules Engines connaissaient Prolog (ou Mercury ou PLANNER ou…), ils n'écriraient pas de Rules Engines, ils utiliseraient Prolog.
la source
Généralement, l'intérêt d'un moteur de règles est qu'il fait partie d'une autre application. Il est assez rare de voir des applications écrites dans Prolog, et il n'y a pas d'interface couramment disponible pour connecter Prolog à des applications écrites dans d'autres langues.
CLIPS est un outil basé sur des règles pour les moteurs de règles, qui est écrit pour être ajouté à d'autres applications . CLIPS était basé sur OPS5 et utilise l' algorithme Rete pour les règles d'élagage.
la source