SUMO. Вы уже о ней знаете. Ее использовали в IBM Watson.
SUMO основана на логике предикатов 1-го порядка, поэтому, теоретически, должна переводиться в Prolog.
Есть код, который это делает. Один, который мне попадался, переводит порядка 80%. Если найдете что-то лучшее, поделитесь, пожалуйста.
В чатах с книгами постили весьма не плохую книгу по NLP на Prolog.
Prolog - не декларативный язык. Он выполняет только то, что Вы напишете. Prolog - это Turing Complete язык, т.е. Вы можете написать на нем любую программу (если, конечно, умеете писать без переменных и циклов).
Есть много разных языков под общим названием Datalog.
Синтаксически Datalog очень похож на Prolog, но внутри они абсолютно противоположны. В Prolog вывод сверху-вниз, в Datalog вывод снизу вверх. (По аналогии с синт-анализом).
Datalog не Turing Complete, но он гарантирует завершимость программы и имеет ограничение по сложности алгоритма вывода.
По прологу есть чат:
@prolog_ruНу и пример программы на прологе о том, что 2 + 2 = 5 :
https://swish.swi-prolog.org/p/tSiLMwap.swinb(надо давить на кнопочки Run)