Вы найдете это работает для варианта использования, который вы определили выше:

у меня есть фрагмент кода ниже, как я могу заставить его производитьAnswer= 5 and Answer2= 10?, Я бегу в цель?- test(Data),lpsolve(Data, [Answer1,Answer2]).

    :-use_module(library(clpfd)).
    test([the, variable, X, is, five,fullstop,
          the,variable, Y, is, ten, fullstop]).
    lpsolve(Data, [Answer,Answer2]):- sentence(Answer, Data,[]).

    sentence(X) --> nounphrase, verbphrase(X).
    nounphrase --> [the], [variable].
    verbphrase(X) --> [X], [is], [five],[fullstop], {X = 5}.

    sentence(Y) --> nounphrase, verbphrase(Y).
    nounphrase --> [the], [variable].
    verbphrase(Y) --> [Y], [is], [ten],[fullstop], {Y = 10}.

Пример программы, которая на самом деле работает и тесно связана, является следующим:

:-use_module(library(clpfd)).
test([the, variable, X, is, five,fullstop]).
lpsolve(Data, Answer):- sentence(Answer, Data,[]).

sentence(X) --> nounphrase, verbphrase(X).
nounphrase --> [the], [variable].
verbphrase(X) --> [X], [is], [five],[fullstop], {X = 5}.

У меня есть только одно предложение для проверки, и цель достигает цели, как показано ниже.

 ?- test(Data),lpsolve(Data, Answer).
    Data = [the, variable, 5, is, five],
    Answer = 5.

РЕДАКТИРОВАТЬ

Я пытаюсь следующее в соответствии с первым комментарием:

:-use_module(library(clpfd)).

test([the, variable, x, is, five,fullstop,
      the,variable, y, is, ten, fullstop]).
lpsolve(Data, Answer):- sentence(Answer, Data,[]).

sentence(X) --> nounphrase, verbphrase(X).
nounphrase --> [the], [variable].
verbphrase(X) --> [x], [is], [five],[fullstop], {X = 5}. 
verbphrase(Y) --> [y], [is], [ten],[fullstop], {Y = 10}.

Я получаю следующее:

-? test(Data),lpsolve(Data, Answer).
false.

Ответы на вопрос(1)

Ваш ответ на вопрос