/* Data je PROLOG-ova baza ~injenica oblika: muskarac(Osoba). -znaci da je Osoba muskarac zena(Osoba). otac(Osoba1,Osoba2). -znaci da je Osoba1 otac od Osoba2 majka(Osoba1,Osoba2). i taj skup cinjenica opisuje porodicno stablo neke osobe. Jasno je da ce se u konkretnoj bazi umesto istaknutih objekata naci konkretni atomi. a) Formirati pravila kojima ce biti definisani sledeci predikati: brat(X,Y). -zadovoljen ukoliko je X brat Y-nu. sestra(X,Y). -zadovoljen ukoliko je X sestra Y-nu. deda(X,Y). -zadovoljen ukoliko je X deda Y-nu. baba(X,Y). -zadovoljen ukoliko je X baba Y-nu. unuk(X,Y). -zadovoljen ukoliko je X unuk Y-na. unuka(X,Y). -zadovoljen ukoliko je X unuka Y-na. tetka(X,Y). ujak(X,Y). stric(X,Y). brat_od_tetke(X,Y). brat_od _ujaka(X,Y). brat_od_strica(X,Y). sestra_od_tetke(X,Y). sestra_od_ujaka(X,Y). sestra_od_strica(X,Y). predak(X,Y). -znaci da je X po direktnoj liniji predak Y-na. b) Na osnovu predikata definisanih pod a) napisati PROLOG program koji ispituje srodstvo izmedju dvije osobe. Osobana osoba se unose sa tastature i ukoliko su te osobe u nekom rodjackom odnosu koji je opisan relacijama iz a) (ne ukljucujuci relaciju predak) tada se dobija potvrdan odgovor i prikazuje se u kakvoj su vrsti srodstva te osobe. Inace se dobija odre~an odgovor. */ zena('Radojka Bogdanovic'). zena('Ana Zdravkovic'). zena('Marija Zdravkovic'). zena('Stanislava Bralic'). zena('Jovana Zdravkovic'). zena('Rada Mihajlovic'). zena('Tatjana Bogdanovic'). zena('Ljiljana Bogdanovic'). zena('Olga Bogdanovic'). zena('Vera Bogdanovic'). zena('Djurdjija Selakovic'). zena('Vera Selakovic'). zena('Katarina Selakovic'). zena('Lucija Selakovic'). zena('Dragana Selakovic'). zena('Snezana Pavkovic'). zena('Ivana Pavkovic'). zena('Ana Bjelobrk'). zena('Violeta Marjanovic'). zena('Ruzica Bogdanovic'). zena('Lela Markovic'). zena('Vlajka Djokic'). zena('Gordana Selakovic'). zena('Vera Pejovic'). zena('Jelena Vojinovic'). zena('Mirjana Stosic'). zena('Zorica Selakovic'). muskarac('Vojislav Bogdanovic'). muskarac('Aleksa Bogdanovic'). muskarac('Dusan Zdravkovic'). muskarac('Leka Bralic'). muskarac('Stojan Selakovic'). muskarac('Paun Bogdanovic'). muskarac('Sredoje Marjanovic'). muskarac('Srdjan Marjanovic'). muskarac('Nedja Bjelobrk'). muskarac('Toma Ilic'). muskarac('Dragan Ilic'). muskarac('Milos Kostadinovic'). muskarac('Radovan Kostadinovic'). muskarac('Ole Selakovic'). muskarac('Ivan Pavkovic'). muskarac('Voja Bogdanovic'). muskarac('Stefan Bogdanovic'). muskarac('Milan Saric'). muskarac('Rados Selakovic'). muskarac('Stojan R. Selakovic'). muskarac('Oliver Prodanovic'). muskarac('Petar Selakovic'). muskarac('Ljubisa Selakovic'). muskarac('Dragan Selakovic'). muskarac('Marko Petrovic'). muskarac('Stevan Petrovic'). muskarac('Marko Selakovic'). muskarac('Milos Prodanovic'). muskarac('Vukasin Prodanovic'). majka('Ana Zdravkovic','Ljiljana Bogdanovic'). majka('Ana Zdravkovic','Olga Bogdanovic'). majka('Ana Zdravkovic','Vera Bogdanovic'). majka('Ana Zdravkovic','Tatjana Bogdanovic'). majka('Marija Zdravkovic','Ana Zdravkovic'). majka('Marija Zdravkovic','Jovana Zdravkovic'). majka('Radojka Bogdanovic','Vojislav Bogdanovic'). majka('Ana Zdravkovic','Paun Bogdanovic'). majka('Stanislava Bralic','Djurdjija Selakovic'). majka('Stanislava Bralic','Ole Selakovic'). majka('Stanislava Bralic','Petar Selakovic'). majka('Stanislava Bralic','Rados Selakovic'). majka('Stanislava Bralic','Ljubisa Selakovic'). majka('Rada Mihajlovic','Voja Bogdanovic'). majka('Rada Mihajlovic','Ruzica Bogdanovic'). majka('Gordana Selakovic','Milos Prodanovic'). majka('Gordana Selakovic','Vukasin Prodanovic'). majka('Tatjana Bogdanovic','Srdjan Marjanovic'). majka('Tatjana Bogdanovic','Violeta Marjanovic'). majka('Vera Bogdanovic','Dragan Ilic'). majka('Ljiljana Bogdanovic','Katarina Selakovic'). majka('Ljiljana Bogdanovic','Lucija Selakovic'). majka('Olga Bogdanovic','Ana Bjelobrk'). majka('Mirjana Stosic','Dragan Selakovic'). majka('Mirjana Stosic','Vera Selakovic'). majka('Vera Selakovic','Snezana Pavkovic'). majka('Vera Selakovic','Ivana Pavkovic'). majka('Lela Markovic','Stefan Bogdanovic'). majka('Vlajka Djokic', 'Gordana Selakovic'). majka('Vlajka Djokic', 'Stojan R. Selakovic'). majka('Jelena Vojinovic','Zorica Selakovic'). majka('Zorica Selakovic','Stevan Petrovic'). majka('Djurdjija Selakovic','Radovan Kostadinovic'). otac('Vojislav Bogdanovic','Ljiljana Bogdanovic'). otac('Vojislav Bogdanovic','Olga Bogdanovic'). otac('Vojislav Bogdanovic','Vera Bogdanovic'). otac('Vojislav Bogdanovic','Tatjana Bogdanovic'). otac('Dusan Zdravkovic','Ana Zdravkovic'). otac('Dusan Zdravkovic','Jovana Zdravkovic'). otac('Aleksa Bogdanovic','Vojislav Bogdanovic'). otac('Vojislav Bogdanovic','Paun Bogdanovic'). otac('Stojan Selakovic','Djurdjija Selakovic'). otac('Stojan Selakovic','Ole Selakovic'). otac('Stojan Selakovic','Petar Selakovic'). otac('Stojan Selakovic','Rados Selakovic'). otac('Stojan Selakovic','Ljubisa Selakovic'). otac('Paun Bogdanovic','Voja Bogdanovic'). otac('Paun Bogdanovic','Ruzica Bogdanovic'). otac('Sredoje Marjanovic','Srdjan Marjanovic'). otac('Sredoje Marjanovic','Violeta Marjanovic'). otac('Toma Ilic','Dragan Ilic'). otac('Ole Selakovic','Katarina Selakovic'). otac('Ole Selakovic','Lucija Selakovic'). otac('Nedja Bjelobrk','Ana Bjelobrk'). otac('Ljubisa Selakovic','Dragan Selakovic'). otac('Ljubisa Selakovic','Vera Selakovic'). otac('Ivan Pavkovic','Snezana Pavkovic'). otac('Ivan Pavkovic','Ivana Pavkovic'). otac('Voja Bogdanovic','Stefan Bogdanovic'). otac('Rados Selakovic', 'Gordana Selakovic'). otac('Rados Selakovic', 'Stojan R. Selakovic'). otac('Oliver Prodanovic','Milos Prodanovic'). otac('Oliver Prodanovic','Vukasin Prodanovic'). otac('Marko Petrovic','Stevan Petrovic'). otac('Petar Selakovic','Zorica Selakovic'). otac('Milos Kostadinovic','Radovan Kostadinovic'). otac('Leka Bralic','Stanislava Bralic'). brat(X,Y):- muskarac(X),otac(Z,X),otac(Z,Y), majka(A,X),majka(A,Y),X\=Y. sestra(X,Y):- zena(X),otac(Z,X),otac(Z,Y), majka(A,X),majka(A,Y),X\=Y. mama_tata(X,Y,Z):- majka(X,Z),otac(Y,Z). baba(X,Y):- zena(X),majka(X,Z),(otac(Z,Y);majka(Z,Y)). deda(X,Y):- muskarac(X),otac(X,Z),(otac(Z,Y);majka(Z,Y)). unuk(X,Y):- muskarac(X),(otac(Y,Z);majka(Y,Z)),(otac(Z,X);majka(Z,X)). unuka(X,Y):- zena(X),(otac(Y,Z);majka(Y,Z)),(otac(Z,X);majka(Z,X)). tetka(X,Y):- zena(X),(otac(Z,Y);majka(Z,Y)),sestra(X,Z). ujak(X,Y):- muskarac(X),majka(Z,Y),brat(X,Z). stric(X,Y):- muskarac(X),otac(Z,Y),brat(X,Z). cica(X,Y):- stric(X,Y). brat_od_tetke(X,Y):- muskarac(X),majka(Z,X),tetka(Z,Y). sestra_od_tetke(X,Y):- zena(X),majka(Z,X),tetka(Z,Y). brat_od_ujaka(X,Y):- muskarac(X),otac(Z,X),ujak(Z,Y). sestra_od_ujaka(X,Y):- zena(X),otac(Z,X),ujak(Z,Y). brat_od_strica(X,Y):- muskarac(X),otac(Z,X),stric(Z,Y). sestra_od_strica(X,Y):- zena(X),otac(Z,X),stric(Z,Y). predak(X,Y):- (otac(X,Y);majka(X,Y)). predak(X,Y):- (otac(Z,Y);majka(Z,Y)),predak(X,Z). program1993111:- write('Unesite ime prve osobe:'),read(X),nl, write('Unesite ime druge osobe:'),read(Y),nl, L=[otac,majka,brat,sestra,deda,baba,unuk,unuka,tetka,ujak,stric, brat_od_tetke,brat_od_strica,sestra_od_tetke,sesta_od_stica, brat_od_ujaka,sesta_od_ujaka], (odredi(X,Y,L);odredi(Y,X,L)). program1993111:- write(X),write(' i '),write(Y),write(' nisu u srodstvu!'). odredi(X,Y,[G|_]) :- S =..[G,X,Y], call(S), write(X),write(' i '),write(Y),write(' jesu u srodstvu!'), nl,nl, write(X),write(' je za '),write(Y),tab(1),write(G). odredi(X,Y,[_|R]) :- odredi(X,Y,R).