Из ядра правила


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

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

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

Существуют ли какие-либо альтернативы масштабированию системы производственных правил?

2 8

2 ответа:

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

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

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

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

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