A,B,C cisimleri ve Masa’nın konumu aşağıdaki gibidir. Büyüklük-Küçüklük ilişkileri: Altında-Üstünde ve Sağında-Solunda İlişkileri: Yukarıdaki şekillerin arasındaki büyüklük-küçüklük/altındalık-üstündelik/sağındalık-solundalık özelliklerine göre kodlanmış Prolog programı aşağıdadır: kucuk(a,b). kucuk(c,a). kucuk(c,masa). kucuk(b,masa). kucuk(a,masa). kucuk(c,b). buyuk(b,a). buyuk(a,c). buyuk(masa,c). buyuk(masa,b). buyuk(masa,a). buyuk(b,c). solunda(a,b). solunda(a,c). saginda(b,a). saginda(c,a). altinda(masa,b). altinda(masa,c). altinda(masa,a). altinda(b,c). ustunde(b,masa). ustunde(c,masa). ustunde(a,masa). ustunde(c,b). Ekran çıktısı:
Kategori Arşivleri: Prolog
Prolog
Hayvanlarla ilgili çerçeve tabanlı bir ağ oluşturarak Prolog’da veritabanını oluşturma: Öncelikle özellikleri belirlediğimiz çerçeve tabanlı ağımızı oluşturuyoruz. Bunlar hayvanların özelliklerinin tutulduğu kartlar olarak düşünülebilir. Daha sonra Prolog programının anlayacağı bir şekilde bu özellikleri kodluyoruz. :- discontiguous hayvan/8. hayvan(kaplan,memeli,omurgali,4,etobur,20,200,cizgili). hayvan(yilan,surungen,omurgasiz,0,etobur,2,10,uzun). hayvan(kartal,kus,omurgali,2,etobur,10,50,buyuk). hayvan(sirtlan,memeli,omurgali,4,etobur,5,30,cirkin). hayvan(serce,kus,omurgali,2,copcu,2,0,5,kucuk). hayvan(aslan,memeli,omurgali,4,etobur,20,250,yeleli). hayvan(zebra,memeli,omurgali,4,etobur,10,100,cizgili). hayvan(kertenkele,surungen,omurgasiz,4,copcu,1,1,kucuk). hayvan(inek,memeli,omurgali,4,otobur,5,500,normal). hayvan(koyun,memeli,omurgali,4,otobur,3,50,normal). Son aşamada ise sorularımızı yönelterek cevaplarımızı alıyoruz. Tüm>>>
Anlamsal Ağların Sözdizimi ve Anlam Bilimi (Syntax and semantics of semantic networks) Semantik Ağlar kategoriler ve ilgili kategorilere ait nesneler arasındaki ilişkiyi niteler. Örneğin: Kediler, Memeliler’in alt kümesidir. Aşağıda örnek bir çerçeve tabanlı ağ(frame-based network) ve bunun birinci dereceden mantık(first-order logic) ile ifade edilmesini göreceksiniz. Aşağıdaki ağ “Opus’un kaç ayağı var?” sorusuna cevap verir. Cevabı>>>
“VISUAL PROLOG PROGRAMI VE ZEKİ ÖĞRETİM SİSTEMLERİ” başlıklı Yüksek Lisans Tez çalışması Gökhan KARAOSMANOĞLU tarafından Haziran 2007’de hazırlanmış olup sitedeki Prolog kategorisinde bazı içerikler ilgili çalışmadan alınmıştır. Çalışmanın tamamını aşağıdaki bağlantıdan indirebilirsiniz: visual-prolog-programi-ve-zeki-ogretim-sistemleri
Kodlar: saginda(gökhan, suat). saginda(ferhat, gökhan). saginda(melih, ferhat). saginda(suat, melih). solunda(suat, gökhan). solunda(gökhan, ferhat). solunda(ferhat, melih). solunda(melih, suat). Ekran görüntüsü:
6*6’lık kare bir labirent bulunmaktadır. E2 karesinde bulunan kişi F5 karesinde bulunan evine nasıl gidecektir? Kodlar: bagli(e2, e3). bagli(e3, d3). bagli(d3, c3). bagli(c3, b3). bagli(b3, b4). bagli(b4, b5). bagli(b5, c5). bagli(c5, d5). bagli(d5, e5). bagli(e5, f5). yolcikar(X, Y) :- bagli(X, Y) ; bagli(Y, X). yolcikar(X, Y) :- bagli(X, Z) , yolcikar(Z, Y). Ekran görüntüsü:
http://swish.swi-prolog.org/ sayfasında bulunan Online Prolog derleyicisi ile aşağıdaki programı çalıştırarak çeşitli denemeler yaptım. Kodlar: parent(pam, bob). parent(tom, bob). parent(tom, liz). parent(bob, ann). parent(bob, pat). parent(pat,jim). predecessor(X, Z):-parent(X, Z). predecessor(X, Z):-parent(X, Y),predecessor(Y, Z). Sorgu: predecessor(tom, pat). Sonuç: Doğru. Çalışmalar sırasında tuttuğum not:
Prolog’ta önemli olan doğal hayattaki cümleleri Prolog programına anlatmaktır. Bizim konuştuğumuz kelimeleri, cümleleri Prolog direkt olarak anlayamaz. Bu cümleleri bizim Prolog’un anlayacağı dile çevirmemiz gerekmektedir. Aşağıdaki örneklere bakacak olursak bunu görebiliriz: Bütün çocuklar kısadır. kisa(X):-cocuk(X). Bütün erkek çocuklar arabaları sever. sever(X,araba):-erkek(X),cocuk(X). Bütün çocukların annesi vardır. var(X,anne):-cocuk(X). Sebzeyi hiçbir çocuk sevmez. sevmez(X,Y):-sebze(Y), cocuk(X). Çocuğunu döven öğretmeni>>>
Prolog mantıksal programlama dili olmasına rağmen prosedürel programlamaya da izin vermektedir. Prolog doğruluğu önceden belirlenmiş gerçeklerden oluşur. Kesin olan gerçekler programa tek tek girilir, bunların arasında ilişkiler belirlenir, sistemden output(çıktı) alınacağı zaman bu ilişkiler göz önünde bulundurularak çıktı alınır. Prolog aynı zamanda çözümün ne olacağını değil problemin ne olduğunu tanımlar. Prolog programlama dilinde; -Nesneler hakkındaki>>>