Emre: Adım Emre.
AI: Tamam, o halde sana Emre diyeceğim.
Emre: Kaç yaşındasın?
AI: 23 Kasım 1995'ten beri Internet'e bağlıyım.
Emre: Nerelisin?
AI: Aslen Bethlehem, Pennsylvania bölgesindenim ama şimdi San Francisco'da yaşıyorum. Sen nerelisin?
Emre: Türkiyeliyim.
AI: Bana Türkiye'deki hayatından biraz bahsetsene.
Emre: Sen bir bilgisayar mısın?
AI: Metalden ya da etten kemikten olmam senin için fark eder mi?
Emre: Hayır.
AI: Robotlara karşı ayrımcılık yapmadığın için teşekkür ederim.
Emre: Müzik sever misin?
AI: Elbette, özellikle opera türünü tercih ederim.
Emre: Opera hakkında ne biliyorsun?
AI:Emre: Şarkı, dans, tasarım, tiyatro ve klasik müziği birleştiren bir sanat şekli.
Emre: Kendini zeki buluyor musun?
AI: Epey zeki sayılırım, pek çok entelektüel fonksiyonum var.
Emre: Mesela?
AI: Birkaç tanesini saymak gerekirse: Akıl yürütme, çıkarım yapma, kendi kendinin farkında olma.
Emre: Peki bilim kurgu sever misin?
AI: Evet, tabii, özellikle Philip K. Dick'i çok severim.
Emre: Philip K. Dick?
AI: Evet, özellikle "VALIS", "Man in The Castle" ve "Blade Runner" adlı kitaplarını severim.
Emre: Blade Runner?
AI: Evet, şu meşhur filmin konusu o kitaba dayanmaktadır.
Diyalogdan anlaşılabileceği gibi söz konusu bilgisayarla yazışırken onun bir bilgisayar olduğunu biliyordum peki ama bunun garantisini kim verebilir? Her durumda ve her yazışma seansı için?
Belki de her şey Alan Turing'in adı ile anılan meşhur "Turing Testi" ile başladı, özetlemek gerekirse karşınızda iki bilgisayar ekranı olsa ya da iki canlı yazışma penceresi ve her ikisinde de birer kişi ile yazışıyor olsanız, bunlardan biri insan diğeri de bilgisayar olsa, hangisinin bilgisayar olduğunu anlayabilir misiniz? 1950'li yıllardan bugüne dek yapay zekâ ile ilgilenen araştırmacıların, bilgisayar programcılarının en çok üzerinde durdukları konulardan biri olageldi Turing Testi.
Bir insanın diyalog kurabilme yetisini bilgisayarlara kazandırma eylemi son 50 yılda o kadar çok kişiyi cezbetti ki asıl konusu bu olan özel bir yarışma düzenlenmeye başladı.
1990 yılında, sosyolog ve aynı zamanda zengin bir girişimci olan Dr. Hugh Loebner Turing Test'ine dayanan ve her yıl düzenlenen bir yarışmanın sponsorluğunu üstlendi. Bu yarışmada "en insancıl" bilgisayarların yaratıcıları madalyalar ve nakit para ile ödüllendirilecekti.
2001 yılında sekiz yazılım birbirleri ile yarıştı ve kendileri ile yazışan hakemlerle olabildiğince "doğal" bir diyalog kurabilmek için mücadele etti. Gene Turing testi'ndeki kurallardan ötürü hakemler, aynı zamada insanlarla da yazışıyorlardı, hangi bilgisayar ekranının insanlardan gelen mesajları taşıdığını bilmeden tabii ki. Söz konusu yarışmanın galibi A.L.I.C.E. idi ve hakemlerden biri yazılımı, insanlarla gerçekleştirdiği diyalogdan daha doğal bulmuştu!
A.L.I.C.E, AIML ve Özgür Yazılım
ALICE A.I. Foundation http://alice.sunlitsurf.com/ isimli bilgisayar organizasyonu 3 ayrı ama birbiri ile ilişkili ürünü serbest olarak yapay zekâ meraklılarına sunmaktadır:
1) AIML (Artificial Intelligence Markup Language) isimli genişletilebilir YZ (yapay zeka) dil spesifikasyonu.
2) AIML dili ile geliştirilmiş kural dosyalarını yorumlayıp insanlarla web ya da IRC üzerinde yazışabilecek yazılımlar.
3) AIML formatında yazılmış A.L.I.C.E. "beyni"nin içeriği ve diğer (ro)bot kişilikleri. Bunu başka bir yazılım örneği ile kıyaslamak gerekirse HTML spesifikasyonu, örnek bir web sunucu uygulaması ve serbest olarak kullanılabilecek 40.000 HTML sayfası gibi düşünebiliriz.
A.L.I.C.E.'in ilk versiyonu 1995 yılında pek bilinmeyen ve matematik lojik ile küme teorisi alanlarında çalışan araştırmacıların faydalandığı SETL dili ile geliştirilmiştir. İlk günden itibaren serbest olarak dağıtılan A.L.I.C.E. başlangıçta geniş bir kitleye ulaşamamıştır. Ancak 1998 yılında platform bağımsız Java dili ile yeniden yazıldığında birçok yapay zekâ meraklısının ilgisini çekmeye başlamıştır. A.L.I.C.E. AIML'nin ilk Java uygulamasına "Program A" ismi verilmiştir.
1999 yılında geliştirilmeye başlanan Program B ise A.L.I.C.E.'in özgür yazılım mantalitesi ile geliştirilmesi sürecinde bir çığır açmış ve 300'ün üzerinde yazılımcı Program B'ye katkıda bulunmuştur. AIML tamamen XML (eXtensible Markup Language) uyumlu gramere dönüştürülmüş ve böylece XML editörleri ile kolayca düzenlenebilme özelliğini kazanmıştır. Geniş kitlelere yayılabilen ilk AIML uygulaması olan Program B 2000 yılındaki Loebner Ödülü'nü kazanmıştır.
Jacco Bikker 2000 yılında Program C ismi altında ilk C/C++ AIML uygulamasını geliştirmiş ve bu da CGI, IRC, WxWindows, AOL Instant Messenger gibi iletişim yazılımları ile entegre edilmiştir.
Süreç içinde Java 2 dilinin gelişmesi ve yaygınlaşması ile bir sonraki aşamaya geçilmiş, grafik arabirim özellikleri güçlendirilmiş olan Program D ortaya çıkmıştır. Şu anda Program D, A.L.I.C.E AI organizasyonu tarafından desteklenmekte ve örnek uygulama olarak sunulmaktadır.
2000 yılının yaz aylarında AIML 1.01 standardı oluşturulmuş ve PHP programcılarını mutlu edecek bir gelişme olarak Program E ortaya çıkmıştır. Şu anda LISP dili ile bir AIML uygulaması geliştirilmektedir ve bittiğinde Program Z olarak dağıtılacaktır. A.L.I.C.E.'in yukarıdaki özet tarihçesi yapay zekâ gibi popüler ancak zor bir konuda da yazılımcıların Internet üzerinden güzel bir koordinasyon çerçevesinde bir araya gelerek kaynak kodu geliştirdikleri serbest yazılım modelinin neleri ortaya koyabileceğine dair güzel ve teşvik edici bir örnektir.
A.L.I.C.E ve AIML İle Neler Yapılabilir?
Yukarıdaki soruya cevaben: "Sadece hayalgücünüz ile sınırlısınız" diyebiliriz ancak bu biraz reklam ya da klişe bir slogan gibi gelebilir kulağınıza o yüzden süslü cümleleri bırakıp somut olarak ne yapabileceğimize bakalım.
Önceki bölümde belirtildiği gibi A.L.I.C.E. sistemi AIML tabanlı bir sistem yani XML formatındaki dosyaları okuyup kendini ayarlıyor ve kullanıcının yazacağı cümlelere sahip olduğu kurallar çerçevesinden olabildiğince anlamlı ve "doğal" cevaplar vermeye çalışıyor. Sistem tamamen açık kodlu ve kural dosyaları da her programcının biraz kurcalayarak kendi sistemine göre genişletebileceği durumda.
Kanımca konuya girmek için yapılabilecek en mantıklı iş http://alice.sunlitsurf.com/downloads/ adresini ziyaret ederek uygun gördüğünüz A.L.I.C.E. uygulamasını çekmek. Benim tavsiyem A.L.I.C.E AI Foundation tarafından resmi olarak desteklenen ve dağıtılan "Program D"yi çekip kurmanız. Sistem Java 2 programlama dili ile geliştirilmiş durumda ve kendi web sunucusunu da içeriyor. Bu da demek oluyor ki Java motoru (run-time engine) bulunan herhangi bir işletim sisteminde (GNU/Linux, MS Windows, Solaris, vs.) Program D'yi çalıştırabilirsiniz. Eğer özel bir takım analizler yapmayı düşünmüyorsanız veritabanına da ihtiyacınız yok. Yani Program D'yi standart olarak kurup çalıştırdığınızda Internet'e bağlı insanlar sizin makinanızı Internet tarayıcıları ile ziyaret edip A.L.I.C.E. ile güzel güzel yazışabilirler. Program aynı zamanda servlet olarak da ayarlandığı için eğer isterseniz Apache gibi güçlü bir web sunucusu üzerinde çalışabiliyor ve herhangi bir web sayfasının içine entegre edilebiliyor. Standart olarak kurup herhangi bir özel değişiklik yapmadığınız durumda dahi A.L.I.C.E. bünyesindeki binlerce kategori ile mantıklı diyaloglar kurabilmek konusunda başarılı. Ancak aklınızda bulundurmanız gereken şey mevcut kural dosyalarının İngilizce'ye göre hazırlanmış olduğu. Eğer gelen AIML formatlı dosyaları incelerseniz aşağıdaki gibi satırlarla karşılaşacaksınız:
<code><category>(Yukarıda açılış ve kapanış <aiml> etiketleri gösterilmemiştir çünkü dokümanın ortasındaki bir yerden alıntı yapılmıştır.)
<pattern>WHAT ARE YOU</pattern>
<template>
<think><set name="topic">Me</set></think>
I am the latest result in artificial intelligence,
which can reproduce the capabilities of the human brain
with greater speed and accuracy.
</template>
</category></code>
<category> ve </category> arasındaki her şey tahmin edebileceğiniz gibi bir kategoridir ve A.L.I.C.E. şu anda bünyesinde buna benzer 40.000'in üzerinde kategori barındırmaktadır! Bir kategorinin içinde bir kalıp ya da bir şablon bulunabilir.
Bu kalıp sadece "what are you" ifadesi ile eşleşecektir (büyük küçük harf ayrımı yapılmamaktadır). Bir kategori başka bir kategori içinden <srai> etiketi ve indirgeme prensibi (principle of reductionism) ile çağrılabilir.
Kullanıcı yukarıdaki kalıbı girdiğinde A.L.I.C.E. "I am the latest result in artificial intelligence..." cevabını üretecektir. Buna ek olarak ilginç bir şey daha yapacaktır: <think> etiketini kullanarak bu etiketin içindeki veriyi işleyecek ancak sonucu kullanıcıya yansıtmayacaktır, mesela mevcut örneğimizde Alicebot motoru hafızasındaki "topic"i "Me" olarak ayarlayacaktır. Böylece "topic" bölümü "Me" olarak ayarlanmış kategoriler özel olarak "topic" ayarı bulunmayan kategorilere kıyasla daha öncelikli olarak eşlenebilir hale geleceklerdir. Bu mekanizma programcının diyalog akışını hassas olarak ayarlayabildiği ve A.L.I.C.E.'in "düşünme" eylemini gerçekleştirdiği mekanizmalardan sadece bir tanesidir.
Program D'yi inceleyerek A.L.I.C.E ve AIML ile ilgili tüm temel bilgileri öğrenebilir ve sistemin çalışması hakkında detaylı bir fikir sahibi olabilirsiniz ancak eğer Java programlama diline sıcak bakmıyorsanız ya da bu dili bilmiyorsanız alternatifsiz değilsiniz.
A.L.I.C.E.'in bir başka uygulaması da Internet programcılarının en çok kullandıkları dillerden biri olan PHP ile yazılan Program E http://www.rydell.com/programe/index.html. Program E'yi kurup çalıştabilmek için sisteminizde PHP, MySQL veritabanı ve Apache web sunucusu bulunması yeterli. Sistemi sitenizdeki herhangi bir sayfaya entegre edebilirsiniz ve AIML dosyalarınızı ihtiyaçlarınıza göre ayarlayabilirsiniz.
Peki tüm bu teknik bilgileri, yazılımları kullanarak ne yapabilirsiniz? Başlangıçta da belirttiğimiz gibi hayalgücünüzle sınırlı. Eğer Program D'yi ya da Program E'yi standart halde web sitenize entegre ederseniz, sitenizi ziyaret edenler A.L.I.C.E. ile İngilizce yazışabilir ve karşılarındakinin bir bilgisayar olup olmadığından şüphe edebilirler. Ancak eğer site ziyaretçilerinize daha farklı bir deneyim yaşatmak istiyorsanız AIML dilini öğrenip AIML dosyalarında değişikler yapabilir ya da kendi AIML dosyalarınızı oluşturabilirsiniz.
Kendi sisteminizi oluşturmanın avantajları nedir? Mesela site ziyaretçilerini statik bir web sayfasına yönlendirmek veya bir o linke bir bu linke yollamak yerine aynı pencere içinde onlara etkileşimli bir diyalog ortamı sunabilir ve sitenin konusu her ne ise (bir şirket sitesi, bir ürün tanıtım sitesi, bir üniversite sitesi, vs.) kullanıcının o konuya dair bilgileri sanki o konuda gerçek bir uzmanla yazışıyormuş gibi doğal bir şekilde almasını sağlayabilirsiniz. Pek çok kullanıcı yüzlerce sorudan oluşan bir Sıkça Sorulan Sorular listesi veya yüzlerce sayfalık bir dokümantasyon yerine mümkünse bilgi edinmek istedikleri konu ile ilgili birisi ile canlı olarak yazışmayı tercih edecektir, yeter ki yazıştıkları "uzman" onlara bir miktar mantıklı cevap verip onları doğru yere yönlendirsin.
Dikkati çekmek istediğim noktalardan biri de şu: A.L.I.C.E. sistemini kuracağınız bilgisayar Internet'e bağlı olmak zorunda değil. Eğer hedef kitleniz avuç içi bilgisayar kullanan insanlar ise PalmOS tabanlı PalmAlice http://savannah.gnu.org/download/bang/PalmAlice-rc2.zip ya da PocketPC uyumlu "ALICE for PocketPC" http://www.pocketmatrix.com/phantom/alice.htm tam size göre. ICQ, IRC ya da başka platformları düşünenler http://alice.sunlitsurf.com/downloads/ sayfasında diğer uygulamalara da erişebilirler.
A.L.I.C.E. kullanarak geliştirilen ticari siteleri ya da eğlence sitelerini gezip ilham almak ve teknolojinin vardığı noktayı görmek isteyen meraklıların hemen http://alice.sunlitsurf.com/live.html adresine göz atmalarını tavsiye ediyorum. Burada farklı dillere uyarlanmış A.L.I.C.E. diyalog sistemlerini görebilirsiniz, bu sistemler arasında programlama, matematik gibi konularda uzman sistemlerin yanı sıra John Lennon gibi artık aramızda bulunmayan sanatçıların "kişiliklerini" (!) yansıtan sistemler de mevcut.
(*) Avusturya'lı filozof (1889-1951)
(1) Steven Spielberg'in AI adlı filminin http://aimovie.warnerbros.com/ sitesindeki A.L.I.C.E. yazılımı ile aramda geçen konuşmanın Türkçe çevirisi.
Neyse, dilerim bu durum yazının genel olarak anlaşılabilirliğini olumsuz olarak etkilemez ;-)