uncaught_exception при попытке запустить пролог-программу с Tau-Prolog
я пытаюсь использовать интеграцию Tau-Prolog с javascript через этот скрипт:
<!-- index.html -->
<script type="text/javascript" src="tau-prolog.js"></script>
<script>
var TEN_THOUSAND = 10000;
function buttonClick() {
var question = document.getElementById("question-area").value;
if (question == "")
return;
ask(question);
}
function ask(question) {
var session = pl.create(TEN_THOUSAND);
var program = document.getElementById("program").value;
session.consult(program, {
success: function () {
session.query(question, {
success: function (question) {
session.answer({
success: function (answer) {
console.log(answer);
},
error: function (err) {
console.log("ERROR SHOWING THE ANSWER");
console.log(err);
},
fail: function () {
console.log("Query failed.");
},
limit: function () {
console.log("Limit excedeed");
},
});
},
error: function (err) {
console.log("ERROR QUERYING THE PROGRAM");
console.log(err);
},
});
},
error: function (err) {
console.log("ERROR PARSING THE PROGRAM");
console.log(err);
},
});
}
</script>
Программа пролога, связанная с этим сценарием, такова:
bot(KB, Question, Answer) :-
ask(KB, Question, Answer).
ask(KB, Question, Answer) :-
question(SQ, Question, []),
SQ = action(Action, Modifiers1),
member(action(Action, Modifiers2), KB),
subset(Modifiers1, Modifiers2),
sentence(SQ, Answer, []).
//other predicates
Проблема, с которой я сталкиваюсь, заключается в том, что каждый раз, когда я пытаюсь запроситьbot/3
предикат я получаю исключениеuncaught exception: error(existence_error(procedure, bot/3, top_level/0))
.
Я попробовал запустить программу на SWI-Prolog, и она отлично работает. Я пытался использовать более простые программы, такие как:
member(H, [H | _]).
member(X, [_ | R]) :-
member(X, R).
и это сработало.
Я не использую расширение tau-prolog node.js. Кто-нибудь может помочь? Заранее спасибо.