Из того, что я видел в Прологе, кажется, что он идеально подходит для создания движка правил для приложения. Тем не менее, я не верю, что когда-либо видел механизм правил, написанный на Прологе. Есть ли в Прологе некоторое внутреннее ограничение (например, плохой алгоритм сборки мусора), которое не позволило бы использовать его для создания механизма правил?
prolog
rules-engine
Онорио Катеначчи
источник
источник
Ответы:
Правила двигателей в зачаточном состоянии были написаны почти исключительно на прологе - это был логичный язык. Для небольшого набора правил они работали отлично. Однако оказалось, что они не очень хорошо масштабируются. У меня нет точной ссылки, но я понимаю, что способ, которым Prolog обрабатывает цепочку правил, неэффективен - рекурсивная модель, созданная для создания очень больших стеков, которая привела к ползанию.
Разработка алгоритма RETE и его преемников позволила более эффективно обрабатывать большое количество правил, что и привело к победе.
Возможно, современный пролог был бы более эффективным, чем в 80-х годах, когда большая часть ранней работы была выполнена.
источник
Ответ "язык в щеке": потому что, если бы создатели систем правил знали о Prolog (или Mercury, или PLANNER, или ...), они не писали бы правила, они использовали бы Prolog.
источник
Обычно механизм правил состоит в том, что он является частью другого приложения. Довольно редко можно увидеть приложения, написанные на Prolog, и нет общедоступного интерфейса для подключения Prolog к приложениям, написанным на других языках.
Одним из основанных на правилах инструментов для механизмов правил, написанным для добавления в другие приложения, является CLIPS . CLIPS был основан на OPS5 и использует алгоритм Rete для сокращения правил.
источник