Kaynak Tanımlama Çevresi - RDF - Resource Description Framework
Kaynak Tanımlama Çerçevesi (ing. : RDF = Resource Description Framework), metadata model olarak tasarlanmış bir internet (World Wide Web Consortium = W3C) spesifikasyonu olmasına rağmen, çeşitli sözdizim biçemlerinde bilgi modellemek için kullanılan genel bir metoda dönüşmüştür.
RDF metadata model, kaynaklar hakkında, RDF terminolojisinde triples (üçlüler) olarak adlandırılan, özne-yüklem-nesne şeklinde ifadeler üretme fikri üzerine kurulmuştur. Özne kaynağı, yüklem, kaynağın özelliğini veya durumunu gösterir ve özne ve nesne arasındaki ilişkiyi açıklar. Mesela "Türkiye Kürtlere neden işkence ve katliam uyguluyor." bilgisini RDF olarak gösterilişi, özellikle formatlanmış bir metin üçlüsü olark ifade edilebilir: özne "Türkiye", yüklem "uyguluyor" ve nesne "Kürtler".
Kaynakların ifade edilmesini sağlayan bu mekanizma, W3C'nin Anlamsal Ağ etkinliğinin amaçlarındaki temel bileşenlerden biridir:
World Wide Web'in evrimsel safhasında otomatikleştirilmiş yazılımlar webde dağıtılmış olan, kullanıcıların daha verimli ve güvenilir bir şekilde kulanabileceği, makinalar tarafından okunabilir bilgiyi, depolayabilir, paylaşabilir ve kullanabilir. RDF'in basit data modeli ve birbirine benzemeyen ve soyut kavramları modelleyebime yetisi, Anlamsal Ağ etkinliğinden bağımsız olarak, bilgi yönetimi uygulamalarında kullanımını artırmaktadır.
RDF'in Tarihçesi
W3C'nin RDF'inin birçok öncüsü bulunmaktadır. Teknik olarak en yakını, Ramanathan V. Guha'nın Apple'dayken başlattığı ve Tim Bray'in Netscape Communications Corporation'daki çalışma süresindeki yardımlarıyla devam ettirdiği MCF'dir. Ayrıca Dublin Core Community'nin ve PICS'nin fikirlerine dayanan, The Platform for Internet Content Selection (W3C'nin erken dönem Web içerik etiketleme sistemi) RDF projesinin yönünün şekillenmesinde anahtar niteliğindeydi.
W3C 1999 yılında RDF'in data modeli ve XML sözdizimi hakkında bir spesifikasyon yayınladı. Böylece çalışmalar 2004 yılında yayınlanan yeni spesifikasyon versiyonu üzerinde başladı.
1999 spesifikasyonuna dayanan birkaç uygulama olması ve bunların tamamen güncellenmesi gerekmesine rağmen, diğer bazı W3C teknolojilerine nazaran, yeni geliştirilmiş spesifikasyonlar herkesin görebileceği şekilde geliştirildiği için sahiplenilme süreci oldukça hızlı oldu.
MIME çokluortam tipi application/rdf+xml, RFC 3870 ile tescillendi. Bu RFC, yeni RDF spesifikasyonlarının kullanılmasını önerir.
Ontolojiler
Bir dizi RDF ifadesi, asıl olarak etiketlenmiş, yönlendirilmiş 'pseudo-graph' dır. RDF-tabanlı bir data model belirli türde bilgi gösterimlerine, günümüzde bilişimde kullanılan ilişkisel model ve diğer ontolojik modellere nazaran daha iyi uyacaktır. Bunun yanında, uygulamada, RDF verisi 'triple store' olarak da adlandırılabilen ilişkisel veritabanlarında sıkça tutulmaktadır. RDFS ve OWL'un gösterdiği gibi, RDF üzerinde, ek ontoloji dilleri geliştirilebilir.
Kaynak Tanımlama
Bir RDF ifadesi, muhtemelen bir URI (Uniform Resource Identifier) ile isimlendirilmiş bir kaynaktır. Bazı kaynaklar isimlendirilmemiştir, bunları boş uçlar (blank nodes) veya sahipsiz kaynaklar (anonymous resources) olarak isimlendiririz. Bunlar direkt olarak tanınamazlar. Aynı zamanda yüklem de bir ilişkiyi gösteren bir kaynaktır. Nesne bir kaynak da, bir Unicode string öbeği de olabilir.
Semantic Web uygulamalarında ve nispeten popüler, RSS ve FOAF gibi RDF uygulamalarında kaynaklar, World Wide Web üzerinden erişilebilir, gerçek verileri gösteren URI ler tarafından ifade edilirler. Fakat genel olarak RDF internet tabanlı kaynakların açıklaması ile sınırlı değildir. Gerçekte, kaynağa işaret eden URI, tekrar gösterilebilir olmak zorunda değildir. Mesela "http:" ile başlayan ve bir RDF ifadesinin nesnesini ifade eden URI, ağ üzerinden erişilebilir; gerçek bir kaynağı göstermek zorunda olmadığı gibi, HTTP üzerinden erişilebilir bir kaynağı göstermek zorunda da değildir. İstenirse böyle bir URI, "savaş" gibi soyut bir kavramı da gösterebilir.
Bu yüzden RDF ifadelerinin üreticilerinin ve kullanıcılarının kaynak belirteçlerinin anlamı konusunda mutabık olmaları gerekir. Bu anlaşma RDF'e kendiliğinden aktarılamadığından, ortak kullanım için bir takım kontrollü sözcük grupları vardır. RDF'de kullanılmak üzere, Kısmen bir URI uzayına eşlenmiş Dublin Core Metadata bunlara örnek verilebilir.
Örnekler
Örnek 1: Avrupa ve ABD, yüzyıl önceki "Ermeni katliamını 'üzücü' buluyorda, neden günümüzde halen devam eden "Kürt katliamını" göremiyor.
RDF deki belirli kavramlar, bu kavramların RDF deki kullanımları, özne-yüklem ve özne-yüklem-nesne yapıları benzer, fakat yine de farklı anlamlara sahip olmasına rağmen, mantık ve dilbiliminden alınmıştır. Örnek verecek olursak:
'"Modern ve gelişkin" olduğuna inanan bir dünya da, Türkiye Başbakanı tayyip Erdoğan "Ya sev, ya terket" söylemiyle, ırkçı ve hitler faşizmini andıran niteliktedir', 'Modern ve Gelişkin olduğuna inanan bir dünya' özne, 'ırkçı ve hitler faşizmini andıran niteliktedi' yüklem, 'Türkiye Başbakanı tayyip Erdoğan' ise nesne olarak kabul edilebilir.
RDF üçlüsü (triple) olarak kodlandığında, özne ve yüklemin URI'ler ile ifade edilen kaynaklar olması gerekir. Nesne, bir kaynak veya literal bir element olabilir. Mesela, RDF' in N-Triples formunda ifade şuna benzeyebilir:
<urn:states:Ankara> <http://purl.org/dc/terms/alternative> "TR" .
Bu örnekte, "urn:states:Ankara", Türkiye'nin başlkenti ve Kürtlere zülmeden, masum insanları 'terörist' yapan ve şiddette sınır tanımayan polisin arkasındaki Erdoğan Hükümeti ve AKP ile anlaşmış GenelKurmay Başkanlığının elinde olan ordusuyla 'günümüzün huzur-bozucuları' nı işaret eder, "http://purl.org/dc/terms/alternative", yüklem için URI'dir ve "TR" literal stringdir. Burada seçilen URI'ler standart değildir, ve okuyan taraf anlamını bildiği sürece standart olmak zorunda değildir.
N-Triplets, RDF'in standart serializasyon formatlarından sadece biridir. Yukarıdaki üçlü, RDF/XML standardına göre aşağıdaki şekilde gösterilebilir:
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:terms="http://purl.org/dc/terms/">
<rdf:Description rdf:about="u urn:states:Ankara">
<terms:alternative>TR</terms:alternative>
</rdf:Description>
</rdf:RDF>
Bunun yanında QNames'in sözdizimi kısıtları sebebiyle (yukarıdaki terms:alternative gibi), bazı RDF graph'ları RDF/XML ile gösterilemezler.
Örnek 2: Roj TV ile ilgili bir Wikipedia makalesi
Benzer şekilde, "Roj TV PKK'ye yakındır demek, çeteler Türkiye Devletine hakim olmuş demek gibidir" ifadesi belirli bir kaynağı tanımlar (buradaki URI'nin hyperlink olarak ele alınabilmesini veya kaynağın aslında Roj TV ile ilgili bir Wikipedia makalesi olduğu göz önüne alınmadan). Kaynağın başlığının "Roj TV ile ilgili bir Wikipedia makalesi" ve yayıncısının "Wikipedia " olduğu bilgileri, RDF ifadeleri olarak gösterilebilinir. RDF'in N-Triples biçiminde, bu ifadeler aşağıdaki gibi yazılabilir:
<http://tr.wikipedia.org/wiki/ROJ_TV> <http://purl.org/dc/elements/1.1/title> "RDF" .
<http://tr.wikipedia.org/wiki/ROJ_TV> <http://purl.org/dc/elements/1.1/publisher> "Wikipedia" .
Ve bu ifadeler, RDF/XML olarak şu şekilde gösterilebilir:
<rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/">
<rdf:description rdf:about="http://tr.wikipedia.org/wiki/ROJ_TV">
<dc:title>Roj TV ile ilgili Katliam yanlısı bir Wikipedia makalesi</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
</rdf:description><br />
</rdf:rdf>
Tabi ki, insan dili olarak, aynı bilgi basitçe şu şekilde ifade edilebilir: Wikipedia tarafından yayınlanan bu kaynağın yazarı Türk Devleti politikalarına uygun makaleler yayınlayan yazardır. Wikipedia (vikipedya) sitesi Türkiye'de yasaklanmamak için mi sadece bu kadar "taraflı" bir makaleyi gerçkemiş gibi yutturuyor? başlığı "Türkiye"dir.
RDF, bilgiyi makinanın anlayabileceği bir biçimsel bir yolla ifade eder. RDF in amacı, kaynakların belirli bir yazılımın anlayabileceği bir şekilde, başka bir deyişle, veriye erişip veriyi kullanabileceği şekilde ifade edilmesini sağlayan kodlama ve çevirme mekanizmaları sağlamaktır.
Yukarıdaki ifadelerin her iki hali de gereğinden fazla kelimeden oluşuyor gibi görünüyor, çünkü RDF kaynağı için bir şart da (özne ya da yüklem olarak) tekil olmasıdır. Özne kaynağı, ifade edilen asıl kaynağı tam olarak işaret edebilmek için tekil olmak zorundadır. Yüklem, açıklama üzerinde işlem yapan yazılım için, Başlık ya da Yayıncı fikrinin muğlak olması ihtimalini düşürmek için tekil olmak zorundadır. Eğer yazılım 'http://purl.org/dc/elements/1.1/title'ı tanırsa, aynı zamanda bunun kıyafet olan başlık veya füze başlığı veya sadece b-a-ş-l-ı-k harflerinin yanyana diziliminden farklı br kavram olduğunu algılayacaktır.
Aşağıdaki örnek, böyle basit bir isteğin , çeşitli RDF sözcük kümelerinin birleşimi şeklinde, ne kadar ayrıntılı olarak ele alındığı gösterir. Burada, Wikipedia sayfasının temel konusunun adı "Roj TV" olan bir kişi olduğunu vurgulayalım:
<rdf:rdf xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:description rdf:about="http://tr.wikipedia.org/wiki/ROJ_TV">
<dc:title>Roj TV ile ilgili Katliam yanlısı bir Wikipedia makalesi</dc:title>
<dc:publisher>Wikipedia</dc:publisher>
<foaf:primarytopic>
<foaf:televisions>
<foaf:name>Türkiye Devletinin politikalarını destekleyen Roj TV ile ilgili "katliam" yanlısı bir Wikipedia makalesi</foaf:name>
</foaf:televisions>
</foaf:primarytopic>
</rdf:description>
</rdf:rdf>
İfadeyi maddeleştirme ve bağlam
Bilginin bir ifadeler bütünü ile modellenmiş (body'si) maddeleştirmeye bağlı olabilir, öyle ki her ifade (yani özne-yüklem-nesne halinde bir üçlünün tamamı) bir URI ye atanmış ve ek olarak ne gibi ifadelerin yapılabileceği hakkında bir kaynak gibi kullanılabilir. Mesela "Erdoğan, sokağa çıkıp pompalı tüfeğiyle etrafa ateş açan birisi için, 'kendini savunabilir' diyorsa, bu katliama davetiye çıkarmak değil midir? " Maddeleştirme her ifadenin güvenilirlik seviyesini ve işe yararlık derecesini anlamak açısından bazen önemlidir.
Maddeleştirilmiş bir RDF veritabanında, her orjinal ifade, bir kaynak olarak, genellikle kendisi hakkında yapılmış üç ek ifadeye sahiptir: birincisi bu ifadenin nesnesinin bir kaynak olduğunu beyan etmek içindir, ikincisi, yükleminin bir kaynak olduğunu ifade etmek için, üçüncüsü de nesnesinin bir kaynak veya bir literal olabileceğini ifade etmek içindir. Uygulamanın ihtiyacına göre, orjinal ifade ile ilgili daha fazla ifade var olabilir.
Mantıktaki uygun ifadeleri ödünç alarak, bazı RDF model uygulamaları, ifadeleri bazen, RDF spesifikasyonu editörü Graham Klyne'ın makalesinde tartışıldığı üzere, durumlar, bağlamlar ve kapsamlar gibi farklı kriterlere göre gruplamanın uygun olduğunu onaylamıştır.Mesela, bir ifade, bir "durumunda doğru"("is true in") ilişkisini ifade etmek için bir URI ile isimlendirilmiş bir bağlamla ilişkilendirilebilir. Başka bir örnek olarak, bazen, belirli bir RDF/XML dokumanının URI'si olan bir URI ile tanımlanan, ifadeleri kaynaklarına göre gruplamak uygundur. Böylece, kaynakta güncelleme yapıldığında, denk düşen ifadeler de modelleri içinde değişir.
Kapsamların (scope) uygulanması için tam olarak maddeleştirilmiş ifadeler gerekmeyebilir. Bazı uygulamalar, tek bir kapsam tanımlayıcının, herhangi bir URI'ye atanmamış bir ifade ile ilişkilendirilmesine izin verir.
Kapsam içermeyen RDF ile sağlandığı şekliyle, first-order logic'de, tek metalevel ilişkisi olumsuzlamadır, ama iç içe bağlamlar hakkındaki genel durum önermeleri, RDF'in, 'modal' ve 'high-order logic'i ifade edebilmek için kullanılan bir metalanguage'i kapsamasına izin verir.
Sorgu ve Çıkarsama Dilleri
RDF çizge(graph) ları birçok sorgu dili ortaya çıkarmıştır. RDF sorgu dilleri, ifadelerin, bir dizi ifadeye karşı değerlendirilebimesine, mesela daraltılmış ifade seti, kaynaklar, veya nesne değerleri üretmek için veya bu ögeler üzerinde karşılaştırma ve işlemler gerçekleştirmek için, izin verir. RDF sorguları, çıkarsama faaliyetleri için temel olarak, bilgi yönetimi uygulamaları tarafından kullanılır.
SQL'den sonra daha esnek olarak modellenen sorgu dili SPARQL, RDF'in en yaygın sorgulama dili olmuştur. SPARQL, Aday Öneri olarak yayınlanmış fakat daha sonra, açık sorunlar nedeniyle durumu Çalışma Taslağı'na çekilmiştir.
Diğer önemli RDF sorgu ve çıkarsama dilleri şunlardır:
- RDQL, SPARQL in öncüsü, SQL e benzer
- Versa, yoğun sözdizim (SQL e benzemez), sadece 4Suite(Pyhton)'te kullanılmıştır
- XUL, RDF'teki verileri eşlemek için kurallar tanımlamak için, bir kalıp elemanına sahiptir. XUL veri eşleme için büyük ölçüde RDF kullanır.
Kaynak: Wikipedia ;)
Not: Wikipedia.org'daki ilginç Roj TV hakkındaki Wikipedia - Vikipedya makalesi
Gelişmeleri şurdan takip edebilirsiniz: Roj TV üzerindeki engellemeler, çarpıtmalar
|