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. Кто-нибудь может помочь? Заранее спасибо.

0 ответов

Другие вопросы по тегам