Pazar, Ekim 05, 2008

sürücülerle nereye kadar!

macbook'ta debianı adam etmeye çabaladığım şu sıralar bir kez daha kendimi sürücülerle boğuşurken buluverdim. askerliğim boyunca uğraştığım TSK'nın win2k bilgisayarları sağolsun; karşılaştığım türlü dertler, ticari bir işletim sistemi tercih etsen bile bu sürücü belasının kurtulamayacağın bir illet olduğunu bir kez daha hatırlatmış oldu bana.

herşeyden önce anlamadığım, insanoğlunun bilgisayarını başka bir şirketten, işletim sistemini başka bir şirketten almaya nasıl ikna olmuş olduğu. adam bir donanım satıyor ve bu donanımın başka bir şirketin ürettiği yazılım olmadan hiçbir anlamı yok. sadece bilgisayarlar değil, örneğin bir ağ kamerası aldınız, bunu kullanabilmek için bir bilgisayarınızın, bir de sorunsuz calışan bir işletim sisteminizin olması gerekiyor (ki bu sıradan bir windows kullanıcısı için kurulumdan sonraki 3-4 aya tekabül ediyor, sonrasında sistem çatırdamaya başlıyor), belki o zaman ağ kameranız size hizmet vermeye lütfedebilir, tabi o da üreticiler kullandığınız işletim sistemi için bir sürücü yazmışlarsa.

bence bu işler bir noktada yanlış bir yola sapmış, IBM'in PC standardını serbest bırakması bir kırılma noktası olabilir. herşeyden önce cihazlar çalışmak için neden dış bir işletim sistemine ihtiyaç duyuyorlar, neden kendi işletim sistemleri kendi üzerilerinde gelmiyor?

unix, ilk zamanlarda dosya yönetmekten başka bir amacı olmayan bir sistem, ve günümüz işletim sistemleri bu sistem üzerine oturtulmuş durumda. unix'te birinci kural "herşey bir dosyadır.", yani bilgisayarınıza taktığınız ethernet arabirimi de, ağ kamerası da sistem için birer dosyadan başka bir şey değildir. çıkış için dosyaya birşey yazılır, giriş için dosyadan birşeyler okunur. cihazlarin sürücüleri de bu dosyaya yazma-okuma işlemlerini cihazın anlayacağı dile tercüme eder. yani aslında bilgisayar dediğimiz şey iki kavramdan ibarettir: "giriş-çıkış", "kodlama-çözümleme". 1900'lerde de bu böyleydi, 3000'lerde de bu böyle olacak.

ama umarım 3000'lerde hala sürücülerle uğraşıyor olmayız. yıl 3000'de bir uzay gemisine bindiğimde yanımda getirdiğim bir aygıtı kullanabilmek için uzay gemisi bana sürücü CDsi sorarsa o gemiyi yakabilirim.

neyse ki şu sıralar bell labs plan9 projesi ile unix'te sapılan "herşeyi dosyaya benzetme" yolundan dönme çabası içerisinde. yeni işletim sistemi için model olarak internet seçilmiş. bu da insana gelecek için biraz umut aşılıyor.

herhangi bir donanımı çalışır hale getirmek bir adsl modemi çalışır hale getirmekten daha zor olmamalı, gerekli bağlantıları yaptıktan sonra tarayıcımdan bir adrese girmeliyim ve karşıma ayarlar sayfası çıkmalı, gerekli ayarları yaptıktan sonra cihaz çalışır hale gelmeli.

bir uzay gemisindesiniz, evdeki sevdiklerinize son halinizin fotoğrafını göndermek istiyorsunuz, ve çevrenizde bir sürü akıllı aygıt var, bu aygıtların aklında da sadece 2 soru var: "girdileri nereden alacağım?", "çıktıyı nereye vereceğim?". kodlama-çözümleme ile ilgili soruların cevapları doğumlarında veya sonradan, donanım veya yazılım olarak beyinlerine kazınmış durumda. sizin ihtiyacınız olan bir ağ kamerası, fotoğrafı kaydetmek için bir dosya sunucusu ve mesaj göndermek için bir e-posta sunucusu.

ve şimdi kullanacağınız aygıtların sorularına cevap verelim:

ağ kamerası ayar sayfasında: görüntü dondurulduğu anda çıkışını dosya formatında, şu ayarlarda şu adresteki dosya sunucusuna gönder, girişin şu klavye üzerindeki şu kısayollar; şu kısayolda görüntüyü dondur, şu kısayolda görüntü akışına devam et.

dosya sunucusu ayar sayfasında: girişinde şu ağ kamerasından akan verileri kabul et, şu adrese şu dosya ismiyle kaydet ve şu e-posta sunucusuna şu ayarlarla gönder.

e-posta sunucusu ayar sayfasında: girişinde şu dosya sunucusundan akan verileri kabul et, transfer tamamlanınca çıkışın şu eposta adresi.


eğer fotoğrafın kaydını tutmak istemiyorsanız o zaman dosya sunucusunu hiç kullanmayabilirsiniz, ağ kamerasını doğrudan e-posta sunucusuna bağlayacak şekilde ayarlarınızı değiştirmeniz yeterli olacaktır.

ama ne yazık ki günümüzde bu tip ölçeklendirmelere gitmek, kolayca bileşen değişikliği yapabilmek çok mümkün değil. çünkü ürettiğimiz aygıtların bir PC olmadan bir anlamları yok, PC'lerin efendi diğer aygıtların köle olduğu bir düzende yaşıyoruz, elimizdeki cihazı ancak PC'mizin gücünün izin verdiği ölçüde kullanabiliyoruz. halbuki iş paylaşımı ve haberleşmeye dayalı bir tasarım üzerine ilerlenmiş olsa, her cihazı çalıştığınız sistemden bağımsız olarak gerçek gücünde kullanmak mümkün olacaktı, belki de işletim sistemi diye birşey olmayacaktı.

sun'in vizyonunda da söylendiği gibi "ağ demek bilgisayar demek!", inşallah.

Pazar, Eylül 21, 2008

cinnet sonrası debian'a dönüş

macbook'la ikinci senemi doldurmak üzereyim, geçenlerde ağ trafiğimdeki bazı şüpheli hareketlerden kıllanıp snort+base ile bir takip edeyim dedim ne oluyor ne bitiyor. base, gd bağımlılıkları olan bir php uygulaması, leopard ile gelen php'nin ne yazık ki gd desteği yok idi, internette biraz bakındığımda gd desteği için yeni bir php derlemem gerektiğini fark ettim. mac'te en kıllandığım durumlardan biri bu, bir sistemin içinde gelen bir şeyler var, bir de onların yetmediği yerde darwin-ports'tan kurduğun şeyler, sisteminde 2şer tane gcc, 2şer tane php olabiliyor. bu da sistemi patlamaya hazır saatli bomba haline getiriyor, path'de ön sırada olan uygulamanın yanlış kütüphaneyi kullanması gibi sıkıntıların yol açabileceği, teşhisi zor problemlere davetiye çıkarılmış oluyor.

bu fevri kızgınlık sırasında, şöyle döndüm bir kendime baktım. 2 yıl içerisinde, ağ trafiğindeki şüpheli hareketlerden kıllanan, türkiye'de yaşadığı için itunes store'dan alışveriş yapamadığına üzülen, apple'in çıkardığı her ürünün reklamlarını vs. pür dikkat izleyen bir adam haline gelmişim. steve jobs'un rüzgarına kapılarak huzurumdan olmuşum.

şöyle bir "ps" çektim konsolda, bir sürü ne yaptığını bilmediğim işlem koşuyor bilgisayarımda, geçenlerde kendine xmonad kurmuş, sisteminde toplasan 20 işlemin koştuğu bekir çocuğu geldi aklıma ve bilgisayarım üzerindeki kontrolu yitirdiğim hissiyatına kapıldım.

bu düşünce silsilesi sonrası getirdiğim cinnet sonrası macbook'uma debian kurma kararı aldım. yalnız o kadar da cinnet geçirmemişim sanırım ki tüm diski formatlamak yemedi, çift işletim sistemi çözümüne yöneldim.

kurulumu tamamlayıp, yeni debianımı açtığımda uzun yıllar sonrası memlekete geri dönüşünde ilk işi toprağı öpmek olan gurbetçi pisikolojisine büründüm bir an için. mac'e geçtiğimde compiz, xgl yeni yeni çıkan kavramlardı, arkadaşlardan görüyordum ama içinde yaşama şansı bulamamıştım, diyebilirim ki memleket görmeyeli çok değişmiş. herhalde istanbul'a döndüğünde ilk kez gördüğü boğaziçi köprüsünden geçerken değişen istanbul üzerinde göz gezdiren gurbetçi ile aynı hissiyat içindeydim bu noktada da.

yalnız çok zaman geçmeden memleketin bozuk yolları, gündelik dertleri gözüme batar oldu. tanınmayan donanımlar ve masaüstündeki genel bir yavaşlık hali. macbook o kadar ağım-şahım bileşenlere sahip olmayan bir bilgisayar olmasına rağmen macosx işletim sistemi ile gerçekten çok üstün bir başarım sergileyebiliyor. bu da insanın makineden beklentisini arttırıyor sanırım.

ubuntunun kendi bilgisayarını ürettiği, ya da bir çinli üreticinin bünyesindeki düzgün yazılımcı ekibiyle üretilen bilgisayar için kullanılacak linux dağıtımı üzerinde gerçek anlamda bir eniyileme çalışması yapabileceği günleri iple çekiyorum. her bilgisayarda koşsun diye yazılan yazılımların, özel bir donanım üzerinde koşulmak üzere yazılmış macosx işletim istemiyle rekabet edebilmesi oldukça güç aksi takdirde.

neyse sanırım geri dönüşüm o kadar da hızlı gerçekleşemeyecek, biraz daha araştırma yapıp, çekirdeği macbook'a göre derleyip, bir iki ayar ile sıkıntılarımı aşabileceğim umuduna sahibim. televizyona ve dış monitore sorunsuz görüntü verebilme, skype'i kameralı olarak sorunsuz çalıştırabilme aşmam gereken öncelikli sıkıntılar.

bu arada mac kullanıcılarına snort+base'i tavsiye ederim, başarılı bir nasıl belgesini şurada bulabilirsiniz. arkadaş hemen quicktime'in vs.'in yaptığı hareketleri yakalıyıverdi.

Salı, Temmuz 22, 2008

imkbizle'ye "akbank yatırım" eklendi

imkbizle 2.1 sürümü ile birlikte artık işnetten olduğu gibi akbank yatırımdan da veri çekilebiliyor. böylece sitelerden biri problem yaşarsa insanlar diğer siteden hayatlarına devam edebilirler.

bununla birlikte sitelerden hisse değerleri dışında bilgi de çekilebilmesi mümkün, bunun ilk örneği dolar ve euro kur değerleri oldu, hisse listesinin sonuna "USDTRY" ve "EURTRY" diye iki yeni madde eklendi (firefox sayfasından gelen bir kullanıcı isteğiydi bu)

kullanıcı test senaryoları ve birim testler de depoya eklendi. sanırım artık eklentiyi halka arz etmeye hazırım, 2.1 sürümü biraz indirilsin, insanlar tarafından da biraz test edilsin, herkes tarafından indirilebilir bir eklenti olması için başvuruda bulunacağım.

Pazar, Haziran 01, 2008

internet yasaklarını aşmanın en güvenli yolu

eskiden, türk telekom, internet yasakları için oldukça basit bir yöntem kullanıyordu. sadece dns sunucularında yasaklanan sitenin adresi, gerçek adresi yerine mahkeme kararının yayınlandığı adrese yönlendirilirdi. eğer türk telekomun dns sunucularını kullanmıyorsanız yasaklı siteye erişebilirdiniz.

geçenlerde türk telekom'un dns sunucularını kullanmamama rağmen yasaklı youtube'a giremediğimi farkettim. türk telekom mühendisleri sağda solda yazılan "bir siteyi bile adam gibi yasaklamaktan aciz mahluklar" gibi yakıştırmalara içerlemiş olsalar gerek, yasaklı sitelere ulaşım yolunu kesme yöntemine yönelmişler (bu tahrik dolu yazıları yazan yarım akıllılara hiç akıl sır erdiremiyorum, ekmeğini ağ mühendisliğinden kazanan bir insanın senin kadar kafasının calışmamasi gibi bir ihtimale nasıl inanabiliyorsun?).

neyse son yasaklama yöntemiyle birlikte artık yasağı aşmak için bir vekil sunucu kullanmak farz hale geldi. ancak internette bir aratma sonucunda bulduğunuz ilk vekil sunucuyu kullanmak kendi ipinizi kendi elinizle çekmeniz anlamına geliyor. bu şekilde tüm trafiğinizi tanımadığınız birilerine dinletmek için gönüllü olmuş oluyorsunuz ki bir yandan da kendinizi ortadaki adam saldırıları için kurbanlık koyun haline getirmiş oluyorsunuz.

naçizane önerim, internet yasaklarını aşacağım diye sakın ha bilmediğiniz herhangi bir dns sunucusunu veya vekil sunucusunu kullanmaya kalkmayın, canınız fena halde yanabilir. kimse sunucusu üzerindeki trafiği sevabına arttırmak istemez, bir art niyet olma olasılığı oldukça yüksektir.

şu an için internet yasaklarını aşmanın en güvenli yolu, yurt dışında ssh ile bağlanabileceğiniz bir sunucunuz varsa eğer, bir socks v4 vekil sunucusu ayaklandırmanız ve tarayıcınızın ayarlarını bu vekil sunucusunu kullanacak şekilde değiştirmeniz.

# ssh -D 8080 user@yurtdisindakimakine

yukarıdaki komut yerelinizde, 8080 portunda bir socks v4 vekil sunucusu oluşturur. örneğin firefox için, aşağıda görüldüğü gibi "socks v4 vekil sunucusu olarak localhost:8080 portunu kullan" şeklinde bir ayar yaparsanız (Ayarlar-Gelişmiş sekmesindeki bağlantı ayarlarından);



firefoxunuzdaki tüm trafik "yurtdisindakimakine" adlı sunucu üzerinden akmaya başlayacaktır, bu şekilde kullandığınız internet sağlayıcının (burada türk telekom) koyduğu kuralların bir anlamı sizin için kalmamış oluyor, "yurtdisindakimakine" sunucusunun internet sağlayıcısının koyduğu kurallar çerçevesinde internette gezinebiliyorsunuz.

güzel memleketimi iran'a çevirmeye çalışan zihniyetler sağolsun artık internette rahat rahat gezinebilmek için yurt dışında bir makine kiralamak farz hale geldi sanırım.

Cumartesi, Mayıs 24, 2008

imkbizle

firefox'ta dolaşırken bir yandan portföyündeki hisselerinin gözünün altında olmasını isteyen insanlar için şöyle bir eklenti projesi açtım:


firefox eklentileri arasına da ekledim:

eğer bu sayfaya girip "vay anasını be", "adamlar yapmış", "supeer!" gibi yorumlar eşliğinde 5 yıldız verebilirseniz, eklentinin halka arzı için başvuruda bulunacağım. (değerlendirmede önemliymiş anladığım kadarıyla, yorumsuz not veremiyorsunuz, "asdf" gibi yorumlar yaptığınızda notunuz geçerli sayılmıyor ve yorum yazmak için kullanıcı hesabınızın olması gerekiyor. özetle biraz gereksiz kastırmışlar.)

jmeter'la artık birden fazla dosya göndermek mümkün

kabul edilen şu yamamla birlikte artık jmeter http isteklerine birden fazla dosya eklemek mümkün.

ve bu yamayla birlikte "hede" sözcüğünü de jmeter kod tabanına sokmuş oldum.

Pazar, Mart 30, 2008

macosx'te jmeter testlerini çalıştırma mücadelesi

leopard üzerinde jmeter birim testlerini çalıştırma mücadeleniz varsa ve

(org.apache.jmeter.assertions.XMLSchemaAssertionTest)java.lang.IllegalArgumentException: http://java.sun.com/xml/jaxp/properties/schemaLanguage

tadında hatalar alıyorsanız, ~/Library/Java/Extensions/xerces.jar kütüphanesini silip tekrar denemenizi tavsiye ederim, tabi bir tarafa yedeğini almakta fayda var, başka bir program için yerine koymanız gerekebilir belki bir vakit, belli mi olur.

Pazartesi, Ocak 07, 2008

Ağ 3.0 - Anlamsal Ağ

(emo'nun isteği üzerine bekir'le beraber hazırladığımız makale)

--

Genelağ (internet) üzerinde oluşan sosyal ağlar, yaygınlaşan elektronik günlükler ve kişisel yayınlar ile birlikte çığ gibi büyüyen sanal veri yığınının çöp haline gelmemesi ve aramalarda tekellere bağımlılığın son bulması için, içeriklerin ve kavramların birbirleriyle ve kişilerle ilişkilendirilebildiği anlamsal bir ağın (semantic web) oluşturulması şart. "web-3.0" ve "semantic web" çoğu zaman birlikte anılan kavramlar. Ağa (web) sürüm biçen resmi bir otorite olmamasına rağmen "web-1.0", "web-2.0" ve "web-3.0" şeklinde isimlendirmeler, pazarlama kavramları olarak sürekli gündemde. Bu sürüm numaralarıyla ifade edilen dönemleri genelağ üzerinde yaşanan ekonomik değişimler sonucu atlanan çağlar olarak tanımlamak da mümkün. "web-1.0" döneminde genelağ üzerinden ticaret ile tanıştık. "web-2.0" ise, e-ticarete katılan e-topluluklar ve beraberinde gelen zengin ve dağıtık içeriğin ekonomik gidişatı belirlediği çağdı. Şirketlerin değerleri kullanıcı sayılarıyla ölçülür hale geldi. Zamanla kişiselleştirilebilirlik ağda yükselen bir değer haline geldi. Genelağdaki kimliklerin ve kullanıcı alışkanlıklarının giderek belirginleşmesi ile birlikte görünümler kişiye göre şekillendirilebilir kılındı, ancak sadece görüntüde değil işlevde de kişiselleştirme bir ihtiyaç halini aldı. Arama motorları, arama yapan kişinin kimliğine göre farklı sonuçlar getirme mücadelesine giriştiler. Peki ağ bu değişime gerçekten hazır mı? Halen ağdaki sayfamızın arama motorları tarafından farkedilmesi için özel anahtar kelimelerden faydalanıyoruz. İnsanın okuyacagi ile makinenin okuyacağı içerigi ayırmış durumdayız. Aramalarda gerçek anlamda bir kişiselleştirme için içerigi kişiyle bir şekilde ilişkilendirmek şart. Bir insanın basitçe cevap vereceği soruları bir arama motoruna sorup da düzgün bir cevap almak çok mümkün değil bu ilişki bilgisinin eksikliği nedeniyle. Genelağ üzerindeki içeriğin birbiriyle ilişkilendirildiği ve cümlelerle ifade edilebilir hale geldiği, genelağın dev bir veritabanına dönüştüğü, makinelere soru sorabildiğimiz, makinelerin birbirleriyle konuşarak sorularımıza cevap arayabildiği, özetle makinelerin konuşmayı öğrendiği, servis ve sunucu merkezli yaklaşımların yerini kullanıcı merkezli dağıtık bir yapıya bıraktığı yeni çağ "web-3.0", ve bu çagın temelini oluşturan alt yapı da anlamsal ağ (semantic web) olarak tanımlanıyor.

İçerikleri anlamlı bir şekilde ilişkilendirebilmek için öncelikle sözlere, ve bu sözlerin tanımına bakabileceğimiz sözlüklere ihtiyacımız var. Günümüzde ağdaki sayfamızın insan dışında da bazı ziyaretçileri var. Yayınlarımızın kolayca takibini mümkün kılan RSS okuyucular, gezegenler; yazdıklarımızın diğer insanlar tarafından bulunabilmesini sağlayan arama motorları mevcut. İnsan dışındaki en eski ziyaretçi kitlesi olan bu arama motorlarının gözüne çarpmak için sayfamızda insanlara hitap etmeyen anahtar sözcükler barındırıyoruz. İçerik hakkında içerik olarak da tanımlayabileceğimiz bu anahtar sözcükleri (metadata) belirlerken insanların genelağ üzerinde bir arama yaparken edindikleri bazı alışkanlıkları takip ederek ilerliyoruz. Anlamsal ağlarda ise içerik (data) ile anahtar sözcüklerin (metadata) iç içe geçmesi hedefleniyor. İçerik ile içerik hakkındaki bilgilerin birlikte ifade edilebildiği yollar aranıyor. Bu durumda anahtar sözcüklerler şu anda olduğu gibi sayfanın geneline dair değil, içerik bazında bir ilişkilendirme imkanı sunar hale gelecekler. Amaç sayfanızda tanımlanmamış herhangi bir içeriğin kalmaması. Peki bu tanımlar nereden geliyor? Tanımlara, işlevi dolayısıyla sözlük olarak nitelendirilebilecek belirtimlerden (spec) bakılıyor. Aynı belirtimleri kullanarak yazılan uygulamalar birbirlerinin dilini konuşabiliyorlar (FOAF (Friend Of A Friend) incelenebilecek güncel sözlüklere güzel bir örnek[8]).

Sözlükler oluştuktan sonra, sayfalarımızda kullanılagelen içerik-etiket eşleşmelerini, temel dilbilgisi kuralları üzerine kurulu cümlelere dönüştürebiliriz. İçerik ilişkilendirmelerimizi kuracağımız cümlelerin yüklemi olarak düşünmek mümkün. İnsanların kişisel bilgilerini yayınladığımız bir sayfamız olsun. Seçtiğimiz sözlükte "kişisel bilgi" sözcüğünün tanımı yapılmış mı diye bakıyoruz, yapılmışsa cümlemizin öğeleri tamamlandı anlamına geliyor. Burada özne içeriğin kendisi, nesne sayfamız, yüklem ise "kişisel bilgidir". İnsanın kolayca anlayabileceği bir cümle olarak ifade edersek, "bu içerik bu sayfada bir kişisel bilgidir." cümlesi karşımıza çıkıyor. "kişisel bilgi" sözcüğünün sözlükteki tanımı şu şekilde yapılmış olsun: "ad-soyad bilgisinin mutlaka olması gereken, bunun yanında takma isim, genelağ adresi, e-posta adresi, posta adresi, enlem-boylam pozisyonu, fotoğrafı, sıfatı, notlar ve çeşitli kimlik numaraları gibi kişiye dair diğer bilgileri de içerebilen bilgiler bütünü". Diyelim ki sayfamızda "ali veli" diye bir isim geçiyor, "ali veli" ismini bir "kişisel bilgi"'nin içine dahil edip "ad-soyad" olduğunu belirttiğimizde ikinci cümlemizi kurmuş oluyoruz: "ali veli bu kişisel bilgiye dair bir ad-soyaddır". Kullandığımız "kişisel bilgi" ve "ad-soyad" etiketlerini sayfanın gösteriminde de kullanarak hem görsel hem metin olarak insan tarafından anlaşılır kılmak çok zor değil. Bunun yanında "sayfa", "kişisel bilgi" ve "ad-soyad" sözcükleri arasında kurduğumuz ilişki sayesinde hem insan hem makineler için anlam ifade edecek yeni cümleler türetmek mümkün hale geliyor (örneğin "ali veli bu sayfadaki bir insan ismidir").

Kurulan ilişkiler ve cümleler ile bir sayfa üzerinde tıpkı bir veritabanı sorgusuna benzer sorguların çalıştırılması mümkün. Şekil 1'de kıtalar ile ülkeler arasında "içerme" ilişkisini ve ülkeler ile şehirler arasında "başkent olma" ilişkisini tutan bir sayfa üzerinde çalıştırılan örnek bir SPARQL (SPARQL Protocol and RDF Query Language) sorgusunu görüyoruz. Afrika'yla "içerme" ilişkisi kuran ülkelerin isimleri ve bu ülkelerle "başkent olma" ilişkisi bulunan şehir isimleri sorgulanmış. Günümüzde, veritabanlarının yaygın kullanımı nedeniyle, veri sorgulama denilince insanların aklına ilk olarak SQL sorgularının geliyor olması SPARQL ile SQL arasındaki söz dizimi benzerliğinin sebebini ortaya koyuyor. Burada önemli olan bu tip bir soyutlamaya izin veren altyapının oluşturulması.

Şekil 1:
SPARQL örneği
\begin{figure}\begin{center} \footnotesize \line(1,0){230} \begin{verbatim}PRE... ...nContinent abc:africa. }\end{verbatim} \line(1,0){230}\end{center}\end{figure}

Sorgu dili soyutlamasındaki son nokta ise iletişimi günlük konuşma dili seviyelerine çekebilmek. Örneğin şekil-1'deki SPARQL sorgusu yerine "Afrika'daki ülkeler ve başkentleri nelerdir?" diye bir sorunun makineler tarafından cevaplandırılabilir hale gelmesi anlamsal ağ çalışmalarındaki nihai hedef.

Sadece insanın makinelere değil, makinelerin de birbirlerine soru sorabileceği bir altyapıdan söz ediyoruz. Şekil-1'deki sorguda tek bir sayfadan değil iki sayfadan veri çekildiği durumu düşünelim. Sayfalardan biri kıtalar ile ülkeler arasındaki "içerme" bilgisini tutsun, diğeri de ülkeler ile şehirleri arasındaki "başkent olma" ilişkisini. İlk sayfa, "Afrika'da hangi ülkeler vardır?" sorusuna cevap verebilecektir, her bir ülke için diğer sayfaya "bu ülkenin başkenti nedir?" sorusunu soracak, ve edindiği bilgiler ile kullanıcının sorusuna doğrudan istediği sonuçları dönmesi mümkün olacaktır.

Makinelerin kendi arasında haberleşmesi çok yeni bir şey olmamasına rağmen, bu haberleşmenin teknik olmayan insanlar tarafından anlaşılır hale gelmesi anlamsal ağlarla mümkün. Örneğin yukarıdaki örnekte sayfalardan biri diğerine ülke sayısı kadar "bu ülkenin başkenti nedir?" sorusunu soruyor. Burada şebekeyi (network) dinleyen insanın ne konuşulduğunu anlaması için herhangi bir protokolün belirtimini okumasına, okuduğu belgeyi anlayabilmek icin uzun uzun eğitimler almış olmasına gerek kalmıyor, çünkü konuşulan protokol gündelik hayatında da kullanageldiği basit dil bilgisi kuralları üzerine kurulmuş bir protokol.

Anlamsal ağa dair oluşumlar, diğer bir yandan, günümüzde olduğu gibi merkezde servislerin ve sunucunun olduğu değil, kullanıcının yer aldığı bir yapıyı zorluyor. Örneğin e-posta hesabımızı tuttuğumuz servisle, kişi listemizi tuttuğumuz servisin aynı firma tarafından veriliyor olması gibi bir kısıtın kalmaması gerekiyor. Kişi listemizde bulunan adreslere, eposta uygulamamızdan kolayca erişip hızlı bir şekilde mesaj gönderebilmek amaçlanıyor. Bunun için de kullanıcı kimliklerinin her servis için ayrı ayrı oluşturulduğu şu anki yapının yerini tek bir kullanıcı kimliğinin olduğu, kimliğin servislere tanıtıldığı bir düzene bırakması bekleniyor. Kullanıcılar içerik sorgularken ve yayınlarken kullanacakları dile seçtikleri sözlüklerle karar verebilecekler. Dağıtık, sonu olmayan ve güvenli bir paylaşım ortamının oluşturulmasi anlamsal ağların gereksinimlerinden biri.

Şekil 2:
XSLT ile XHTML'in RDF'e çevrilmesi
\begin{figure}\begin{center} \footnotesize \line(1,0){230} \begin{verbatim}<ht... ...-01-0 </rdf:Description>\end{verbatim} \line(1,0){230}\end{center}\end{figure}

Anlamsal ağ çalışmalarına "W3C"[1] çalışma grupları ve ortaya koydukları standartlar yön veriyor. Ağı veriye dönüştürme amaçlı bu çalışmalar genel olarak iki odak altinda ilerliyor. Bir odak, RDF (Resource Definition Language)[3] ve OWL (Web Ontology Language)[4] gibi dillerle anlam bilimsel cümleler kurulması ve uygulamalarin bu cümleler güdümünde geliştirilmesi. "W3C"'nin ortaya koyduğu standartlar ışığında RDF ve OWL yaratabilmek, yaratılmış olanlar üzerinde SPARQL ile sorgulama yapabilmek için geliştirilmiş pek çok araç var, pek çoğu da geliştirilmeye devam ediliyor. Anlamsal ağ ile ilgili yayınlanan belge sayısı ve çalışan geliştirici toplulukları gayet tatmin edici boyutlarda. Anlamsal ağ çalışmalarında bir diğer odak noktası olan GRDDL (Gleaning Resource Descriptions from Dialects of Languages)[5] ile var olan içeriği bir dizi değişime uğratıp anlam bilimsel formatlara çevirme yöntemi üzerinde duruluyor (bkz. Şekil 2). Biçim imleri (tag) içindeki öznitelikleri (attribute) etiket olarak kullanıp, daha sonra bu etiketlere bakarak kolayca RDF'e ya da başka herhangi bir formata dönüştürmek mümkün. Bu etiket mantığı üzerine kurulu en bilinen yöntem, fikir babalığını "W3C"'de söz sahibi Tantek Çelik isimli bir Türk'ün yaptığı "mikroformat"[7] yöntemidir. "Tails Export"[9] isimli "firefox" eklentisi sayesinde genelağda dolaşırken girdiğiniz sayfanın herhangi bir mikroformata uyumlu içerik bulundurup bulundurmadığını ve bulunduruyorsa bu içeriklerin neler olduğunu görebilirsiniz. Anlamsal ağ kavramlarından faydalanan sayfaları ve portalları incelemek için "smile"[10] projesi kapsamında geliştirilen ve firefox eklentisi olarak calışan "piggy bank"[11] uygulamasını indirip deneyebilirsiniz. Anlamsal ağlarla ilgili şu ana kadar yapılan çalışmalardan örnekler vermek gerekirse, tanınmış sözlükler için;

  • SKOS Core[12]

  • Dublin Core[13]

  • FOAF[8]

  • DOAP[14]

  • SIOC[15]

  • vCard in RDF gibi[16]


duyulmuş projeler için:

  • Pfizer[17]

  • NASA's SWEET[18]

  • Eli Lilly[19]

  • MITRE Corp.[20]

  • Elsevier[21]

  • EU Projeleri (ör: Sculpteur[22], Artiste[23])

  • UN FAO’s MeteoBroker

  • DartGrid[24]

  • Smile[10]

anlamsal ağlar üzerine kurulmuş portallar için;

  • Vodafone's Live Mobile Portal

  • Sun’s White Paper Collections[26] and System Handbook collections[27]

  • Nokia’s S60 support portal[25]

  • Harper’s Online magazine linking items via an internal ontology[28]

  • Oracle’s virtual press room[29]

  • Opera’s community site[30]

  • Yahoo! Food[31]

  • FAO's Food[32]

  • Nutrition and Agriculture Journal portal.

örneklerini vermek mümkün.

Anlamsal ağlar yolunda şu ana kadar epey bir mesafe kaydedilmiş durumda. Şekil 3'de anlamsal ağa dair kavramlar katman katman belirtilmiş. Son 3 katmana kadar RDF, OWL, SPARQL ve GRDDL gibi somut çıktılarla yol katedildiği görülüyor. Geri kalan, "mantık", "kanıt" ve "güven" basamakları için henüz atılmış somut bir adım olmamasına karşın, "W3C" bünyesindeki çalışma grupları ile bu konular üzerindeki çalışmalar devam ediyor. Burada mantık ile kastedilen kurulmuş cümleleri okuyup anlayarak mantık kuralları çerçevesinde yeni cümlelerin kurulabilmesini sağlayan altyapıdır. "Kanıt" ise, bir çıkarımı doğrulayan savların ne şekilde ortaya konulacağını belirleyen katmandır. En üstteki güven katmanında, bilgilerin güvenilirligi ve kişilerin mahremiyet haklarını koruma ile ilgili çözümler yerini alacaktır.

Şekil 3:
Anlamsal Ağ Katmanları
\begin{figure}\begin{center} \epsffile{swlevels.eps}\end{center}\end{figure}

Anlamsal ağlar bir hayal değil gereksinimdir. Bugün milyonlarla ifade edilen genelağ kullanıcısı sayısının yakın zamanda milyarlarla ifade edilir hale geleceği öngörülüyor. Hızla artan kullanıcı nüfusu ve yayılan paylaşım kültürü ile herkese açık ve katlanarak büyüyen veri yığınını anlamlı hale getirmek şart. Yayınlayan için bulunabilirlik, arama yapan için ise doğru bilgiye hızlı erişime imkan tanıyan bir çözüm olarak ortaya çıkıyor anlamsal ağ. İçerikler arası kurulan ilişkilendirmeler sayesinde her bir sayfa başka sayfalarla ve insanlarla konuşabilen zayıf bir zekaya sahip hizmetkarlara dönüşüyor. Genelağı, arama motorlarının bize sundugu dar bir pencereden seyredebiliyoruz. İleride ise yapacağımız herhangi bir aramada, tetikleyeceğimiz kıvılcım tıpkı bir dedektif gibi ilişkilerle kurulan yolları izleyerek aradığımızı bulup önümüze getirebilecek. Yerel ağınızda bir arama yapabilmek için daha önceden yerel ağınızdaki tüm sayfaları dolaşıp indeks oluşturan bir arama motoruna ihtiyaç ortadan kalkıyor, aramalar gerçek zamanlı bir hal alıyor. Genelağda kendi sınırlarımızı belirleyebiliyoruz, ağdaki yaşam alanımızı istediğimiz zaman genişletip, istediğimiz zaman daraltmamız mümkün. Yapacağımız aramanın ne kadar detaylı olacağını kullandığımız arama motorunun gücü değil, yapacağımız seçimler belirleyecek.

Kaynaklar:
[1] http://www.w3.org/
[2] http://www.w3.org/2001/sw/
[3] http://www.w3.org/RDF/
[4] http://www.w3.org/2004/OWL/
[5] http://www.w3.org/2001/sw/grddl-wg/
[6] http://www.w3.org/TR/rdf-sparql-query/
[7] http://microformats.org/
[8] http://www.foaf-project.org/
[9] http://addons.mozilla.org/firefox/2240
[10] http://smile.mit.edu/
[11] http://simile.mit.edu/piggy-bank/
[12] http://www.w3.org/TR/swbp-skos-core-guide/
[13] http://www.dublincore.org/
[14] http://usefulinc.com/doap/
[15] http://sioc-project.org/
[16] http://www.w3.org/2006/vcard/ns
[17] http://www.pfizer.com
[18] http://sweet.jpl.nasa.gov/ontology/
[19] http://www.lilly.com/
[20] http://www.mitre.org/
[21] http://aduna.biz/dope/
[22] http://www.sculpteurweb.org/
[23] http://users.ecs.soton.ac.uk/km/projs/artiste/
[24] http://ccnt.zju.edu.cn/projects/dartgrid/intro.html
[25] http://www.forum.nokia.com/
[26] http://www.sun.com/servers/wp.jsp
[27] http://sunsolve.sun.com/handbook_pub/validateUser.do?target=index
[28] http://www.harpers.org/
[29] http://pressroom.oracle.com/
[30] http://my.opera.com/community/
[31] http://food.yahoo.com/
[32] http://www.fao.org/
[33] http://www.w3.org/2001/12/semweb-fin/w3csw
[34] http://www.w3.org/2007/Talks/0831-Singapore-IH/
[35] http://www.w3.org/2007/Talks/0424-Stavanger-IH/
[36] http://www.w3.org/TR/grddl-primer/
[37] http://en.wikipedia.org/wiki/Semantic_Web
[38] http://en.wikipedia.org/wiki/Ontology_%28computer_science%29
[39] http://en.wikipedia.org/wiki/Web_Ontology_Language
[40] http://en.wikipedia.org/wiki/Resource_Description_Framework
[41] http://en.wikipedia.org/wiki/GRDDL
[42] http://sramanamitra.com/2007/02/14/web-30-4c-p-vs
[43] http://www.ozgan.net/?sm=content.ybz&id=63
[44] http://xmlns.com/foaf/spec/