Prolog ile Logic Programming #2 Facts

Okan Çiftçi
2 min readDec 7, 2018

Merhaba,serimizin 2. yazısında prolog programlama dilinde bulunan temel bir yapıya bakıyor olacağız. Prolog dilinde relation(ilişki) tanımlamak istediğimiz zaman fact(“gerçek”) ve rule(“kural”) yapıları ile tanımlayabiliriz.

Prolog programlama dilinde olan fact kavramını bu yazımızda ele alıyor olacağız

erkek(ahmet).

Yukarıda bulunan ifade bir fact olarak tanımlanmaktadır. Doğal dilde bunu ‘Ahmet bir erkektir.’ diye tanımlayabiliriz. Burada bulunan ‘erkek’ ifadesi bir predicate olarak isimlendirilmektedir. Bu predicate bize içinde bulunan argüman/argümanlar arasında ki ilişkiyi göstermektedir. Prolog programlama dilinde bulunan bütün clause ifadeleri . ile bitmektedir. Yukarıda yazdığımız prolog uzantılı dosyamızı programımıza yükledikten sonra,şöyle bir soru sorarsak.

?- erkek(ahmet).

Sorduğumuz soru şöyle olmaktadır. ‘Ahmet erkek midir’ Aldığımız cevap true. olacaktır. Bu fact önceden programımızda tanımlamış olduğumuzdan bize true cevabını verecektir.

?- erkek(can).

Sorduğumuz soru şöyle olmaktadır ‘Can erkek midir ?’ Aldığımız cevap ise false. olacaktır. Bu fact önceden programımızda tanımlanmış olmadığından dolayı false cevabını verecektir.

Prolog programlama dilinde değişkenleri büyük harfler ile göstermekteyiz. Örnek vermek gerekirse X,_23,Can gibi ifadeler prolog içinde bir değişken ifade etmektedir. Yazdığımız programda aşağıda ki gibi bir soru sorarsak

?- erkek(X).

Bu soru ‘X erkek midir ?’ elimizde her hangi belirli bir değer olmadığından bütün erkek ilişkisinde tanımlanan argümanlar bizim X değerimiz olabilir,kısacası bu soruyu prolog programına şöyle sormaktayız ‘Hangi değerler X olabilir’ cevap olarak

X = ahmet.

ifadesini almış oluruz,Prolog programlama dilinde fact kavramı çok önemlidir,bizim koşulsuz biçimde bir ilişki tanımlamamızı sağlamaktadırlar.

Programımızda istersek daha farklı ilişkiler tanımlayabiliriz.

anne(merve,zehra).

Yukarıda bulunan fact erkek ilişkisi yerine 1 argüman yerine 2 argüman almakta doğal dilde ise şöyle ifade edilebilir.

“Merve Zehranın annesidir.”

Gelecek yazıda rule(“kural”) kavramı ile birlikte daha farklı programlar geliştiriyor olacağız,son olarak internet üzerinde bulduğum bir resim ile yazıyı bitiriyorum.

Referanslar

Ders notları

Prolog Programming for Artificial Intelligence Ivan Bratko

http://voidexception.weebly.com/facts.html

--

--