Поддерживает ли механизм правил Drools (и алгоритм Rete в целом) правила более высокого порядка? - PullRequest
0 голосов
/ 13 октября 2019

Я могу представить такие функции более высокого уровня / мета-уровня для механизма правил:

  • Правила могут иметь атрибуты, и существует возможность выразить: если правило-P имеет значение атрибута PA = 1, тоПравило-R присвоило значение RA = 1;
  • Правила (полная структура - с содержимым и атрибутами) могут использоваться в качестве аргументов для предиката в других правилах или даже могут быть сформированы мета-рекурсивные структуры;
  • Могут существовать правила, результатом которых может быть построение нового правила и добавление к базе правил (самопрограммирование, почти то же самое, что и машина Гедла).

Поддерживает ли движок Drools такие функции, и еслинет - тогда что нужно для их реализации? Предпринимаются ли какие-то усилия для их создания, и были ли какие-то размышления по таким вопросам?

Когда я искал алгоритм Rete и функции более высокого порядка, тогда Google вернул работу по HEX-программам http://www.kr.tuwien.ac.at/research/systems/dlvhex/hexlanguage.html, но этов основном о даталоге, и, насколько я понимаю, тогда даталог похож на пролог, метод обратной цепочки. Пролог имеет довольно обширную работу над функциями высшего порядка, такими как метаинтерпретативное обучение http://andrewcropper.com/pubs/jelia19-typed.pdf и лямбда-пролог http://www.lix.polytechnique.fr/~dale/lProlog/.

Но я пытаюсь понять, как эти функции высшего порядка выражаются всистемы прямого связывания, такие как бизнес-правила, производственные правила и, в частности, Drools.

Насколько я понимаю, каждый признак высшего порядка (например, для логики высшего порядка против логики первого порядка) можно выразить какструктура признаков первого порядка, но бывают случаи, когда доказательство теоремы второго порядка в логике второго порядка занимает всего несколько страниц, но доказательство первого порядка слишком велико, чтобы его могла вместить вся Вселенная.

Итак- может быть, у Drools есть поддержка понятий высшего порядка из коробки?

...