Я предполагаю, что вы используете swi в интерактивном режиме, и попытка ввести факт приводит к ошибке, подобной этой:
1 ?- like(x, y).
ERROR: toplevel: Undefined procedure: like/2 (DWIM could not correct goal)
Поскольку факт отсутствует в базе данных.Если это так, попробуйте сначала подтвердить факт:
2 ?- assert(like(x,y)).
true.
Затем вы можете попытаться:
3 ?- like(x, y).
true.
На этот раз запрос будет выполнен успешно, поскольку факт существует в базе данных.*
Лучшим подходом было бы записать ваши предложения в файл и затем проконсультироваться с ними .В прологе Swi есть emacs-подобный редактор, который вы можете вызвать, набрав
emacs.
в командной строке.Или используйте свой собственный редактор, а затем обратитесь к файлу.Пролог Swi поставляется с множеством графических инструментов, которые могут быть полезны;см. руководство для получения более подробной информации.