CHAT Arkadaşım Bir Bilgisayar Mı!

0
FZ
A.L.I.C.E ve AIML

"Dilimin sınırları düşüncemin sınırlarıdır." Ludwig Wittgenstein (*)

Sıradan bir gün. Bilgisayarı açıyorsunuz. Internet'e bağlanıyorsunuz. Aklınıza gelen siteleri gezerken canınız sıkılıyor ve birileri ile canlı olarak yazışmak istiyorsunuz. IRC kanallarından birinde ya da canlı yazışma imkanı sunan bir web sayfasında AI takma isimli bir kullanıcı ile karşılaşıyorsunuz ve aranızda şöyle bir diyalog geçiyor (1) :
AI: Merhaba benim adım Chatbot, seninki ne?
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>
<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>

(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.)

<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.

Görüşler

0
FZ
WHAT ARE YOU ile başlayan bölümde XML tagleri görünmeliydi, bunun için gerekli tagini ve özel sembollerini kullanmıştım ama sanırım submit ederken sistem otomatik olarak filtreliyor ve iptal ediyor :(

Neyse, dilerim bu durum yazının genel olarak anlaşılabilirliğini olumsuz olarak etkilemez ;-)
0
Maverick
O tagler hala html source da görünüyor. Yorumlar ve haberler html olarak kabul ediliyor site sistemi tarafından bu yüzden küçüktür büyüktür işaretleri yerine &lt; ve &gt; kullanmak gerekiyor doğru görünmeleri için..
0
FZ
lt ve gt kullandım düzgün şekilde ama sanırım bir tür filtre gibi bir şey uyguladı. Önizleme aşamasına düzgün gördüm ancak sonra yolladığımda iptal oldu.
0
Maverick
İşte önizleme yaptığın için bozuldu. Önizleme bölümü buggy, ekranda gördüğünü esas metin olarak kabul ediyor ve &lg; ≶ ye dönüşüyor tekrar..
0
Maverick
ana düzgün çıktı. test:
0
Maverick
> &lg; &lg; ye dönüşüyor tekrar..

&lt; < ye dönüşüyor yani. yazım hatası oldu..
0
FZ
Önizleme yaptığımda bozulduğunu biliyorum. Zaten normal olarak göndermeden önce bozulmuş kısmı tekrar düzeltip öyle gönderdim ama gene o şekilde çıkınca şaşırdım :)

Buradan HTML ve XML taglerini yollamak ne zor işmiş yahu :)
0
FZ
Bu sistemi inceleyip de kendine göre uygulayan ya da Tükçe olarak uyarlayan birileri olursa ya da böyle bir siteden haberdar olan bir FM üyesi çıkarsa ve burada ilgili yerlerin adresini verirse sevinirim. Böylece A.L.I.C.E. sisteminin Türkçe versiyonunu da görebiliriz belki ;-)
0
conan
ALICE degil ama Eliza`nin Turkce calismalari var. Saygideger hocamiz Dr. Cem Say`in web sayfasindan bilgi edinebilirsiniz. Sayfa yanilmiyorsam eliza.cmpe.boun.edu.tr olacak. Ama yanlis olabilirim.
0
tongucyumruk
Bir arkadaşım elinden geldiğince türkçeleştirmeye çalışıp ICQ üzerinden milletle muhabbet ettiriyordu. Ama bir süre sonra insanların kendisi yerine chatbot'la konuşmak istemesi ve bilgisayarının ölmesi sebebiyle durdu tabii...
0
FZ
Wow! :) Arkadaşın kendini epey garip hissetmiş olmalı ;-)
0
FZ
Makaledeki ingilizce bölümün doğrusu aşağıdaki gibi olacak (umarım ;-) :

<category>
<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>
0
larweda
Makaleyi düzeltmeyi başardım galiba, önizle yaparken submit form'u html default'larına güvenerek lt ve gt'leri < ve > şeklinde görüntülüyor, yani bi kere önizle yapınca yazıdaki karakterler bozulmuş oluyor, bunun için fm'in koduna müdahale etmek gerekecek, fırsat bulabilirsek bu haftasonu uğraşırız onunla. Ben yazıdaki aiml bölümünü ve text`in içindeki tag'leri temizledim sanıyorum, eksik bir şey kaldıysa söyleyiverin.
0
FZ
Eksik değil de fazlalık var, AIML (xml) blokunun başında ve sonundaki code ve /code tagleri fazla, onları da çıkarırsan muhteşem olur ;-)
0
anonim
Ben bu Program D'yi indiremedim sitesinden.Deneyen var mı acaba ? Ftp falan yazıyor ama adresi bulamadım
0
FZ
http://alice.sunlitsurf.com/account/register.php adresine gidip kaydolduktan sonra yeni açmış olduğunuz kullanıcı adınız ve parolanızla siteye girerek download etmeyi denediniz mi? Bunları yaptığınız halde problemle mi karşılaştınız?
0
anonim
Hayır olmuyor .Program J,E yi falan indirebildim.
0
FZ
Hmm, sanırım bu durumda yapılabilecek en iyi şey adamlara bir e-mail yazıp hatadan haberdar etmek.

Ayrıca E'yi indirebilmenize sevindim. Hazır PHP ile ilgili güzel haberler gelmişken eğer vakit bulup da A.L.I.C.E.'in PHP sürümünü kurup deneyimlerinizi burada bizimle paylaşırsanız seviniriz.

Not: Anonim yerine bir kullanıcı adı ile mesaj yazarsanız daha güzel olur ;-)
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Websis 1.0

anonim

Bir ay önce bir duyurusunu daha yaptığımız Websis Türkçe PHP/mySQl Portal Motoru o zamanlar sürüm adaylarında görünüyordu. Son sürüm adayına göre tam WYSIWYG editör desteği,ekstra güvenli yönetim alanı, ekstra dökümantasyon gibi özellikleri ile artık olgun bir yazılım. Cyrocom sitesinden Websis'e ulaşabilirsiniz.

Microsoft, AJAX, Ruby on Rails

FZ

Gelecek hafta başlayacak büyük etkinliklerden Microsoft Professional Developers Conference sürecinde AJAX bağlantılı teknolojilerin tanıtılacağı ve Atlas projesinin gün ışığına çıkarılacağı söyleniyor.

Yine aynı haberde ajaxian.com'dan Dion Almaer'in Ruby on Rails web geliştirme "framework"ünü AJAX teknolojilerini en iyi destekleyen platformlardan biri olarak göstermesi de dikkate değer noktalardan biri.

Yazılım temalı Türkçe soru/cevap kardeşliğine davet

coskung

Yazılım dünyasında olup da Stackoverflow’u (SO) bilmeyen yoktur. Yazılım konusunda Google’da yapacağınız her aramada mutlaka SO’dan birkaç sonuç çıkacaktır. SO, yaklaşık 3.3 milyon soru, 6.6 milyon cevap ve 1.2 milyon kullanıcıya sahip devasa bir soru cevap sitesi. Şu anda dünyadaki tüm yazılımcıların itibar ettiği en önemli bilgi merkezlerinden birisi. Günde 4 milyondan fazla ziyaretçi çekiyor. SO, yalnız başına bir site değil, kocaman bir ağın en popüler parçası. Stackexchange (SX) ağı, aşçılıktan fiziğe, elektronikten bisiklete farklı birçok konuda soru/cevap sitesine sahip.

Escher İnteraktif

butch

Daha önce de fazlamesai'de bahsi geçen, theunderdogs.org sitesinde Sundance'in rastlayıp bana ilettiği "Escher Interactive: Exploring the Art of the Infinite" aslında 1996 yılında yayınlanmış, içinde Escher'in çalışmalarının açıklamalarıyla ve bazı oyunlarla sunulduğu bir cd. TheUnderDogs'daki arkadaşlarsa bunun cd'siz çalışabilir bir halini hazırlayıp tüm dünyaya sunmuşlar. Ben inceledim ve hemen arşivime ekledim. Kaçırmayın muhakkak indirin.

Prototype Javascript Framework

tongucyumruk

Web bir uygulama geliştirme platformu olarak kendini kabul ettireli çok oldu. Şimdi Web 2.0 gibi konuar tartışılırken web'in her geçen gün artan popülerliği yanında gerçekleştirilmesi gitgide zorlaşan kullanıcı taleplerini yanında getiriyor. İnsanlar her geçen gün daha etkileşimli, daha hareketli web uygulamaları istiyor. Bu durumun her geçen gün programcıları daha fazla yorması sonucunda bugün ulaştığımız noktada artık JavaScript ile yazılmış etkileşimli web uygulamaları geliştirmeyi kolaylaştıran altyapı yazılımları da ortaya çıkmaya başlıyor. İşte Prototype Javascript Framework'te bu amaçla ortaya çıkmış bir altyapı yazılımı.