Pelo que vi do Prolog, parece que seria ideal para criar um mecanismo de regras para um aplicativo. No entanto, acredito que nunca vi um mecanismo de regras escrito em Prolog. Existe alguma limitação inerente no Prolog (por exemplo, algoritmo de coleta de lixo ruim) que impediria que ele fosse usado para criar um mecanismo de regras?
prolog
rules-engine
Onorio Catenacci
fonte
fonte
Respostas:
Os mecanismos de regras em sua infância foram escritos quase exclusivamente em Prolog - era a linguagem lógica. Para um pequeno conjunto de regras, eles funcionaram muito bem. Porém, eles não foram muito bem dimensionados. Não tenho uma referência definitiva, mas meu entendimento é de que a maneira como o Prolog lida com o encadeamento de regras é ineficiente - o modelo recursivo criado para criar pilhas muito grandes que o levaram a um rastreamento.
O desenvolvimento do algoritmo RETE e seus sucessores permitiu uma maneira mais eficiente de processar grandes quantidades de regras, e assim assumiu.
Talvez o prólogo moderno seja mais eficiente do que nos anos 80, quando a maior parte do trabalho inicial foi realizada.
fonte
Resposta direta: porque se os criadores do Rules Engines soubessem sobre o Prolog (ou Mercury ou PLANNER ou ...) eles não estariam escrevendo o Rules Engines, eles estariam usando o Prolog.
fonte
Geralmente, o objetivo de um mecanismo de regras é que ele faz parte de outro aplicativo. É bastante raro ver aplicativos escritos no Prolog, e não há uma interface disponível para conectar o Prolog a aplicativos escritos em outros idiomas.
Uma ferramenta baseada em regras para mecanismos de regras, que é gravada para ser adicionada a outros aplicativos, é o CLIPS . O CLIPS foi baseado no OPS5 e usa o algoritmo Rete para regras de remoção.
fonte