Я использую JPL для выполнения некоторых запросов SWI-Prolog в программе Java. Когда я хочу создать новый запрос, я хотел бы иметь возможность использовать jpl.Util.textToTerm
для прямого создания экземпляров терминов из пользовательского ввода, не анализируя его самостоятельно.
Проблема в том, что этот метод, кажется, всегда анализирует идентификаторы переменных (т. е. то, что начинается с заглавной буквы) как анонимные переменные (т. е. то, что начинается с _
).
Например, jpl.Util.textToTerm("X")
возвращает jpl.Variable
с именем _1
вместо X
, что, очевидно, является проблемой, поскольку это означает, что я не смогу получить доступ к каким-либо привязкам после запроса.
Создание jpl.Query
непосредственно из строки, например new Query("reverse([1,2],X)")
, имеет ту же проблему.