İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır
Koray Karataş
kkaratas@email.com

Bir Internet Robotunun Anatomisi : bilBot®

Özet

Internet üzerinde önceden tanımlanmış bir dizi işlevi kullanıcı adına ve kullanıcı müdahalesi gerektirmeden yerine getiren, hatta kaynak işlevler dizisini kullanıcı tercihlerine göre zamanla "öğrenen" akıllı ajan, Internet robotu ya da kısaca bot olarak adlandırılan teknolojiler, günümüz yazılımcılarının yapay zeka disiplininin de uygulamalı bir kolu olarak giderek önem verdikleri bir alandır. Bu makalede, bot teknolojilerinin uygulamacı gözüyle bir perspektifi sunulmakta ve ülkemizde geliştirilen bu türden bir çekirdek bot teknolojisi olan bilBot® teknolojisi ile ilgili temel algoritma ve metodolojiler ile örnek uygulamalar verilmektedir.

Anahtar Kelimeler

Bot, Internet Robotları, Akıllı Ajan, bilBot

GİRİŞ

1.1. Bot / Akıllı Ajan Teknolojilerine Kısa Bir Bakış

Özellikle 90'lı yılların ikinci yarısından itibaren, esasen bilgisayar bilimleri içinde bir alt disiplin olan yapay zeka çalışmaları alanında yer alan "akıllı ajan" yazılım çalışmaları yeni bir ivme kazanmıştır. Kuşkusuz bu ivmenin büyük ölçüde Internet adını verdiğimiz yerküre üzerindeki en geniş ölçekli TCP/IP ağının ve sözkonusu ağ üzerindeki faaliyetlerin akademik bir çerçeveden iş yaşamına ve günlük yaşamın diğer alanlarına yine aynı yıllarda yayılması ile ilgili olduğu ortadadır.

Tarihsel olarak akıllı ajan teknolojilerinden bahsedildiğinde, İngiliz Matematikçi Turing'in kendi adıyla anılan "Turing Testi" ile 1950 tarihli "Computer Machinery and Intelligence" başlıklı makalesini, ayrıca, makina ve insan arasında doğal dil iletişimini örneklemek üzere 1966 yılında Weizenbaum tarafından MIT'de geliştirilen "Eliza" programını önemli başlangıçlar olarak anmak gerekir. Akademik çerçevede artarak ilerleyen çalışmaların, yukarıda da belirtildiği gibi Internet'in yaygınlaşması ile birlikte yeni bir evreye girdiği söylenebilir. 1994 yılında yayınlanan 2 klasik makale [Maes,1994] ve [Norman,1994], ve ayrıca 1995 yılından itibaren her yıl düzenli olarak toplanan ICMAS (International Conference on Multi-Agent Systems) ve PAAM (International conference on the Practical Application of Intelligent Agents and Multi-Agent Technology) konferansları akıllı ajanlar alanında da belli bir bilimsel doygunluğa ulaşılıp, uygulama dünyasına geçilmesi için önemli temelleri teşkil etmişlerdir.

Günümüze kadarki çalışmalarda akıllı ajan teknolojilerinin 2 temel yönde geliştikleri gözlemlenmektedir [Nwana,1999] :

İlk grupta, önceden tanımlanmış bir dizi işlevi kullanıcı müdahalesi olmaksızın yerine getirmek üzere tasarlanan ajanlar yer almaktadır. Bu ajanların işlevi, temelde insan üzerindeki iş ve bilgi yükünün azaltılmasıdır. İş yükünün azaltılması kolay anlaşılabilmekle birlikte, bilginin yük haline gelmesi ilk anda algılanması zor bir konu olabilir. Bilgi sağlayan teknolojilerdeki, gerek donanımsal gerek yazılımsal araç ve altyapılardaki gelişmeler, kullanıcı yönüne doğru büyük, hazmedilmesi zor bir bilgi akışına neden olmuş, yaygın bir benzetme ile kullanıcılar yangın hortumundan su içmeye çalışır hale gelmişlerdir. İşte otonom bilgi ajanlarından beklenen önemli bir katkı bu yükün filtrelenerek azaltılması, kullanıcının ham veri yerine daha çok işlenmiş bilgi ile karşı karşıya bırakılmasıdır.

Bu tür ajan yazılımlarına örnek olarak bazı işletim sitemlerinde ya da kelime işlem, tablolama vb. tür programlarda bulunan ve kullanıcı hareketlerini elemanter olarak izleyerek kısa yollar yaratan ya da dizi işlemleri kaydederek yinelemeli kullanımını sağlayan "kişisel yardımcı yazılımlar"ını verebiliriz. Daha karmaşık bir örnek de, web üzerinde gezinen kullanıcısını bir süre izleyip tercih profilini oluşturan ve bu profile göre, örneğin, arka plan işlevi olarak "akıllı ajan" sözcük dizisi için kendi kullanıcısının tecihlerine uygun Almanca akademik kaynaklarda dergi makalesi ağırlıklı olarak tarama yapan bir ajan yazılımı olabilir.

İkinci grupta yer alan yazılımlarda daha çok kullanıcı tarafı ile sınırlı kalmayıp, her biri bir taraf adına hareket etmekle birlikte, etkileşimli bir şekilde bir süreç içinde yer alan bir grup ajandan söz edilebilir. Örneklemek gerekirse, kullanıcı adına bir seyahat rezervasyonu yapılması işi, ilgili her taraftan ajanlar ile kullanıcı ajanının etkileşimli hareketleri ile gerçekleştrilmeye çalışılmaktadır. Kişisel ajan, otel rezervasyon ajanı, uçak ve kiralık araç rezervasyon ajanı ve hatta ilgili kamusal otorite ajanları ya da meteoroloji ajanı gibi, rezervasyon sürecinde yer alan değişik tarafları temsil eden ajanların ortak etkileşimli ve önceden belirlenmiş ya da giderek gelişen karmaşık kurallar dizisi çerçevesinde rezervasyon sürecini sonuçlandırmaya yönelik çalışmaları sözkonusudur.

Her iki gruptaki ajan teknolojilerini 4 temel özelliği vardır : İletişim, dönüşüm, otomatizasyon ve akıllı davranışlar. Sözkonusu özelliklerin yorumu, 2. ve 3. bölümlerde bilBot® bağlamında detaylandırılacaktır.

1.2. Web Robotları - Botlar

Akıllı ajan teknolojilerinin Internet ile birlikte hızla yaygınlaşması, "Internet robotu" ya da kısaca "bot" olarak adlandırılan ve özel olarak Internet üzerinde hareket göstermek üzere geliştirilen bir ajan yazılımı grubunu ortaya çıkarmıştır. Bu grupta esasen web tabanlı arama motorlarının çekirdeklerinde yer alan "örümcek" yazılımları ve özel amaçlı tarayıcı yazılımlar gibi değişik türler de yer alır. Kesin bir çizgi olmamakla birlikte, Çek dilinde "iş" anlamına gelen "robota" kelimesinden türeyen robot kelimesinin kısaltılmışı olan bot kavramı, akıllı ajan yazılımlarının Internet üzerinde etkinlik gösterenlerine verilen bir ad olmuştur. Belki de bu adlandırmada, gerçek dünyada robot davranışı olarak adlandırılabilecek türden davranışların sanal dünyadaki karşılığı olmaları beklentisi etkili olmuştur.

Günümüzde pek çok değişik bot türünden söz edilmektedir. Ticari, veri madenciliği, e-posta, oyun, kamusal, haber grubu, sohbet, alışveriş, hisse senedi, yazılım vb. gibi, hedeflenen bilgi türüne göre adlandırılan pek çok bot tür mevcuttur. Bu türlerin hemen hepsi karakteristik olarak otonom bilgi ajanları/arabirimleri olarak ve özellikle Internet üzerinde faaliyet göstermek üzere tasarlanmış ve geliştirilmiş yazılım türleridir. Öte yandan, web dünyasındaki gelişmelerin evrimsel olarak aşağıdaki dönemlerden geçtiği söylenebilir :

Bu tabloya göre bot teknolojilerinin, iii. dönem için bir altyapı ya da kolaylaştırıcı, entegre edici bir rol üstlenmekte olduğu söylenebilir. Sözkonusu dönemin önemli bir karakteristiği, "entegre çalışan sistemler" yaklaşımının yerini giderek "entegre çalışan uygulama ve süreçler" yaklaşımının almasıdır. Botların burada uygulama ve süreç entegrasyonu konusunda, 4 temel özelliğinden gelen doğal bir misyonu vardır. Çünkü, bu entegrasyon türünde en önemli kaynaştırıcı durumundaki bilgi, bot teknolojilerinin bütün aktivitelerinin esas konusudur.

1.3. bilBot® - Genel

bilBot®, ülkemizde geliştirilmiş bir çekirdek bot teknolojisidir. Tasarımındaki en önemli amaç, böyle bir teknolojinin, ülkemizdeki bilgi toplumuna yönelik çalışmalara yerli kaynaklarla cevap verilmesi, yeni ekonominin pasif oyuncularından çok aktif yönlendiricilerinden birisi olabilme çabalarına çok küçük boyutta da olsa katkı sağlanmasıdır.

Çok genel anlamıyla bilBot® teknolojisi Internet üzerindeki aramalarda karşılaşılan temel sorunlardan birine cevap vermek amacıyla tasarlanmıştır. Sık kullanılan Internet arama motorlarında kullanıcının elde ettiği sonuçlar,

Bu noktalardan ilki, az sayıda fakat değerli sonuç döndürülmesi ile ilgili pek çok çalışma mevcuttur. Bunlara örnek olarak geniş bir kullanıcı kitlesine sahip Google® arama motorunun PageRank algoritması verilebilir. Bu algoritma ile, kullanıcıya daha ilgili sonuçların döndürülmesi için her web sayfasına, kendisine bağlantı verilen sayfa sayılarını ve yinelemeli (recursive) olarak o sayfaların ağırlıklarını kullanan özel bir formülle bir ağırlık verilerek, bu ağırlığa göre sıralama yapılmaktadır. Başka bir yaklaşım ise, tamamen mikroekonomik "fayda teoremi"ni baz alan, üst sıralarda yer almak isteyen web kaynaklarının daha çok para ödediği ve böylelikle döndürülen sonuçlarda daha anlamlı bir sıralamanın oluştuğunu varsayan yaklaşımdır. Bu makale ile doğrudan örtüşmediğinden bu konunun detayına girilmeyecektir.

İkinci nokta, güncel, kaliteli ve anlamlı içeriğin döndürülmesi konusudur. Genel olarak arama motorlarından kullanıcıların elde ettikleri sonuç, bilginin kendisinden çok bir yönlendirmesidir, öteki deyişle bilgi hakkında bilgidir (metadata). Finans dünyasından bir aramayı örnek alacak olursak, günlük repo değerlerini, görmek isteyen bir kullanıcının, repo ve benzeri sözcüklerle gerçekleştirdiği bir aramada pek çok sonuç almakla birlikte, repo değerlerine birinci adımda ulaşması mümkün olamamaktadır. İşte bu nokta bilBot® teknolojisinin temel çıkış noktasını oluşturmaktadır.

bilBot® teknolojisi temel olarak, Internet üzerinde var olan, ve kamusal kullanımına herhangi bir kısıtlama getirilmeyen bilgi kaynaklarına ulaşarak, amaçlanan bilgilerin otonom ajan mantığı ile toplanması işlevini yerine getirmek üzere tasarlanmış ve geliştirilmiştir. Tasarımı daha geniş ve çok amaçlı bir perspektife oturmakla birlikte şu andaki gerçekleştirim aşaması daha spesifik bir çerçevede tamamlanmış durumdadır. Sözkonusu çerçeve, web tabanlı olarak niteleyebileceğimiz, HTTP protokolü ile HTML dilini baz alan kaynaklardaki verilere, belli iletişim ve tarama parametreleri ile ulaşılması ve sözkonusu verilerin konsolidasyonu ve işlenerek bilgiye dönüşmesi aşamalarına başlangıç teşkil edecek bir yapının sunulmasıdır.

Aşağıda, bilBot® teknolojisinin 1.1. bölümünde verilen temel akıllı ajan teknolojisi özelliklerine göre bir değerlendirilmesi verilecek, bu özelliklerin karşılanması için kullanılan metodoloj, algoritma ve sistem bileşenleri ise 2. bölümde ele alınacaktır.

2. SİSTEM ÖZELLİKLERİ

bilBot® teknolojisi şu temel bileşenlerden oluşmaktadır : bilBot® kütüphanesi, indeksleme modülü ve erişim/derleme modülü . Aşağıda bu bileşenlerin her biri detaylandırılmıştır

2.1. bilBot® Kütüphanesi

bilBot®'un çalışması sırasında ihtiyaç duyduğu parmetrelerin toplandığı referans havuzudur. Indeksleme modülünden alınan parametreler, çalışması sırasından erişim/derleme modülünün kullanımına sunulmak üzere bu kütüphanede tutulur. Ayrıca bu kütüphane, toplanan verilerin konsolide edilerek aktarılacağı hedef veritabanı ya da diğer veri yapıları ile arabirimi oluşturan yapıdır. Kütüphane içerisinde, her bir veri kaynağı için 3 temel veri türü saklanmaktadır:

bilBot® kütüphanesi halihazırda koly erişim nedeniyle MS Access veritabanında tutulmaktadır. Ancak ileride tam XML destekli bir veri tabanı yapısı içinde yer alması öngörülmektedir.

2.2. İndeksleme Modülü

bilBot®'un sürekli erişimi amacıyla, ilgili web tabanlı veri kaynağının erişim, tarama ve entegrasyon parametrelerinin kütüphaneye aktarımı için kullanılan modüldür. Sözkonusu modül, kullanıcı etkileşimi ile işletilmekte, ilk indekslemeye ait veri giriş işlemlerinden sonra güncelleme işlemlerine de olanak tanımaktadır.

İndeksleme modülü hiçbir ek kütüphane ya da hazır kod kesimi kullanılmadan saf Java programlama dili (Java SDK 1.2) ile gerçekleştirilmiş ve herhangi bir donanım ve işletim platformu ile rahatlıkla uyum sağlayabilecek durumdadır.

2.3 Erişim/Tarama Modülü

Internet üzerinde otonom olarak gezinen ve eriştiği her bir veri kaynağı üzerinde tanımlanan işlemleri gerçekleştirerek istenen verileri hedef ortama döndüren modüldür. Gerçek zamanlı olarak uygulamaya bağlı çalıştırılabileceği gibi, küme işlem (batch process) olarak ve tanımlanan görevin gereklerine göre birden çok hareketli birim (instance) ile işlem yapılması mümkündür.

Erişim modülü de indeksleme modülü ile aynı şekilde saf Java dili ile gerçekleştirilmiştir.

bilBot® yazılım teknolojisi, Telif Hakları Genel Müdürlüğü'nün 20 Nisan 2000 tarih, 425 sayı ve 231 kod numarası ile, 5856 sayılı "Fikir ve Sanat Eserleri Kanunu" kapsamında kayıt ve koruma altına alınmıştır.

3. ÖRNEK UYGULAMA

Bu bölümde arka planda bilBot® teknolojisini kullanan http://www.akakce.com adresinde yerleşik AkAkce.com web sitesi örneklenecektir.

Sözkonusu web sitesi ülkemiz Internet mağazalarında özellikle teknoloji ürünleri için karşılaştırmalı fiyat bilgileri sunmaktadır. Herhangi bir ürün için, o ürüne ait fiyat bilgileri sağlanan mağazalardan 2. bölümde anlatılan küme işlem modeli ile toplanan bilgiler, web sitesinin veri tabanı ile entegre edilmekte ve kullanıcı talebine göre dinamik sayfa yapısında kullanıcıya sunulmaktadır.

Kütüphanenin her 3 birimi sözkonusu proje çerçevesinde kullanılmaktadır ve entegrasyon parametreleri projenin karakteristiği gereği fiyat bilgisinin entegrasyonuna yönelik birim, doviz cinsi, kdv gibi bileşenlerin özelliklerini tutmaktadır. Bunun dışında kütüphanede proje spesifik bir bölüm bulunmamaktadır.

Indeksleme modülü kullanıcısı tarafından uygun görülen web kaynaklarına yönlendirilerek indeksleme işlemi gerçekleştirilmekte ve küme işlem olarak erişim/tarama modülünce veriler toplanarak hedef veritabanına aktarılmaktadır.

Sözkonusu sitenin yayında olduğu 3 Kasım 2000 tarihinden itibaren günlük hatta fiyat haareketlerinin yoğun olduğu günlerde günde birkaç kez işletimle kesintisiz olarak faaliyet göstermiş, ayrıca geçen süre zarfında 62 web kaynağı, yurdışı kaynaklar dahil, sorunsuz olarak indekslenebilmiştir. Şu an için bilBot®'un teşebbüs ederek indekslemeyi ve veri toplamayı başaramadığı bir veri kaynağına rastlanmamıştır. Bu anlamda her ne kadar akademik kesinlikle %100 bir başarıdan sözedilemese bile pratikte hiçbir web tabnlı veri kaynağı istisnasına rastlanmamıştır.

KAYNAKÇA

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır