• Sonuç bulunamadı

3.2 Sistemin Çal³mas

3.2.2 RDF Verilerin Da§tk Ortamda Depolanmas

çinde bulunan tüm üçlü bile³enlerin saylmas i³lemi tamamlanan RDF dosyalar, sonraki admda, uç birimlere gönderilmek üzere METIS aracl§ ile parçalanr ve DRS uygulamas yardm ile, a§ üzerinden, uç birimlerde bulunan Fuseki servisi aracl§ ile küme birimlerine yüklenir. Verinin uç birim üzerinde depolanmasnn tamamlanmasyla birlikte, sistem sorgulanmaya hazr hale gelecektir. A³a§daki bölümlerde verinin parçalanmas ve da§tlmas süreçleri daha detayl olarak anlatlm³tr.

3.2.2.1 Verinin Parçalanmas

Tasarlanan sistemin da§tk yapda olmas dolays ile verilerin bu da§tk sistem üzerinde ayr uç birimlerde depolanmas gerekmektedir. Bu noktada, verilerin uç

birimlere hangi ³ekilde da§tlmas gerekti§i sorusu ortaya çkmaktadr. Bunun için bir çok farkl yöntem uygulanabilir. Kullanlabilecek en temel yakla³mlar,

1. sral hale getirilmi³ üçlülerin, tüm uç birimlere, sraya uygun bir ³ekilde e³it miktarda da§tlmas,

2. üçlünün özne bile³eni kullanlarak bir hash metoduna göre ayrlmas [42, 37, 24],

3. verinin rastgele da§tlmas, ancak üçlü bile³enlerinden herhangi birine veya tamamna göre bir indeksinin olu³turulmas,

4. verinin çizge özelli§i olmas göz önüne alnarak, çizge parçalama algorit- malarnn kullanlmas yolu ile parçalanmas [28]

yöntemleridir. Bu yakla³mlarn farkl avantajlar ve dezavantajlar bulunmak- tadr. Birinci yöntemde veri sral oldu§u ve e³it bölündü§ü için, aranan bir üçlünün hangi uç birimde oldu§unu bulmak çok basittir. kinci yöntem, matematiksel bir yakla³m ile bir hesaba dayanarak veriyi parçalad§ için, veriyi bulmak isteyen birim, ayn hesab kullanarak arad§ verinin hangi uç birimde bulunmas gerekti§inin hesabn yapabilir. Üçüncü yöntemde di§erlerine benzer ³ekilde, verinin hangi uç birimde oldu§unun sorgusunun yaplabildi§i bir indeks sa§lad§ için basit bir yöntemdir. Ancak bu yöntem verinin çok büyük oldu§u durumlarda, indeks içinde arama süresi uzun olaca§ için çok tercih edilebilir de§ildir. Birinci ve ikinci yöntemler, kolay kullanm olan ve hzl yöntemler olmalarna ra§men, verinin çizge yapsnda olu³unu hiçbir ³ekilde göz önünde tutmamakta, bu yüzden de ili³kili çizge birimlerini içeren sorgulamalar srasnda, küme uç birimleri arasnda yo§un haberle³me ihtiyac ortaya çkarmaktadr. Dördüncü yöntem ise verinin e³it da§tlaca§ garantisini vermeyen, ancak, kom³uluk ve ba§lant says gibi durumlar göz önüne alarak veriyi parçalayan bir yakla³mdr. Bu yöntemin di§er yöntemlere oranla önemli bir avantaj bulunmaktadr. Çizge içinde, birbirine yakn olan ve aralarnda birçok ksa yol bulunan çizge dü§ümleri, parçalama i³lemi sonucunda, büyük ihtimalle ayn parça içinde olacaklardr. Bu sayede, bu veri üzerinde yaplan bir sorgu için, verilecek

cevabn çok büyük bir ksm tek uç birim tarafndan cevaplanacaktr. Bu durum, sorgular toplayan uç birimlerin, veri birle³tirme (Join) i³ yüklerini çok büyük oranda azaltacaktr. Buna kar³n, ilk üç yöntemde, bütün uç birimlerden cevap gelece§i beklenebilir. Veri miktarnn çok fazla oldu§u durumlarda, her bir uç birimde bulunan parça büyüklü§ü ve dolays ile dönecek olan cevap büyüklükleri fazla olaca§ndan, verinin birle³tirilmesi i³lemini yapan birimin i³ yükü artacaktr. Birden fazla, N-Triple RDF dosyas halinde bulunan üretilmi³ veri, büyük tek bir çizgeye kar³lk gelmektedir. Çünkü, farkl dosyalarda bulunan bu üçlüler arasnda ba§lantlar bulunmaktadr. Çizge verilerin parçalanmas konusu, akademik alanda çok yo§un olarak çal³lm³ bir problemdir. Bu çal³malar sonucunda elde edilen algoritmalar göz önüne alnarak geli³tirilmi³ ve çok yaygn olarak kullanlmakta olan baz çizge parçalayc yazlmlar bulunmaktadr. Bu tez çal³masnda en çok kullanlan parçalayclardan birisi olan METIS [27] kullanlm³tr.

METIS, verilen bir çizgeyi, kullancnn girdi§i sayda alt çizgeye bölen bir yazlmdr. Bölme i³lemi için, kullancnn tercih edebilece§i iki farkl algoritma sunmaktadr. Bunlar, çok seviyeli özyineli bölme (multilevel recursive bisec- tion) [31] ve çok seviyeli k-yol parçalama (multilevel k-way partitioning) [30] algoritmalardr. Bu tez çal³masnda, METIS tarafndan varsaylan algoritma olarak sunulan, çok seviyeli k-yol algoritmas kullanlm³tr. Çok seviyeli k-yol algoritmas , METIS içinde gerçekle³tirilen di§er algoritma olan, çok seviyeli özyineli bölme algoritmasndan daha hzl çal³maktadr[30]. Ancak, veri parçalama i³lemi, sorgu sürelerinin ölçülmesinden önce yaplan ayr bir i³lem oldu§u için, sorgu cevaplama sürelerine do§rudan etkisi bulunmamaktadr. “ekil 3.8, bir çizgenin, çok seviyeli k-yol algoritmas kullanlarak olu³turulan parçalarn göstermektedir. “ekilde dikkat edilmesi gereken nokta, ayr parçalar halinde gruplanan çizge dü§ümleri arasndaki ba§lant saylarnn minimize edilmi³ olmasdr. Bu algoritma verilen çizgeyi, kullanc tarafndan girilen sayda alt kümeye ayrrken, farkl alt küme elemanlar arasnda, mümkün olan en az ba§lantnn kalmasn sa§layacak ³ekilde çal³r. Bu sayede, alt parçalarn farkl küme uç birimleri üzerinde i³lenmesi ya da sorgulanmas srasnda, ihtiyaç

duyulabilecek olan, uç birimler aras haberle³me, en alt seviyeye indirgenmi³ olmaktadr. METIS d³nda kullanlabilecek di§er bir açk kaynak kodlu çizge parçalayc ise KaHIP [43] yazlmdr. METIS ile çok benzer yeteneklere sahip olan KaHIP daha çok algoritma gerçekle³tirimi içermektedir.

“ekil 3.8: METIS multilevel k-way algoritmas ile parçalanan çizge

METIS programnn, girdi olarak kabul etti§i, kendine özgü bir çizge no- tasyonu bulunmaktadr. Dolays ile, bu tez çal³mas srasnda kullanlan RDF dosyalar içerisinde bulunan, N-Triple yapsndaki çizgenin, METIS çizge yapsna çevrilmesi gerekmektedir. DRS Merkez Uygulamas kapsamnda, bu çevirimi iki yönlü olarak yapabilen, RDF parçalama ve da§tma bile³eni isimli uygulama geli³tirilmi³tir. METIS komut satr uygulamalarnn, bu bile³en içerisinden kullanlabilmesi amac ile gerekli kabuk betikleri yazlm³tr10. METIS

formatna çevrilen çizgenin, geçerli bir METIS çizgesi olup olmad§, METIS tarafndan sa§lanan "graphchk.exe" uygulamas aracl§ ile kontrol edilebilmek- tedir. METIS, parçalama i³lemi sonucunda, hangi çizge biriminin hangi parçaya atand§n gösteren bir düz metin dosyas üretmektedir. Bu dosya içinde, bulun- mas gereken parça numaras belirtilmi³ olan çizge bile³enleri, RDf üçlülerinde bulunan özne veya nesneden birisi olabilir. RDF parçalama ve da§tma bile³eni, RDF dosyalarnda bulunan üçlüleri özne de§erlerine göre, bu çkty kullanarak ayrmaktadr.

10METIS formatna çevrilen çizgenin, geçerli bir METIS çizgesi olup olmad§, METIS

“ekil 3.9: METIS Çizge Yaps

“ekil 3.9'da verilmi³ olan çizge için, METIS çizge dosyas içeri§i yan tarafnda verilmi³tir. Buradaki ilk satr çizgedeki toplam dü§üm says ve ba§lant saysn vermektedir. Di§er satrlarn hepsinde, satr numaras ile e³ olan dü§ümün kom³ularnn hangileri oldu§u verilmi³tir. Örne§in, 1. dü§ümün kom³ular 2,3 ve 5'dir.

LUBM ile üretilmi³ verinin parçalama süreci a³a§daki admlarla verilmi³tir.

1. Tasarlanan sistem, N-Triple RDF dosyalar ile çal³aca§ ve üretilmi³ veri içinde birden çok RDF dosyas bulunmasndan dolay, veriler tek RDF dosyas altnda toplanr. Bu i³lemi gerçekle³tirmek amac ile basit bir kabuk beti§i hazrlanm³tr.

2. Elde edilen RDF dosyas içinde bulunan çizge, RDF Parçalama ve Da§tma Bile³eni isimli uygulama ile, tek bir METIS çizgesine çevrilir. METIS çizge dosyasnda ili³kilere kar³lk gelen üçlü bile³enleri (predicate) bulunmaz. METIS çizge yaps, yönlü bir çizge yaps de§ildir. Ancak RDF çizgeleri yönlü çizgelerdir. Dolays ile RDF çizgelerinde, iki çizge dü§ümü arasnda, birden fazla ili³ki aracl§ ile ba§lant olabilir. Bu durum METIS'in çal³mas için bir problem te³kil etmemektedir. Çünkü METIS sadece kom³uluk yapsn göz önüne almaktadr. Bu yüzden, çevirme i³lemini yapan yazlm bile³eni, iki çizge dü§ümü arasnda birden fazla ba§lant olmas durumunda, bunlardan sadece birincisini kullanmaktadr.

3. Olu³turulan çizge dosyas, METIS tarafndan okunarak, kullancnn be- lirtti§i sayda parçaya, kullancnn belirtti§i algoritma(multilevel recursive

bisection [31] veya multilevel k-way partitioning [30]) ile bölünür. Bu tez çal³masnda multilevel k-way partitioning algoritmas kullanlm³tr. 4. Bölüm i³lemi sonucunda, hangi çizge dü§ümünün hangi parça içinde olmas

gerekti§ini gösteren tek bir çkt dosyas olu³turulur. Burada dikkat edilmesi gereken nokta, METIS'in üretmi³ oldu§u çkt dosyasnda, üçlülerin de§il, sadece çizge dü§ümlerinin hangi parçalarda olmas gerekti§inin bulunuyor olmasdr. Ancak, veri parçalama i³leminin asl hede, RDF dosyalarndaki üçlülerin, alt çizgelere nasl ayrlaca§ sorusuna cevap vermektir. Dolays ile, bir üçlüye ait özne ve nesne, METIS tarafndan ayr alt çizgelere atanm³ olabilir. Bu durumda, çkt dosyas içindeki çizge dü§ümü ile ilgili üçlünün, RDF dosyalarnn parçalanmas i³lemi srasnda, hangi parçaya atanaca§ belirsiz kalmaktadr. Bu durumu çözmek için izlenecek yol, her üçlünün, o üçlüye ait öznenin, METIS çkts içinde atand§ alt çizgeye atanmasdr. Di§er alternatif olan, üçlünün, nesnenin atand§ RDF parçasna atanmas durumu e³de§er simetrik çözümdür. Burada, tercih olarak özne seçilmi³tir. 5. Madde 4'de anlatlan sebepten ötürü, veri kümesi içindeki her üçlü, tek tek okunur. Okunan üçlünün özne bile³eni tespit edilir. Belirlenen özne de§eri, METIS çkts içinde aranarak, hangi numaral alt çizgeye atand§ bulunur. Ele alnm³ olan üçlü, numaras tespit edilen çizge parçasn içeren RDF dosyasna kopyalanr.

6. ³lem tüm üçlüler için tekrarland§nda, ba³langçtaki RDF dosyalar, istenen parça saysnda (bu say kümedeki uç birim bilgisayar saysna e³ittir) yeni RDF dosyalar olu³turulmu³ olur.

“ekil 3.10'de veri parçalama süreci gösterilmi³tir. “ekilde gösterilen DRS NTMetis Çevirici birimi, DRS merkez uygulamasnn, RDF parçalama ve da§tma bile³eni içinde yer almaktadr.

“ekil 3.10: METIS le Çizge Parçalama 3.2.2.2 Verinin Da§tlmas

Verilerin Parçalanmas bölümünde açklanan süreç sonucunda, kümeleme i³lemi ile parçalanm³ üçlülerden olu³an RDF dosyalar elde edilmi³tir. Bu dosyalar, küme uç birimleri üzerinde bulunan ve Jena Fuseki aracl§ ile eri³ilebilen, Jena TDB üçlü veritabanlarna gönderilir. Bu amaçla, ilk olarak dosyalar, DRS Merkez uygulamas altnda çal³an betikler kullanlarak, tüm uç birimler tarafndan eri³ilebilen bir NFS (Network File System) dizinine kaydedilir. Uç birim üzerinde bulunan ve uzaktan çal³trlabilen di§er bir beti§in, DRS Merkez Uygulamas tarafndan yürütülmesi ile, payla³ml dosya sisteminden okunan RDF dosyasnn içeri§i, Jena TDB üçlü veritabanna kaydedilir. Verinin Jena TDB'ye yüklenmesi i³lemi için, Jena TDB tarafndan sa§lanan komut satr uygulamalar kullanlr. Parçalanm³ RDF verilerinin hangi bilgisayarlarda depoland§nn, yani hangi IP adresinde verinin hangi parçasnn durdu§unun bir önemi bulunmamaktadr. Tasarlanan sistem bu açdan tam olarak simetrik bir yapya sahiptir.

DRS merkez uygulamas kapsamnda, verilerin uç birimlerde bulunan Jena TDB veritabanlarndan temizlenmesi ve yeniden yüklenmesi için gereken ayr kabuk betikleri de yazlm³tr. Bu i³lemler, veri yükleme sürecinin bir parças

olduklar için, sorgu cevaplama sürelerinin hesabna bir etkisi bulunmamaktadr. “ekil 3.11'da veri yükleme süreci gösterilmi³tir.

“ekil 3.11: Verinin uç birimlere da§tlmas