Yeni yılın ikinci ayı başlarken sizlerle yeniden beraberiz. Bu yazımda sosyal ağların üzerine oturduğu çizge (graph) yapısının oluşumunda önemli rol oynayan birtakım yapıtaşlarından söz edeceğim sizlere.(sosyal ağlar üzerine daha genel içerikli bir yazı için: Sosyal Ağ ve Facebook - Aralık 2007)

Sosyal Çizge Nedir?

Sosyal çizge, ilişkilerimizin bir temsilidir. Web üzerinde kişisel, akraba veya iş çevremizin sosyal web sitelerinde oluşturduğu gruplardır. Fakat webde bu tarz platformların birden fazla olması ve benzer ilişkilerin birden fazla sitede birden gösterilmesi sosyal çizgeyi büyük ve karmaşık bir yapı haline getirmektedir. Şu anda sosyal ağlarla ilgili en büyük potansiyeli açık ara Facebook elinde bulundurmaktadır. “Social Graph” kavramını ilk kez ortaya atan Facebook ve ardından gelen Google ve Twitter gibi sosyal platformların her biri sahip oldukları kullanıcılar ve o kullanıcıların platform içinde veya platform dışı sitelerden birbirleriyle oluşturdukları bağlar ile aslında sosyal çizgelerini yavaş yavaş oluşturmuş durumdadır. Sosyal çizge ile ilgili bu ilk yazımda sosyal çizgeden ve çizgeyi oluşturmada kullanılan teknolojilerden bahsedeceğim.

Neden Sosyal Çizge?

Sosyal çizge ile tüm web üzerinde gerçek dünyadaki özel veya tüzel kişiliklerin arasındaki ilişkilerin bir kopyasının tutulabileceğinden bahsettik. Web üzerinde böyle bir yapının oluşmasının getirebileceklerinden şöyle bahsedilebilir;

Örneğin sosyal bir platforma üyesiniz. Bu platformda arkadaşlarınız ve onların web siteleri, blogları, ya da kamuya açık olarak paylaştıkları diğer içerikler var. Siz bu altyapıyı kullanarak örneğin Maldivler’de tatil hakkında bir arama yaptınız. Çıkan arama sonuçlarında sizinle bağlantılı olan kişilerden gelen blog çıktıları, fotoğraf paylaşımları çıkıyor. Böylece sosyal ağınızı kullanarak arkadaşlarınızın deneyimlerini ve bağlantılarını da sorgulayabilmiş oluyorsunuz.

Bir başka örnek senaryo: sevdiğimiz ve sosyal platformumuzda belirttiğimiz müzik türlerine veya gruplarına göre maillerimize otomatik olarak konser tarihleri veya yeni çıkan albümler ile ilgili güncel bilgilerin gelmesi.

İşlemcilerin giderek daha da güçlenmesi, giderek her türlü elektronik aygıtın bir bilgisayar niteliğini alması; iPhone, iPad, Blackberry, HTC ve Samsung’un Android destekli çıkan modelleri gibi ‘akıllı telefon’lardan sosyal platformlara erişimin desteklenmesi ile sosyal çizgeye giderek daha çok bağlantı ekleniyor ve sosyal bir Ağ’a duyulan ihtiyaç daha çok artıyor. Dahası, artık sosyal web giderek “web” kavramının ta kendisi olmaya başlıyor.

Sosyal Çizge Yapıtaşları

Mikroformatlar

Mikroformat, varolan HTML/XHTML etiketleri yardımıyla üst verileri ve (X)HTML destekleyen RSS gibi başka içerik türlerini ifade etmek için kullanılan, anlamsal işaretlemeyle ilgili bir yaklaşımdır. Bu yaklaşım son kullanıcılara yönelik iletişim bilgisi, coğrafi koordinatlar, etkinlik takvimi gibi bilgilerin otomatik olarak işlenebilmesini sağlamaktadır.

Mikroformatların kullanımı ve benimsenmesi ile verilerin dizinlenmesi, aranabilmesi, kaydedilmesi veya referans olarak gösterilmesi desteklenerek bilginin tekrar kullanımı veya derlenmesi sağlanmaktadır.

Mikroformatların var olan işaretleme dili standartlarını kullandığından bahsetmiştik. Bu dillerdeki “rel”, “class” ve “rev” öznitelikleri üst verilerin temsili için kullanılmaktadır. Örneğin kişilerin iletişim bilgilerini “vCard” mikroformat belirtimiyle tanımlayabiliriz;

<div class="vcard">
   <div class="fn">Joe Doe</div>
   <div class="org">The Example Company</div>
   <div class="tel">604-555-1234</div>
   <a class="url" href="http://example.com/">http://example.com/</a>
 </div>

Bu gösterim ile Joe Doe adlı kişinin iletişim bilgileri bilgisayarlar tarafından anlamlandırılabilmektedir.

Çok sayıda alanla ilgili anlamsal işaretlemeyi destekleyen mikroformat vardır. Bunlar;

  • hAtom –Atom kaynaklarının standart HTML içinde işaretlenmesini sağlar
  • hCalendar – etkinlikler için
  • hCard – iletişim bilgileri için
  • geo – coğrafi koordinatları belirtmek için (latitude, longitude kullanarak)
  • hNews – haber içeriği için
  • hProduct – ürünler için
  • hRecipe – yemek tarifleri için
  • hResume – özgeçmişler için
  • hReview – inceleme ve eleştiri yazılarında
  • rel-directory – dağıtık klasör yaratmak için
  • rel-enclosure – web sayfalarına çoklu ortam öğeleri eklemek için
  • rel-license – telif hakları belirtimleri için
  • rel-nofollow, 3. Kişilerin yaptığı spam’leri engellemek için
  • rel-tag – merkezsizleştirilmiş etiketleme için (Folksonomy)
  • xFolk – etiketlenen bağlantılar
  • XHTML Friends Network (XFN) – sosyal ilişkiler
  • XOXO – listeler ve taslaklar için

Mikroformatlar bugün çeşitli uygulamalarda kullanılmaktadır. En basitinden web örümcekleri çevrimiçi kaynaklardan, e-posta istemcileri gibi masaüstü uygulamalarından veriler toplayabilirler. Ayrıca “mash-up” denilen ve web’de farklı farklı hizmetler vermekte olan platformları kullanarak karma bir servis yaratan uygulamalar mikroformatlar yardımıyla örneğin bir web sayfasındaki coğrafi konumları çıkarıp Google Maps üzerinde görsel olarak gösterebilir.

Bunların yanında çeşitli tarayıcı eklentileri HTML belgeleri üzerindeki mikroformatları bulup onları yorumlayabilmektedir. Herhangi bir hCard veya hCalendar içeriğini tarayıcı fark edip onları Microsoft Outlook gibi iletişim bilgisi ve ajanda yönetimi yapan bir uygulamanın anlayacağı bir formatta çıkarabilir. 2009’da Google sorgu sonuçlarında hCard, hReview ve hProduct mikroformatlarından yararlanacağını duyurmuştur. Microsoft ve diğer başka yazılım şirketleri ileriki projelerinde mikroformatlardan faydalanacaklarını ifade etmişlerdir.

XFN

XFN, yani XHTML Friends Network, insan ilişkilerini köprü bağlantılarıyla (hyperlink) ifade etmek için kullanılan bir tür mikroformattır. Blog kavramı ortaya çıktığından beri kişilerin web üzerinde birbirlerine bağlantı göstermeleri yaygınlaşmıştır. XFN ile web sayfasında verilen bağlantıların “rel” sahası, kime işaret ettiğine göre anahtar kelimelerle tanımlanır. XFN bağlantılarını ayırt edebilen tarayıcılarda insan ilişkileri sınıflandırılması görülebilmektedir.

XFN’in getirdiği en önemli kolaylık kişilerin bir sosyal platformdaki profil sayfasında diğer hesapları ile ilgili bağlantılar tanımlayabilmesidir. Bu da “rel” etiketine “me” tanımı yapılarak gerçekleştirilebilir. Tüm bilgilerin “merkezileştirilmiş” (centralized) bir şekilde tutulduğu farklı farklı bilgi çizgelerinden birbirlerine gösterilen referanslarla böylece “merkezsizleştirilmiş” (decentralized) bir yapıya doğru gidilebilir.

XFN bağlantılarını şu şekilde örnekleyebiliriz;

Ali blogunda dört bağlantı tanımlamıştır: nişanlısı Ayşe, arkadaşları Ahmet ve Mehmet, bir toplantıda tanıştığı Kemal. Ali’nin blogunda bu bağlantılar;

<a href="http://ayse-blog.example.org/" rel="fiancee met">Ayşe</a>
<a href="http://ahmet-blog.example.org/" rel="friend met">Ahmet</a>
<a href="http://mehmet-blog.example.org/" rel="friend met">Mehmet</a>
<a href="http://kemal-blog.example.com/" rel="met">Kemal Bey</a>

XFN’in koyduğu standard göre Ayşe onun için “fiancée met”tir. Arkadaşları için “friend met” ve Kemal bey için sadece “met” ifadesini kullanmıştır.

XFN kullanan platformlar arasında, Orkut, Ryze, Friendster ve LinkedIn gibi paylaşım ortamları vardır. Ayrıca XFN ile birlikte vCard, RDF ve FOAF gibi teknolojiler de kullanılabilmektedir.

FOAF

FOAF, yani Friend of a Friend, web üzerinde kişileri, etkinlikleri ve diğer kişi ve nesnelerle olan ilişkilerini tanımlayan bir tür ontolojidir. Giriş bölümünde de bahsedildiği gibi pek çok farklı, merkezi sosyal platformun varlığını hissettirmemek, bu platformlar arasında bağlantılar kurarak merkezi bir sosyal ağ veritabanı oluşturulma ihtiyacını ortadan kaldırmaya yönelik bir projedir. FOAF, RDF ve OWL ile ifade edilen betimleyici bir sözlüktür. Bilgisayarlar FOAF profillerini kullanarak bu profillerdeki bilgilerden çıkarım yapar ve onları sınıflandırabilir. Örneğin bir arkadaşınızla olan ortak arkadaşlarınızın listesi veya Asya kıtasında yaşayan kişilerin listesi, vb. gibi. Bu da kişiler arasında ilişkiler tanımlamakla mümkündür. Her bir sosyal platform profilinin kendine özgü bir belirteci vardır (e-posta adresi, bir web sayfasının URI bilgisi gibi). Bu tür bilgilerle kişi ve nesneler arasındaki bağlantılar belirlenir.

FOAF projesi 2000’de Libby Miller ve Dan Brickley tarafından RDF ve sosyal ağı birleştiren ilk Sosyal Anlamsal Web uygulaması olarak başlatıldı. W3C’nin yürütmekte olduğu Anlamsal Web projesinin bir parçası olarak gelişimini sürdürmektedir.

Bir FOAF profili şu şekilde tanımlanabilir;

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<#JW>
    a foaf:Person ;
    foaf:name "Jimmy Wales" ;
    foaf:mbox <mailto:jwales@bomis.com> ;
    foaf:homepage <http://www.jimmywales.com/> ;
    foaf:nick "Jimbo" ;
    foaf:depiction <http://www.jimmywales.com/aus_img_small.jpg> ;
    foaf:interest <http://www.wikimedia.org> ;
    foaf:knows [
        a foaf:Person ;
        foaf:name "Angela Beesley"
    ] .

<http://www.wikimedia.org>
    rdfs:label "Wikipedia" .

Yukarıdaki FOAF profili “name” etiketinden anlaşıldığı üzere Jimmy Wales isminde bir kişiye aittir. E-posta adresi, kişisel sayfası ve “depiction”; yani kişiyi tasvir eden görüntü dosyası verilmiştir. İlgi alanı olarak Wikimedia’yı, tanıdığı olarak Angela Beesley’i tanımlamıştır.

RDFa

RDFa veya Resource Description Framework in attributes, Ağ’daki belgelere üst veri gömebilmek için XHTML’e öznitelik (attribute) düzeyinde uzantı getiren bir W3C önerisidir. Böylece RDF veri modeli XHTML tabanlı web sayfalarının içine gömülebilmekte, daha sonra da kullanıcı etmenleri tarafından RDF üçlüleri şeklinde çıkarılabilmektedir.

RDFa, ilk kez Mark Birbeck tarafından “XHTML ve RDF” başlıklı bir W3C notu olarak önerildi. Daha sonra 2004’te Semantic Web Interest Group’a sunuldu. Genelde RDFa’nın ortaya atılış nedeninin XHTML 2 için olduğu düşünülse de asıl amaç herhangi bir XML tabanlı dile üst veri ekleme altyapısı getirmekti. RDF/XML her ne kadar ağ üzerindeki kaynakları bilgisayarlar için anlamlandırabilmeye yönelik oluşturulduysa da bu yapının da getirdiği birtakım zararlar vardır. Öncelikle RDF/XML ile tanımlanan belgelerin geçerliliğini doğrulamak için XML Schema veya DTD kullanmak çok zor, hatta imkansızdır; ki bu aynı zamanda RDF/XML’in başka dillere aktarım zorluğunun da bir göstergesidir. RDF/XML’i doğrulamayı sağlayan yeni schema dilleri çıkmış olsa da yaygınlaşmaları için uzun bir süre gerekmektedir. İkinci zararı, RDF/XML’i doğrudan XML biçiminde bir yapı olan XHTML’e aktarabilsek de XHTML etiketleri arasında aktarılan bilginin aynısını RDF/XML ile de işlemiş olma ihtimali yüksektir. Örneğin XHTML belgesinde yazar isminden bahsedilirken aynı isim RDF ifadesi olarak da tanımlanmamalıdır; var olan işaretleme dilinin de RDF olarak yorumlanabilmesi mümkün olmalıdır.

Eskiden bu tür özellikler işaretleme dillerinde fiziksel olarak bulunurdu. Örneğin XHTML 1.1 ve HTML’de tanımlı “cite” özelliği ile belgeye eklenen bilginin bir alıntı olduğu belirtilebilirdi. Fakat bu tür özellikleri dilin kendi yapısına eklemek belgelerden üst veri çıkarımını daha genelleyici bir süreç haline dönüştürmeyi zorlaştırır. Çünkü RDFa ayrıştırıcısı o dile özgü öznitelikleri bilmek zorunda kalır. Bunun yerine sabit sayıda etiket özniteliği ve ayrıştırma kuralları belirlenip etiket özniteliklerinde başka RDF kütüphane veya sözcük dağarcıklarından özellikler kullanılabilmektedir.

RDFa, RDF’i sadece var olan işaretleme dili etiketlerin özniteliklerine dayalı bir hale getirerek işaretleme dili tasarımcılarının üzerindeki tüm bu yapısal gereklilikleri karşılama baskısını hafifletmiştir. Bu kurallara sadık kalarak dil tasarımcıları hem RDFa’yı kendi tasarım ortamlarına çok zorlanmadan aktarabiliyor hem de anlamsal verinin RDFa işleyicileriyle çıkarılabileceği konusunda da içleri rahat.

Nisan 2007’de XHTML2 Çalışma Grubu XHTML 1 ailesinde RDF gösterimini destekleme modülü geliştirdi. XHTML 1.1’in bir uzantısını barındıran XHTML + RDFa 1.0 isimli bir modüldü bu. Daha sonra RDFa ayrıştırıcı yazma kuralları ve bu alt yapıyı desteklemek isteyen kuruluşlara yönergeler de içeren “RDFa in XHTML: Syntax and Processing” isminde bir Çalışma Taslağı önerildi. 2008’de RDFa Öneri statüsüne yükseldi.

RDFa kullanım alanlarına gelince şöyle senaryolar düşünülebilir;

Ayşe’nin bir video paylaşım platformu var. Ahmet ise blogunda videolarla ilgili izlenimlerini paylaşıyor. Bazıları kendisine ait bazılarını ise Ayşe’nin sitesinden alıyor. Ahmet, Ayşe’nin sitesinden bir videoyu blogunda paylaşmak istediği zaman şu HTML kodunu kullanıyor:

<div>

  <object width="425" height="350">
   <param name="movie" 
value="http://example.org/ayse/video_123">
   </param>
  </object>

  Kurtuluş Savaşı belgeseli.

  <a rel="license” href="http://creativecommons.org/licenses/by/2.5/">
    CC Lisansı ile korunmaktadır.
  </a>. Bu video Ayşe’nin sitesinden alınmıştır.
</div>

Bu kod RDFa desteği ile Ahmet’in bloguna kopyalanırsa ayrıştırıldığı zaman içinden aşağıdaki gibi RDF üçlüleri çıkarılabilir;

@prefix cc: <http://creativecommons.org/ns#>
@prefix dc: <http://purl.org/dc/elements/1.1/>
@prefix xhtml: <http://http://www.w3.org/1999/xhtml#>

<http://example.org/ayse/video_123> dc:title "Kurtuluş Savaşı belgeseli" ;
xhtml:license <http://creativecommons.org/licenses/by/2.5/> ;
cc:attributionName "Ayse" .

Ahmet’in blogunu RDFa’i ayrıştırabilen bir tarayıcıyla görüntüleyen bir kullanıcı bu videonun Ayşe’nin sitesinden alındığını ve Creative Commons lisansı ile korunduğunu görebilir.

HTML+RDFa ile Ahmet paylaştığı her video için farklı lisans türü tanımlayabilmektedir. Ayrıca bir yukarıdaki HTML kodunda XHTML desteği ile gelen “rel” özelliğini kullanmıştır. RDFa bu tanımlamalarla da uyumlu olmalıdır.

Sonuç

Web 2.0’dan Web 3.0’a doğru geçişte sosyal çizgenin rolü oldukça önemlidir. Çünkü yazı boyunca bahsedildiği gibi artık amaç sadece kullanıcı ile gerçek zamanlı etkileşimde olan, içeriği dinamikleştirilmiş web sayfaları geliştirmek değildir. Bu içeriğe “anlam” kazandırmak da önemli olmaya başlamıştır. Bir web sayfasında paylaşılan içeriğin ‘ne’ olduğu, neyin veya kimin hakkında olduğu, diğer web sayfaları ile olan bağlantılarının ne anlama geldiği gibi konular da önem kazanmaya başladı. Çünkü artık geçen ayki “Etmen Tabanlı Yazılımlar” yazımda da bahsettiğim gibi, bizim adımıza çalışacak ve ağ üzerinden her istediğimize cevap verebilir yazılımlar geliştirebilmemiz için çalışacakları ortamı -yani Ağ’ı- bu yazılımlar tarafından işlenebilir kılmamız gerekmektedir. Bu da web sayfalarımızdaki içeriği yukarıda bahsedilen FOAF, Mikroformat, RDF gibi üstveriler ve bunların getirdiği yapılarla tanımlamakla mümkün olabilir. Gelecek ay bu yazının devamı olarak sosyal çizge API’larından ve sosyal platform devlerinin izlediği politikalardan bahsedeceğim. Görüşmek üzere.

Kaynaklar