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/

Hiç yorum yok:

Yorum Gönder