Вне ядра основных правил - PullRequest
8 голосов
/ 11 июня 2011

Существуют ли реализации систем производственных правил, которые работают вне ядра ?

Я проверил реализации с открытым исходным кодом, такие как CLIPS и Джесс , но они работают только в памяти, поэтому они склонны к краху или принудительному переключению дисков при работе с большим количеством фактов и правил (например, в миллиардах / триллионах).

Я играювокруг с идеей возможного портирования простого механизма правил, такого как Pychinko , на бэкэнд SQL, используя ORM Джанго.Однако поддержка уровня функциональности, найденного в CLIPS, была бы очень нетривиальной, и я не хочу изобретать колесо.

Есть ли альтернативы для расширения системы правил производства?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

Это не прямой ответ на ваш вопрос, но он может дать вам линию атаки на проблему.

Еще в 80-х и 90-х годах мы выставили информационно-поисковую систему, которая допускала очень большиечисло постоянных запросов .В частности, у нас были системы с 64 МБ памяти (что в те дни составляло buttload ), которые принимали более миллиона сообщений в день и применяли от 10000 до 100,00+ постоянных запросов к этому потоку.

Если бы все, что мы сделали, это итеративно применили каждый постоянный запрос к самым последним документам, мы были бы мертвым мясом.Мы сделали инверсию запросов, определив, что должен иметь , а может иметь условия в запросе.Затем мы использовали термин список из документа, чтобы найти те запросы, которые имели какой-либо шанс на успех.Заказчик научился создавать запросы, которые имели сильные отличия, и в результате иногда требовалось полностью оценить только 10 или 20 запросов.

Я не знаю ваш набор данных и не знаю, каков вашправила выглядят так, но может быть что-то подобное вы можете попробовать.

1 голос
/ 12 июня 2011

вы можете проверить JENA и аналогичные механизмы правил RDF, предназначенные для работы с очень большими базами данных фактов.

...