• Sonuç bulunamadı

3.2 Sistemin Çal³mas

3.2.3 RDF Verilerinin Da§tk Ortamda Sorgulanmas

Bu bölümde, çizge yapsndaki verilerin da§tk ortamda sorgulanmasn zor- la³tran durumlara de§inilecek ve buna kar³ tez çal³masnda uygulanm³ olan yakla³mn detaylar anlatlacaktr.

Verilerin METIS ile çok seviyeli k-yol algoritmas ile parçalara ayrlarak, küme uç birimleri üzerinde çal³an ve Jena Fuseki aracl§ ile eri³ilebilen, Jena TDB üçlü veritabanlar üzerinde depolanmas sonrasnda, her uç birim, kendi depolad§ veri ile ilgili sorgulara cevap verebilir duruma gelmi³tir. Ancak, bu noktadan itibaren kullanc tarafndan girilebilecek herhangi bir sorgunun tek bir noktadan cevaplanmas mümkün olmad§ için, cevaplarn olu³turulmas amac ile fazladan i³lemler yaplmas gerekmektedir.

3.2.3.1 RDF Verinin Da§tk Ortamda Saklanmasnn Sorgulamaya Getirdi§i Zorluk ve Çözüm Yakla³m

Çizge veriler, temelinde birçok çizge dü§ümü ve onlar birle³tiren kenarlar- dan olu³maktadr. Bu tür bir verinin, birçok farkl yap içinde depolanmas mümkündür. Ancak, tez çal³masnda kullanlan N-Triple yaps ile, daha önce açkland§ gibi, her biri bir satrda bulunan üçlüler ³eklinde ifade edilirler. Bir

SPARQL sorgusunun cevaplanmas i³lemi ise, bu çizge üzerinde bulunan bir yol kalbn sa§layan dü§ümlerin bulunmasdr. Burada bahsedilen yol, esasnda, üzerinde sorgu çal³trlan çizgeye ait bir alt çizgedir. Örne§in a³a§daki SPARQL sorgusu, "GraduateCourse0" türündeki dersleri ve bu dersleri alan ö§rencilerin listesini sorgulamaktadr.

SPARQL 3.1: SPARQL Sorgusu

1 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

2 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 3 SELECT ?X ?Y 4 WHERE 5 { 6 ?X rdf:type ub:GraduateStudent . 7 ?Y rdf:type <http://www.Department0.University0.edu/GraduateCourse0> . 8 ?X ub:takesCourse ?Y 9 }

Bu sorgu, çizge içinde “ekil 3.12'de gösterilen yolu yada alt çizgeyi sa§layan tüm dü§üm de§erlerini istemektedir. Dolays ile bu sorguya verilen cevaplar, belirtilen yol kalbn, ayn anda birlikte sa§layan tüm X ve Y de§i³kenleridir. Do§al olarak, geri alnan cevap bo³ küme olmad§ sürece, e³it sayda X ve Y de§eri içerecektir. Ancak SPARQL 3.1 sorgusu içinde geçen "?X ub:takesCourse ?Y" ifadesi sorgudan çkarlr ise, cevap olarak dönen X ve Y de§erlerinin says farkl olabilir.

“ekil 3.12: SPARQL sorgusu tarafndan sa§lanmas gereken alt çizge

Sorgu içinde istenen her bir üçlü, çizge üzerinde sa§lanmas gereken bir üçlüye kar³lk gelmektedir. Da§tk sorgulama için en önemli problem, çizgeye ait her bir üçlünün farkl bir uç birimde depolanm³ olma ihtimalinin olmasdr. Örne§in,

SPARQL 3.1 sorgusu ile tarif edilen alt çizge veya yol, uç birimlere “ekil 3.13'deki gibi da§lm³ olabilir.

“ekil 3.13: SPARQL sorgusu tarafndan tarif edilen alt çizgeye ait parçalarn olas da§lmlarndan bir tanesi

Ancak bu durum, kullanc tarafndan verilen sorgunun, ilk hali ile cevaplanmasn imkansz hale getirmektedir. Bu sebeple, kullancnn girdi§i sorgunun, uç birimlere gönderilmeden önce i³lenerek, verinin yeni haline uygun bir ³ekilde yeniden yaplandrlmas gerekmektedir. Do§al olarak, verinin da§tk halde bulunuyor olmasndan dolay ayn sorgu ile sorgulanamyor olmasna ra§men, yeni olu³turulacak sorgularn da sonuç olarak orijinal sorgu ile ayn sonuçlar veriyor olmas gerekmektedir. Veri parçalama i³lemi srasnda herhangi bir indeksleme i³lemi yaplmad§ için, verinin hangi parçasnn, hangi uç birimde depoland§na dair bir bilgi bulunmamaktadr. Dolays ile sorgulama için uygulanacak yöntem tüm uç birimler üzerinde çal³trlabilecek ³ekilde simetrik olmaldr. Örne§in “ekil 3.13'de verilen biçimde da§tlm³ bir yapda, ayr ayr orijinal sorgunun çal³trlmas, üç küme uç biriminden de bo³ cevap kümelerinin alnmasna yol açacaktr. Ancak, orijinal sorgunun SPARQL 3.2 içinde gösterilen sorgular halinde bölünmesi ve sras ile küme uç birimi 1, küme uç birimi 2 ve küme uç birimi 3'e sorulmas durumunda, elde edilen de§erler, orijinal sorgunun verece§i cevab içeren daha büyük bir veri kümesi olu³turacaktr. Örne§in, S2 sorgusu için küme uç birimi 2'den elde edilen X de§erlerinin ancak bir ksm, S1 sorgusunun küme uç birimi 1'de çal³trlmas ile elde edilecek olan X de§erlerine e³it olacaktr. Benzer ³ekilde S2 sorgusunun küme uç birimi 2 üzerinde çal³trlmas ile elde edilecek olan Y de§erlerinin ancak bir ksm, S3 sorgusunun küme uç birimi 3 üzerinde çal³trlmas ile elde edilecek olan Y de§erlerine e³it olacaktr. Dolays ile sadece, sorgunun veriye uygun biçimde parçalanmas yeterli olmamakta, elde edilen sonuçlarn do§ru biçimde birle³tirilmesi de gerekmektedir. Do§ru sonuçlar

elde etmek için bu üç ayr küme uç biriminden elde edilen X ve Y de§erlerinin kendi aralarnda kesi³im kümesi alnmaldr. Bu ³ekilde üç sorguyu da sa§layan X ve Y de§erleri bulunmu³ olacaktr.

SPARQL 3.2: SPARQL 3.1 sorgusundan üretilen SELECT sorgular

1 S1

2 --- 3 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

4 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 5 SELECT ?X 6 WHERE 7 { 8 ?X rdf:type ub:GraduateStudent . 9 } 10 11 S2 12 --- 13 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

14 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 15 SELECT ?X ?Y 16 WHERE 17 { 18 ?X ub:takesCourse ?Y 19 } 20 21 22 S3 23 --- 24 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

25 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 26 SELECT ?Y

27 WHERE 28 {

29 ?Y rdf:type <http://www.Department0.University0.edu/GraduateCourse0> . 30 }

3.2.3.2 SPARQL Sorgularnn Parçalanmas

Verinin da§tk bir ortamda depolanmas dolays ile olu³an sorgulama problemi önceki bölümde açklanm³tr. Bahsedilen problemin çözümü, sorgularn daha küçük sorgulara dönü³türülerek, cevaplarn ayr noktalardan elde edilmesi ve daha sonra bu cevaplarn birle³tirilerek, kullancnn sorgusuna cevap olu³turulmasdr. Sorgularn parçalanmas, verilerin parçalanmasnn do§al bir sonucudur. Veri parçalama i³lemi srasnda, farkl RDF dosyalar arasnda da§tlan, daha küçük parçalara ayrlmayan en küçük veri yaps, yani atomik seviyedeki veri yaps üçlülerdir. Sorgular içinde sa§lanmas gereken ve üçlüler ³eklinde ifade edilen yollarn her biri, veri içindeki bu üçlülere kar³lk geldi§i için, sorgularnda bulunan üçlüler, yani sa§lanmas gereken yollar baz alnacak ³ekilde parçalama yaplmaldr.

Sorgu parçalama i³lemi, DRS merkez uygulamas, sorgu parçalama bile³eni tarafndan yaplmaktadr. Bu bile³en, kullanc tarafndan verilen bir RDF sorgusunun parçalarn düz metin formatnda geri dönen, açk kaynak kodlu, Rasqal Roqet komut satr uygulamasn kullanm³tr11. Dönen metin içinden

Triple alanlar de§i³kenlere atanmak sureti ile uygulama içinde kullanlm³tr. DRS Merkez uygulamas, elde edilen üçlüleri kullanarak farkl amaçlara yönelik sorgular olu³turabilmekte ve bu sorgular uç birimler üzerinde çal³trlmak üzere, bir y§t veri yaps içinde, küme uç birimlerine göndermektedir. Ayr sorgu türlerine ihtiyaç duyulmasnn sebebi, baz sorgularn sadece çizge dü§üm de§erleri almaya yönelik olmasna kar³n, di§erlerinin sadece verinin ilgili uç birimde var olup olmad§nn tespiti için kullanlacak olmasdr. Yeni sorgularn olu³turulmas ve çal³trlmas Jena uygulama geli³tirme çats kullanlarak, DRS Merkez Uygulamas içinde gerçekle³tirilmi³tir. Rasqal Roqet komut satr uygulamas kullanlarak SPARQL 3.1'in i³lenmesi sonucunda SPARQL 3.3 içinde gösterilen çkt elde edilmi³tir. Bu çkt sorguya ait tüm alanlar ayr ayr göstermektedir.

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

1 query verb: SELECT

2 query bound variables (2): X, Y 3 query Basic graph pattern[0] 4 {

5 triples {

6 triple #0 { triple(variable(X), rdf:type,

ub:GraduateStudent) }

7 triple #1 { triple(variable(Y), rdf:type,

<http://www.Department0.University0.edu/GraduateCourse0>) } 8 triple #2 { triple(variable(X),ub:takesCourse, variable(Y) ) } 9 } 10 }

Sorgu parçalama i³leminin ilk safhasnda, yeni sorgularda kullanlacak olan üçlüler orijinal sorgudan elde edilir. Bunlar Rasqal Roqet çktsnda "triples" ile gösterilen alanda numaralanm³ olarak bulunan "triple" de§erleridir. Elde edilen üçlülerin her biri, yeni olu³turulacak sorgulardan sadece birinde kullanlacak ³ekilde, ihtiyaca uygun soru yüklemine göre 12, yeni sorgular elde edilir. Örne§in

önceki bölümde verilen SPARQL 3.1 sorgusunun ASK sorgularna çevrilmesi durumunda SPARQL 3.4 içinde verilen alt sorgular elde edilir. Burada kullanlan, DRS merkez uygulamas, alt sorgu olu³turma bile³eni, kullanlan üçlü içinde geçen de§i³ken de§erine uygun olarak sorgu de§i³kenleri üretmektedir. Dolays ile baz sorgular sadece X ve Y de§i³kenlerini sorgulayacak ³ekilde üretilmi³ken, bazlar iki de§i³keni de sorgulayacak ³ekilde olu³turulmu³tur.

SPARQL 3.4: SPARQL sorgusundan üretilen ASK sorgular

1

2 ASKQ1

3 --- 4 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

5 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 6 ASK ?X 7 WHERE 8 { 9 ?X rdf:type ub:GraduateStudent . 10 } 11 12 ASKQ2 13 --- 14 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

15 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 16 ASK ?X ?Y 17 WHERE 18 { 19 ?X ub:takesCourse ?Y 20 } 21 22 ASK Q3 23 --- 24 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

25 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 26 ASK ?Y

27 WHERE 28 {

29 ?Y rdf:type <http://www.Department0.University0.edu/GraduateCourse0> . 30 }

ASK sorgularnn olu³turulmas ile ayn yöntem kullanlarak, uç birimler üzerinde çal³trlacak olan asl alt SELECT sorgular da hazrlanabilmektedir. ³lemdeki tek fark, sorgu yüklemi parametresinin ASK yerine SELECT olarak girilmi³ olmasdr. Olu³an SELECT sorgular SPARQL 3.2'de gösterilmi³tir.

SELECT sorgular sadece cevap verebilecek uç birimlere bir y§t içinde gön- derilmektedirler.

3.2.3.3 Alt SPARQL Sorgularnn Yük De§erlerinin Hesaplanmas

Bu tez çal³masnda, sorgularn yük de§eri, sorgunun cevaplanmas durumunda olu³an cevap büyüklü§ünü tanmlamak için kullanlm³tr. Kullanlan yöntem olu³acak olan trak yo§unlu§unu göreceli bir ³ekilde hesaplayacaktr. Bir sorguya verilen cevap, e§er çok fazla sayda eleman içeren bir sonuç ise, bu cevabn bilgisayarlar arasnda aktarlmas o kadar çok zaman alacaktr. Dolays ile, orijinal sorgunun parçalanmasndan sonra olu³turulan alt sorgularn, da§tk olarak sorgulanmas öncesinde, hangi alt sorgunun a§da ne kadar trak yo§unlu§u olu³turaca§nn tespit edilmesi, sorgularn uygun srada çal³trlmas ve a§ kullanmn azaltlmas açsndan önemlidir.

Alt sorgularn yük de§erlerinin hesaplanmas srasnda a³a§daki admlar izlenir.

1. Alt sorgu üçlüsü bile³enlerine (özne, yüklem ve nesne) ayrlr. 2. Bile³enlerden de§i³ken olmayanlar seçilir.

3. De§i³ken olmayan bile³enlerin, RDF dosyasnda kaç defa kullanld§ tespit etmek için, Hadoop tarafndan olu³turulmu³ olan indeks kullanlr. Aranan bile³en indeksten bulunarak kar³l§ olan de§er okunur.

4. De§i³ken olmayan bile³enlerden, RDF dosyasnda en az sayda bulunan, de§i³ken bile³en için bir üst snr olaca§ndan, de§i³kenin, dolays ile sorgunun yük de§eri belirlenmi³ olur.

Örnek olarak, yukarda verilen admlarn, SPARQL 3.1 sorgusuna ait alt sorgulardan birisi olan SPARQL 3.5 sorgusu için uygulan³ a³a§da maddeler halinde verilmi³tir.

1

2 PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

3 PREFIX ub: <http://www.lehigh.edu/~zhp2/2004/0401/univ-bench.owl#> 4 SELECT ?X

5 WHERE 6 {

7 ?X rdf:type ub:GraduateStudent . 8 }

1. Alt sorgu üçlüsünün bile³enlerine (özne, yüklem ve nesne) ayrlmas ile "?X", "rdf:type" ve "ub:GraduateStudent" bile³enleri elde edilir.

2. Elde edilen üç bile³enden "?X" bir de§i³ken oldu§u için, ele alnmaz. De§i³ken ad olmadklar için "rdf:type" ve "ub:GraduateStudent" bile³en- leri seçilir.

3. De§i³ken olmayan bu bile³enler, Hadoop tarafndan olu³turulan indeks dosyas içinde arandklar zaman, "rdf:type" için 20674 ve "ub:GraduateStudent" için 1874 de§erlerini vermektedir.

4. Dolays ile örnek olarak verilen üçlüyü sa§layan ?X de§i³ken says en fazla 1874 olabilir. En fazla ibaresinin kullanlmasnn sebebi, RDF dosyasnda geçen tüm "ub:GraduateStudent" ifadeleri, bu üçlüyü sa§layan ?X de§erleri ile birlikte kullanlm³ olmayabilirler. RDF dosyalar içinde farkl üçlüler içinde "ub:GraduateStudent" kullanlm³ olabilir. Ancak e§er tüm "ub:GraduateStudent" bile³enleri bu sorgu içinde belirtilen üçlü içinde geçiyor olsayd, "?X" bile³enin de kesin olarak 1874 defa kullanlm³ olmas gerekti§i söylenebilirdi. Dolays ile burada, bu sorgudan dönmesi teorik olarak mümkün olan en büyük say tespit edilmektedir, ancak gerçek de§er says 1874'den küçük olabilir.

Bu i³lem ba³lkta da belirtildi§i üzere sadece alt sorgularn yüklerini hesaplamak için kullanlmaktadr. Bu sebepten ötürü, yük hesabna, birden fazla üçlüsü olan bir alt sorgunun hiçbir zaman girmeyece§i öngörülmü³tür. Bu i³lem sonucunda

elde edilen 1874 de§eri, sorgunun bir küme uç birimine yaplmas durumunda alnacak cevap içinde bulunabilecek "?X" de§er saysnn alabilece§i en yüksek de§eri gösterdi§i için, farkl sorgularn birbirleri ile kar³la³trlmas ile, a§da olu³turacaklar trak yo§unluklar göreceli olarak kyaslanabilmektedir. Bu kar³la³trma, sorgularn hangilerinin di§erlerinden önce yaplmas gerekti§ini belirlemede önemlidir. Çünkü, sorgularn da§tk ortamda yürütülme sürecinin anlatld§, 3.2.3.5 bölümünde bahsedilece§i gibi, sorgu y§t içinde en sonda bulunan sorgularn cevaplar, küme uç birimleri arasnda en fazla sayda iletilecek olan paketlerdir. Dolays ile bu paketlerin boyutlarnn küçük olmas, genel olarak performansa art yönde katk sa§layacaktr.

3.2.3.4 Da§tk Sistem Alt Sorgu - IP Matrisinin Olu³turulmas

Sistemde bulunan küme uç birimlerin, hangi alt sorgulara cevap verebilece§inin bilinmesi, sorgunun, cevap veremeyecek uç birimlere gereksiz bir ³ekilde gön- derilmesini engelleyebilecektir. Bu ³ekilde, sorgularn gereksiz a§ yo§unlu§una sebep olmas ve cevaplayamayacaklar sorgular alan küme uç birimlerinin, yerel veritabanlarnda gereksiz aramalar yapmas engellenebilecektir. Bunlar performans art³ sa§layabilecek önlemlerdir. Küme uç birimlerinin hangi sorgulara cevap verebilece§inin tespiti için, orijinal kullanc sorgusunda bulunan üçlü yollarnn, küme uç birimlerine, ayr ayr sorulmas yeterlidir. Bu amaçla, kullanc sorgusundaki her bir üçlü için, DRS merkez uygulamasna ait alt sorgu olu³turma bile³eni tarafndan, ayr bir ASK sorgusu hazrlanr ve bu sorgu tüm küme uç birimlerinde çal³trlr. E§er, küme uç birimi, sorgulanan üçlüyü içeriyorsa, ASK sorgusuna True, içermiyorsa False dönecektir. Üçlünün küme uç birimi üzerinde aranmas srasnda, üçlüyü sa§layan de§erlerden en az bir tanesinin bulunmas durumunda, arama i³lemi sonlandrlr. Bu sayede gereksiz sistem yo§unlu§una neden olunmaz. Bu bilgi kullanlarak a³a§daki gibi bir matris olu³turulabilir. Bu matris içinde, N ile ba³layan ifadeler (N1, N2, vb.) küme uç birimini, "ASKQ" ile ba³layan ifadeler ise (ASKQ1, ASKQ2, vb.) ASK sorgularn göstermektedir. De§er olarak "1", ilgili birimin sorguyu cevaplayabilece§ini, "0" ise cevaplayamayaca§ gösterir.

Çizelge 3.3: Alt Sorgu - Uç Birim Matrisi

Alt Sorgu/Küme Uç Birimi N1 N2 N3 N4 N5

ASKQ1 1 0 1 0 1

ASKQ2 0 1 0 0 0

ASKQ3 0 1 0 1 0

Bu matris, alt sorgularn y§t olarak da§tm srasnda, ilgili olmayan küme uç birimlerine y§tn gönderilmesini engellemek için kullanld§ gibi, bir alt sorgu için tüm uç birim de§erlerinin sfr olmas durumunda, orijinal sorgu- nun tamamnn cevaplanamayaca§nn tespit edilmesinde de kullanlmaktadr. Örne§in, ASKQ1 sorgusu için N1-N5 arasndaki tüm de§erlerin sfr olmas durumunda, sistemin ASKQ1 alt sorgusuna cevap veremeyece§i anlam çkarla- bilmektedir. ASKQ1, kullancnn girmi³ oldu§u sorgudaki üçlü yollarndan bir tanesine denk geldi§i için, tüm de§erlerin sfr olmas, tüm RDF verisi göze önüne alnd§nda, bu üçlüyü sa§layan bir veri bulunmad§ anlamna gelir. Bu durumda, di§er sorgularn yaplmasna gerek kalmaz, çünkü birle³tirme srasnda kullanlacak olan kümelerden bir tanesi bo³ küme olarak tespit edilmi³tir.

3.2.3.5 Sorgularn Da§tk Ortamda Yürütülme Süreçleri

Bu ksmda, kullanc tarafndan verilen bir sorgunun, tasarlanan sistem içerisinde geçti§i süreçler, bir ak³ listesi olarak verilecek ve baz admlarn detaylar alt ba³lklar altnda açklanacaktr. Yürütülen admlar, SPARQL 3.1 örne§indeki sorgu kullanlarak açklanacaktr.

1. Kullanc, DRS merkez uygulamasna ait olan komut satr bile³enini kullanarak, çal³trmak istedi§i sorgu dosyasn girer (Ör. SPARQL 3.1). 2. DRS merkez uygulamas, sorgu parçalama bile³eni aracl§ ile, Rasqal

Roqet komut satr uygulamasn kullanarak sorguyu, bile³enlerine ayrr (Bkz. SPARQL Sorgularnn Parçalanmas bölümü, SPARQL 3.3).

3. SPARQL 3.3 içinde gösterilen her bir üçlü için, DRS merkez uygulamas alt sorgu olu³turma bile³eni tarafndan bir ASK sorgusu olu³turulur (Bkz.

SPARQL Sorgularnn Parçalanmas bölümü, SPARQL 3.4).

4. DRS Merkez Uygulamas, kongürasyon dosyas içinde tanml olan ve küme uç birimlerine ait IP adreslerini okur.

5. Olu³turulan tüm ASK sorgular, DRS merkez uygulamas, Alt Sorgu- IP matrisi olu³turma bile³eni tarafndan, tüm IP adresleri üzerinde çal³trlr ve daha sonraki admlarda kullanlacak olan Alt Sorgu-IP matrisini olu³- turur. Bu sayede hangi IP'nin, hangi sorgulara cevap verebilece§i tespit edilmi³ olur. Örnek bir alt sorgu-IP matrisi Çizelge 3.3 içinde gös- terilmi³tir.(Bkz. Da§tk Sistem Alt Sorgu-IP Matrisinin Olu³turulmas bölümü).

6. Madde 2'de olu³turulan üçlüler, DRS merkez uygulamas, alt sorgu olu³- turma bile³eni tarafndan tekrar kullanlarak, her bir üçlü için bir SELECT sorgusu olacak ³ekilde, alt sorgular olu³turulur. Olu³turulan SELECT sorgular SPARQL 3.2 içinde verilmi³tir.

7. Madde 6'de olu³turulan SELECT sorgular için, DRS merkez uygulamas, alt sorgu yük hesaplama bile³eni tarafndan yük hesab yaplr (Bkz. Alt SPARQL Sorgularnn Yük De§erlerinin Hesaplanmas Bölümü). Bu adm sonunda hangi alt sorgunun, en fazla ne kadar a§ yo§unlu§u olu³turabilece§i belirlenmi³ olur. Farkl alt sorgular için belirlenen bu de§erler kullanlarak, alt sorgular yük de§erlerine göre azalan sraya dizilir. Burada, örnek için kullanlan SPARQL 3.1'de verilen sorguya ait olan ve SPARQL 3.2 içinde verilen alt sorgularn yük sralamas [S2, S1, S3] ³eklindedir. Yani yük de§eri en yüksek olan alt sorgu S2 ve en dü³ük olan S3'dür. Bu sralama sorgu y§t olu³turulurken kullanlacak olan sralamadr.

8. Madde-7 içinde olu³turulan alt sorgu yük sralamasndan en yüksek de§ere sahip olan alt sorgu listeden alnr ve bu sorguyu cevaplayabilen küme uç birim IP de§erleri, Çizelge-3.3 içinde verilen alt sorgu-IP matrisinden belirlenir. Bu madde ve madde-9, tüm alt sorgular için tekrarlanacaktr. Dolays ile, ele alnan sorgu ve IP'ler, ilk turda S3 ve bu sorguyu cevaplayabilen küme uç birimleri IP2 ve IP4 iken, ikinci turda S1 sorgusu

ve IP2, üçüncü turda ise S2 sorgusu ve bu sorguyu cevaplayabilen IP1, IP3 ve IP5 küme uç birimleri olacaktr.

9. Her turda, ele alnan sorgu ve bu sorguyu cevaplayabilen IP'ler, sorgu- IP ikilileri halinde sorgu y§tna eklenir. Dolays ile ilk turun sonunda y§ta, S3-IP2 ve S3-IP4 de§erleri eklenecek ve y§t [S3-IP4, S3-IP2] halini alacaktr. kinci turda y§ta S1-IP1, S1-IP3 ve S1-IP5 de§erleri eklenecek ve y§t [S1-IP5, S1-IP3, S1-IP1, S3-IP4, S3-IP2] halini alacaktr. Son turda S2-IP2 de§eri eklenecek ve y§t son hali olan [S2-IP2, S1-IP5, S1-IP3, S1- IP1, S3-IP4, S3-IP2] biçimini alacaktr. Bu maddenin gerçekle³tirilmesi ile sorgular ve çal³trlacaklar IP'leri içeren y§t hazrlanm³ olur.

10. Madde-9 içinde hazrlanm³ olan sorgu y§t, küme uç birimleri arasnda devam edecek olan delegasyon ve cevaplama sürecine, DRS merkez uygu- lamasndan ba³lar. DRS merkez uygulamas, sorgu yönetim bile³eni, y§t içinde en üstte bulunan ve ayn sorgu ile olu³turulmu³ y§t elemanlarn tespit eder. Bu de§er, verilen örnek için sadece S2-IP2'dir. Bu noktada birden fazla de§er bulunma ihtimali vardr. Ancak bu örnekte, alt sorgu- IP matrisinde S2 sorgusu için sadece bir tek IP2 bulundu§undan, bu admda y§t içinden sadece S2-IP2 eleman tespit edilebilmi³tir. Elde edilen y§t elemannn, IP de§eri (IP2) bulunduktan sonra ilk delegasyon i³lemi yaplarak, y§t IP2 küme uç birimine gönderilir. Bu noktada sorgu yürütme i³leminin devam, IP2 üzerinde çal³an, DRS uç birim uygulamasnn sorgu yürütme bile³enine devredilmi³ olur. DRS merkez uygulamas sonuçlarn dönmesine kadar geçen süre içerisinde ba³ka faaliyet yürütmeyecektir. 11. Sorgu y§tn, DRS uç birim uygulamalarna ait sorgu yönetim bile³enleri

aracl§ ile alan her bir uç birim( buradaki örnekte kendisine sorgu delege