Я работаю над системой обработки сложных событий. Он поддерживает фильтрацию наборов записей на основе членов этих записей, используя язык запросов. Язык поддерживает логические, арифметические и пользовательские операторы для произвольных членов.
Вот пример поддерживаемого запроса:
( MemberA > MemberB ) &&
( @in MemberC { "str1", "str2" } ) &&
( com.foo.Bar.myPred( MemberD, MemberE ) )
Моя проблема в том, что я хочу объединить запросы в один суперзапрос, а затем я хочу оптимизировать этот суперзапрос, чтобы устранить избыточность, тавтологии и противоречия. например Я хочу взять
A > 0
и объединить его с
A > 1
что довольно просто:
A > 0 || A > 1
но затем я хочу оптимизировать его, чтобы оно уменьшилось до
A > 0
Если есть какие-либо URL-адреса или книги, в которых обсуждается эта общая тема, я был бы рад узнать о них.