У меня есть некоторая логика в программе на C ++, которая не только безумно сложна, она требует нескольких решений, для которых Prolog идеален. Это похоже на скрипт конфигурации брандмауэра, проверяющий ввод для действий, но иногда требуется больше, чем одно действие.
То, что я хочу, выглядит примерно так:
class PrologEngine
{
LoadLogic(const char* filename) throw PrologException; // Load a file of prolog rules, predicates facts etc in textual format. Must be callable multiple times to load AND COMPILE (for speed) prolog rule files.
std::vector<std::string> Evaluate(const char* predicate_in_string_form = "execute(input, Result)") throw PrologException; Returns a vector of matching predicates in text form.
};
Нет необходимости перезванивать в C ++.
Кажется, что AMI Prolog его получил, но он недоступен в Linux. Я пытаюсь использовать SWI-Prolog и могу найти только 2 примера и невероятно византийский API (мое мнение)
Может кто-нибудь указать мне пример, близкий к тому, что я ищу?