1 Ocak 2018 Pazartesi

Aladdin & Sihirli Lambasi

Aladdin & Sihirli Lambasi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% THE STORY OF ALADDIN AND HIS MAGIC LAMP %
% (C) Sakir Kocabas, 1986 %
% Türkçesi:Selime Cesur (2002) %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Top level predicates
% anlat : Masalı ekrana getirir
% başla : Kullanıcıyla iletişimi başlatır
anlat:-
nl, write('Masal gözünüzün önünden akıp gidecek.'), nl,
write('Durdurmak isterseniz CTRL-S e basmaniz yeterli olacaktir.'),
nl, write('Devam etmek icin herhangi bir tuşa basiniz -> '),
get0(Y), nl, nl,
write('Alaadin ve Sihirli Lambasi Masali'), nl,
write('======================================='), nl, nl,
tell2(S).
tell2(S):-
cl(s(S,V,Y,Z)),
readwrite(S), nl,
fail.
tell2(S):-
write(---), nl, nl.
readwrite([]).
readwrite([X|Y]):-
write(X),
tab(1),
readwrite(Y).
% Accept queries and provide responses
başla:-
nl, write('"Alaaddin,babası" gibi isimlerden sonraki ekleri ayrı yazınız.'), nl,
write('Soruları -miş ile bitiriniz.Örn:alaaddin in babası na ne olmuş ?'),
nl, write('Lütfen sorunuzu yazınız-> '),
read_in(X), nl,
cl(s(S,V,Y,Z)),
or(match(V,X), match(Y,X), match(Z,X)),
readwrite(S), nl, fail.
başla:-
nl, nl,
write('Benim bilgim bu kadar, Sahip. Bana baska soru sorunuz... '), nl,
if(not(cl(soruldu(X))), assertz(soruldu(X))), nl.
% Enter queries
read_in([W|Ws]):-
get0(C),
readword(C,W,C1),
restsent(W,C1,Ws).
restsent(W,_,[]):-
lastword(W), !.
restsent(W,C,[W1|Ws]):-
readword(C,W1,C1),
restsent(W1,C1,Ws).
readword(C,W,C1):-
single_character(C), !,
name(W,[C]),
get0(C1).
readword(C,W,C2):-
in_word(C,NewC), !,
get0(C1),
restword(C1,Cs,C2),
name(W,[NewC|Cs]).
readword(C,W,C2):-
get0(C1),
readword(C1,W,C2).
restword(C,[NewC|Cs],C2):-
in_word(C,NewC), !,
get0(C1),
restword(C1,Cs,C2).
restword(C,[],C).
single_character(44).
single_character(59).
single_character(58).
single_character(63).
single_character(33).
single_character(46).
in_word(C,C):- C>96, C<168.
in_word(C,L):- C>64, C<91, L is C+32.
in_word(C,C):- C>47,C<58.
in_word(39,39).
in_word(45,45).
lastword('.').
lastword('!').
lastword('?').
% Matching the query with the sentences in the story
match([],[]).
match([],X):-
not(X=[]), fail.
match(X,[]):-
not(X=[]), fail.
match([X|Y],[Z|Z1]):-
or(X='>',X=Z),
match(Y,Z1).
match([X|Y],[Z|Z1]):-
X='+',
match(Y,Z1).
match([X|Y],[Z|Z1]):-
X='+',
match([X|Y], Z1).
% Logic and list processing functions
or(X,Y):-
X; Y.
or(V,Y,Z):-
V;Y;Z.
cl(X):-
clause(X,_).
if(X,Y):-
call(X), call(Y).
if(X,Y).
% Örnek sorular:
soruldu([alaaddin,kimmiş,?]).
soruldu([alaaddin,nerede,yaşamış,?]).
soruldu([alaaddin,ve,annesi,büyücü,yü,nasıl,karşılamış,?]).
soruldu([büyücü,neden,alaaddin,e,kızmış,?]).
s(['Bir',varmış,bir,yokmuş,çok,eski,zamanlarda,bir,doğu,ülkesinde,
'Alaaddin',isimli,bir,oğlan,varmış,.],
[alaaddin,nerede,+],[alaaddin,kimmiş,+],[]).
s([alaaddinin,babası,o,küçükken,ölmüş,.],[+,babası,+],[+,ailesi,+],[]).
s([alaaddin,annesi,ile,birlikte,küçücük,bir,kulubede,yaşarmış,.],
[+,annesi,+,yaşarmış,+],[+,annesi,+,birlikte,+],[+,ailesi,+]).
s([günlerden,bir,gün,alaaddin,sokakta,arkadaslarıyla,oynarken,uzakta,
garip,giysili,ve,kara,sakallı,bir,adam,belirmiş,.],[büyücü,alaaddin,+,
bulmuş,+],[büyücü,+,alaaddin,+,karşılaşmış,+.],[+,giysili,+,sakallı,+]).
s([alaaddine,onun,çok,eskiden,kaybettiği,amcası,olduğunu,söylemiş,ve,
ona,bazı,hediyeler,vermiş,.],[büyücü,alaaddin,+,bulmuş,+],[büyücü,
alaaddin,+,kandırmış,+],[+,giysili,+,sakallı,+]).
s([adam,alaaddinin,amcası,değilmiş,ama,alaaddin,ona,inanmış,.],
[+,amcası,kimmiş,+],[+,giysili,+,sakallı,+],[]).
s([aslında,adam,'Arabistan',lı,bir,büyücüymüş,.],[büyücü,+,kimmiş,+],
[+,amcası,+,kimmiş,+],[+,giysili,+,sakallı,+]).
s([alaaddin,büyücüyü,evine,götürmüş,ve,annesine,bu,adamın,amcası,
olduğunu,söylemiş,.],[annesine,+,ne,söylemiş,+],[],[]).
s([alaaddin,in,annesi,eski,kocasının,bir,kardeşi,olduğunu,bilmiyormuş,.],
[alaaddin,+,annesi,+,kardeşi,+],[],[]).
s([alaaddin,ve,annesi,büyücüyü,doyurmuşlar,ve,ona,yatacak,yer,vermiş,.],
[alaaddin,+,annesi,+,büyücü,+],[+,büyücü,+,karşılamış,+],[]).
s([ertesi,gün,büyücü,alaaddinle,dağlara,çıkmak,istemiş,.],
[büyücü,alaaddin,+,ne,+],[+,nereye,gitmiş,+],[]).
s([büyücü,alaaddine,dağlarda,bir,mağara,göstermiş,.],[+,dağlarda,+],[],[]).
s([büyücü,alaaddine,mağarada,define,olduğunu,söylemiş,.],
[+,mağarada,ne,+],[+,define,+],[]).
s([sonra,da,alaaddine,bir,torba,verip,onun,aşağı,inemeyecek,
kadar,yaşlı,olduğunu,söyleyerek,ondan,mağaraya,inmesini,istemiş,.],
[neden,+,mağaraya,+],[+,büyücü,+,mağaraya,+],[]).
s([böylece,alaaddin,mağaraya,inmiş,.],[kim,+,mağaraya,+],[],[kim,+,inmiş,+]).
s([mağarada,çok,az,ışık,varmış,.],[+,mağaranın,içinde,+],[],[]).
s([alaaddin,sonunda,hazineyi,karanlık,bir,köşede,bulmuş,.],
[+,hazineyi,+,mağarada,+],[+,alaaddin,+,mağarada,+,bulmuş,+],[]).
s([büyük,ve,ağzı,açık,bir,sandıkta,altınlar,elmaslar,zümrütler,ve,yakutlar,varmış,.],
[+,alaaddin,+,mağarada,+,bulmuş,+],[+,alaaddin,mağarada,+,görmüş,+],[]).
s([sandığın,yanında,yerde,duran,eski,bir,lamba,ve,garip,bir,yüzük,görmüş,.],
[alaaddin,+,mağarada,+,bulmuş,+],[+,alaaddin,+,mağarada,+,görmüş,+],[]).
s([torbayı,altın,ve,mücevherlerle,doldurmuş,ve,lamba,ile,yüzüğü,de,almış,
.],[alaaddin,+,altın,+,,+],[alaaddin,+,doldurmuş,+],[]).
s([sonunda,alaaddin,mağarayı,tırmanmaya,başlamış,ve,büyücüden,mağaradan,
dışarı,çıkarken,ona,yardım,etmesini,istemiş,.],[+,tırmanmaya,+],[],[alaaddin,+,yardım,+]).
s([büyücü,alaaddinden,önce,lambayı,ve,hazineleri,vermesini,istemiş,.],
[+,büyücü,+,istemis,+],[büyücü,aladdin,+,mağara,+],[]).
s([alaaddin,mağaradan,çıkmadan,önce,lambayı,ve,hazineleri,büyücüye,vermek,
istememiş,.],[büyücü,+,kızmış,+],[+,lamba,+,vermiş,+],[]).
s([büyücü,kızmış,ve,mağaranın,girişini,bir,kayayla,kapatıp,alaaddini,
mağarada,tek,başına,bırakmış,.],
[büyücü,+,terketmiş,+],[+,büyücü,+,alaaddin,+,mağarada,+],[]).
s([alaaddin,mağarada,kalmış,...,mağarayı,aramış,ama,başka,çıkış,yolu,
yokmuş,.],[alaaddin,mağaradan,+,çıkış,+],[],[]).
s([alaaddin,yorulduğunda,mağarada,biryere,oturmuş,ve,yüzüğü,incelemeye,
başlamış,.,parlatmak,için,yüzüğü,ovmuş,.],
[+,yüzüğü,+,keşfetmiş,+],[+,yüzüğü,+,bulmuş,+],[]).
s([yüzüğü,ovarken,birden,bir,cin,ortaya,çıkmış,.,alaaddin,korkmuş,.,ama,
cin,:,'Dile benden ne dilersen,','Sahip',.,isteğiniz,benim,için,bir,emirdir,.],
[alaaddin,+,cin,+,bulmuş,+],[+,yüzüğü,+],[]).
s([alaaddin,cinden,onu,dışarı,çıkarmasını,dilemiş,.],
[alaaddin,+,dilemiş,+],[alaaddin,+,çıkmış,+],[]).
s([cin,alaaddinin,dileğini,hemen,gerçekleştirmiş,.,alaaddin,hazine,ve,
lambayla,birlite,dışarıdaymış],[+,dışarı,+,çıkmış,+],[],[+,mağaradan,+,çıkmış]).
s([hava,kararmaya,başlamış,ve,etrafta,kimsecikler,yokmuş,.,alaaddin,eve,
gitmiş,ve,annesine,başına,gelenleri,anlatmış,.,hazineler,olmasaymış,annesi,
ona,inanmayacakmış,.],[+,mağaradan,+,sonra,+],[],[]).
s([sonra,alaaddin,odasına,gidip,sihirli,yüzüğün,cininden,yemeği,
hazırlamasını,dilemiş,.,bir,dakikada,yemek,masası,hazırmış,.],
[+,alaaddin,+,dilemiş,+],[+,yemeği,+],[]).
s([bir,gün,alaaddin,bir,faytonda,prensesi,görmüş,ve,ona,aşık,olmuş,.],
[+,alaaddin,prenses,+,görmüş,+],[alaaddin,prenses,+,aşık,+],[]).
s([alaaddin,annesinden,prensesi,istemek,için,saraya,gitmesini,istemiş,.],
[+,annesi,+,prenses,+,söylemiş,+],[alaaddin,annesi,+,prenses,+],[]).
s([sultan,kahkaha,atmış,ve,prensesle,evlenmek,için,altın,elmas,ve,zümrütleri,
ona,göndermesini,istemiş,.],[sultan,+,istemiş],[sultan,+,anne,+],[]).
s([alaaddin,sahip,olduğu,bütün,mücevher,ve,altınları,sultana,göndermiş,.,
ama,bu,sefer,de,sultan,sarayından,kat,kat,büyük,bir,saray,inşa,
etmesini,istemiş,.],[alaaddin,sultan,+],[sultan,alaaddin,+],[]).
s([alaaddin,sihirli,yüzüğün,cininden,sarayı,inşa,etmesini,dilemiş,ama,
cin,buna,gücünün,yetmeyeceğini,ve,sihirli,lambanın,cinini,çağirmasını,
söylemiş,.],[+,saray,+,inşa,+],[+,sihirli,lambanın,cini,+],[+,sihirli,lambayı,+]).
s([böylece,alaaddin,sihirli,lambanın,sihirli,güçlerini,öğrenmiş,.],
[+,sihirli,lambanın,+],[+,saray,+,inşa,+],[+,sihirli,lambayı,+]).
s([bu,sefer,alaaddin,sihirli,lambayı,ovmuş,.,daha,büyük,bir,cin,ortaya,
çıkmış,.,alaaddin,korkmuş,ama,onun,için,bir,saray,inşa,etmesini,dilemeyi,
başarmış,.],
[+,sihirli,lambanın,cini,+],[+,saray,+,inşa,+],[+,sihirli,lambayı,+]).
s([ertesi,gün,sultanın,sarayının,yanında,camdan,yapılmış,bir,saray,varmış,
.,sonunda,sultan,kızının,alaaddinle,evlenmesini,onaylamak,zorunda,
kalmış,.],[sultan,+,onaylamış,+],[alaaddin,+,prenses,+,evlenmiş,+],[]).
s([alaaddin,ve,prenses,evlenmiş,ve,mutlu,yaşamış,.],[alaaddin,+,prenses,
evlenmiş,+],[alaaddin,+,evlenmiş,+],[]).
s([büyücü,alaaddinin,başarılarını,duymuş,.,şehirde,alaaddinin,sarayının,
olduğu,yere,gelmiş,.,kendisini,lamba,satıcısı,olarak,tanıtmış,.],
[büyücü,alaaddin,+ başarılarını,+],[büyücü,+,lambayı,+,almış,+],[]).
s([alaaddinin,adamlarıyla,avda,olduğu,bir,gün,büyücü,saraya,gelip,eski,
lambaları,yenisiyle,değiştirdiğini,söylemiş,.,prenses,sırlarını,
bilmediğinden,alaaddinin,lambasını,ona,vermiş,.],
[büyücü,+,lambayı,+,almış,+],[prenses,+,lambayı,+,vermiş,+],[]).
s([sonra,da,büyücü,sessiz,bir,yere,gitmiş,ve,sihirli,lambayı,kullanarak,
prenses,ve,hizmetçilerle,birlikte,alaaddinin,sarayını,tepeye,taşımış,.],
[büyücü,alaaddin,+,sarayını,+],[büyücü,sarayı,+,almış,+],[]).
s([alaaddin,avdan,döndüğünde,sarayının,yerinde,yeller,esiyormuş,.,
çok,üzülmüş,.,daha,sonra,aklına,sihirli,yüzük,gelmiş,.,sihirli,
yüzüğün,cinine,neler,olduğunu,sormuş,ve,cin,ona,olup,biten,herşeyi,anlatmış,.],
[alaaddin,+,saraya,geri,+],[alaaddin,saraya,+],[]).
s([alaaddin,yüzüğün,cininden,sarayı,geri,getirmesini,dilemiş,.,ama,cin,
buna,gücü,olmadığını,ama,onu,sarayın,olduğu,yere,götürebileceğini,söylemiş,.],
[alaaddin,saraya,+,geri,+],[alaaddin,+,saraya,geri,+],[]).
s([cin,alaaddini,saraya,getirmiş,.,hava,karardığında,alaaddin,
hizmetçilerinden,birini,sarayını,kapılarını,kapatırken,görmüş,.,ona,bir,
şişe,uyku,ilacı,vermiş,ve,onu,prensese,vermesini,söylemiş,ve,prensese,
lambayı,bulmasını,söylemesini,de,istemiş,.],
[alaaddin,+,sarayı,+,geri,+],[alaaddin,+,lambayı,geri,+],[]).
s([prenses,ilacı,almış,ve,büyücünün,içkisine,atmış,.,büyücü,az,sonra,
uykuya,dalmış,.,ondan,sonra,prenses,lambayı,bulmuş,ve,dışarıda,bekleyen,
alaaddine,atmış,.],[alaaddin,+,sarayı,+,geri,+],[],[alaaddin,+,lambayı,geri,+]).
s([alaaddin,lambayı,geri,alır,almaz,büyücüden,güçlerini,geri,almış,ve,
sarayı,eskiden,olduğu,yere,taşımış,ve,sonsuza,kadar,prensesle,mutlu,
yaşamış,...,.],[alaaddin,sarayı,+,geri,+],[alaaddin,büyücü,+,sarayı,+],[]).

Hiç yorum yok:

Yorum Gönder

Halife Abdulhamid II'nin duasinin duzeltilmis hali:

" Allahım helal etmiyorum!   Şahsımı değil, ümmetimi bu hale getirenlere, hakkımı helal etmiyorum! Beni, benim için lif lif yolsalar, c...