• Sonuç bulunamadı

Semantik verilerin dağıtık ortamda etkin olarak depolanması ve sorgulanması

N/A
N/A
Protected

Academic year: 2021

Share "Semantik verilerin dağıtık ortamda etkin olarak depolanması ve sorgulanması"

Copied!
144
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

SEMANTK VERLERN DA‡ITIK ORTAMDA ETKN OLARAK DEPOLANMASI VE SORGULANMASI

ÖZGÜR ERO‡LU

YÜKSEK LSANS TEZ

BLGSAYAR MÜHENDSL‡ ANABLM DALI

TOBB EKONOM VE TEKNOLOJ ÜNVERSTES FEN BLMLER ENSTTÜSÜ

ARALIK 2013 ANKARA

(2)

Fen Bilimleri Enstitü onay

Prof. Dr. Necip CAMU“CU Müdür

Bu tezin Yüksek Lisans derecesinin tüm gereksinimlerini sa§lad§n onaylarm.

Doç. Dr. Erdo§an DO‡DU Anabilim Dal Ba³kan

ÖZGÜR ERO‡LU tarafndan hazrlanan SEMANTK VERLERN DA‡ITIK ORTAMDA ETKN OLARAK DEPOLANMASI VE SORGULANMASI adl bu tezin Yüksek Lisans tezi olarak uygun oldu§unu onaylarm.

Doç. Dr. Erdo§an DO‡DU Tez Dan³man

Tez Jüri Üyeleri

Ba³kan : Doç. Dr. Osman ABUL

Üye : Doç. Dr. Erdo§an DO‡DU

(3)

TEZ BLDRM

Tez içindeki bütün bilgilerin etik davran³ ve akademik kurallar çerçevesinde elde edilerek sunuldu§unu, ayrca tez yazm kurallarna uygun olarak hazrlanan bu çal³mada orijinal olmayan her türlü kayna§a eksiksiz atf yapld§n bildiririm.

(4)

Üniversitesi : TOBB Ekonomi ve Teknoloji Üniversitesi

Enstitüsü : Fen Bilimleri

Anabilim Dal : Bilgisayar Mühendisli§i Tez Dan³man : Doç. Dr. Erdo§an DO‡DU Tez Türü ve Tarihi : Yüksek Lisans  Aralk 2013

Özgür ERO‡LU

SEMANTK VERLERN DA‡ITIK ORTAMDA ETKN OLARAK DEPOLANMASI VE SORGULANMASI

ÖZET

nternetin sa§lam³ oldu§u en önemli özelliklerden bir tanesi, bilgilerin bir-birine ba§lanabilir olmasdr. Bu sayede, birbiri ile ili³kili içerikler, veriyi yaynlayan ki³ilerden veya kaynaklardan ba§msz olarak, bir a§ biçiminde ula³labilir olmaktadr. Ancak, internet ortamndaki verinin çoklu§u ve çe³itlili§i, kullanclarn ihtiyaç duyduklar bilgilere hzl ula³malarn ve bu veriyi hzl i³lemelerini zorla³trmaktadr. Verinin bilgisayarlar tarafndan anla³labilir ve yorumlanabilir olmas durumunda, kullanclarn ihtiyaç duyduklar bilgilerin, yazlmlar tarafndan daha hzl bulunmas ve hazrlanmas mümkün olacaktr. Bilgisayarlarn bu i³levleri yerine getirebilmesinin önündeki en büyük engel ise, internet üzerindeki mevcut verinin çok büyük bir ksmnn yapsal olmayan biçimde, insan do§al dili ile yazlm³ olmasdr. Bu engeli ortadan kaldrmak için, sadece insanlar tarafndan anla³labilen, do§al dilde yazlm³ veriye ek olarak, bilgisayarlarnda anlayabilece§i, yapsall§ daha yüksek, anlamsal verinin kullanlmas önerilmi³tir. Bahsedilen bu yeni veri, internete yeni bir üst katman olarak eklenecek ve bilgisayarlarn anlayabildi§i, yorumlayabildi§i ve kullanabildi§i, semantik a§ olu³turulmu³ olacaktr. Semantik veriler, Kaynak Tanmlama Çats (Resource Description Framework - RDF), A§ Ontoloji Dili (Web Ontology Language-OWL) ve Geni³letilebilir ³aretleme Dili (Extensible Markup Language-XML) gibi diller kullanlarak yaynlanabilir. Bu verilerin yapsal olarak saklanmasn ve sorgulanmasn sa§lamak amac ile, özelle³tirilmi³ veritaban sistemleri (Triple-Store) kullanlmaktadr. Ancak bu çözümlerin

(5)

v

büyük bir ksm, verilerin ölçeklenebilir olmas gereksinimini kar³layamayacak biçimde, tek bilgisayar üzerinde çal³an tasarmlara sahiptirler. Di§er bir grup veritaban çözümü ise RDF verileri için özelle³tirilmemi³ olan ili³kisel veritabanlarnn kullanm ile çal³maktadr. Bu durum, verilerin boyutunun çok büyük olmas halinde ve ili³kisel veritabanlar çizge verilerini depolamak amac ile özelle³tirilmedi§i için, sorgularn cevaplanmasnn çok uzun zaman almasna sebep olmaktadr. Ayrca üçlü veritabanlar ili³kisel veritabanlarnn sa§layamad§ ve OWL kullanlarak gerçekle³tirilen çkarm i³lemlerini de yapabilmektedir. Bu tez çal³mas kapsamnda, yukarda belirtilen problemlerin çözülebilmesi için kullanlabilecek da§tk bir depolama ve sorgulama altyaps önerilmi³ ve tek bilgisayar üzerinde çal³an bir üçlü veritaban çözümü ile kar³la³trlmas yaplm³tr. Önerilen çözüm programlama ile gerçekle³tirilmi³ ve bu alanda yaygn kullanlan LUBM Veri Üreticisi ile üretilen veri seti kullanlarak, LUBM test sorgular denenmi³lerdir. Tasarlanan sistemin da§tk yapda olmas, sorgu-lama i³lemlerinin daha küçük veri kümeleri üzerinde ve paralel olarak i³letilmesine olanak vermektedir. Bu durumun sorgu cevaplama sürelerine olan etkisi, farkl sayda birim içeren kümeler ile test edilmi³ ve sonuçlar kar³la³trmal olarak verilmi³tir.

Anahtar Kelimeler: Semantik a§, RDF, SPARQL, Da§tk sorgu i³leme, Da§tk veri depolama, Jena.

(6)

University : TOBB University of Economics and Technology Institute : Institute of Natural and Applied Sciences

Science Programme : Computer Engineering

Supervisor : Asst. Prof. Erdo§an DO‡DU

Degree Awarded and Date : M.Sc.  December 2013 Özgür ERO‡LU

EFFICIENT STORAGE AND QUERYING OF SEMANTIC DATA ON A DISTRIBUTED SYSTEM

ABSTRACT

One of the most important features of the Internet is that it lets information to be connected to each other. In this way, regardless of the publisher of it, contents related to each other, is accessible in the form of a network. However, the abundant number and diversity of the data on Internet, makes it dicult for users to quickly access and process the information they need. In the case that, computers can understand and interpret the data, preparation of information by software that users need, would be much faster. The greatest obstacle for computers to perform these functions is that very large portion of the data available on the Internet is non-structural data which was written in human natural language. To eliminate this obstacle, in addition to the usage of data just written in natural language that can be understood by the people, usage of semantic data which can be understood by computers was recommended. Mentioned new data will be added as a new layer to Internet and will enable computers to understand, interpret and use the new semantic network. Semantic data can be published by using languages such as the Resource Description Framework (RDF), Web Ontology Language (OWL) and the Extensible Markup Language (XML). This data is stored and queried in a structural form in customized database systems which are called Triple-Store. However, a large part of these solutions, the design of which are running on a single computer, does not satisfy the need for data to be scalable. Another group of solutions, use relational databases for the purpose of RDF Storage. In this case, when

(7)

vii

the amount of data is very large, queries take very long time as RDBMS's are not optimized to store Graph Data. In addition, relational databases can not provide inference capability which is carried out using OWL as it is performed by triple-stores.

In this thesis work, a distributed infrastructure that can be used to store and query semantic data has been proposed and compared with a single Triple-Store running on a single computer. The proposed system solution has been implemented by programming it and tested with LUBM test queries on a set of articial data which had been generated one of the most commonly used data set generator, called LUBM Data Generator. As the proposed system solution is a distributed one, query processes run in parallel on smaller data sets. The eect of this situation on the time interval for answering queries, have been tested with clusters including dierent number of units and results are shown in a comparison chart.

Keywords: Semantic web, RDF, SPARQL, Distributed query processing, Distributed storage, Jena.

(8)

TE“EKKÜR

Çal³malarm boyunca de§erli yardm ve katklaryla beni yönlendiren hocam Doç. Dr. Erdo§an DO‡DU'ya ve yine kymetli tecrübelerinden faydaland§m TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisli§i Bölümü ö§retim üyelerine te³ekkürü bir borç bilirim.

(9)

ÇNDEKLER

“EKLLERN LSTES xii

ǝZELGELERN LSTES xiv

KOD BLOKLARININ LSTES xvi

ALGORTMALARIN LSTES xviii

1 GR“ 1

1.1 Semantik A§ . . . 2

1.1.1 RDF ve Çizge Veritabanlar . . . 3

1.1.2 RDF Gösterimleri . . . 10

1.1.3 SPARQL . . . 12

1.2 Da§tk Sistemler ve Ölçeklenebilirlik . . . 15

1.3 Problem Tanm . . . 16

1.4 Tezin Amac ve Katklar . . . 17

(10)

3 RDF VERLERNN DA‡ITIK ORTAMDA DEPOLANMASI

VE SORGULANMASI 28

3.1 Sistemin Mimari Yaps . . . 28

3.1.1 DRS Merkez Uygulamas . . . 31

3.1.2 DRS Uç Birim Uygulamas . . . 39

3.1.3 Apache Jena Uygulama Geli³tirme Çats (Framework) . . 43

3.1.4 Apache Jena Fuseki SPARQL Uç Birimi . . . 44

3.1.5 Varnish Http Önbellek Vekil Sunucusu . . . 44

3.1.6 Apache Hadoop . . . 45

3.2 Sistemin Çal³mas . . . 50

3.2.1 Veri Üzerinde Yaplan Ön ³lemler . . . 50

3.2.2 RDF Verilerin Da§tk Ortamda Depolanmas . . . 51

3.2.3 RDF Verilerinin Da§tk Ortamda Sorgulanmas . . . 58

4 PERFORMANS DE‡ERLENDRME 84 4.1 Kullanlan Veri ve Yaplan Deneyler . . . 84

4.1.1 Cevap Do§ruluk Deneyleri . . . 85

4.1.2 Cevap Dönü³ Süreleri Kar³la³trma Deneyleri . . . 86

4.2 De§erlendirmeler . . . 91

(11)

EKLER 103

A Verilerin Üretilmesi 104

A.1 LUBM Veri Üretimi . . . 104

A.2 Verinin RDF'e Dönü³türülmesi . . . 105

A.3 Metis Kurulumu ve Kullanm . . . 105

B LUBM Test Sorgular 107 C LUBM Verileri çin Kullanlan Ontoloji 114 D Örnek Çktlar 117 D.1 RDF Üçlü Bile³en Saylar . . . 117

E Apache Hadoop Kurulumu 119 E.1 Genel Tanmlamalar . . . 120

E.2 Ortak Kongürasyonlar . . . 120

E.3 Birime Özgü Kongürasyonlar . . . 124

E.4 Map-Reduce Test Kodu . . . 124

(12)

“EKLLERN LSTES

1.1 RDF üçlü gösterimi . . . 5

3.1 Sistemin Fiziksel Yaps . . . 29

3.2 Sistemin Sanal Makina Yaps . . . 29

3.3 Sistemin Uygulama Da§lm Yaps . . . 31

3.4 DRS Merkez Uygulamasnn Yaps . . . 33

3.5 DRS uç birim uygulamasnn yaps ve uç birimlerin haberle³mesi 42 3.6 Jena Uygulama Geli³tirme Çatsna ait mimari yap . . . 43

3.7 Varnish Http Önbellek Vekil Sunucusu . . . 45

3.8 METIS multilevel k-way algoritmas ile parçalanan çizge . . . 54

3.9 METIS Çizge Yaps . . . 55

3.10 METIS le Çizge Parçalama . . . 57

3.11 Verinin uç birimlere da§tlmas . . . 58

3.12 SPARQL sorgusu tarafndan sa§lanmas gereken alt çizge . . . 59

3.13 SPARQL sorgusu tarafndan tarif edilen alt çizgeye ait parçalarn olas da§lmlarndan bir tanesi . . . 60

(13)

3.14 SPARQL 3.1'e ait sorgu y§t delegasyon süreci . . . 72

3.15 “ekil 3.14 için Cevaplarn Dönü³ü . . . 74

3.16 ki kümenin kesi³tirilmesi - 1 . . . 81

3.17 ki kümenin kesi³tirilmesi - 2 . . . 82

3.18 Ayrk kümelerin birle³tirilmesi . . . 83

4.1 LUBM Sorgu1 için farkl veri büyüklerinde ve farkl küme birim saysnda cevap süreleri. . . 88

4.2 Tüm sorgu sonuçlarnn tek sunucu üzerinde kar³la³trmas . . . . 89

4.3 LUBM sorgularnn 5 birimli küme üzerinde, farkl veri büyüklük-lerinde, cevaplanma süreleri (sn). . . 90

(14)

ǝZELGELERN LSTES

1.1 Cümle (üçlü) Örnekleri . . . 5

1.2 URI türleri . . . 7

1.3 URI kullanm ile cümle (üçlü) örnekleri . . . 7

1.4 sim uzay örnekleri . . . 8

1.5 sim uzay kullanm . . . 8

2.1 li³kili çal³malarn kar³la³trmal özeti . . . 27

3.1 Genel bir Q sorgusuna ait örnek Alt Sorgu-IP matrisi . . . 35

3.2 Genel bir Q sorgusuna ait alt sorgular ile olu³turulan sorgu y§tnn, farkl küme uç birimlerinde i³leni³i . . . 38

3.3 Alt Sorgu - Uç Birim Matrisi . . . 68

3.4 Örnek SPARQL SELECT sorgusu cevab . . . 78

3.5 SPARQL 3.1 sorgusuna ait alt sorgularn de§i³kenleri . . . 79

4.1 LUBM Sorgu1(Ek-B) için farkl küme birim saylar ve farkl veri büyüklüklerinde sorgu cevaplama süreleri (sn). . . 88

(15)

4.2 LUBM sorgularnn tek bilgisayar üzerinde, farkl veri büyüklük-lerinde, cevaplanma süreleri (sn). . . 89 4.3 LUBM sorgularnn 5 birimli küme üzerinde, farkl veri

(16)

KOD BLOKLARININ LSTES

1.1 N-Triple yapsnda RDF . . . 10

1.2 RDF-XML yapsnda RDF . . . 11

1.3 SELECT sorgu örne§i . . . 12

1.4 ASK sorgu örne§i . . . 13

1.5 CONSTRUCT sorgu örne§i . . . 14

1.6 DESCRIBE sorgu örne§i . . . 14

3.1 SPARQL Sorgusu . . . 59

3.2 SPARQL 3.1 sorgusundan üretilen SELECT sorgular . . . 61

3.3 Rasqal Roqet komut satr uygulamas ile i³lenen SPARQL 3.1'in çkts . . . 62

3.4 SPARQL sorgusundan üretilen ASK sorgular . . . 63

3.5 Örnek SELECT sorgusu . . . 65

B.1 LUBM Test Sorgusu 1 . . . 107

B.2 LUBM Test Sorgusu 2 . . . 107

(17)

B.4 LUBM Test Sorgusu 4 . . . 108

B.5 LUBM Test Sorgusu 5 . . . 109

B.6 LUBM Test Sorgusu 6 . . . 109

B.7 LUBM Test Sorgusu 7 . . . 109

B.8 LUBM Test Sorgusu 8 . . . 110

B.9 LUBM Test Sorgusu 9 . . . 110

B.10 LUBM Test Sorgusu 10 . . . 111

B.11 LUBM Test Sorgusu 11 . . . 111

B.12 LUBM Test Sorgusu 12 . . . 112

B.13 LUBM Test Sorgusu 13 . . . 112

B.14 LUBM Test Sorgusu 14 . . . 113

C.1 LUBM univ-bech.owl ontolojisi . . . 114

D.1 RDF dosyalar içerisindeki üçlülere ait bile³enlerin, bir Hadoop Map-Reduce uygulamas ile saylmas sonucunda olu³an dosyann örnek bir bölümü . . . 117

E.1 Hadoop Kümesi . . . 119

E.2 Hadoop core-site.xml . . . 121

E.3 Hadoop mapred-site.xml . . . 122

E.4 Hadoop hdfs-site.xml . . . 123

(18)

ALGORTMALARIN LSTES

1 SPARQL Sorgularnn Çal³trlmas . . . 75 2 DRS Uç Birim Uygulamalarnn SPARQL Sorgu Y§tlarnn

(19)

1. GR“

Dü³ük maliyetli ve yüksek verimli üretim tekniklerinin geli³mesi sonucu, bilgisa-yar donanmlar ucuzlam³ ve bunun sonucu olarak da, bilgisabilgisa-yarlar son kullanc açsndan daha kolay eri³ilebilir hale gelmi³tir. Ayrca, ki³isel kullanclarn ve kurumlarn internet eri³imlerinin ucuzlamas ve yaygnla³mas, bilgisayar kullanmn gündelik ya³amn vazgeçilmez bir parças haline getirmi³tir. Artan bu kullanm sonucunda hem internet ortamnda, hem de di§er alanlarda bulunan veri miktar ve çe³itlili§i çok hzl bir ³ekilde artm³tr. Ancak internet üzerindeki bu verinin çok büyük bir ksm yapsal olmayan (unstructered) nitelikte ve sadece insan kullanclarn kullanm öngörülerek hazrlanm³ dolays ile büyük bir ksm insan do§al dillerinde olu³turulmu³ olan verilerdir. Yapsal olmayan veriler, web sayfalarnn içeri§ini olu³turan web dokümanlar ve web sayfalar içerisinden sunulan di§er doküman türleridir. Yapsal olmayan bu veriler, bilgisayar uygulamalar açsndan, etkin ³ekilde kullanlabilir veriler de§illerdir. Bilgisayar uygulamalarnn bu veriyi anlamsal olarak i³leyebilmesi, kullanclar tarafndan ihtiyaç duyulan hizmeti daha kolay, daha do§ru ve daha zengin bir ³ekilde sunmalarn sa§layacaktr. Mevcut durumda ise , bilgisayarlarn veya bilgisayar uygulamalarnn, kullancnn do§rudan yönlendirmesine ihtiyaçlar vardr. Bilgisayar uygulamalar, kullancnn verdi§i komutlarn veya uygulamaya verdi§i girdilerin anlamsal kar³lklarnn ne oldu§unu bilmeksizin i³lem yap-maktadrlar. Anlamsal kar³lklarn bilinmesi durumunda, uygulamalar, girdinin sadece anlamna göre i³lem yapabilecek ve sonuç olarak kullanc açsndan daha do§ru bir sonuç üretebilecektir.

(20)

üretilmesi ve da§tlmas kri, internet alannda anlamsal a§ (Semantic Web) kavramnn ortaya çkmasn sa§lam³tr. Bu kavram, insanlar tarafndan okunabilen ve birbirine ba§l içeriklerin olu³turdu§u a§a, anlamsal içeriklerinde dahil edildi§i ayr katmanlar eklenmesini öngörmektedir. Bilgisayar uygula-malar tarafndan da anla³labilen, yorumlanabilen ve kullanlabilen, yeni bir a§ olu³turulmas amaçlanm³tr. Bu yeni a§, eskisi gibi birbirine ba§l içeriklerin olu³turdu§u bir a§ olmasna ek olarak, içeri§i sadece insanlar tarafndan anla³la-bilen de§il, do§rudan bilgisayar uygulamalar tarafndan da kullanlaanla³la-bilen bir a§ olacaktr. World Wide Web'i icat eden ve geli³tiren Tim Berners-Lee, anlamsal a§ konusundaki dü³üncelerini "bilgisayarlar tarafndan do§rudan i³lenebilen verilerin a§" ifadesi ile özetlemi³tir [14].

1.1 Semantik A§

Semantik a§n en önemli amac, mevcut internet a§nn evrimle³erek, kul-lanclarn ve bilgisayar uygulamalarnn bilgiye daha hzl ula³masn, bilgiyi kendi aralarnda payla³masn ve bilgileri anlamsal olarak birbirine ba§lamasn sa§lamaktr. Farkl bir ifade ile, semantik a§, farkl türde ve yapdaki içeriklerin ve bu içeriklerin bilgisayar yazlmlar tarafndan anla³labilmesini sa§layan üst verilerin bütünle³ik halinin addr. Mevcut internet a§ ile semantik a§ arasndaki fark, mevcut internet a§nn "dokümanlarn a§" olarak nitelendirilmesine kar³n, semantik a§n "verilerin a§" olarak nitelendirilmesidir. Semantik a§ ile ilgili kaynaklarda skça kullanlan "Linked Data (ba§l veri)" ifadesinin kullanlmasnn sebebi budur. Mevcut internet a§ üzerinde olu³an bu yeni anlamsal katman, birbirine ba§lanabilen ve farkl sunucular tarafndan sunulan verileri içermektedir. Semantik web krinin hayat bulabilmesi için daha önceden ortaya konmu³ çe³itli web teknolojileri, W3C (World Wide Web Consortium) çats altnda standart-la³trlm³tr. Standartlarn olu³turulmas, bu alanda çal³malarn daha hzl yaplabilmesine olanak vermektedir. W3C tarafndan standartla³trlan en önemli semantik a§ teknolojileri RDF [48], SPARQL [53], OWL [49] ve SKOS'dur [51]. Bu teknolojiler, ba§l verinin belirli bir yapda yaynlanmasn, sorgulanmasn

(21)

ve anlam/sonuç çkarm amac ile kullanlmasn sa§lamaktadrlar. A³a§da, bu teknolojilerden bazlar hakknda ksa bilgiler verilmi³tir.

1.1.1 RDF ve Çizge Veritabanlar

1.1.1.1 RDF

"Kaynak tanmlama çats" olarak tanmlanan RDF (Resource Description Framework) [50] semantik a§ konusunun en temel yap ta³larndan birisidir. Bir benzetim ile tanmlama yapmak gerekirse, HTML ve WWW arasndaki ba§lant, RDF ve Semantik A§ arasnda bulunmaktadr. Yani RDF semantik a§n veri yapsdr. 1999 ylnda, W3C tarafndan standartla³trlan, web sayfalarnda bulunan bilgiyi tanmlamak için kullanlan üst verilerin (meta data) kodlanmas amac ile üretilmi³ bir web teknolojisidir [56]. Üst verilerin bilgisayar uygulamalar tarafndan anla³lr biçimde olu³turulmu³ olmas, a§ ölçe§inde otomasyon uygulamalarnn önündeki problemleri kaldrm³, ayrca, kullanclarn kendi çabalar ile ksa sürede i³leme imkan bulamayacaklar büyüklükteki bilgilerin, yazlm ajanlar tarafndan, kullanclar adna i³lenebilmesinin yolunu açm³tr. RDF, herhangi bir alana özgü veriyi tanmlayabilecek biçimde esnek tasarlanm³tr. Kimyasal maddelerin tanmlanmas amac ile kullanlabilece§i gibi, tarihsel olaylara ait tarih, yer gibi verilerin yaynlanmas amac ile de kullanlabilir. Bu, alan ba§msz tasarm kararnn en önemli getirisi, yazlmlarn, bilgisayarlar tarafndan anla³labilen bilgiyi kendi aralarnda payla³abilmeleri ol-mu³tur. RDF'in di§er bir faydas ise, internet üzerindeki kaynaklar tanmlamas d³nda bu verilerin aralarndaki ili³kiyi de tanmlamas ve bilgileri birbirine ba§lamasdr.

W3C tarafndan yaynlanan RDF tanmlama dokümannda (Resource Description Framework specication ) [48] daha formal bir biçimde yaplan RDF tanm ve RDF özellikleri a³a§daki maddeler ³eklinde sralanabilir;

(22)

ifade eden bir dildir.

• RDF, nternet a§ üzerindeki bilgiyi ifade etmek için kullanlabilecek bir uygulama çatsdr.

• Bilgiyi bilgisayarlar tarafndan anla³labilecek bir biçimde ifade etmeyi sa§lar.

• Özne, nesne, yüklem (subject, object, predicate) ba³lklarndan olu³an üçlü (triple) yapsn ve bu yap içinde özne, nesne ve yüklem yaplarnn URI kullanlarak tanmlanmasna olanak sa§lar.

• RDF her türlü bilginin ifade edilmesini sa§layacak kadar esnek yapdadr. • Çizgelerin (graph) ifade edilmesi için bir yol sa§lar.

• Özne, nesne, yüklem üçlülerin de URI kullanlmas internet üzerinde bulunan da§tk bilgilerin birbirlerine ba§lanmasn sa§lar.

RDF'in, bilgileri, hem bilgisayarlarn anlayabilece§i ³ekilde yapsal olarak ifade etmesini, hem de bu yap kullanlarak alandan ba§msz olarak her türlü bilginin tarif edilebilmesini RDF soyut modelini (RDF abstract model) sa§lamaktadr. RDF, bu soyut modeli, bilginin anlamsal özellikleri ile ilgili, basit baz kurallara dayanarak, küçük parçalara ayrmak için kullanmaktadr.Ayrma i³leminin amac bir yandan bilgiyi esnek bir ³ekilde ifade edebilmeye devam ederken, bir yandan da basit bir yapsallk sa§lamaktr. Bu soyut modelin üç adet ana bile³eni bulunmaktadr. Bunlar cümle (statement), özne ve nesne (subject and object) ve yüklemdir (predicate).

fade edilmeye çal³lan bilginin küçük parçalara ayrlmas ile olu³an en küçük anlamsal yapya cümle denilmektedir. Bir bilgi, bir veya daha fazla cümlenin kullanlmas ile ifade edilebilmektedir. Her cümle, ayn zamanda "üçlü" olarak da tanmlanabilen bir yapya sahiptir. Bu yap, sras ile özne, yüklem (veya ili³ki) ve nesne bile³enlerinden olu³maktadr. Dolays ile her üçlü, bir özne ve nesneyi, aralarndaki ili³kiye de belirtecek ³ekilde ifade etmektedir. Daha sonraki

(23)

ksmlarda de§inilecek olan çizge veritabanlarna kaynak olu³turan dü³ünce, “ekil 1.1'de verilen üçlü gösteriminden de anla³labilece§i gibi, her bir cümlenin, küçük bir yönlü çizge olmasdr.

“ekil 1.1: RDF üçlü gösterimi

Bu yap kullanlarak olu³turulmu³ örnek bir bilgi listesi a³a§da verilmi³tir. Örne§in, ngilizce olarak "Ford Mustang manufactured_by Ford Motor Com-pany." ³eklinde verilen üçlü, Türkçe'de "Ford Mustang -üretici- Ford Motor Company" ³eklinde olu³turulabilir. Bu ifade basitçe, "Ford Mustang, Ford Motor Company tarafndan üretilmi³tir" cümlesinin, RDF üçlüsü olarak yazlm³ biçimidir. Örnekteki RDF üçlüsü içinde özne Ford Mustang, nesne Ford Motor Company ve "üretici" ifadesi ise nesne ve özneyi birbirine ba§layan ili³kidir. Yukarda verilen örnek geni³letilecek olursa, farkl cümlelerden olu³an bir tablo elde edilebilir. Çizelge 1.1'de birden fazla cümle kullanlmas ile, hem alan hakknda genel bilgi verilmesi, hem de bu verinin yapsal bir bilgi olmas sa§lanm³tr.

Çizelge 1.1: Cümle (üçlü) Örnekleri

Özne li³ki Nesne

Ford Mustang üretici Ford Motor Company

Ford Mustang bir (is a) Araba

Ford Mustang türü 2 Kapl

Ford Mustang ilk üretim tarihi 9 Mart 1964 Ford Motor Company merkez Michigan, ABD

Ford Motor Company kurucu Henry Ford

Bir üçlü ile sadece bir tek olgu ifade edilebilirken, birden fazla üçlü kullanlarak bir alan hakknda genel bilgi verilebilmektedir. Birden fazla üçlü kullanlmas ile

(24)

olu³an yapya bir "RDF çizgesi" denilmektedir.

RDF modeli tarafndan kullanlan özne ve nesne, somut objeleri ifade etmek için kullanlabilece§i gibi, soyut kavramlar ifade etmek amac ile de kullanlabilirler. Bu somut veya soyut kavramlarn tamamna "kaynak" denilmektedir. Kaynak Tanmlama Çerçevesi ifadesinde bahsedilen kaynaklar, burada belirtilen somut nesneler veya soyut kavramlardr. Ksaca özne ve nesne olarak daha önce belirtilmi³ olan üçlü bile³enleri, kaynak isimleridir.

RDF modelinin sa§lam³ oldu§u di§er bir önemli yetenek ise, tanmlanmaya çal³lan kaynaklarn, internet üzerinden birbirine ba§lanabilmesidir. Bu yetenek sayesinde, kaynak tanmlama srasnda kar³la³labilecek iki önemli probleme çözüm getirilmi³ olur. Bunlar, kaynak tanmlamada kullanlan isimlerinin birden çok anlaml olmas durumu ve bir kayna§n birden fazla isim ile ifade edilebilir olmas durumudur. Farkl iki nesneyi tanmlamaya çal³an farkl iki RDF doküman, bu iki farkl nesne için ayn ismi kullanm³ olabilirler. Benzer ³ekilde, ayn nesneyi tanmlamaya çal³an iki farkl RDF doküman, bu nesne için farkl isimler kullanm³ olabilir. Örne§in, "dil" kelimesi kaynak tanmlamas srasnda bir organ ifade edebilece§i gibi, bir lisan ifade etmek amacyla da kullanlabilir. Bu durum, anlamsal a§ olu³turma çabalar için oldukça önemli bir problem olu³turmaktadr. Dolays ile, ayn nesneler ayn isimlerle tanmlanmal, birden fazla nesnenin tanmlanmas için ayn isim kullanlmamaldr. Bu sorunun çözümü, RDF modelinde, özne ve nesne bile³enlerinin Tek Biçimli Kaynak Tanmlayc (URI: Uniform Resource Identier) olarak kullanlmasdr. Bu sayede tanmlanacak olan kaynak ile ba§lantl a§ adresleri kullanlarak, daha önceden tanmlanm³ kaynaklar RDF dosyasna ba§lanabilmektedir. Bu sayede do§ru tanmlanm³ kaynaklar di§er kaynaklarn tanmlanmas srasnda kullanlabilir olmaktadrlar. Tanmlama amac ile URI kullanmnn en önemli getirisi, kaynak isimlerinin tekillik sa§lamasdr. Bu sayede kayna§n kime ait oldu§u, kim tarafndan olu³turuldu§u konusu netle³tirilmi³tir. Örne§in, W3C, http://www.w3c.org ile ba³layan URI adreslerin sahibidir. Kaynak tanmlamasnda, isimler için bu URI'n kullanlmas durumunda, kullancn, kayna§n tanmnn do§rulu§u konusunda bir ³üphe duymasna gerek kalmaz.

(25)

URI kullanmnn di§er bir avantaj ise, nesne veya öznelerin ayn kelimeler ile isimlendirilmesi durumunda dahi, URI'larn ayn olamayacak olmas dolays ile, çak³malarn olmad§ bir isim uzay olu³turulmu³ olur.

Kaynaklar tanmlamak amac ile kullanlan iki tip URI bulunmaktadr. Bunlar "hash URI" ve "slash URI" tipleridir. Bu iki türe örnek vermek olarak çizelge 1.2 verilmi³tir.

Çizelge 1.2: URI türleri

http://somedomainaddress/cars/Ford_Mustang slash URI http://somedomainaddress/cars#Ford_Mustang hash URI

Burada verilen birinci cümle bir slash-URI, ikincisi ise hash-URI'dr. Genel olarak kullanlan hash URI'dr. ki tür arasndaki en önemli fark, hash URI ile bir içerik alnabilirken, slash URI sadece kayna§a i³aret etmek için kullanlr. Örnekteki iki URI ayn kayna§, yani Ford_Mustang'i tanmlamaktadr. Dolays ile daha önce çizelge 1.1 içinde verilen cümlelerde, nesne veya özne olarak Ford Mustang ifadesi kullanlan yerlerde, yukarda verilen iki URI'den birisi kullanlabilir. Bu durumda çizelge 1.3'de gösterilen cümleler elde edilir. Böylece, tanm daha önceden yaplm³ bir kaynak, nesne veya özne olarak yeni olu³turulan üçlü içinde kullanlm³ olur. URI kullanm ile kaynak tanmlamalarn yaplabilmesi, tekrar kullanm avantaj sa§lamakta ve her "anlamsal a§ " kullancsnn, bütün kaynaklar kendi ba³na tekrar tanmlamasn gereksiz klmaktadr.

Çizelge 1.3: URI kullanm ile cümle (üçlü) örnekleri

Özne li³ki Nesne

http://address/cars#Ford_Mustang üretici Ford Motor Company http://address/cars#Ford_Mustang bir (is a) Araba

http://address/cars#Ford_Mustang türü 2 Kapl http://address/cars#Ford_Mustang ilk üretim tarihi 9 Mart 1964

Ford Motor Company merkez Michigan, ABD

Ford Motor Company kurucu Henry Ford

(26)

dokümann okunurlu§u açsndan bir karma³a yaratmaktadr. Bu problemi çözmek amac ile tekrar eden ksmlar birer ön ek (prex) olarak tanmlanr ve uzun URI'lar bu ön ekler sayesinde XML QName (Qualied Name) olarak isimlendirilen daha ksa bir ³ekilde ifade edilir. A³a§da bir ön ek tanmlamas ve bu ön ekin kullanld§ bir QName gösterilmi³tir.

Çizelge 1.4: sim uzay örnekleri Ön Ek (prex) sim Uzay(namespace)

rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns dom: http://somedomainaddress.com/cars

Çizelge 1.5: sim uzay kullanm

dom:Ford_Mustang üretici Ford Motor Company dom:Ford_Mustang bir (is a) Araba

Özne ve nesne bile³enlerinin URI olarak ifade edilebilmesine benzer olarak yüklem yada ili³ki bile³enleri de URI olarak ifade edilebilir. Benzer bir yakla³mla URI kullanm, yükleminde tekrar kullanlabilir ³ekilde ifade edilmesini, yüklem olarak kullanlan kelimelerin benzer olmas veya e³ anlaml kelimelerin kullanlmas durumunda, kastedilen anlamlarnn netle³mesini sa§lamaktadr. Yüklemin URI olarak ifade edilebilmesinin di§er bir getirisi ise, bu URI'n ba³ka RDF cümlelerinde özne olarak kullanlabilmesini sa§lamas ve bu sayede bahsedilen yüklem hakknda daha fazla bilginin verilebilmesidir.

Nesne isimlendirilmesi srasnda kalp deyim (literal) ifadelerde kullanlabilir. Bunlar genel olarak üçlünün konu bile³eninin bir özelli§ini ifade etmek için verilen de§erlerdir. Örne§in, konu bile³eninin a§rl§, rengi, vb. özelliklerinin ifade edilmesi için kullanlrlar. Kalp deyim ifadeler sadece nesneler için kullanlabilirler, konu ve yüklem olarak kullanlmazlar.

RDF çizgelerin de, bir URI veya literal de§er ile ifade edilmeyen ö§elerde bulunabilir. Bu ö§elere bo³ ö§e (Blank Node) denir. Bo³ ö§eler sadece özne veya nesne olarak kullanlabilirler.

(27)

nternet ortamnda birçok çal³ma grubu ve rma mevcut internet verilerinin, RDF formatnda yaynlanmas projeleri yürütmektedirler. Bunlardan en önemli olanlarndan birisi DBPedia projesidir. DBPedia, Wikipedia içerisindeki verilerin RDF formatnda yaynlanmasn sa§lamaktadrlar. Ayrca, internet üzerinde bu-lunan di§er veri kümeleri ile, kendi verilerini ba§layarak uygulamalarn DBPedia sorgularndan elde ettikleri sonuçlarn zenginle³tirilmesini sa§lamaktadrlar.

1.1.1.2 Çizge Veritabanlar ve Üçlü Veritabanlar (Triple-Store)

Çizge veritabanlar özellikle çizge yapsnda bulunan verilerin depolanmas amac ile kullanlan özel veritabanlardr. Verinin, çizge dü§üm ö§eleri ve onlar ili³kilendiren ba§lant yaplar olarak depolanmasn sa§larlar. Verilerin ba§lantl yaps sayesinde, bir indeks yapsna gerek yoktur. Her çizge dü§ümü ba§lantl oldu§u kom³u dü§üm ö§elerine bir i³aretçi içermektedir. Genel olarak çizge teorisinin sa§lad§ teorik yap üzerine kurgulanm³ ve uygulamalar yaplm³tr. Ancak benzer uygulamalarn, ili³kisel veritabanlar kullanlarak yaplmas da mümkündür.

Çizge veritabanlarnda ili³kisel veritabanlarnda oldu§u gibi bir ³ema (schema) ihtiyac bulunmamaktadr. Bu özellikleri ile verilerin genel amaçl ve de§i³ken sistemlerde kullanmna daha uygundurlar. Ölçeklenebilirlikleri açsndan ili³kisel veritabanlarndan daha ba³arl sonuçlar vermektedirler. Do§al olarak çizge veri-tabanlar, çizge formunda bulunan verilerin depolanmas için daha uygundurlar. Birçok açk kaynak ve ticari uygulamas bulunan çizge veritabanlar, yazldklar dil, sa§ladklar sorgulama dili deste§i, geli³tiriciler için sa§ladklar programlama arayüzleri ve ölçeklenebilirlikleri açsndan farkllklar gösterebilmektedirler. RDF verilerinin yönlü birer çizge ifade ediyor olmas, bu verileri saklamak amac ile çizge veritabanlarnn kullanlmasn mümkün hale getirmektedir. Özellikle RDF verilerinin saklanmas amac ile kullanlan çizge veritabanlarna üçlü veritaban (Triple-Store) denilmektedir. li³kisel veritabanlarnn sa§lad§ kullanm yaplarna paralel olarak, çizge veritabanlar da verilerin depolanmasn

(28)

ve sorgulanmas sa§lamaktadrlar. Hemen hemen hepsi sorgulama dili olarak SPARQL sorgu dilini desteklemektedirler. SPARQL sorgularn i³leyen ve bunlara göre cevaplar hazrlaya bir SPARQL i³leme birimi içerirler. Birço§u veritabanna yüklenen verinin de§i³tirilmesine olanak vermesine kar³ baz veritabanlar sadece sorgulama i³lemine izin vermektedirler.

En yaygn olarak kullanlan, semantik veri i³leme uygulama geli³tirme arayüz-lerinden birisi olan Apache JENA projesi, HTTP, API ve komut satrndan sorgu cevaplayabilen Fuseki [11] isimli bir SPARQL uç birimi (end point) içermektedir. Bu yazlm, arka plannda yine Jena tarafndan sa§lanan, TDB [45] ve Jena-SDB [44] isimli iki farkl üçlü veritaban içermektedir.

1.1.2 RDF Gösterimleri

RDF modellerinin gösterimleri için farkl biçimler bulunmaktadr. Bunlarn en sk kullanlan W3C tarafndan geli³tirilmi³ olan RDF çizgelerini XML dosyalar olarak göstermeyi sa§layan, RDF/XML gösterim biçimidir. W3C tarafndan geli³tirilen ba³ka bir biçim ise Notasyon3 (N3)1 olarak bilinen gösterim biçimidir.

Bunlar d³nda en yo§un kullanlan gösterim biçimleri Turtle2 ve N-Triple3

gösterim biçimleridir. Hepsi ayn verinin farkl biçimlerde gösterilmesi amac ile kullanlmaktadrlar. En basit olan gösterim biçimi N-Triples biçimidir.

N-Triples gösterim biçiminde, her cümle bir satr olacak ³ekilde ve düz metin olarak gösterilir. Her cümle bir SPO (Subject Predicate Object) içermekte bir nokta ile sonlanmaktadr. Özne bir URI veya bo³ ö§e olabilir. Nesneler ise bo³ ö§e veya kalp deyim olabilir. URI olarak verilen de§erler "<>" i³aretleri arasnda yazlr. Bo³ ö§eler ise önlerinde "_:" olacak ³ekilde gösterilirler. A³a§da N-Triple olarak gösterilen bir RDF verisi bulunmaktadr.

1http://www.w3.org/TeamSubmission/n3/

2http://www.w3.org/TR/2012/WD-turtle-20120710/ 3http://www.w3.org/2001/sw/RDFCore/ntriples/

(29)

N-Triple 1.1: N-Triple yapsnda RDF 1 <http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://www.w3.org/1999/02/22-rdf-syntax-nstype> <http://xmlns.com/foaf/0.1/Document> . 2 <http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://purl.org/dc/terms/title> "N-Triples"@en-US . 3 <http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://xmlns.com/foaf/0.1/maker> \_:art . 4 <http://www.w3.org/2001/sw/RDFCore/ntriples/> <http://xmlns.com/foaf/0.1/maker> \_:dave . 5 \_:art <http://www.w3.org/1999/02/22-rdf-syntax-nstype> <http://xmlns.com/foaf/0.1/Person> .

6 \_:art <http://xmlns.com/foaf/0.1/name> "Art Barstow". 7 \_:dave <http://www.w3.org/1999/02/22-rdf-syntax-nstype>

<http://xmlns.com/foaf/0.1/Person> .

8 \_:dave <http://xmlns.com/foaf/0.1/name> "Dave Beckett".

Ayn verinin RDF-XML olarak gösterimi ise a³a§daki gibidir. XML 1.2: RDF-XML yapsnda RDF 1 2 <rdf:RDF xmlns="http://xmlns.com/foaf/0.1/" 3 xmlns:dc="http://purl.org/dc/terms/" 4 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns"> 5 <Document rdf:about="http://www.w3.org/2001/sw/RDFCore/ntriples/"> 6 <dc:title xml:lang="en-US">N-Triples</dc:title> 7 <maker> 8 <Person rdf:nodeID="art"> 9 <name>Art Barstow</name> 10 </Person> 11 </maker> 12 <maker> 13 <Person rdf:nodeID="dave"> 14 <name>Dave Beckett</name>

(30)

15 </Person> 16 </maker> 17 </Document> 18 </rdf:RDF>

1.1.3 SPARQL

SPARQL, semantik verilerin (RDF çizge) sorgulanmas amac ile kullanlan sorgu dilidir. W3C altnda faaliyet gösteren RDF Data Access Working Group (DAWG) tarafndan standartla³trlm³tr. 2013 ylnda 1.1 versiyonu yaynlanm³tr [53, 26].

SPARQL'in farkl programlama dillerinde gerçekle³tirimi yaplm³ ve birçok uygu-lama programuygu-lama arayüzü (API) aracl§ ile geli³tirilen uyguuygu-lamalar içerisine gömülebilirli§i sa§lanm³tr. Ayrca SPARQL sorgularnn SQL ve XQuery gibi di§er sorgu dillerine çevrilmesini sa§layan uygulamalarda bulunmaktadr.

Genel yaps, a³a§daki örnekte verildi§i gibidir.

SPARQL 1.3: SELECT sorgu örne§i

1 PREFIX foaf: <http://xmlns.com/foaf/0.1/> 2 SELECT ?name ?email

3 WHERE {

4 ?person a foaf:Person. 5 ?person foaf:name ?name. 6 ?person foaf:mbox ?email. 7 }

Yukarda verilen örnek bir SELECT sorgusuna aittir. 1. satr, sorgu içinde kullanlan ön ek (namespace) tanmn içermektedir. E§er sorgu içerisinde birden fazla ksaltma kullanlacaksa, her biri sorgunun en üstünde bulunan bu bölüme yeni bir satr olarak eklenmelidir. 2. satr içinde geçen "SELECT", sorgu türünü

(31)

ve "?name" ile "?email" ifadeleri, aranan çizge dü§ümlerini göstermektedir. Aranan çizge dü§ümleri birer de§i³kendir ve soru i³areti ile ba³ladklar sürece farkl kelimeler ile kullanlabilirler. 3. ve 7. satrlar arasnda kalan ksm, aranan de§i³kenlerin sa§lamas gereken çizge üçlülerini göstermektedir. Sadece, 4.,5. ve 6. satrlarn hepsini sa§layan de§erler cevap olarak dönecektir. Buradan da anla³laca§ üzere, aslnda her üçlü satr mantksal bir "VE" i³lemi ile birbirlerine ba§ldrlar. Cevap olarak dönen de§erler üçlü içindeki SPO bile³enlerinden birisidir. Üçlünün kendisi dönmemektedir.

SELECT sorusu d³nda sorgu türleri de bulunmaktadr. Bunlar ASK, CON-STRUCT ve DESCRIBE sorgulardr. A³a§da bu sorgu türlerinin amac hakknda ksa bilgiler verilmi³tir.

ASK sorgular, içerdi§i üçlüleri sa§layan de§i³ken de§erlerinin neler oldu§unu de§il, sadece RDF içinde var olup olmadklarn soran sorgulardr. Dolays ile cevap olarak "True" veya "False" de§erlerini alabilir. Sorguyu cevaplayan birim, sorgudaki üçlüyü RDF içerisinde birden çok de§erin sa§lamas durumunda dahi,ilk kayd buldu§u an arama i³lemini durdurarak True veya False cevabn gönderir. A³a§da, Amazon nehrinin Nil nehrinden uzun olup olmad§n soran bir ASK sorgusu örne§i bulunmaktadr.

SPARQL 1.4: ASK sorgu örne§i

1 PREFIX prop: <http://dbpedia.org/property/> 2 ASK

3 {

4 <http://dbpedia.org/resource/Amazon_River> prop:length ?amazon . 5 <http://dbpedia.org/resource/Nile> prop:length ?nile .

6 FILTER(?amazon > ?nile) . 7 }

CONSTRUCT sorgular genel olarak SELECT sorgular ile ayn olmakla birlikte sorgulara verilen cevaplar, sorgunun belirtti§i üçlüleri sa§layan de§erlerin yeniden yaplandrlmasna olanak vermektedir. Yani CONSTRUCT sorgularnn sonucu ile elde edilen de§erler, sorgu içinde yeni bir çizge olu³turmada kullanlabilir.

(32)

SELECT sorgusundan farkl olarak üretilen yeni RDF içinde, üçlü bile³enleri farkl ili³kilerle birbirlerine ba§lanabilir.

SPARQL 1.5: CONSTRUCT sorgu örne§i

1 CONSTRUCT { ?q1 :hasUncle ?q2 . } 2 WHERE {

3 ?q2 :hasSister ?s .

4 ?q1 :hasMother ?s .

5 }

Yukardaki örnekte sorgulanan üçlüleri sa§layan ?q1 ve ?q2 de§erleri, yeni RDF içinde farkl bir ³ekilde ili³kilendirilmi³lerdir.

DESCRIBE sorgular, do§rudan alt çizgelerin cevap olarak istenmesini sa§layan sorgulardr. Sorgu cevaplayan birim cevap olarak gönderilecek olan çizge içinde hangi üçlülerin bulunaca§ hesaplar, çizgeyi olu³turarak cevab gönderir. Örnek olarak George Washington ile ilgili tüm bilgileri istemek için a³a§daki sorgu kullanlabilir.

SPARQL 1.6: DESCRIBE sorgu örne§i

1 PREFIX prop: <http://dbpedia.org/property/> 2 DESCRIBE *

3 WHERE {

4 dbpedia:George\_Washington ?anyProperty ?s . 5 }

SPARQL sorgular, sorgular cevaplamak için geli³tirilmi³ olan ve genel olarak tüm üçlü veritabanlarnda bulunan bir birim tarafndan cevaplanr. Bu birim SPARQL Uç Birimi (SPARQL Endpoint) olarak adlandrlr. Uç birimler farkl ³ekillerde sorgulanabilmektedir. Bu yöntemler arasnda, HTTP protokolü kullanlarak web üzerinden sorgulama, Uygulama Programlama Arayüzü (API) üzerinden gönderilen sorgulama ve Komut Satr kullanlarak yaplan sorgula-malar saylabilir. Birçok üçlü veritaban, ayn anda bu yöntemlerin birden fazlasn sa§layabilmektedir.

(33)

1.2 Da§tk Sistemler ve Ölçeklenebilirlik

Veri i³leme süresi ile veri büyüklü§ü arasnda do§ru bir orant bulunmaktadr. Veri miktar arttkça, verinin bir bilgisayar üzerinde i³lenebilmesi için gereken süre artmaktadr. Bu süreyi azaltmak amac ile problemin ölçe§ine ve verinin yapsna ba§l olarak farkl yöntemler kullanlmaktadr. Bu tür problemlerde, veriyi i³lemede kullanlacak bilgisayarlarn donanmlarnn güçlendirilmesi, bir noktaya kadar çözüm sa§layabilmektedir. Ancak probleme ölçeklenebilir bir çözüm getirebilmek için, çözümün, donanm kaynaklarnn gücünden ba§msz olmas gerekmektedir. Çünkü, sistem performans, mümkün olan en geli³kin donanm performans ile snrl olacaktr. Ayrca, Moore Yasas için atomik seviyede snrlara yakla³lyor olmas dolays ile, donanm performansna do§ru-dan dayal sistem ölçeklenmesinin iyi bir yakla³m olmad§ öngörülebilmektedir [57]. Donanmlarn iyile³tirilmesi yerine, orta seviye donanmlarn kümelenmesi ve böylece daha büyük i³leme kapasiteleri elde edilmesi yaygn olarak üzerinde çal³lan bir konudur. Bu yakla³mda genel olarak problemin yapsal olarak özde³, ancak içerik olarak farkl küçük parçalara bölünmesi, bu parçalarn küme bilgisayar dü§ümlerine da§tlmas ve dü§ümler üzerinde i³lemlerin paralel olarak çal³trlarak verinin i³lenmesi yolu izlenmektedir. Daha sonraki admda, elde edilen küçük çözüm çktlarnn birle³tirilmesi yöntemi ile, problem daha ksa sürede sonuca ula³trlmaktadr.

³leme yetenekleri açsndan da§tk bir altyap kullanlyor olunmas, sistem performansn arttrmaya her zaman yetmeyebilir. Örne§in verinin merkezi oldu§u ancak i³lem için uç birimlere gönderildikten sonra i³lendi§i, MPI (Message Passing Interface) benzeri paralel i³leme altyaplarnda bu durum söz konusudur. Bu yüzden MPI4 daha çok hesaplamaya yönelik da§tk bir sistemdir.

Verinin i³lem öncesi da§tk halde uç birimlerde bulunmas i³lem süresini ksalta-caktr. Ancak bunun sa§lanmas da tek ba³na performans art³ sa§lamaya yeterli de§ildir. ³lemlerin verinin depoland§ bilgisayarlarda çal³trlmas ve ara sonuçlarn bilgisayarlar arasnda al³ veri³inin minimum seviyede yaplmas

(34)

gerekmektedir. Örne§in GRID5, da§tk bir depolama ve i³leme altyaps sunuyor

olmasna ra§men, yürütülen i³lemler her zaman verinin bulundu§u bilgisayarda çal³mad§ için yo§un bir a§ kullanm ve dolays ile a§ üzerinde daha fazla zaman kayb anlamna gelmektedir. Dolays ile da§tk bir sistem tasarmnda bahsedilen bu noktalar göz önüne alnmaldr.

Semantik verilerin i³lenmesi için sa§lanan uygulama geli³tirme arayüzlerinin, yukarda belirtilen yakla³mlar göz önüne alnarak kullanlmas ile benzer uygu-lamalar geli³tirmek mümkündür. Kullanlacak olan çözüm probleme göre belirlenebilir. Veri yaps açsndan özde³ verilerin topluca i³lenmeleri amacyla sklkla kullanlan açk kaynak bir altyap olan Apache Hadoop 6 projesi çok

önemli bir örnek te³kil etmektedir.

1.3 Problem Tanm

Mevcut üçlü veritabanlarnn en büyük eksikli§i ölçeklenebilir olmamalardr. Bu durum, test amaçl çal³malarda sorun olu³turmamakla birlikte, verinin büyük oldu§u ticari ve akademik uygulamalarda büyük bir eksiklik olu³turmaktadr. Verinin birden fazla uç birim üzerinde ayr ayr sunulmas durumunda ise veri bütünlü§ü kaybedilmektedir. Bir sorgunun cevaplanabilmesi için sa§lamas gereken üçlü yollarndan bir ksmnn di§er sunucuda sunuluyor olmas, ilgili sunucunun sorguya cevap verememesine sebep olmaktadr. Yani semantik veri, ili³kili olan verilerin birlikte sunuldu§u sistemlerde do§ru olarak sorgu-lanabilmektedir. Bu yetene§i da§tk olarak sa§lamak için, ziki olarak ayr donanmlar üzerinde bulunan ili³kili verilerin, bu ili³kiler göz önünde tutularak sorgulanabilmesi gerekmektedir.

Verinin parçalanmas ve ayr sunuculardan sunulmas durumunda, her sunucu kendi üzerinde bulunan veri ile ilgili ksmlara cevap verebilmektedir. Bu durumda, kullanclarn sorgularn verinin parçalan³na uygun olarak bölüp,

5http://en.wikipedia.org/wiki/Grid_computing 6http://hadoop.apache.org

(35)

sorgu yapmas ve geri gönderilen sorgu sonuçlarn birle³tirmek sureti ile istenilen cevaba ula³mas gerekmektedir. Bu yakla³m iki nedenden dolay, bir yazlm kullanmakszn kolay uygulanabilir bir yakla³m de§ildir. Birincisi, kullanc her sunucuda verinin hangi ksmnn oldu§unu bilmelidir. kincisi ise, verinin çok büyük olmas durumunda, geri gönderilen sonuçlarn ksa bir sürede birle³tirilmesi gerekecektir. Ancak bu yöntem bir yazlm aracl§ ile yapld§nda çözüm olarak kullanlabilir. Bu durumda dahi, birinci neden olarak belirtilen durumun ksa bir çözümü bulunmamaktadr. Bu durum, kendi içinde iki ayr alt yöntem ile çözülebilir. Birinci alt çözümde, veri parçalama i³lemlerinin her biri, birer veri indeksleme i³lemi ile devam eder, böylece, her veri blo§unun içine hangi verilerin oldu§u bilinebilir. kinci alt yöntemde ise, veri bloklarnn içeri§i bilinmeksizin sorgu parçalar her veri blo§una gönderilir. Her iki durumda da sorgular bölmek ve cevaplar birle³tirmek zorunlulu§u vardr. ndeks kullanmn gerektiren yakla³mlarda, tablolarn büyüklü§ü, indeks içinde arama sürelerini de uzatacaktr.

En yaygn olarak kullanlmakta olan çözüm, ölçeklenebilirlik özelli§i bulunan ili³kisel veritabanlarnn kullanlmas yöntemi ile verinin da§tk olarak saklan-masn sa§lamaktr. Ancak bu çözümde, sorgular alacak ve i³leyecek daha sonra ilgili SQL sorgular haline çevirecek bir birimin geli³tirilmesi gerekmektedir. Benzer ³ekilde ili³kisel veritabanndan dönen cevaplarn birle³tirilmesi i³lemininde bu birim tarafndan yaplmas gerekmektedir.

Bu tez çal³mas, yukarda anlatlan problemleri çözmek amac ile kullanlabilecek olan, yazlm sisteminin, çal³ma metodunun geli³tirilmesini içermektedir.

1.4 Tezin Amac ve Katklar

W3C tarafndan önerilen Semantik A§ teknolojileri ve bunlarn standartla³trl-mas, bu alanda yaplan çal³malarn hz kazanmasna yardm etmi³tir. Ancak Semantik A§ teknolojilerinin standartla³trlmalar 1990'l yllarn sonuna do§ru olmasna ra§men, semantik a§n en temel bile³eni olan verinin üretimi, son

(36)

yllara kadar ayn hzda gerçekle³memi³tir. Veri üretiminin hzlanmas ve art olarak internet üzerindeki kaynaklarn semantik veriler haline dönü³türülmesinin hzlanmas ile birlikte, verilerin depolanmas ve sorgulanmas konusu önem kazanm³tr. RDF verilerin, tek bilgisayar üzerinde etkin bir biçimde depolanmas ve sorgulanmas konusunda bir çok önemli akademik çal³malar yaplm³tr [2, 36, 29, 18, 22, 34]. Önerilen bu sistemler tek bilgisayar üzerinde performansl bir ³ekilde çal³an üçlü veritabanlardr. Ancak, semantik veri, yaps itibari ile çok büyük boyutlara ula³abilen bir çizge yapsndadr. Dolays ile, verinin büyüklü§ü sorgulama süresi açsndan önemli bir engel olu³turmaktadr. Bu nedenle, semantik a§n geli³tirilmesi açsndan, verinin ölçeklenebilir da§tk sistemler üzerinde depolanabilmesi ve hzl sorgulanabilmesi en öncelikli hedeerden birisini olu³turmaktadr.

Mevcut üçlü veritabanlarnn birço§u ölçeklenebilirlik yetene§ine sahip olmadk-lar için, kstl miktarda veri depolayabilmektedir. Depolanabilen verinin, tek sunucu tarafndan servis edilebilmesi durumunda ise, sorgu cevaplama süreleri çok uzun olmaktadr. Da§tk olarak veri depolayabilen ve sorgulanmasn sa§layan açk kaynak kodlu ve ücretsiz da§tlan çok fazla üçlü veritaban bulunmamaktadr [1, 35]. Ancak bu yetene§e sahip baz ticari ürünler bulunmaktadr [40, 37]. Yukarda bahsedilen nedenlerden ötürü, bu tez çal³masnda, semantik verinin, etkili bir biçimde da§tk olarak depolanabildi§i ve sorgulanabildi§i bir çözüm olu³turmak hedeenmi³tir. Çal³ma srasnda geli³tirilecek olan çözüm yak-la³mnn, bir uygulama ile gerçeklenmesi tez çal³masndaki di§er hedeer arasnda bulunmaktadr. Uygulama sonucunda olu³turulacak olan sistem, geli³tirilen yakla³mn test edilmesi amac ile kullanlacak ve sonuçlar tek sunuculu bir sistem ile kar³la³trmal olarak verilecektir. Geli³tirilecek olan tasarmn, dü³ük a§ kullanm yo§unlu§u sa§lamas, ölçeklenebilir olmas ve sorgular hzl cevaplamas göz önünde tutulacak tasarm kstlar olacaktr. Sorgularn do§ru cevaplar üretiyor olmas, ilk etapta sistem performansndan daha önemli olacaktr. Bu hedef gerçekle³tirildikten sonra, cevaplama sürelerinin dü³ürülmesi sa§lanacaktr.

(37)

hedeer göz ard edilecek, sistemin sadece LUBM sorgu kümesini cevaplayabilir olmas sa§lanacaktr.

Tezin, bu alanda yaplan çal³malar açsndan getirece§i en büyük katk, mevcut tek sunuculu sistemlere oranla daha ksa sürede sorgu cevaplayabilen ve ölçek-lenebilen bir da§tk sistem önerisi getirebilmesi, ayrca, bu sistemin, mevcut semantik a§ teknolojilerinin ve açk kaynak kütüphanelerin kullanlmas yolu ile olu³turulabilece§inin gösterilmesidir. Getirilen öneri yaplm³ olan benzer çal³malar içinde bir alternatif olu³turacaktr.

(38)

2. LGL ÇALI“MALAR

Tez çal³mas srasnda üzerinde durulacak olan temel konu SPARQL sorgularnn da§tk bir ortamda depolanm³ olan veriler üzerinde, da§tk olarak çal³trlmas konusudur. Konuyla ilgili yaplm³ farkl akademik çal³malar bulunmaktadr. Bu bölümde, yaplan bu çal³malarn bazlar hakknda bilgiler verilecek ve ksa de§erlendirmeler yaplacaktr. Da§tk sorgulama ve depolama konusundaki yak-la³m biçimleri ve yöntemleri, bu tez çal³masnn yakyak-la³m ile kar³la³trlacaktr. Da§tk depolama ve sorgulama alannda yaplan çal³malarn bir ksm, sfrdan yeni bir da§tk üçlü veritaban geli³tirmek yerine, mevcut üçlü veritabanlarnn da§tk olarak kullanlmasn sa§layacak olan, altyaplar geli³tirmek yolunu seçmi³lerdir [28, 39, 23]. Burada asl hedef, da§tk halde çal³mas amac ile tasarlanmam³ olan üçlü veritabanlarnn, bir yazlm bile³eni olarak kullanlmas yolu ile, da§tk çal³ma yetene§i olan bir sistemin veri depolama ve sorgulama katmann olu³turmasn sa§lamaktr. Bu yakla³mn en önemli nedeni, geli³tirme sürelerini ksa tutmak ve halihazrda, geli³tirilmi³ ve kullanlm³ olmalar nedeni ile, yeterli olgunlu§a eri³mi³ yazlmlar bile³en olarak kullanmaktr. Ayrca her üçlü veritaban, gelen SPARQL sorgularn cevaplamak amac ile kullanlacak olan sorgu uç birimlerini (SPARQL Endpoint) içermekte oldu§undan bu uç birimlerin geli³tirilmesi gerekmemektedir. Ancak, bu yakla³ma alternatif olacak ³ekilde farkl depolama araçlar kullanlmas durumunda, depolama amaçl kullanlan her uç birimde, SPARQL sorgularn yürütülmesini sa§lamak amac ile, birer SPARQL uç biriminin geli³tirilmesi gerekecektir. Bu yakla³mn art yanlar oldu§u gibi, eksi yanlar da bulunmaktadr. Var olan üçlü veritabanlarn kullanmann getirdi§i en önemli eksi ise, mevcut olan üçlü veritabanlarnn birço§unun üçüncü

(39)

parti yazlmlarla entegre edilmelerinin kolay olmay³dr. Entegrasyonun sorun olmasnn en önemli nedeni ise, bu üçlü veritabanlarnn büyük bir ço§unlu§unun bir API ve uzaktan sorgulama için bir eri³im protokolü sa§lamyor olmalardr. Üçlü veritabanlar, en genel seviyede, gelen SPARQL sorgularn i³lemek ile sorumlu olan bir sorgu motoru (Query Engine) ve verinin depolanmas için bir veritaban sisteminden olu³maktadrlar. Da§tk bir üçlü veritabannn geli³tirilmesi srasnda bu iki bile³enin de, da§tk yap içinde bulunmas gerekir. Üçlü veritabanlar RDF dosyalarnn sorgulanmas amac ile optimize edilmi³ indeksler olu³turmaktadr. Bu açdan, mevcut ili³kisel veritabanlarndan daha fazla performans göstermektedirler. Tüm üçlü veritabanlar, bu i³lemleri yerine getiren birer yazlm bile³enini halihazrda çal³trmaktadr. Hazr bir üçlü veritabann kullanmak bu bile³enleri geli³tirme yükünü ortadan kaldrmaktadr. Ancak, bu iki yapy ayr ayr geli³tirmek ve ayr ayr kullanmak mümkündür. Baz çal³malar, bu iki bile³enden biri olan veritaban bile³eni ihtiyacn, mev-cut ili³kisel veritabanlarn (RDBMS) veya NoSQL veritabanlarn kullanarak sa§lamakta ve SPARQL sorgularn i³lemek için mevcut ve genel kullanma açk projeleri kendi projelerine eklemektedirler [17, 3, 55, 32, 20, 4, 15]. Ancak genel olarak, ili³kisel veritabanlar çizge yapl veri depolama amac ile optimize edilmedikleri için dü³ük performans göstermektedirler [3]. Bu çal³malarn bazlarnda, sorgularn cevaplanmas amac ile SPARQL uç birimleri çal³trmak yerine, SPARQL sorgularnn SQL sorgularna çevrilmesi yolu önerilmi³tir [15, 3]. Di§erlerinde ise, kullanlacak olan veritabannn önünde çal³trlmas öngörülen, ayr SPARQL sorgu uç birimlerinin kullanlmasna olanak veren ara yazlm katmanlarnn kullanlmasn önermektedir. En yaygn olarak kullanlan SPARQL sorgu motorlarnn bazlar "Sesame2" [38], "ARQ" [12] ve "OpenLink Virtuoso" [37] olarak saylabilir. Mevcut üçlü veritabanlarnn ve SPARQL uç birimlerinin daha geni³ bir listesi, W3C web sayfalarnda bulunabilir [52]. Veritabanlarnn ili³kisel veritabanlarndan veya mevcut NoSQL veritabanlarndan seçilmelerinin nedenleri farkldr. li³kisel veritabanlarnn kullanlmasnn nedeni, genel olarak, mevcut teknolojik altyapnn kullanlabilirli§ini, semantik a§ alanna da geni³let-mek iken, NoSQL veritabanlar yüksek ölçeklenebilirlikleri nedeni ile tercih edilmektedirler.

(40)

Birçok NoSQL veritaban bulunsa da, Apache Hadoop temelleri üzerinde geli³tir-ilmi³ olan Apache HBase [9] en ba³arl ölçeklenebilir NoSQL veritabanlarn-dan bir tanesidir. Temelinde, sadece bir anahtar-de§er (key-value) tablosu sunucusudur ve Google tarafndan yaynlanan Google BigTable [19] çal³masn örnek alarak geli³tirilmi³tir. BigTable, ölçeklenebilirli§i sa§layabilmek için ili³kisel veritabanlarnn sa§lad§ baz OLTP (Online Transaction Processing) özelliklerini uygulamam³ veya daha basit olacak ³ekilde uygulam³tr. Ayrca yapsal veriler için tasarlanan bu sistemde SQL deste§i de bulunmamakta, sorgulama amac ile SQL benzeri GQL1 isimli bir dil kullanlmaktadr.

Jena-HBase isimli çal³ma [32], Hadoop [7] temelli olmas dolays ile, yüksek hata tolerans, çok etkin bir veri yedeklili§i altyaps ve güçlü bir yük da§lm yönetimi sunan, HBase veritabann kullanmaktadr. HBase ile veri sorgulama amac için, SQL benzeri bir sorgulama dili deste§i bulunan, Apache Hive2 arayüzü

kullanlabilmektedir. Ancak API seviyesinde eri³im ve sorgulama da mümkündür. HBase, küme büyüklü§üne do§rudan ba§ml bir performans yapsna sahiptir. Bu yüzden, Jena-HBase çal³masnda, veri depolama katman olarak HBase tercih edilmi³tir. Ancak, HBase performans konusunda ba³arl olmasna ra§men, indeksleme açsndan snrl bir yetene§e sahiptir [9]. Jena-HBase projesi, sorgularn yönetilmesi amac için Apache Jena uygulama geli³tirme arayüzünü (Jena API) [34, 10] kullanr. Bu uygulama geli³tirme arayüzü, SPARQL sorgularn i³lemek için gerekli birçok fonksiyon sunmaktadr. Jena da§tmlar TDB [45] ve SDB [44] isimli iki üçlü veritaban ile birlikte kullanlabilmektedir. Bunlar Jena projesi altnda geli³tirilen üçlü veritabanlardr. Ancak Jena sadece bu iki üçlü veritaban ile snrl ³ekilde çal³mamaktadr. Sa§lanan arayüzler sayesinde, gerekli sürücü yazlmlar ile birlikte, arka planda çal³acak üçlü veritaban olarak, kullancnn seçmi³ oldu§u ba³ka bir veritaban ile de çal³abilmektedir. Jena-HBase projesi, Jena uygulama geli³tirme arayüzünü kullanarak yazlan SPARQL i³leme yazlmn HBase ile kullanlmasn sa§layan sürücü yazlmlarn da geli³tirmi³tir.

Hadoop temelli benzer ba³ka bir proje olan SHARD [42] ise, verileri, HBase

1https://developers.google.com/datastore/docs/apis/gql/gql_reference 2http://hive.apache.org/

(41)

gibi bir NoSQL veritaban içindeki tablo objeleri içinde depolamak yerine, Hadoop tarafndan sa§lanan HDFS [8] dosya sistemini kullanarak, düz metin dosyalar içinde depolama yapmaktadr. Bu durumda, veri okuma yazma i³lemleri için do§rudan dosya sistemine eri³ilebildi§i için, zaman kazançlar daha fazla olabilmektedir. SHARD, sorgu i³leme amac ile map-reduce uygulamalar kullan-makta ve girilen SPARQL sorgularn, alt sorgular halinde ele alarak, her alt sorgu için verinin tümü üzerinde bir döngü yapmaktadr. Bu döngülerin her birinde, alt sorgu içinde verilen yolu sa§layan de§erler, sonuç kümesine eklenmektedir. Bu çözüm yakla³m, esasen çok basit ve sadece, Hadoop'un tekrarl i³leri yapmak konusunda çok ba³arl ve yüksek zaman kazanc sa§lyor olmasna dayanan bir çözüm yakla³mdr. Bu projedeki yakla³mn gerçekle³tirilebilmesi için, SPARQL sorgularnn bile³enlerine ayrldktan sonra, Hadoop dosya sistemi yöneticisinin bu dosyalara eri³imini sa§layan ara yazlm katmanlarnn yazlmas gerekmektedir. Çünkü dosya bloklarnn hangi küme birimleri üzerinde depoland§ sadece Hadoop Namenode sunucusu tarafndan bilinmektedir. Veri parçalama i³lemi için herhangi özel bir yakla³m sa§lamamaktadr. Bu i³ tamamen Hadoop NameNode sunucusuna braklm³tr. NameNode, verinin eri³ilebilirli§ini ve yedeklili§ini arttrmak amac ile, kendisine verilen tüm dosyalar, 64 Byte büyüklü§ünde bloklar halinde, en az 3 küme birimi üzerine bulunacak biçimde da§tmaktadr. Bu 3 küme birimi genellikle rastgele seçilmektedir. Da§tlan bloklar ile ilgili tüm bilgiler, Namenode sunucusunda üst veri(metadata) olarak depolanmaktadr. Bu bilgiler, blo§un hangi küme birimlerinde bulundu§unu gösteren bilgilerdir, verinin içeri§i hakknda bir bilgi içermemektedir. Veriye eri³im gerekti§i zaman, Namenode, küme birimlerinin yük durumlarn göz önüne alarak, hangi bloklarn hangi küme birimlerinden okunmas gerekti§i bilgisini sa§lamaktadr. Bu açdan SHARD içinde, verinin nasl da§tlaca§ Hadoop NameNode tarafndan belirlenmektedir.

Verinin parçalanmas biçiminin, daha ön planda oldu§u, ancak yine Hadoop temelli olan ba³ka bir da§tk sistem önerisi de Jiewen Huang, Daniel J. Abadi ve Kun Renve tarafndan yaplm³tr [28]. Bu çal³mada verinin parçalanma biçiminin, sorgu sürelerine etkileri üzerinde durulmakta ve "directed n-hop guarantee" isimli bir veri da§tma algoritmas ve bunu göz önüne alarak sorgulama

(42)

yapan bir sistem önerilmektedir. Algoritma, SPARQL sorgularnn yapsna istatistiksel bir yakla³m ile bakarak, herhangi bir sorgu içinde, sa§lanmas gereken alt çizge büyüklü§ünün belli snrlar a³mad§ tespitini kullanmaktadr. Çizge parçalama amac ile METIS [27] kullanlm³tr3. Bu algoritmaya göre

da§tlan veriler, farkl uç birimlerde tekrarlanm³ olarak bulunabilmekte ve depolama etkinli§ini azaltmaktadr4. Ancak bu durum, birbiri ile alakal

üçlülerin, tek birim üzerinde bulunma ve dolays ile bunlar sorgulayan sorgularn tek birim tarafndan cevaplanmas ³ansn arttrmaktadr. Sonuç olarak, uç birimler aras bilgi aktarmlar en alt seviyede tutulmu³ ve uç birim cevaplar ile olu³an veri birle³tirme zorunlu§u ortadan kaldrlm³ olmaktadr. Bu sistem Hadoop altyapsn sorgularn cevaplarnn birle³tirilmesi gerekti§i durumlarda kullanmaktadr. Ald§ sonuçlar itibari ile hzl bir sistem olmasna ra§men, sorgu biçimleri ile ilgili yapmakta oldu§u varsaym itibar ile her sorguda benzer sonuçlar elde etmesi mümkün de§ildir.

Jena-HBase projesine büyük oranda benzeyen, ancak HBase yerine, Google BigTable benzeri bir anahtar-de§er veritaban kullanan ba³ka bir proje ise Rya [41] projesidir. HBase yerine Accumulo [5] isimli ba³ka bir anahtar-de§er tablo sunucusu kullanlm³tr. Accumulo, HBase ile benzer ³ekilde, Google BigTable tasarmn referans olarak kullanm³tr. Ancak, HBase'den farkl olarak, HBase üzerinde bulunmayan, hesaplama performans ve güvenlik sa§layan baz ekstra özelliklere sahip oldu§u için Rya projesinde bu veritabann seçmi³tir. Rya projesinin SPARQL i³leme katmannda, Jena yerine, benzer yetenekler sa§layan ba³ka bir uygulama geli³tirme arayüzü olan Sesame Uygulama Çats (Sesame Framework) [38] kullanlm³tr5. Jena-HBase projesindekine benzer bir ³ekilde,

sorgular ilk admda parçalara ayrlmakta ve daha sonra Sesame içinde bulunan, SAIL uygulama geli³tirme arayüzü kullanlarak yazlan yazlm birimi tarafndan parçalara ayrlmakta, daha sonra veritaban içinde ilgili kaytlar arama i³lemi

3Çal³ma detaylarnn anlatld§ makalede, di§er bir veri parçalama yöntemi olarak, Hash

Partitioning ile veri parçalanmas i³lemi anlatlm³ ve METIS kullanlarak yaplan parçalama i³lemi ile kyaslanm³tr.

4Önerilen sistem, depolama alan kullanma etkinli§i ve sorgu cevaplama süreleri arasnda

bir alakaya dayanmaktadr.

5Jena ve Sesame Java programlama dili ile gerçekle³tirilmi³lerdir, uygulama geli³tirme

(43)

yürütülmektedir. Bu arama i³lemi, Accumulo içinde sa§lanan Batch Scanner isimli bir birim tarafndan yaplmaktadr. Çal³ma ile ilgili makalede [41], Accumulo ile HBase arasnda en önemli performans farklarndan birini, bu birimin sa§lad§ belirtilmi³tir. Çal³ma ekibi, elde ettikleri sonuçlarn SHARD ve yukarda anlatlan çizge parçalama (Graph Partitioning) çal³malar ile kar³la³trm³, veri yükleme ve sorgu cevaplama süreleri açsndan Rya projesinin daha iyi sonuçlar elde etti§ini göstermi³tir.

Yukarda belirtilenler d³nda, Hadoop teknolojisine dayanmakszn, da§tk RDF üçlü veritaban geli³tiren çal³malar da bulunmaktadr. Bunlardan en önemlisi 4-Store [1, 23] projesidir. 4-4-Store projesi üçlüleri model-özne-ili³ki-nesne ³eklindeki dörtlüler yaps ile saklamaktadr. Bu projede, kullanlan ziksel küme yaps, proje kapsamnda geli³tirilen TCP/IP tabanl, birimler aras haberle³me altyaps üzerinden veri al³ veri³i yapmaktadr. Küme içinde bulunan bilgisayarlar depolama birimi ve i³leme birimi olmak üzere iki snfa ayrlm³lardr. ³leme birimleri, sadece depolama birimleri ile haberle³mekte ancak kendi aralarnda veri al³ veri³i yapmamaktadrlar. Depolama birimlerinin her biri verinin belli bir dilimini içermektedirler. Sorgular proje kapsamnda geli³tirilen SPARQL i³leme birimi ile i³lendikten sonra i³leme birimleri üzerinden çal³trlrlar. Her i³leme birimi, yük da§lmlarn da göz önüne alarak sorguyu cevaplayacak olan depolama birimini tespit ederek sorgu cevabn ister. Verinin da§tlmas basit bir Hashing metoduna dayanmakta oldu§u için i³lemci birimler cevaplarn hangi birimlerde oldu§unu hesaplayabilmektedirler. 4-Store, di§er alternatiere oranla, daha uzun süre gerçek kullanm alannda test edilmi³ bir uygulama oldu§u, hatalar en çok ayklanm³ üçlü veritabanlarndan bir tanesidir. 4-Store tasarm, 32 birimlik bir küme için optimize edilmi³tir. Ancak daha büyük kümelerde çal³trlmas sonucu elde edilen verilere dair bir bilgi bulunamam³tr6.

Bu tez çal³masnda önerilecek olan sistem yukarda ksaca de§inilen sistem önerileri ile baz paralellikler içeriyor olsa da, yakn seviyede benzeyen bir sistem yakla³m bulunmamaktadr. Bu tez çal³masnda verinin uç birimlerine

64-Store üçlü veritabannn Hadoop temelli sistemlerle kar³la³trlmasn içeren bir kaynak

(44)

da§tlmas srasnda Çizge Parçalama projesinde [28] kullanlan METIS kul-lanlacaktr. METIS veriyi çizge özelliklerini göz önüne alarak, ili³kili çizge dü§ümleri ayn çizge parças içinde kalacak ³ekilde parçalamakta, bu sayede sorgularn mümkün oldu§unca az uç birim tarafndan cevaplanabilir kalmasn sa§lamaktadr. Çizge Parçalama projesinde cevap veren uç birim saysnn daha da dü³ürülmesi amac ile bir çizge parçasna atanm³ üçlüler, çizge snrnda kom³u olunan di§er çizge parçalarna da kopyalanm³tr. Ancak bu tez çal³masnda, Çizge Parçalama projesinde oldu§u gibi ayn üçlülerin birden fazla uç birim üzerinde tekrarlanmas sa§lanmayacaktr. METIS kullanarak, her ne kadar cevap veren uç birim says en dü³ük seviyeye indiriliyor olsa da, cevabn tamamnn tek birimden cevaplanmasn sa§lamak amac ile veri tekrarlama gere§i görülmemektedir. Çünkü veri tekrar yaplmas, sistemin toplamda, depolama açsndan etkinli§i azaltmaktadr. Yukarda anlatlan sistemlerin ço§unda Hadoop verinin da§tlmas ve sorgularn i³letilmesi süreçlerine aktif olarak katlmakta olmasna kar³n, bizim çal³mamzda, verinin ön i³leme süreci d³nda Hadoop kullanlmayacaktr. Sorgu i³leme için Jena-HBase projesindeki gibi, Jena uygulama geli³tirme arayüzü kullanlacaktr. Sesame2 yerine Jena'nn seçilmesinin sebebi, Jena TDB üçlü veritabannn veri yükleme süreçlerinde daha hzl cevap vermesi ve ölçeklenebilirli§idir [16]. Buna kar³n Sesame2 sorgu cevaplama performanslar açsndan daha ba³arldr. Ancak yaplan deneyler srasnda büyük miktarlarda verilerin çok sk yüklenmesi ve silinmesi gerekti§i için Jena seçilmi³tir. Di§er bir seçim nedeni, Jena'nn HTTP protokolü üzerinden sorgular cevaplayabilen, Fuseki (SPARQL query end point)7 isimli alt bile³eninin

olmasdr. Depolama altyaps olarak ise di§er projelerde kullanlmam³ olan Jena TDB üçlü veritaban seçilmi³tir. Bu seçimin sebebi ise, TDB üçlü veritabannn, kullanlan Jena yazlm geli³tirme arayüzü ile daha kolay entegre edilebilir olmasdr. Önerilen sistemde, birimlerin kendi aralarndaki veri al³veri³leri için ise Apache Java Commons API [6] kullanlarak HTTP üzerinden haberle³me yaplmasna karar verilmi³tir. Sistem içindeki uç birimlerin topolojik yaps ise, sorgularn cevaplanmas sürecinde, uç birimlerin birbirlerine sorgu göndermesini sa§layan bir örgü yapsdr.

(45)

Burada açklanan örnek çal³malara ait özet bilgiler Çizelge 2.1'de verilmi³tir. Çizelge 2.1: li³kili çal³malarn kar³la³trmal özeti

Çal³ma Ad Veri Depolama Altyaps Sorgu Katman Veri Parçalama Yöntemi

Vertical Partitioning [3] PostgreSQL Sesame Vertical Partitioning

Jena-HBase [32] HBase Jena+HBase API HBase(Hadoop Namenode)

SHARD [42] Hadoop HDFS Hadoop+MapReduce Hadoop Namenode

GraphPartitioning [28] RDF3X RDF3X Metis

Rya [41] Accumulo Sesame2 Accumulo

(46)

3. RDF VERLERNN DA‡ITIK

ORTAMDA DEPOLANMASI VE

SORGULANMASI

Bu bölümde tez çal³mas srasnda tasarlanan sisteme ait detayl bilgiler verilecektir. lk olarak sisteme genel bir bak³ yaplacak, sistemin mantksal ve ziksel mimari yaps hakknda bilgiler verilecektir. Daha sonraki bölümlerde, sras ile verinin sisteme verilmesi öncesinde yaplan ön i³lemler, tezde önerilen çözüm yakla³mnn bir gerçekle³tirimi olan DRS (Distributed RDF Store) uygulamas aracl§ ile, verinin parçalanmas ve da§tk ortamda depolanmak üzere a§a gönderilmesi i³lemleri anlatlacaktr. Son ksmda sistem üzerine da§tlm³ olan verinin nasl sorguland§ açklanacaktr.

3.1 Sistemin Mimari Yaps

Tez çal³masndaki en öncelikli hedeerden birisinin, verinin da§tk bir sistem üzerinden depolanmas ve sorgulanmas olmas dolays ile kullanlan ziksel sistem bir küme bilgisayar altyapsdr. Tüm bilgisayarlar birbirlerine Fast Ethernet Anahtar ile ba§lanm³lardr. Sistemin ziksel yaps “ekil 3.1 ile gösterilmi³tir.

(47)

“ekil 3.1: Sistemin Fiziksel Yaps

bilgisayar sanalla³trma sa§layabilen donanmlara sahiptirler. Sistem birimlerinin özde³ olmamasnn etkisini azaltmak için, tasarmn uygulanmasnda mantksal seviyede sanal makineler kullanlm³tr. Bu sayede tüm sanal birimlerin özde³ kaynak miktarna sahip olmas sa§lanmaya çal³lm³tr. Ancak geli³tirilen sistemin do§rudan ziksel bilgisayarlar üzerinde çal³trlmas durumunda dahi, tasarmn çal³masn engelleyecek bir durumu söz konusu olmayacak, sadece sistem performans gözlenirken bu durumun bir etkisi olacaktr. Sistem, en yava³ bilgisayarn kendisine verilen i³ parçasn bitirmesini beklemek zorunda kalacaktr. Yukarda belirtilenler do§rultusunda, tasarmn uygulamasnda kullanlan küme, mantksal seviyede “ekil 3.2'deki gibi görünmektedir.

(48)

“ekil 3.2'de görüldü§ü üzere her bir ziksel küme birimi üzerinde sanal makinalar çal³maktadr. Bu sanal makinalarn hepsi kendilerine ayrlm³ bellek alanna ve i³lemci kaynaklarna sahiptir. Deneyler srasnda, her bilgisayarda ayn sayda olmak üzere, toplamda fakl sayda sanal makinalar kullanlm³tr. Deneyler sras ile, her bilgisayar üzerinde 1,2 ve 3 sanal makina çal³acak ³ekilde yaplm³tr. Her sanal makina bir i³lemci çekirde§i kullanacak ³ekilde ayarlanm³tr. Bu sayede, ziksel sistemdeki en dü³ük kongürasyonlu bilgisayarn sahip oldu§u toplam kay-naklarn a³lmamas ve sanal makinalarn ayn anda çal³trlmalar durumunda dahi ziksel bilgisayar i³letim sisteminin kullanabilece§i i³lemci ve bellek kayna§ kalmas sa§lanmaktadr. Bu tez çal³mas kapsamnda ölçülecek olan süreler, üretim ortamnda kullanlacak gerçek sunucu bilgisayar kongürasyonlar ile elde edilecek olan sürelerden büyük ölçüde fakl olacaktr. Ancak çal³mada tespit edilmeye çal³lan en önemli noktann oransal olarak nasl bir kazanç elde edilece§i olmas dolays ile sanal makinalar deney amac ile kullanlabilecektir. Fiziksel olarak ayr gerçek sunucularda elde edilecek sonuçlar daha ba³arl olacaktr. Sistemin tasarm srasnda mümkün olan her noktada açk kaynak olarak da§tlan yazlmlarn kullanmnn ve geli³tirdi§imiz sisteme entegrasyonunun sa§lanlmasna çaba sarf edilmi³tir. Bu yakla³mn sebebi, açk kaynak sistemlerin genel olarak çok iyi test edilmi³ yazlmlar olmalardr. Ayrca geli³tirme srasnda ihtiyaç duyulan yardmn kullanc ve geli³tiriciler tarafndan çok hzl sa§lanyor olmas da ba³ka bir sebeptir. Bu nedenlerle, sistemin uç birimlerinde veri depolamay halihazrda çok ba³arl ³ekilde yapabilen ve depoladklar verinin yerel olarak çok hzl bir ³ekilde sorgulanmas için gerekli alt yapy sa§layan hazr yazlmlar kullanlm³tr. Bu sayede tez çal³mas srasnda yaplan çal³malar do§rudan da§tk sistemin olu³turulmasna yönelik olup, uç birimlerin veriyi nasl depolayacaklar ve sorgulayacaklar sorularn çözmeye gerek kalmam³tr. Bu yakla³m genel olarak açk kaynak yazlmlarn amaçlad§ kullanm biçimidir. Sistemin çal³traca§ yazlmlar açsndan yaps ayr bir ³ekil olarak “ekil 3.3'de gösterilmi³tir. Bu ³ekilde gösterilen tüm küme birimleri artk ziksel de§il sanal altyapy göstermektedir. “ekilde gösterildi§i gibi, küme birimleri üzerinde bulunan her sanal makina üzerinde ayn kongürasyon çal³maktadr. Sistemler

Şekil

Çizelge 1.1: Cümle (üçlü) Örnekleri
Çizelge 1.2: URI türleri
Çizelge 3.1: Genel bir Q sorgusuna ait örnek Alt Sorgu-IP matrisi Alt Sorgu / IP IP1 IP2 IP3 IP4 IP5
Çizelge 3.2: Genel bir Q sorgusuna ait alt sorgular ile olu³turulan sorgu y§tnn, farkl küme uç birimlerinde i³leni³i
+6

Referanslar

Benzer Belgeler

Bu da, dizinin kesin artan oldu˘ gu anlamına gelir.. (b) Monoton Yakınsaklık Teoreminden, (x n )

[r]

Verilen alan d¬¸ s¬nda yaz¬lan yaz¬lar cevap olarak puanlamada dikkate al¬nmayacakt¬r.. A¸ sa¼ g¬da verilen (i),(ii) ve (iii) önermelerini

Ba¸ ska yerlere veya ka¼ g¬tlara yaz¬lan cevaplar kesinlikle okunmayacakt¬r... olmayan ve

Son zamanlarda, kişisel verilerin saklanması için gerekli olan bellek miktarı, çevrimiçi çalışan birçok uygulamanın da üzerinde çalışabildiği Bulut bilişim

fonksiyonlar için k¬smi integrasyon yöntemi integrali daha küçük dereceden bir ifadenin integraline dönü¸ stürebilir... Böylece, R (x) rasyonel fonksiyonu daha basit

Ekibin lideri Christer Höög’e göre yeni mekanizma, difli yumurta hücrelerinde kromozom bozukluklar›n›n neden bu kadar yayg›n oldu¤unu aç›klamada yard›mc›

Sultan Ma 1 hmut'un fermanr ile ac;lfan T1phanei Amire ve Cerrahanei Amire'de egitim onceleri yabanclfann c;ogunluk- ta oldugu bir kadro ile verilmekteydi