Задача
Описать на Прологе базу знаний «Правители России», содержащую следующие факты:
- Ярослав Мудрый правил с 1019 по 1054 годы,
- Изяслав первый правил с 1054 по 1077 годы,
- Всеволод первый правил с 1078 по 1093 годы,
- Святополк Второй правил с 1092 по 1112 годы,
- Владимир Мономах правил с 1113 по 1125 годы,
- Мстислав Великий правил с 1125 по 1132 годы.
- Добавить к базе знаний «Правители России» правило, определяющее понятие «Великий князь в году Y», которое определяло бы имя правителя России в произвольном году Y.
- Добавить к базе знаний «Правители России» правило «Правили с года X по год Y», позволяющее вывести всех, кто правил Россией в период с года X до года Y включительно.
- Сформировать цели:
- Кто правил Россией с 1050 по 1080 годы?
- Кто был Великим князем в 1092 году?
Решение
predicates
nondeterm pravil(string,integer,integer) /*name,beginn,end*/
nondeterm pravitel(string,integer) /*name,year*/
clauses
pravil(yaroslavmudryiy,1019,1054).
pravil(izyaslavpervyiy,1054,1077).
pravil(vsevolodpervyiy,1078,1093).
pravil(svyatopolkvtoroy,1092,1112).
pravil(vladimirmonomah,1113,1125).
pravil(mstislavvelikiy,1125,1132).
pravitel(X,Y):-pravil(X,A,B),Y>=A,Y=<B.
goal
pravitel(Y,1092), write(Y), nl.
Помогите разобраться, в чем ошибка в коде на Прологе (использую Visual Prolog v 5.2)?
E;Test_Goal, pos: 398, 409 Syntax error