Мне было трудно придумать название для этого вопроса, поэтому я попытаюсь объяснить свою проблему как можно лучше здесь.
В Прологе вы можете использовать оператор _ в предикате, чтобы получить все определения независимо от того, что там существует, в моем примере:
%footballer is in the form: footballer(lastname,team,goals_scored)
%footballer(N,T,G).
footballer(rooney,manchesterutd,15).
footballer(ronaldo,madrid,20).
footballer(bale,madrid,17).
footballer(messi,barca,25).
и здесь, если бы я хотел найти всех игроков, которые играют за мадрид, я мог бы использовать:
footballer(X,madrid,_).
и это вернет игрокам интерес, независимо от забитых мячей.
Однако на самом деле я хочу, чтобы у меня была заранее определенная команда madrid, все игроки, которые не являются членами madrid. Что-то типа:
footballer(X,not(madrid),_).
Существует ли такая вещь? Я использую Пролог версии 5.10.2.
Спасибо