Выполнение некоторых упражнений PROLOG - очень новое для всего этого, так что несите меня. У меня есть следующие базы знаний:пролог - информация об извлечении
/* The structure of a subject teaching team takes the form:
team(Subject, Leader, Non_management_staff, Deputy).
Non_management_staff is a (possibly empty) list of teacher
structures and excludes the teacher structures for Leader and
Deputy.
teacher structures take the form:
teacher(Surname, Initial,
profile(Years_teaching,Second_subject,Club_supervision)).
Assume that each teacher has his or her team's Subject as their
main subject. */
team(computer_science,teacher(may,j,profile(20,ict,model_railways)),
[teacher(clarke,j,profile(32,ict,car_maintenance))],
teacher(hamm,p,profile(11,ict,science_club))).
team(maths,teacher(vorderly,c,profile(25,computer_science,chess)),
[teacher(o_connell,d,profile(10,music,orchestra)),
teacher(brankin,p,profile(20,home_economics,cookery_club))],
teacher(lynas,d,profile(10,pe,football))).
team(english,teacher(brewster,f,profile(30,french,french_society)),
[ ],
teacher(flaxman,j,profile(35,drama,debating_society))).
team(art,teacher(lawless,m,profile(20,english,film_club)),
[teacher(walker,k,profile(25,english,debating_society)),
teacher(brankin,i,profile(20,home_economics,writing)),
teacher(boyson,r,profile(30,english,writing))],
teacher(carthy,m,profile(20,music,orchestra))).
subject(X):- team(X,_,_,_).
leader(X) :- team(_,X,_,_).
deputy(X) :- team(_,_,_,X).
non_management(X) :-
team(_,_,Non_management,_),
member(X,Non_management).
exists(X) :-
subject(X);
leader(X);
deputy(X);
non_management(X).
Теперь я должен написать правило, которое (д) инициалы преподавателя А и учителя В, где учитель А и учитель B находятся в различных предметных команд, у каждого есть домоводство как их второй предмет , и каждый из них имеет фамилию Бранкин.
Я зациклился на том, как сравнить все сущности в базе знаний. До этого я только извлекал значения из отдельных объектов (в случае этого примера - одиночные учителя). Например:
question1(Initial,Surname) :-
exists(teacher(Surname,Initial,profile(_,english,_))).
Любая помощь очень ценится.