Professional Documents
Culture Documents
Mentori: Studenti:
Dr. techn. Blerim REXHA Valon RAÇA
Fjalët kyçe: Google makina kërkuese, Google klaster arkitektura, PageRank, ueb semantike
________________________________________________________________________
ii
Abstract
Keywords: Google search engine, Google cluster architecture, PageRank, web semantics
________________________________________________________________________
iii
FALËNDERIME
Dëshiroj të falënderoj në rend të parë familjen time, babain Jetonin, nënën Fatmiren, motrat
Vlorën dhe Azrën, për ndihmën dhe përkrahjen e pakursyer që më dhanë gjatë studimeve.
Falënderim të veçanta kam edhe për familjen e gjerë, të cilët me interesimin e tyre, më dhanë
shtytje të fortë, që t’i përfundoj studimet me sukses.
Dëshiroj t’i falënderoj, gjithashtu shokët e shoqet për përkrahjen që më kanë dhënë, dhe për
kujtimet e mira nga koha e studimeve.
Një falënderim të posaçëm kam për profesorin Dr. techn. Blerim Rexha, në radhë të parë për
durimin e tij, mbështetjen dhe ndihmën e pakursyer që më ka dhënë si gjatë studimeve, ashtu
edhe në punimin e tezës së diplomës.
________________________________________________________________________
iv
PËRMBAJTJA
1 HYRJA DHE MOTIVIMI.................................................................................1
1.1 Hyrje................................................................................................................................................ 1
1.2 Motivimi.......................................................................................................................................... 2
5 REZULTATET E KËRKIMIT........................................................................25
5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve preliminare të kërkimit ............................ 25
6 SI TË MASHTROHET GOOGLE?...............................................................35
6.1 Teknikat për manipulimin e rezultateve të kërkimit të Google makinës kërkuese ................ 35
________________________________________________________________________
v
8 PËRFUNDIMI ..............................................................................................41
SHTESAT ...........................................................................................................42
Lista e figurave ........................................................................................................................................... 42
REFERENCAT ...................................................................................................44
________________________________________________________________________
vi
1. Hyrja dhe motivimi 1.1 Hyrje
Kapitulli 1
1.1 Hyrje
Informacioni dhe shpejtësia e arritjes deri te ai, janë bërë esenca e zgjidhjeve, thelbi i çdo
ekonomie kapitaliste, baza e çdo kërkimi shkencor ose thjeshtë thënë janë bërë pjesë e
përditshmërisë dhe e suksesit të shoqërisë njerëzore.
Me rreth 11.2 miliardë [1] ueb faqe në internet, vështirë mund të thuhet se do të gjenim atë që
dëshirojmë pa na ndihmuar ndokush, sikur që nuk do të mund të hulumtonim për një libër të
caktuar në një bibliotekë që ka një fond prej miliarda ekzemplarësh, pa ndihmën e një
profesionisti që punon aty. Aq më tepër, nëse ato libra nuk janë të sistemuara në mënyrë logjike
sikur që është rasti me ueb faqet në internet dhe, të mos përmendim faktin që dyfishimi i numrit
të ueb faqeve është çështje vitesh e jo dekadash. Jo shumë vite prapa, ky dyfishim ishte çështje
muajsh [2, 3]. Sigurisht që epilogu i çdo kërkimi në ueb do të ishte një bredhje poshtë-lartë, me
gjasa jashtëzakonisht të vogla për të arritur deri te ndonjë rezultat i kënaqshëm.
Në mënyrë të natyrshme lind nevoja për një ‘qendër globale të informimit’ lidhur me atë se çfarë
gjendet në këtë rezervuar gjigant të informatave. Dhe kjo nuk përfundon këtu. Sfidë e vërtetë
është përcaktimi i objektivave që do t’i ketë kjo ‘qendër informuese’, duke filluar nga ato të
kërkimit dhe mbledhjes së materialit e deri te paraqitja e kuptueshme e rezultateve dhe shpejtësia
e kthimit të rezultatit. Google dhe shumë makina kërkuese i qëndrojnë përballë këtyre
problemeve me fanatizëm i qëndrojnë besnik detyrimeve të tyre si qendra informuese dhe
drejtuese për popullatën që ka qasje në internet e që po rritet çdo ditë e më shumë.
Kërkimi i materialeve duke u bazuar në strukturën e lidhjeve në mes ueb faqeve paraqitet si mjaft
sfidues. Nga kjo edhe rrjedh nevoja për dizajnimin e robotëve softuerik, për të kursyer njerëzit
dhe natyrisht edhe për efikasitet më të lartë (nuk lodhen, nuk kanë nevojë të ushqehen, nuk
vonohen në punë, nuk hidhërohen dhe nuk japin dorëheqje në momente kyçe).
Për të gjetur, gjegjësisht për të kërkuar diçka të veçantë, njerëzit janë të prirur të japin të
ashtuquajturat ‘fjalë kyçe’ (nga ang. keywords) që pamohueshmërisht lidhen në një mënyrë a
tjetrën me atë që kërkojmë. Mirëpo, shumë makina kërkuese rrallëherë i paraqesin ‘rezultatet e
pritura’ në rend të parë. Dhe kush do të kishte durim që të shfletonte mijëra faqe për të arritur deri
te rezultati i dëshiruar? – Jo së paku një qenie njerëzore. Kërkimet shkencore [4] kanë bërë të
ditur se njerëzit janë të prirur të shikojnë vetëm 10-20 rezultatet e para, para se të mërziten.
Fatmirësisht, një qasje më të mirë në këtë drejtim e ofron Google makina kërkuese.
________________________________________________________________________
1
1. Hyrja dhe motivimi 1.1 Hyrje
1.2 Motivimi
Nevoja për drejtimin e shfrytëzuesve drejt lokacioneve në ueb, që përmbajnë informacionet që
shfrytëzuesit i kërkojnë, imponoi paraqitjen dhe përsosjen e makinave kërkuese në internet.
Algoritmet që tanimë përdoren nga këto makina kërkuese, për të mbledhur, sistemuar të dhënat si
dhe për të renditur rezultatet, përbën një fushë mjaft interesante për studim, dhe mjaft tërheqëse
për eksperimentim.
Arsyeja kryesore për të marr në studim këtë teknologji të uebit, rrodhi si rezultatet i rritjes enorme
që po pëson uebi sot, dhe nevojës për sistemim të informatave të paraqitura në ueb.
Vend të veçantë në këtë punim, zë studimi i formave dhe modaliteteve, të cilat përdoren si për
sistemimin e të dhënave të mbledhura në ueb dhe indeksimin e këtyre të dhënave, ashtu edhe për
paraqitjen e rezultateve të kërkimit, të cilat përzgjidhen me kujdes, përmes algoritmit që ka
zhvilluar Google.
________________________________________________________________________
2
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese
Kapitulli 2
2 Paraqitja e Google në ueb
________________________________________________________________________
3
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese
Stanfordit
Makina e parë kërkuese që paraqitet në Internet është Archie, më 1990, e dizajnuar nga Alan
Emtage, atëbotë student i Universitetit McGill, Montreal, Québec, Kanadë. Detyra e Archie-t
ishte të indeksonte skedarët e FTP serverëve në rrjetë. Në këtë kohë u paraqit edhe Gopher, apo
GopherSpace siç u quajttë sistemi i të gjithë kompjuterëve Gopher që ofrojnë katalogun e FTP
qendrave të lidhura në rrjet dhe skedarët që ato përmbanin [5].
Pas vitit 1993, me paraqitjen e ueb shfletuesit të parë, paraqitet edhe ueb-i (World Wide Web), si
një mënyrë universale e leximit të të dhënave, duke lënë qasjen përmes FTP-së vetëm për transfer
skedarësh [5].
Zhvillimi i internetit drejt teknologjisë HTML (HyperText Markup Language) bëri të mundur që
të gjithë shfrytëzuesit që kanë qasje fizike në internet dhe një shfletues të çfarëdoshëm, pa pasur
nevojë për ndonjë program shtesë të vizitojnë qendra të ndryshme informative në internet. Ishte e
qartë se me paraqitjen e HTML-së një dimension i ri i kërkimit në internet po merrte formë.
Makinave kërkuese iu imponua qasja e re që duhet të kishin në internet. Ato tanimë nuk ishin
vetëm kërkues të skedarëve por edhe kërkues të informacionit, të vënë përmes HTML-së në
formë të materialit tekstual, grafik apo tingullor.
12,000,000,000.00
10,000,000,000.00
Numri i ueb faqeve
8,000,000,000.00
11,200,000,000
6,000,000,000.00
4,000,000,000.00
1,292,000,000
150,000,000
604,000,000
11,400,000
2,000,000
2,000,000,000.00
110,000
0.00
94 97 95 98 00 01 05
19 19 19 19 20 20 I 20
X
________________________________________________________________________
4
2. Paraqitja e Google në ueb 2.1 Zhvillimi i makinave kërkuese
Numrat e paraqitur në diagramin e sipërm paraqesin sasinë e ueb faqeve që kanë arritur të
indeksohen, përderisa kapaciteti i uebit mendohet të jetë 400 deri 500 herë më i madh se vlerat e
paraqitura në figurë [6].
Në shtator 1998, Sergey Brin dhe Lawrence Page, studentë në Universitetin e Stanfordit,
propozojnë Google, një projekt të tyre për kërkimin e informatave në internet. Ky projekt
përfshinte algoritmin për radhitjen e veçantë të rezultateve të kërkimit. Algoritmi PageRank është
patentuar në SHBA më 1998 [7]. Ky algoritëm ishte e veçanta më e madhe e Google si makinë
kërkuese, dhe arriti që Google ta bënte makinën kërkuese më të shfrytëzueshme në internet.
Sipas statistikave më 2000 [8], një qytetar i rëndomtë i SHBA-ve kalon afërsisht 1 orë e gjysmë
gjatë javës duke kërkuar përmes makinave kërkuese, dhe nëse këtu marrim parasysh se përqindja
e të gjitha kërkimeve në internet që i takon Google është 43% [9], përllogaritet lehtë, sa i vizituar
është Google dhe sa e dobishme do të ishte një reklamë biznesi në këtë ueb faqe.
________________________________________________________________________
5
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google
Kapitulli 3
3 Arkitektura e Google makinës kërkuese
Megjithatë, shumë kompjuterë, përveç që kërkojnë një sistem operativ të veçantë dhe të
distribuueshëm, për të siguruar përpunimin paralel të të dhënave në të gjithë kompjuterët,
kërkojnë edhe hapësirë të mjaftueshme për vendosje, kapacitet të mjaftueshëm elektrik dhe të
ftohjes. Klaster arkitektura e Google lind si zgjidhje mjaft e mirë dhe ajo bëhet njëra nga shumë
shtyllat të cilat e bëjnë Google të veçohet nga sistemet tjera në pothuaj të gjitha aspektet.
Klaster arkitektura në esencë paraqet vendosjen në një hapësirë të përbashkët dhe jo shumë të
madhe, të një sasie të konsiderueshme të kompjuterëve të tipit x86 dhe sigurimin e
bashkëveprimit mes tyre [9].
Një grumbull i tillë i kompjuterëve të Google, apo një stendë me kompjuterë, mund të vendoset
komfor në një hapësirë prej rreth 2.5 m2 [10].
________________________________________________________________________
6
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google
Kjo ka bërë që Google të investoj në krijimin e shumë stendave të kompjuterëve dhe t’i distribuoj
ato në shumë vende të botës, ashtu që sistemi si tërësi të mos varet vetëm nga një qendër e
përpunimit të të dhënave dhe e reagimit ndaj kërkesave [9].
Stenda të këtilla janë të vendosura në shumë qendra botërore dhe në rast të dështimeve fatale të
ndonjërës nga to, ndërlidhja e sistemit përmes rrjetës globale i mundëson Google që të
rikuperohet pothuaj pa u vërejtur fare [9].
Stendat e Google klaster arkitekturës përbëhen prej 40 deri 80 kompjuterë të tipit x86. Gjatë
projektimit të stendave i kushtohet kujdes diferencës në fuqi në mes kompjuterëve, ashtu që ajo të
mos jetë shumë e dallueshme e në dobi të balancimit të ngarkesës në mes pjesëve. Kështu që,
nëpër kompjuterët e vendosur në stenda mund të hasim lloje të ndryshme procesorësh që këta
kompjuterë përmbajnë, por diferenca e tyre në kuptim të fuqisë përpunuese nuk është e madhe
[10].
Në stendë ekziston edhe një ndërmjetës për balancimin e ngarkesës, i cili vepron menjëherë pasi
që të pranohet kërkesa, duke i ndarë punët që duhet kryer në mënyrë të barabartë mes
kompjuterëve në stendë. Ky ndërmjetësues ka natyrë harduerike [10]. Në këtë mënyrë fitohet
edhe paralelizmi i një shkalle të lartë të përpunimit të të dhënave por, edhe sigurohet që në rast të
dështimit të ndonjë komponenti në stendë (p.sh. hard disku i ndonjërit nga kompjuterët e stendës),
sistemi të reagojë shpejt duke ia ndarë atë detyrë ndonjërës nga makinat tjera në kuadër të
stendës.
Sa i përket komponentëve tjera konfigurimi i serverëve dallon varësisht prej natyrës së punës që
ka për të kryer serveri. Në kuadër të stendës së klaster arkitekturës ka serverë të cilët kryejnë punë
për të cilat kërkohet gjerësi më e madhe e brezit frekuencor në kanalet që bartin të dhënat për te
memoria punuese për të evituar të ashtuquajturin ‘fytin e shishes’ (nga ang. bottleneck), përderisa
te disa të tjerë qenësore është hapësira në disk, apo fuqia e përpunimit [10].
________________________________________________________________________
7
3. Arkitektura e Google makinës kërkuese 3.1 Arkitektura e klasterëve të Google
Në anën tjetër, të gjithë kompjuterët në stendë janë të lidhur ndërmjet veti përmes arkitekturës
Ethernet, me shpejtësi të bartjes 100 Mbps. Ethernet switch-i që ndërlidh serverët brenda stendës
ka një apo dy lidhje me gigabit switch-in që ndërlidh stendat ndërmjet veti [10].
Klaster arkitektura e Google, ka bërë atë që edhe pritej. Falë saj Google gëzon përparësi ndaj
rivalëve që paguajnë rreth 3 herë më shtrenjtë për efektshmëri të njëjtë. Kjo del nga një studim i
bërë nga inxhinierët e Google në [10], sipas të cilit në fund të 2002 një stendë me 176 CPU 2-
GHz të Xeon-it, 176 GB RAM dhe 7 TB (terabajt) hapësirë në disk kushtonte rreth 278,000
dollarë amerikanë, përderisa një konfiguracion i serverit të sofistikuar me 8 procesorë 2-GHz të
Xeon-it, 64 GB RAM dhe 8 TB hapësirë disku mund të blihej për rreth 758,000 dollarë
amerikanë. Nga ky përshkrim shihet që jo vetëm financiarisht zgjidhja e Google është më e mirë,
por ajo ka 22 herë më shumë fuqi përpunuese dhe rreth 3 herë më shumë hapësirë punuese në
RAM, me një disfavor të vogël në hapësirën e diskut.
Përparësi e veçantë e kësaj arkitekture, është se ajo është shumë e përshtatshme dhe shumë
fleksibile ndaj rritjes së sistemit me kohë. Thjeshtë, me rritjen e vëllimit të uebit, mund të shtohen
serverë nëpër stenda dhe me kaq zgjidhet problemi. Pa formula matematikore! Pra, zgjidhja le që
është lineare, por është edhe e volitshme financiarisht dhe lejon parashikimin e të ardhmes së
sistemit. Natyrisht, ky përfundim rrjedh duke mos marr parasysh problemet e konsumit të
energjisë dhe kapacitetet e ftohjes brenda stendës.
Sistemi i skedarëve të Google SSG (nga ang. GFS – Google File System), parimisht është
dizajnuar për përkrahjen e skedarëve të mëdhenj shumë megabajtësh apo shumë gigabajtësh, dhe
kjo është njëra prej arsyeve kryesore për projektimin e këtij sistemi, krahas edhe nevoja të tjera si
qasja më e shpejtë në të dhëna në disk për kohë minimale, apo sistemi që do të toleronte gabimet
[12].
SSG i konsideron të gjitha disqet, përkatësisht pajisjet për regjistrim brenda një stende si një njësi
e vetme për ruajtjen e të dhënave, mirëpo ekziston një ndarje logjike e sistemit e cila mundëson
funksionimin e një rregullimi të tillë. Sipas kësaj ndarje SSG paraqitet si sistem i nyjave Master
dhe Chunkserver-ëve. Ky grumbullim i hapësirave deponuese në një mega depo, na jep idenë për
analogjinë me stendat e Google. Tek stendat kishim grumbullimin e shumë makinave të cilat
funksionojnë si një sistem unik për përpunimin e të dhënave, derisa te SSG kemi grumbullimin e
________________________________________________________________________
8
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google
disqeve të cilat funksionojnë si një hapësirë unike për regjistrimin e të dhënave. Përfundojmë se
edhe te SSG, Google ka përdorur një lloj të klaster arkitekturës, por këtu në anën softuerike [12].
Sa i përket operacioneve themelore të sistemeve të skedarëve, SSG posedon pothuaj të gjitha
operacionet standarde si create, delete, open, close, read dhe write, por po ashtu përmban
operacione shtesë si snapshot dhe record append [12].
SSG përmban një Master dhe shumë Chunkserver-ë, dhe këtij rregullimi mund t’i qasen shumë
klientë njëkohësisht. Skema funksionale e këtij sistemi jepet me figurën e mëposhtme, të cilën e
kemi huazuar nga [12].
Master-i i SSG bën kontrollin e përgjithshëm të sistemit, por disa nga detyrat e tij i delegohen
edhe chunkserver-ëve. Master ka të gjitha informatat për sistemimin e chunkserverëve dhe
skedarëve në to.
Skedarët bazë ose më mirë thënë pjesët fundamentale të skedarëve quhen chunk (shqip: copëzë),
dhe janë të madhësisë fikse 64 MB, që është format vërejtshëm më i madh në krahasim me
formatet e skedarëve të sistemeve operative Linux e Windows . Secili chunk identifikohet me një
numër 64-bitësh, i cili quhet chunk handle. Të drejtën ekskluzive për ndarjen e chunk handles-ve
e ka Master-i, dhe kjo e drejtë i jepet klientit/shfrytëzuesit për një kohë të caktuar, të fundme [12].
Duke pasur parasysh se stendat e Google përbëhen nga kompjuterë të kualitetit të dobët, pra këtu
s’kemi të bëjmë me serverë të sofistikuar, kuptojmë që besueshmëria se skedarët do të jenë të
sigurt me vetëm një kopje të regjistruar, bie, sidomos duke e ditur se mundësitë që komponentët e
stendës të dështojnë papritur, janë mjaft të mëdha. Kështu që, Google, ruan së paku tre kopje të
secilit chunk, në disqe të ndryshme, duke përfshirë këtu edhe ruajtjen e chunk-ëve edhe në stenda
të tjera përpos asaj burimore. Veprimi i fundit kryhet me qëllim të sigurisë sa më të madhe të të
dhënave dhe për qasje në të dhëna edhe nëse e tërë stenda del nga sistemi, si rezultat i dështimeve
në rrjetë, apo për shkak të lidhjeve të shkurta në qarqet e rrymës elektrike [12].
Si funksion të Master-it të SSG, do të definojmë edhe një koncept, metadata, apo në shqip të
dhënat për të dhënat – meta të dhënat, me çka kuptojmë ruajtjen e të dhënave të cilat na çojnë tek
të dhëna të tjera, sigurisht më të dobishme. Meta të dhënat mirëmbahen si nga Master-i ashtu
edhe nga chunkserver-ët, dhe kanë qëllim informimin e klientëve lidhur me vendndodhjen e
skedarëve, përkatësisht në nivel më të ulët, chunk-ëve.
Meta të dhënat, meqë nuk zënë vend të madh, ruhen në memorien e Master serverit, duke e bërë
të mundshme qasjen e shpejtë në to me rastin e kthimit të përgjigjes, klientëve.
________________________________________________________________________
9
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google
Meta të dhënat janë të tri llojeve: ato që kanë të bëjnë me skedarët dhe me domenet e chunk-ëve,
lidhjet në mes të skedarëve dhe chunk-ëve, dhe vendndodhjen e secilës kopje të chunk-ëve. Këto
të llojit të fundit, ruhen në mënyrë të përhershme vetëm nga chunkserver-ët, dhe në rast se
Master-i nuk posedon ndonjë informatë të atij lloji, ia kërkon atë chunkserver-it përkatës [12].
Meta të dhënat nuk i jepen shfrytëzuesit në secilin operacion që ai kërkon/ndërmerr meqë kjo do
të shkaktonte ngarkesë të madhe në linjat e komunikimit, sikurse edhe do ta ngarkonte pamasë
Master-in, duke shkaktuar kaos në sistem, ku Master-i në pjesën më të madhe të kohës do të
merrej me identifikimin e vendndodhjes së të dhënave dhe me kthimin e përgjigjeve
shfrytëzuesve, gjë që do ta bënte thuaja të papërdorshëm Master-in për operacionet si krijimi i
chunk-ëve ndryshimi i emrave të skedarëve e të tjera. Si zgjidhje për këtë problem, është pranuar
zgjidhja që ofrohet përmes ruajtjes së të dhënave në anën e klientit – peshimi (cache). Kështu që,
fillimisht shfrytëzuesi kërkon informata për një skedar të caktuar, Master-i ia jep ato informata, të
cilat shfrytëzuesi i keshon dhe i shfrytëzon për inicimin e operacioneve, duke kontaktuar
chunkserver-ët drejtpërdrejtë pa e munduar Master-in [12].
SSG gjithashtu mirëmban edhe një ‘ditar të operacioneve’ apo operation log, ku regjistron të
gjitha veprat e ndërmarra nga Master-i dhe në rast të dështimit të Master serverit, Master-i jo që
startohet pothuaj menjëherë por edhe do t’i kaloj pikat verifikuese sipas këtij ditari. Me këtë
sistemi, do t’i kthehet punës aty ku është ndërprerë, apo me fjalë të tjera do të rikuperohet
plotësisht, me mundësi gabimi shumë të vogël. Në rast dështimi, Master-i lexon ditarin e
azhurnuar më së fundi (nga ang. most up-to-date operation log) dhe nëse ai është me gabime
atëherë merr ndonjë version më të hershëm të tij [12] .
Gjithsesi, edhe pse Master serveri ka fjalën kryesore, në çdo klaster të SSG-së përveç Master-it,
veprojnë edhe ‘masterët në hije’ (nga ang. shadow masters), të cilët e mirëmbajnë sistemin
njëkohësisht dhe bashkërisht me Master-in kryesor, por edhe në raste kur ai ka rënë nga sistemi.
Mirëpo, Master-ët në hije nuk i kanë të gjitha kompetencat për të vepruar, ata kanë të drejtë të
japin doreza (nga ang. handle) për lexim të skedarëve, por jo edhe për shkrim apo bashkëngjitje.
Regjistrimi (inçizimi) i skedarëve në disqe kryhet në njërën nga dy mënyrat e parapara me SSG,
përmes të shkruarit apo përmes bashkëngjitjes (nga ang. record append). Përvec kësaj, të shkruarit
apo bashkëngjitja është e lejuar për më shumë se një klient. Të shkruarit vazhdon në fund të
pjesës tashmë të mbushur të skedarit apo fillon në pjesën e parë të skedarit të sapokrijuar, dhe
dallojmë shkrime të gjata të vazhdueshme, dhe të shkurta e të rastësishme. Me të parën
nënkuptohet mundësia e një shfrytëzuesi për të shkruar në sekuencë për një kohë më të gjatë,
ndërsa me të dytën synohet arritja e paralelizmit në të shkruar, duke i dhënë secilit shfrytëzues
mundësinë që të shkruaj nga pak, dhe quhet e rastësishme, për shkak se shfrytëzuesi i parë nuk do
të vazhdojë shkrimin aty ku e ka lënë por pas pjesës të cilën e kanë shkruar shfrytëzuesit tjerë. Ky
regjistrim është i nivelit të pak kilobajtëve, dhe mirëmbajtja e të shkruarave (çfarë u shkrua, nga
kush, dhe si të lidhen pjesët që i ka shkruar i njëjti shfrytëzues) është mjaft sfiduese, andaj jo
rastësisht quhet regjistrim atomik. Të gjitha shkrimet drejtohen ekskluzivisht nga Master-i, gjë që
e bën më të besueshëm sistemin. Mirëpo, duke marr parasysh se mund të ndodhin gabime edhe në
këtë nivel, Google ka zhvilluar një model me të cilin përcaktohet niveli i konsistencës së
skedarëve. Sipas këtij modeli, i cili aplikohet si për të shkruar ashtu edhe për bashkëngjitje, apo
________________________________________________________________________
10
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google
përgjithësisht për çfarëdo mutacioni të skedarëve, një pjesë e skedarit mund të quhet konsistente,
nëse të gjithë shfrytëzuesit gjithmonë shohin të njëjtat të dhëna në të gjitha kopjet. Nëse gjatë të
shkruarit, nuk ndërhyn asnjë shfrytëzues, dhe me këtë azhurnimi bëhet vetëm nga një shfrytëzues,
ajo pjesë quhet e definuar, meqë shfrytëzuesit gjithnjë do të shohin të njëjtat të dhëna, gjë që
implikon edhe konsistencën e asaj pjese. Nëse mutacionet janë konkurruese (shumë shfrytëzues
shkruajnë në pothuaj të njëjtën kohë) dhe të suksesshme, pjesa e azhurnuar do të jetë konsistente
por e padefinuar. Ndërsa, nëse mutacionet dështojnë për arsye të ndërprerjes së energjisë elektrike
gjatë të shkruarit, apo për ndonjë arsye tjetër, kjo e lë atë pjesë të skedarit jokonsistente dhe me
këtë edhe të padefinuar [12].
Mjaft esenciale dhe mirë të rregulluara janë edhe bashkëveprimet në kuadër të sistemit.
Sipas [12] një mutacion kryhet në shtatë etapa.
Shfrytëzuesi (klienti) i kërkon Master serverit t’i raportojë nëse ndonjëri nga chunkserver-ët që i
interesojnë e posedon të drejtën e shfrytëzimit ekskluziv të ndonjë chunk-u dhe vendndodhjen e
kopjeve të tij (1). Master-i i kthen përgjigjen se cili prej tyre e ka këtë të drejtë, ose nëse jo, ia jep
të drejtën e shfrytëzimit, shfrytëzuesit të parë që e kërkon (2). Chunk-u i cili shfrytëzohet
ekskluzivisht quhet parësor (primary replica), ndërsa kopjet tjera quhen dytësore (secondary
replica). Në këtë sekuencë, shfrytëzuesi pasi të merr të drejtën e shfrytëzimit ekskluziv, iu dërgon
të gjitha kopjeve të dhënat për mutacion (3). Pasi që të gjitha kopjet t’i kenë marrë të dhënat,
shfrytëzuesi i dërgon kopjes parësore kërkesën për regjistrim (4), dhe ajo e pason atë në kopjet
dytësore (5). Të gjitha kopjet dytësore i raportojnë kopjes parësore për kryerjen e operacioneve
(6). Dhe në fund kopja parësore lajmëron klientin për zhvillimin e operacioneve, dhe për
dështimet eventuale (7) [12].
________________________________________________________________________
11
3. Arkitektura e Google makinës kërkuese 3.2 Sistemi i skedarëve të Google
Rrymimi apo rrjedhja e të dhënave në rrjet, nuk bëhet sipas topologjive si ajo e degëzimit, ku
paketat e të dhënave i dërgohen veç e veç të gjithë chunkserver-ëve sipas nevojave/kërkesave, por
shfrytëzohet i tërë brezi frekuencor i rrjetës, ashtu që të gjitha të dhënat i dërgohen chunkserver-it
më të afërt, e pastaj ai i bart ato tek chunkserver-i tjetër më i afërt dhe kështu me radhë.
SSG ofron edhe një operacion jo të zakonshëm që bën kopjimin e skedarit apo të tërë
direktoriumit (snapshot operation), pothuaj njëkohësisht me mutacionet që mund të bëhen në atë
skedar apo në skedarët e atij direktoriumi. Mirëpo, nëse snapshot-i ka filluar para se në ndonjë
chunk të fillojë ndonjë mutacion, atëherë kërkesa për mutacion në atë chunk dhe në të gjitha
kopjet e tij refuzohet. Por, situata nuk është edhe gjithaq e pashpresë. Nëse arrihet në këtë
gjendje, SSG urdhëron ndonjërin nga chunkserver-ët që përmbajnë një kopje të chunk-ut në fjalë
që të krijojë një chunk të ri identik në të cilin mund të bëhen mutacionet [12].
Siç mund të kuptohet nga pjesa e mësipërme Master-i e rezervon të drejtën për bllokuar një
chunk, apo një numër të tyre, apo edhe ndonjë direktorium të tërë, në rastet kur i jep të drejtën e
shfrytëzimit mbi te, ndonjërit prej shfrytëzuesve. Nëse i përmbahemi sistemit të skedarëve të
Linux nëse në shtegun /me/docs/professional/thesis (Google shfrytëzon Linux-in si sistem
operativ me disa modifikime në kernel), një shfrytëzues ka të drejtën ekskluzive të shfrytëzimit
për thesis, atëherë asnjë shfrytëzues nuk mund të ketë të drejtat e shfrytëzimit (shkrimit) për me,
docs, professional, thesis apo për çfarëdo skedari që mund të gjendet në kuadër të këtyre
direktoriumeve, pasi që sistemi operativ vënë bllokadë të leximit mbi me, docs, professional, dhe
bllokadë të shkrimit apo leximit mbi thesis, varësisht nëse thesis është skedar apo direktorium.
Master-i përveç që i krijon kopjet e chunk-ëve, ai po ashtu edhe i rikopjon ato nëse numri i
kopjeve të tyre është më i vogël se ai i planifikuar. Gjithashtu, SSG përcakton prioritetin e
kopjimit të chunk-ëve, ashtu që prioritet më i madh i jepet kopjimit të chunk-ëve që kanë më së
paku kopje të regjistruara në krahasim me ato të planifikuara. Për shembull, nëse për dy chunk-ë
të ndryshëm janë paraparë që të ruhen nga tri kopje (tri kopje është edhe numri i nënkuptueshëm i
kopjeve që ruan sistemi) për secilin, dhe nëse i pari ka humbur dy nga tri kopjet e tjetri vetëm një,
atëherë prioritet i jepet të parit.
Rebalancimi i hapësirës dhe ngarkesës, është gjithashtu pjesë e punës së Master-it. Master-i
gjithnjë kërkon nëse ndonjëri nga chunkserver-ët është shumë i ngarkuar, pra, hapësira deponuese
i është konsumuar mjaft, dhe në anën tjetër ka chunksever-ë të tillë që janë të pashfrytëzueshëm
apo pak të shfrytëzueshëm, atëherë Master-i bënë zhvendosjen e chunk-ëve për të balancuar
hapësirën dhe me këtë edhe ngarkesën në stendë [12].
Kur një skedar fshihet, ky operacion nuk e imponon drejtpërdrejtë largimin e përhershëm të këtij
skedari nga disqet, por si fazë e parë bëhet ndërrimi i emrit të skedarit dhe fshehja e skedarit nga
shfrytëzuesit. Pastaj nis procesi i ashtuquajtur i mbledhjes së mbeturinave, kur bëhet largimi i
përhershëm. Fshirja zakonisht ndodh për ‘kopjet bajate’, chunk-ët e korruptuar apo chunk-ët
jetimë, siç quhen chunk-ët të cilat pas disa mutacioneve apo modifikimeve të skedarëve, nuk janë
të lidhura më me asnjë skedar [12].
E veçantë e këtij sistemi të skedarëve, është se shfrytëzuesit i jepet mundësia që të lexojë mbi
pjesët të cilat njëkohësisht janë duke u modifikuar dhe kjo nuk i shkakton sistemit gabime në
shkrim mu për shkak të përsosmërisë së lartë të kontrollit të operacioneve.
Ky sistem i skedarëve, edhe pse duke mjaft i përsosur, është më shumë i orientuar në shërbim të
makinave kërkuese, dhe si i tillë nuk është një zgjidhje e mirë për tu aplikuar edhe në sistemet
tjera. Vetë fakti se ky sistem është projektuar kryesisht për përpunimin e skedarëve të mëdhenj, e
bën të mundimshëm aplikimin e tij në kompjuterët për shfrytëzim personal apo për biznese tjera.
________________________________________________________________________
12
3. Arkitektura e Google makinës kërkuese 3.3 Struktura e të dhënave
BigTable paraqitet në formë shumë-dimensionale, përderisa të dhënat janë të renditura sipas një
çelësi të caktuar. Të dhënat indeksohen përmes tri vlerave, çelësit të rreshtit, çelësit të kolonës
dhe vulës që përmban kohën reale të futjes së të dhënave. Pra, për të arritur deri tek një e dhënë e
caktuar duhet t’i kemi që të tri këto indekse:
Çelësat e rreshtave dhe kolonave, mund të jenë vargje shkronjash e jo domosdoshmërish numra,
ndërsa indeksi i tretë që paraqet kohën, jepet si një vlerë 64-bitëshe e numrave të plotë [13].
Figura 5: Një pjesë e tabelës të BigTable, që ruan të dhënat për ueb faqe [13]
Do të marrim që tabela jonë përmban të dhëna të ueb-faqeve të ndryshme. Kështu që, URL-të e
ueb-faqeve do të jenë çelësat e rreshtave.
Çelësat e rreshtave mund të jenë të gjatë deri 64 KB. Të dhënat janë të renditura në mënyrë
leksikografike sipas rreshtit. Çdo tabelë ndahet sipas një rangu vlerash duke krijuar tabelzat e
quajtura tablets, të cilat përmbajnë në vetvete një pjesë të të dhënave të tabelës së caktuar. Ndarja
nëpër tableta bëhet, në mënyrë që të mundësohet ngarkimi i balancuar nëpër komponentet e
klasterëve, ndërsa përfitojmë edhe në shfrytëzimin efikas të rrjetit, pasi që leximet do të jenë më
të rralla dhe të dhënat e bartura më të pakta (nuk do ta bartim tërë tabelën, por vetëm një pjesë të
saj: tabletën). Meqë, www do të ishte e përbashkët për të gjithë çelësat e rreshtave, Google bën
rigrupimin e pjesëve të URLs dhe rivendosjen e tyre, ashtu si është paraqitur në figurë e
mësipërme (në vend të ‘www.cnn.com’, ruhet ‘com.cnn.www’) [13].
Kolonat, përkatësisht, çelësat e kolonave, për dallim nga rreshtat, grupohen nëpër sete të quajtura
familje kolonash. Zakonisht të gjitha të dhënat e tipit të njëjtë janë të grupuara në një familje të
caktuar. Çelësat e kolonave, sikurse edhe familjet krijohen para se të futen të dhënat, ashtu që, me
rastin e futjes së të dhënave mund të përdoret cilido çelës i familjes. Kolonat paraqiten në formën:
family:qualifier, ku së pari paraqitet emri i familjes, e pastaj çelësi. Një rast konkret do të ishte
familja language, e cila ruan numrat identifikues të gjuhëve në të cilat paraqitet përmbajtja e ueb-
faqes [13].
Timestamp, apo vula e kohës reale, shërben për të bërë të mundshëm vendosjen e të dhënave në
formën e matricave shumë-dimensionale. Përderisa, me rresht dhe kolonë, paraqitnim të dhënat
përmes matricave dy-dimensionale, timestamp, na mundëson shtimin e dimensioneve tjera. Në
________________________________________________________________________
13
3. Arkitektura e Google makinës kërkuese 3.3 Struktura e të dhënave
një rast konkret, një qeli e tabelës mund të ketë të dhëna të ndryshme, për shembull përmbajtja e
një ueb-faqeje mund të ndryshohet në intervale të caktuara kohore. Atëherë, në mënyrë që t’i ikim
shtimit të një rreshti të ri vetëm e vetëm për një qeli ne krijojmë faqet e matricave, ashtu që një
qeli e caktuar mund të ketë më shumë se një version, dhe indeksimin e këtyre versioneve do ta
bëjë timestamp. Me hapjen e tabletës të dhënat e para që do të na paraqiten do të jenë celulat me
të dhënat e azhurnuara më së fundi, e pastaj versionet e mëhershme të renditura në mënyrë
kronologjike [13].
BigTable mbështet në SSG (Sistemin e skedarëve të Google), për ruajtjen e të dhënave në disk,
ashtu që formati i skedarëve SSTable, përdoret për ruajtjen e këtyre të dhënave nëpër serverët e
klasterëve. SSTable paraqitet si një hartë e të dhënave të renditura e të lidhura përmes logjikës
çelës-vlerë. Ato janë të ndërtuara nga blloqet sekuenciale (zakonisht këto blloqe kanë madhësi të
përcaktuar 64 KB, por trajta e tyre mund të ndryshohet). Në kuadër të SSTable gjendet edhe një
hartë e blloqeve, në të cilën ndodhen indekset e blloqeve, të cilat, rrjedhimisht, janë të indeksuara
në mënyrë që të ofrojnë kërkim efikas. Kjo zvogëlon kohën, për të cilën të dhënat do të arrinin
për përpunim, pasi që do të duhej vetëm të gjenim bllokun në hartë dhe pastaj përmes vetëm një
kërkimi në disk do të gjenim të dhënat e kërkuara, ose edhe më mirë, SSTable është e mundur që
e tëra të vendoset në memorien punuese, me çka do të evitonim kërkimin nëpër disk [13].
Për t’i evituar mutacionet e padëshirueshme të të dhënave BigTable mbështet në një shërbim
mjaft efikas për bllokimin (lock) e të dhënave Chubby [13]. Chubby krijon 5 kopje, nga të cilat
njëra zgjidhet master. Çdo klient mban një sesion me Chubby shërbimin, ashtu që çdo ndryshim
eventual, do të ndodhte vetëm me bekimin e Chubby master kopjes. Nëse, klienti nuk arrin që ta
mbaj sesionin të gjallë apo nëse e humbet bllokimin mbi skedarët në ndonjë mënyrë tjetër, atëherë
ai klient nuk mund të bëjë ndryshime të mëtutjeshme pa marrë përsëri të drejtën mbi to [13].
BigTable është e implementuar në atë mënyrë që përmban një librari, në të cilën janë të lidhur të
gjithë klientët, një master server, si dhe disa tablet servera. Master serveri bën ndarjen e tabletave,
tablet serverëve, të cilët pastaj menaxhojnë me to. Master serveri po ashtu është përgjegjës për
detektimin gjendjes së tablet serverëve, balancimin e ngarkesës nëpër tablet serverë, si dhe për
pastrimin e diskut nga skedarët e panevojshëm [13].
Çdo tablet server menaxhon një set me tableta, duke përfshirë leximin dhe shkrimin nëpër ato
tableta, sikurse edhe ndarjen e tyre në rastet kur ato rriten shumë. Është e rëndësishme të
potencohet se klientët nuk komunikojnë me master serverin për ndryshimet nëpër tablet-a, por
direkt me tablet serverin, gjë që mundëson një efikasitet më të madh të master serverit [13].
Hierarkia e vendosjes së tabletave paraqitet në tri nivele. Në nivelin e parë është skedari i
Chubby-t, i cili ruan të dhënat për tabletën kryesore (rrënjë) [13]. Tableta kryesore përmban të
dhënat për tableta e tjera përmes një metadata tabele. Çdo metadata tabletë, përmban
vendndodhjen e një seti të tabletave të shfrytëzuesve.
Një gjendje persistente e SSTable skedarëve ruhet në disk, përderisa azhurnimet e fundit që bëhen
nëpër tabela ruhen në të ashtuquajturën memtable. Pasi kemi azhurnime të vazhdueshme,
BigTable posedon edhe dy metodat e saja për kompaktizimin e tabletave. Dallojmë minor
compation, e cila shërben për krijimin e SSTable, ashtu që minimizon të dhënat që do të duhej të
rikuperoheshin nga ndonjë dështim eventual, dhe major compaction, që shërben për bashkimin e
SSTable të krijuara gjatë kompaktizimit të mëparshëm [13].
________________________________________________________________________
14
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve
Kapitulli 4
4 Organizimi i të dhënave në Google
Njëri nga serverët e klaster arkitekturës është i paraparë që të shërbej vetëm si furnizues i crawler-
ëve me URL, do të thotë që t’i orientojë ata fillimisht se cilave ueb faqe t’i referohen për t’i
grumbulluar të dhënat dhe quhet URL Server [2].
Të gjitha të dhënat e mbledhura nga crawler-ët destinacion primar e kanë serverin, i cili shërben
për ruajtjen e përkohshme të të dhënave, e i cili quhet Store Server. Hapi i ardhshëm në
organizimin dhe përpunimin e të dhënave, i takon përsëri Store Server-it, i cili bën ngjeshjen e të
dhënave, kompresimin, në mënyrë që të përfitojmë sa më shumë në hapësirën e diskut. Pasi që të
kompresohen të dhënat, ato i dorëzohen rezervuarit, përkatësisht depos së të dhënave që në figurë
paraqitet me emrin Repository [2].
________________________________________________________________________
15
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve
Me këtë rast secilës ueb faqe të analizuar, i jepet një ID unike e cila quhet docID [2]. Ky element
identifikues është unik për secilën ueb faqe pasi nxirret si hash funksion i secilës URL të ueb
faqeve të përpunuara.
Pjesa e ardhshme e përpunimit i takon komponentit URL Resolver, i cili lexon skedarin e linçeve,
dhe i konverton të gjitha URL-të e linçeve në URL absolute, e po ashtu edhe në docID. URL
Resolver-i, kryen edhe një funksion tjetër. Ai vendos tekstin përreth linçit në indeksin e avancuar,
duke ia shoqëruar atij edhe docID-në, në të cilën ai linç është i drejtuar. Si rezultat final, URL
Resolver-i gjeneron një bazë të të dhënave, të përbërë vetëm nga linçet, e në formë të docID-ve.
Kjo bazë e të dhënave shërben më vonë për të llogaritur rëndësinë e secilës ueb faqe, përmes
algoritmit të Google, PageRank [2].
Indeksuesi i dokumenteve shërben për të ruajtur të dhënat relevante për të gjitha dokumentet, të
cilat nëpër barela janë të radhitura sipas docID elementit. Ndër informatat relevante që ruhen për
dokumentet janë statusi i dokumentit, treguesi se ku gjendet dokumenti në rezervuarin e sistemit
(Repository), numri i gjeneruar nga docID (checksum), i cili siguron se nuk është bërë asnjë
ndryshim i rastësishëm në përmbajtjen e docID, si dhe statistika tjera. Nëse dokumenti në fjalë
është përpunuar nga crawler-ët, atëherë do të gjendet edhe informata se ku gjendet docinfo,
variabël kjo që përmban URL-në e dokumentit dhe titullin e tij [2].
Leksikoni, si pjesë e sistemit, shërben për ruajtjen e të gjitha fjalëve të cilat janë hasur gjatë
përpunimit të dokumenteve (ueb faqeve). Fjalët identifikohen përmes wordID-së, e cila është
unike për secilën fjalë. Leksikoni është i implementuar në atë mënyrë, që ruan në njërën anë të
gjithë wordID-të dhe në anën tjetër ju shoqëron atyre hash tabelat me tregues, se ku janë hasur
ato fjalë nëpër dokumente[2].
Radhitësi apo Sorter, merr të dhënat e radhitura sipas docID-ve nëpër barela dhe i riradhitë ato në
bazë të wordID elementit, për të gjeneruar indeksin e përmbysur (inverted index).
Hit listat apo listat e shënimeve, shërbejnë për të ruajtur numrin e paraqitjeve të fjalëve të veçanta
nëpër secilin dokument veç e veç. Aty ruhen edhe të dhënat që kanë të bëjnë me pozitën e fjalës
në dokument, fontin që është përdorur, dhe informata lidhur me formën në të cilën është shkruar
fjala (me shkronja të mëdha, të vogla apo të përziera)[2].
Hit listat zënë hapësirën më të madhe në indekset e avancuara dhe të përmbysura. Kështu që, për
të përfituar sa më shumë hapësirë është përdorur një lloj kodimi i informatave, i cili mundëson
shfrytëzimin optimal të hapësirës në disk.
________________________________________________________________________
16
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve
Sipas këtij kodimi, përdoren 2 bajt për çdo shënim (hit). Ekzistojnë dy lloje të shënimeve:
shënimet e përfytyruara dhe ato të dukshme (fancy hits and plain hits). Shënimet e përfytyruara
paraqesin shënimet të cilat hasen në kuadër të URL-së, titullit të ueb faqes, tekstit përreth linçeve,
ose në etiketave (tag) meta. Ndërsa shënimet e dukshme paraqesin tërë pjesën tjetër, duke
përfshirë këtu bitin e formës së shkronjave, madhësinë e fontit, dhe 12 bit për pozitën e fjalës në
dokument (të gjitha pozitat të cilat e kalojnë shifrimin mbi 4095, shënohen si 4096).
Madhësia e fontit paraqitet me tre bit, por vetëm 7 nga mundësitë e permutacionit shfrytëzohen
për të koduar atë, pasi që permutacioni 111, lajmëron se kemi të bëjmë me shënim të përfytyruar.
Në anën tjetër, shënimet e përfytyruara përmbajnë bitin e formës së shkronjave, 3 bit për të
sinjalizuar se kemi të bëjmë më shënim të përfytyruar, 4 bit për kodimin e llojit të shënimit të
përfytyruar, dhe 8 bitët e mbetur për pozitën e fjalës. Për shënimet që kanë të bëjnë me tekstin e
linçeve 8 bitëshi i fundit ndahet në dy pjesë, ku 4 bitët e parë përdoren për hashin e docID-së të
cilit i referohet linçi dhe 4 të tjerët për pozitën e fjalës në tekstin e linçit [2].
Indeksi i avancuar është i radhitur pjesërisht me rastin e indeksimit të dokumenteve nga ana e
indeksuesit dhe si i tillë është i vendosur në barelat e sistemit. Meqë nevojitet hapësirë e madhe
për t’i vendosur të gjitha të dhënat, numri i barelave në sistem është gjithnjë më i madh se një.
Secili prej barelave përmban në vete një rang të vlerave të wordID-së. Fjalët e regjistruara nëpër
barele, përmbajnë në listat e tyre edhe referencën në dokumentin përkatës nga i cili burojnë. Dhe,
sigurisht, duke pasur parasysh se qëllimi i sistemit është që të ruhet sa më shumë hapësirë e
diskut, wordID-të nuk regjistrohen me numrat e tyre përkatës, me ç’rast do të na duheshin 32 bit,
por, me një teknikë tjetër, ku wordID-të paraqiten vetëm si diferencë relative nga numri minimal i
wordID-së në atë barelë [2].
Indeksi i përmbysur përdor të njëjtat hapësira për të deponuar të dhënat sikurse indeksi i avancuar
(barelat), përveçse indeksi i përmbysur paraqet të dhënat e përpunuara tanimë nga radhitësi
Sorter.
Për çdo wordID, leksikoni përmban informatën se në cilën barelë gjendet ajo fjalë dhe referencën
e saj në listën e dokumenteve, përkatësisht në dokumentet, të cilave ajo fjalë iu referohet.
________________________________________________________________________
17
4. Organizimi i të dhënave në Google 4.1 Struktura funksionale e komponentëve
Një çështje për të cilën, është menduar mjaftë, është se në çfarë radhitje duhet të paraqiten
dokumentet në listën e dokumenteve. Prej tyre, ideja e parë ishte të paraqiten të radhitura sipas
docID-së, ndërsa tjetra sipas numrit të përsëritjes së fjalës përkatëse në atë dokument. Si zgjidhje,
u morr një kompromis në mes këtyre ideve, sipas të cilit do të gjeneroheshin dy sete barelash,
njëri me informata nga teksti përreth linçeve (anchor) dhe titujt e dokumenteve, e tjetri me të
gjitha të dhënat tjera, ashtu që, me rastin e kërkimit së pari do të kërkohej nëpër setin e parë, dhe
nëse nuk do të ktheheshin mjaft informata, atëherë do të fillonte kërkimi në setin e dytë [2].
Në formën e tyre më të thjeshtë crawler-ët fillojnë me një faqe bërthamë, e pastaj vazhdojnë me
linçet e jashtme të cilat i hasin në kuadër të dokumentit, të cilin janë duke e ekzaminuar. Procesi
vazhdon me ekzaminimin e dokumenteve të cilat buronin nga linçet e faqes bërthamë dhe
vazhdon me dokumentet të cilat vijnë si rezultat i linçeve të jashtme në këto dokumente. Pak a
shumë kjo paraqet jetën e një crawler-i, e cila përfundon kur ai të ndalet nga personi që e
mbikëqyr, pasi që t’i harxhohen të gjitha linçet e nxjerra nga analiza e dokumenteve, apo pasi që
të jetë arritur ndonjë objektiv tjetër [14].
Crawler-ët mund të jenë selektivë sa i përket natyrës së ueb faqeve që ata marrin në shqyrtim.
Këta të fundit quhen crawler preferencial.
________________________________________________________________________
18
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb
Crawler-i mirëmban një listë me URL të cilat nuk i ka vizituar, e cila quhet frontier (nga ang.
frontier - zona të pashkelura) [14].
Frontier-i paraqet listën e detyrave që duhet t’i kryejë crawler-i. Mirëpo, gjatë ekzaminimit të
dokumenteve paraqiten edhe linçe të tjera, kështu që lista nuk përfundon me detyrat e parapara në
fillim. Sipas [14], është shumë e zakonshme që një frontier me 10.000 URL të ueb faqeve të
futura në fillim të rritet në një listë prej më se 60.000 URL-ve.
Procesi i mbledhjes së informatave nga ueb faqet, i rikthehet pikës fillestare pasi që të jetë
ekzaminuar dokumenti përkatës, duke kërkuar URL-në e ardhshme në listë dhe për të marr në
shqyrtim dokumentin, të cilit ajo i referohet.
Procesi, në mënyrë të zakonshme përfundon kur nuk mbetet asnjë URL në frontier për tu
ekzaminuar [14].
Në disa raste, mund të ndodh që crawler-i të hyjë në të ashtuquajturën spider trap (kurthin e
merimangës). Kjo paraqitet atëherë, kur crawler-i has në shumë URL të ndryshme të cilat i
referohen të njëjtës ueb faqe. Rastet më të shpeshta janë ato kur ueb faqet në kuadër të një ueb
sajti i referohen njëra tjetrës, ashtu që pas ekzaminimit të njërës prej tyre përmes linçeve të
jashtme (eksterne) crawler-i kalon në faqen tjetër, e cila përmes linçeve të saja eksterne (por të
formuluara ndryshe), e kthen përsëri në faqen paraprake, dhe kështu crawler-i hyn në një rreth
vicioz. Po ashtu URL-të të cilat përmbajnë ndryshore (variabla) si :
http://www.cfaredodomeni.com/index.php?moduli=FaqjaKryesore&Pjesa=1
http://www.cfaredodomeni.com/index.php?moduli=FaqjaKryesore&Pjesa=4
mund të jenë linçe të cilat i referohen të njëjtës faqe. Për t’i evituar këto kurthe Google ka
vendosur politika, me të cilat i dekurajon shfrytëzuesit që të përdorin URL në forma të tilla,
natyrisht, nëse ata dëshirojnë që Google t’i vizitojë faqet e tyre.
Një qasje tjetër, është ofruar nga [14], ku thuhet se ky problem mund të zgjidhet edhe me
kufizimin e numrit të faqeve që do të merren në shqyrtim nga një domen i caktuar.
Crawler-ët e avancuar, përdorin edhe metoda të tjera për t’iu ikur kurtheve. Ndër to është edhe
kthimi i URL-ve në formë kanonike [14]. Procesi fillon me kthimin e të gjitha shkronjave në
URL në shkronja të vogla, ashtu që crawler-i të mos bëjë dallimin në mes të:
Pastaj, vjen kodimi i URL-ve në formë standarde, ashtu që crawler-i të mos bëjë dallimin mes të:
http://www.cfaredodomeni.com/modulet/shitja/pagesat/keshi.html dhe
http://www.cfaredodomeni.com/modulet/shitja/pagesat/transaksionet/../keshi.html
Po ashtu, edhe rregulla të tjera për kthim në formën kanonike të URL-ve mund të aplikohen, duke
filluar nga numri i portit që vendoset ose nuk vendoset në URL e deri tek ato që kanë të bëjnë me
kufizimin e shkronjave të mara në shqyrtim nga një URL.
________________________________________________________________________
19
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb
Crawler-ët kanë për detyrë, përveç mbledhjes së materialit, edhe ta bëjnë analizën e të dhënave
nëpër dokumente. Në mënyrë që ky qëllim të arrihet atëherë do të na duhej një HTTP klient, i cili
do të na mundësonte dërgimin e HTTP kërkesave dhe shqyrtimin e përgjigjeve të kthyera. Këta
klient zakonisht janë të konfiguruar ashtu që të presin përgjigjen për një kohë të caktuar, dhe jo
përjetësisht, pasi që kjo do ta bllokonte tërë procesin, pasi që tek Google, një crawler mund të
mbajë deri 300 lidhje të hapura me serverët nëpër botë, në të njëjtën kohë [2].
Gjithashtu, crawler-ët zakonisht janë të konfiguruar që të lexojnë ueb faqet më të vogla se 20 KB,
përderisa ato më të mëdha se 20 KB, ose nuk i lexojnë fare, e ose e lexojnë vetëm pjesën fillestare
të tyre [14].
Një problem i paraqitur me rastin e mbledhjes së informatave, ka të bëjë me faqet për të cilat
autorët nuk dëshirojnë që informatat e publikuara në to, të regjistrohen diku tjetër, disa për shkak
të të drejtave autoriale, e të tjerat edhe për shkak se në to mund të kishte informata të fshehta, si
numrat e kredit kartelave të klientëve etj. Google, është ballafaquar që në ditët e para me këtë
problem. Si përgjigje ndaj kësaj u krijua i ashtuquajturi Robot Exclusion Protocol, sipas të cilit në
të gjitha dosjet (folders) në të cilat crawler-i nuk do të duhej të hynte të gjurmonte, përkatësisht të
mblidhte material, duhet të kenë një skedar të vogël të shkruar, e të emëruar si robots.txt [2, 14].
E tëra që duhet të shkruhet në këtë skedar është përcaktimi i crawler-ëve që dëshirojmë apo nuk
dëshirojmë t’i lejojmë të vizitojnë pjesë të caktuara të ueb sajtit.
Për shembull,
User-agent: BadBot
Disallow: /
Do t’ia ndalonte qasjen crawler-it me emrin BadBot [15] në gjithë skedarët e ueb sajtit, përderisa
me
User-agent: *
Disallow: /administrata/
Disallow: /pagesat/
Do t’i ndalonim të gjithë crawler-ët që të gjurmonin në dosjet (folders) administrata dhe pagesat.
Mënyra e punës së crawler-ëve përcaktohet me algoritmin mbi të cilin ato janë zhvilluar. Duke iu
referuar literaturës gjejmë një numër të konsiderueshëm të algoritmeve mbi të cilat janë zhvilluar
këto programe [15].
Naive Best-First crawler algoritmi mbështet në krijimin e një vektori me fjalë të paraqitura në
dokumentin e shqyrtuar, e të renditura sipas frekuencës së paraqitjes së atyre fjalëve në
dokument. Pas kësaj, crawler-i bën llogaritjen e ngjashmërisë në bazë të kosinusit, të ueb faqes
me pyetësin apo përshkrimin e formuluar nga iniciuesi i crawler-it, dhe në bazë të saj i jep vlera
të caktuara URL-ve të pavizituara që rrjedhin nga kjo ueb faqe, duke përcaktuar kështu rëndësinë
e tyre në formë artificiale [14].
SharkSearch crawler algoritmi përdor të njëjtat masa për përcaktimin e ngjashmërisë sikurse edhe
Naive Best-First algoritmi. Mirëpo, për dallim, SharkSearch, iu jep vlerat URL-ve të pavizituara
edhe duke marr parasysh vlerat që kanë pasur URL-të paraardhëse dhe tekstet përreth linçeve
[14].
Focused crawler algoritmi i klasifikon faqet e mbledhura sipas kategorive përmes taksonomisë së
përmbajtjes së tyre [14, 16]. Në fillim ky crawler kërkon të përcaktohet taksonomia e përmbajtjes
së faqeve. Iniciuesi mund që të kyçet në proces duke krijuar kategori të reja, apo të heq ato që
________________________________________________________________________
20
4. Organizimi i të dhënave në Google 4.2 Mbledhja e informatave në ueb
mendon se nuk munt të cilësohen si të mira. Se cila faqe, cilës kategori do t’i takojë, përkatësisht
në cilën kategori do të futet përcaktohet përmes të ashtuquajturit Bayesian classifier, i cili
shfrytëzon probabilitetin për të përcaktuar se një faqe e caktuar f i takon një kategorie te caktuar
k.
Context Focused crawler algoritmi gjithashtu përdor klasifikuesit Bayesian, për t’i drejtuar
crawler-ët. Por, për dallim nga algoritmit e tjera, ky algoritëm shfrytëzon edhe vlerësimin e
distancës mes faqeve për të arritur te rezultatet e dëshiruara [14].
Crawler-ët të cilët nuk janë të dizajnuar mirë mund të hasin në shumë probleme, sidomos duke
pasur parasysh atë sasi marramendëse të të dhënave në ueb. Sipas [2], Google crawler-ët duke
provuar që të mbledhin të dhënat nëpër ueb faqet e një domeni, kishin filluar të mbledhin të
dhënat e disa skedarëve që ishin pjesë e një online loje, me ç’rast nëpër ekranet e shfrytëzuesve të
kësaj online loje kishin filluar të paraqiteshin gabime të ndryshme. Andaj, çdo crawler, i cili
mendohet të futet në përdorim në ueb, duhet të përgatitet në atë formë, që të tejkalojë edhe
objektivat shoqërore. Të marrësh informata, por të mos shkaktosh probleme.
________________________________________________________________________
21
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli
Në Figurën 9 është paraqitur një dokument i rregullt i shkruar në gjuhën HTML së bashku me
grafin përkatës të etiketave (tags).
<html> etiketa paraqet kreun e dokumentit dhe tregon se një dokument i bazuar në gjuhën HTML
pason.
Pastaj kemi pjesën <head> e cila nuk iu paraqitet vizitorëve, mirëpo kjo pjesë është
jashtëzakonisht e shfrytëzueshme për crawler-ët, pasi që në këtë pjesë vendosen titulli i
dokumentit, në kuadër të etiketës <title>, sikurse edhe etiketat <meta>, ku mund të vendoset
përshkrimi i dokumentit, apo edhe fjalët kyçe (keywords), sikurse edhe informatat për gjuhën në
të cilën është shkruar dokumenti.
Pjesa tjetër <body>, paraqet pjesën e cila do të përmbajë informatat të cilat do t’i paraqiten secilit
klient, i cili viziton këtë faqe përmes ndonjërit nga shfletuesit e ueb faqeve, që janë në
dispozicion.
Gjatë analizës së dokumenteve mund të paraqiten fjalë të cilat paraqiten aq shpesh, si lidhëzat apo
parafjalët, sa që analizuesit i injorojnë ato dhe nuk i vendosin në listat e fjalëve që i referohen
dokumenteve, gjatë indeksimit. Si shembull kemi fjalët në gjuhën shqipe si: dhe, të, do, për etj.,
apo në gjuhën angleze fjalët: an, and, by, it, can, for, from e të tjera. Procesi i mos indeksimit të
këtyre fjalëve quhet Stoplisting [14].
Gjatë indeksimit dallojmë edhe procesin Stemming, i cili mundohet që t’i reduktojë fjalët deri në
rrënjët e tyre, për të kthyer rezultate sa më të mira, si për shembull fjalët connected, connection
mund të reduktohen në rrënjën e përbashkët connect [14].
Si Stoplisting ashtu edhe Stemming, përdoren mjaft nga makinat kërkuese si gjatë indeksimit
ashtu edhe gjatë përpilimit të rezultateve.
MapReduce paraqet një model programimi me anë të të cilit përpunohen dhe gjenerohen sete të
mëdha të dhënash, brenda një kohe të arsyeshme. MapReduce përbëhet nga dy funksionet e
njohura map dhe reduce të gjuhës funksionale Lisp [17].
Map funksioni përpunon çiftet çelës/vlerë për të gjeneruar një set të ndërmjetëm të këtyre çifteve.
Më saktësisht map funksioni merr setin hyrës të çifteve çelës/vlerë dhe prodhon një set dalës të po
këtyre çifteve.
Përderisa, funksioni tjetër, reduce merr setin dalës dhe shkrin të gjitha çiftet që kanë çelësin e
ndërmjetëm të përbashkët në një të dhënë të vetme.
________________________________________________________________________
22
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli
Sipas kodit në figurën 10, map funksioni merr secilin çift çelës/vlerë dhe si rezultat kthen secilën
fjalë dhe numrin e paraqitjeve të saj, në rastin tonë ‘1’ [17].
Ndërsa, reduce funksioni gjen shumën e të gjitha numërimeve të dala nga funksioni map.
Këto funksione janë jashtëzakonisht të shfrytëzueshme sidomos gjatë krijimit të indeksit të
përmbysur.
Më këtë rast map funksioni analizon çdo dokument dhe emiton nga një çift në sekuencë <word,
docID>. Reduce funksioni pranon të gjitha rezultatet nga map funksioni dhe prodhon një çift
<word, list(docID)>. Seti i të gjitha rezultateve dalëse nga funksioni reduce formon indeksin e
përmbysur [17].
Figura 11: Pamja e përgjithshme e ekzekutimit të funksionit map dhe reduce [16]
Thirrjet e map funksionit nuk bëhen vetëm nga një makinë e klasterit, por ato distribuohen nëpër
disa makina, në mënyrë që të shkurtohet koha e realizimit të funksionit. Kjo realizohet duke i
ndarë të dhënat në M pjesë splits (split 0, split 1...). Në anën tjetër thirrjet e funksionit reduce
bëhen nga disa makina, mirëpo këtu bëhet ndarja e hapësirës së çelësave të ndërmjetëm në R
pjesë duke shfrytëzuar ndonjë funksion për ndarje [17].
Procesi fillon me ndarjen e skedarëve në M pjesë të cilat janë të madhësisë nga 16 MB deri 64
MB. Pas kësaj startohen disa kopje të programit në disa makina të klasterit. Si zakonisht, njëra
nga kopjet është master, ndërsa të gjithë të tjerët janë punëtorë të cilët kryejnë punët e dhëna nga
master kopja. Janë saktësisht M punë për map funksionin, dhe R punë për reduce funksionin [17].
Punëtori, të cilit i është ndarë njëra nga M kopjet, bën regjistrimin e çifteve çelës/vlerë. Të gjithë
çelësat e ndërmjetëm të prodhuar nga map funksioni regjistrohen në memorien punuese.
Nganjëherë, të dhënat e regjistruara në memorien punuese shkruhen në disk, i cili është i ndarë në
R regjione nga funksioni për copëtim [17].
Vendndodhja e këtyre të dhënave, i jepet në formë informate master kopjes së programit, i cili
është përgjegjës që këto të dhëna t’iu jep punëtorëve të cilët janë të ngarkuar me detyrën e
reduktimit (reduce function) [17].
________________________________________________________________________
23
4. Organizimi i të dhënave në Google 4.3 Indeksimi i uebit dhe MapReduce modeli
Pasi që punëtorët reduktues të jenë informuar më vendndodhjen e këtyre të dhënave ata përdorin
thirrjet e procedurave në largësi (remote procedure calls) për t’i lexuar këto të dhëna nga disku
apo memoria punuese [17].
Me rastin e leximit të të gjitha të dhënave të ndërmjetme, punëtorët reduktues bëjnë radhitjen e
çifteve sipas çelësit të ndërmjetëm, me qëllim grupimin e të dhënave të cilat kanë të përbashkët
çelësin e ndërmjetëm [17].
Punëtori reduktues pasi që t’i kalon të gjitha vlerat e ndërmjetme i dërgon reduce funksionit,
çelësin unik të ndërmjetëm që ka gjetur dhe setin e vlerave të ndërmjetme që i bashkëngjiten atij.
Rezultati i reduce funksionit i bashkëngjitet një skedari i cili përmban rezultatet e kësaj pjese të
reduktimit. Pasi që të kenë përfunduar të gjitha map dhe reduce funksionet e thirrura, master
kopja e lajmëron shfrytëzuesin [17].
Sa i përket gabimeve në të cilat mund të has programi, ekziston një funksion (ping) me të cilin
master kopja në mënyrë periodike i kontrollon punëtorët dhe në rast se ndonjëri nga ta nuk kthen
përgjigje, puna e paraparë për te i jepet njërit nga punëtorët të cilët janë të lirë.
Ndërsa nëse master kopja ‘vdes’, atëherë si zgjidhje mund të merret zgjedhja e ndonjërës kopje
aktive të programit për master, në mënyrë që të udhëheq me punët aty ku kanë mbetur. Mirëpo në
Google, preferojnë që të ndërpresin tërë operacionin MapReduce me rastin e ‘vdekjes’ së Master
kopjes, meqë ‘vdekja’ e master kopjes shihet si dukuri e rrallë [17].
________________________________________________________________________
24
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve
Kapitulli 5
5 Rezultatet e kërkimit
Makinat e sotme kërkuese, edhe pse larg ideales që të ofrojnë rezultatet e qëlluara të kërkimit
përmes disa fjalëve kyçe, janë në rrugë të mbarë për të kuptuar nevojat e njerëzve.
Duke pasur parasysh, se uebi paraqitet si një bazë e madhe e të dhënave (më e madhja e njohur),
kërkimi për informacion na detyron qasjen e kërkimit, të ngjashme me atë të pyetësorëve që
realizohen nëpër bazat e të dhënave.
Përmes fjalëve kyçe që iu ofrojmë makinave kërkuese, rrjedhin edhe rezultatet e kërkimit.
Makinat kërkuese ekzekutojnë pyetësorët në bazat e tyre të të dhënave duke kërkuar mu këto fjalë
kyçe nëpër dokumentet e deponuara në rezervuarët e sistemit [2]. Natyrshëm, rezultatet
preliminare të renditura së pari në rezultatet e kërkimit (për disa makina kërkuese këto janë edhe
rezultate finale) do të jenë ato dokumente që do të përmbajnë fjalë që janë më së afërmi të
përshtatshme me fjalët kyçe, dhe dokumentet, në të cilat afërsia fizike në mes të fjalëve kyçe
është e vogël. Pastaj vijnë rezultatet nga dokumentet në të cilat fjalët kyçe gjenden në të njëjtin
dokument, mirëpo nuk janë afër njëra tjetrës, dhe së fundmi rezultatet nga dokumentet që
përmbajnë vetëm ndonjërën nga fjalët kyçe apo jo të gjitha fjalët nga vargu i fjalëve kyçe [2].
Në prapavijën e Google, fjalët kyçe përdoren për të formuluar pyetësorin. Të gjitha fjalët kthehen
në wordID. Si hap i ardhshëm kërkohet nëpër barelat e listës së dokumenteve për fjalët kyçe, dhe
fillon kërkimi nëpër dokumente derisa të gjendet përshtatja ndërmjet fjalëve kyçe dhe fjalëve që
përmbahen në dokumente [2].
Shumica e makinave kërkuese, kërkimin e parë e bëjnë nëpër barelat që përmbajnë të dhëna mbi
tekstin përreth linçeve, titujt e dokumenteve dhe etiketave (tags) meta. Pas kësaj, nëse nuk ka
rezultate të mjaftueshme fillohet me kërkimin e përgjithshëm nëpër dokumente. Kjo bëhet për
arsye efektshmërie, meqë barelat me informatat si ato më lartë janë më të vogla në madhësi dhe
kërkimi mund të kryhet më shpejtë, dhe pa e ngarkuar shumë sistemin [2].
________________________________________________________________________
25
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve
Përveç përdorimit të fjalëve kyçe për të gjetur informatat e dëshiruara ekzistojnë edhe teknika të
shumta, me anë të të cilave ne bëjmë filtrime të ndryshme në kërkim me qëllim gjetjen e
informatave sa më të sakta dhe relevante [18].
Nëse dëshirojmë që makina kërkuese të na kthej vetëm dokumentet të cilat, përmbajnë të gjitha
fjalët kyçe që kemi përdorur në fushën e kërkimit, atëherë sikurse edhe te çdo sintaksë e
pyetësorëve mund të përdoren operatorët AND dhe + si
Në rast se shtypim, po e zëmë vetëm George në fushën e fjalëve kyçe, është shumë e mundshme
që të kemi përplot rezultate me dokumente që i referohen presidentit amerikan George Bush. Për
t’i eliminuar rezultatet që kanë të bëjnë me presidentin amerikan, në mënyrë që të kemi rezultatet
që kanë të bëjnë me George-t tjerë na mjafton të shkruajmë:
“Universiteti i Prishtinës”
makina kërkuese do të kuptojë se ne dëshirojmë t’i shohim vetëm dhe vetëm dokumentet që e
përmbajnë kompozicionin e fjalëve në të njëjtën mënyrë. Më këtë jo që kemi mënjanuar rezultatet
për dokumentet që përmbajnë vetëm njërën nga fjalët, por edhe rezultatet me dokumentet që
mund të kenë fjalët si Universiteti Prishtinës, apo Universiteti i Prishtina.
Ka edhe teknika tjera filtruese si në rastet kur e dimë se fjala jonë kyçe gjendet në kuadër të URL-
së së ueb sajtit që dëshirojmë ta vizitojmë, me ç’rast eliminojmë rezultatet me dokumentet që e
përmbajnë atë fjalë kyçe. Si shembull, rastet kur nuk jemi të sigurt për URL-në e Kuvendit të
Kosovës shkruajmë në fushën e kërkimit
allinurl: kuvendi
Në këtë rast Google do të na i kthej të renditura më së larti ueb faqet e Kuvendit të Kosovës, dhe
me gjasë edhe të Kuvendit të Shqipërisë, nëse pjesë e URL-së së ueb sajtit të Kuvendit të
Shqipërisë është fjala kyçe kuvendi.
Në rastet kur dëshirojmë të shohim vetëm rezultatet të cilat përmbajnë vetëm një tip të veçantë të
skedarëve si shembull .pdf skedarët, atëherë shkruajmë
pdf: tatimet
________________________________________________________________________
26
5. Rezultatet e kërkimit 5.1 Analiza e pyetësorëve dhe përpilimi i rezultateve
Sipas [7], një bazë e lidhur e të dhënave (si fjalorët, uebi, rastet e gjykatave etj.) mund të
paraqiten si graf i drejtuar i N nyjeve, ku secila nyje korrespondon me ndonjë ueb dokument dhe
ku lidhjet e drejtuara në mes nyjeve korrespondojnë me linçet nga një dokument në tjetrin. Një
nyje e caktuar përmban një grumbull linçesh që na drejtojnë drejt nyjeve ‘fëmijë’, dhe një
grumbull linçesh që na drejton praptazi te nyjet ‘prind’, sic është paraqitur ne Figuren 12.
Figura 12: Relacioni në mes tri dokumenteve të linçuara ndërmjet veti [7]
Në figurën 12 kemi thjeshtësuar problemin në tri ueb dokumente. Themi se ueb faqja B dhe C
kanë linçe të drejtuara përpara drejt ueb faqes ‘fëmijë’ A, dhe themi se ueb faqja A ka dy linçe të
drejtuara praptazi drejt ueb faqeve ‘prind’ B dhe C.
Metoda e renditjes së rezultateve sipas PageRank, bazohet parimisht në numërimin e thirrjeve nga
dokumentet tjera, mirëpo kjo metodë është më komplekse sesa vendosja e vlerave në bazë të
numrit të thirrjeve. Në rastin më të thjeshtë dokumenti A i cili ka N thirrje të drejtuara praptazi do
të kishte rangun r(A) = N [7].
________________________________________________________________________
27
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit
α ⎛ r ( B1 ) r ( Bn ) ⎞
r ( A) = + (1 − α )⎜⎜ + ... + ⎟, (1)
N ⎝ | B1 | | Bn | ⎟⎠
ku me B1,..., Bn kemi shënuar të gjitha linçet e drejtuara praptazi (backlinks) nga faqja A, me
r(B1),...,r(Bn) kemi paraqitur rangjet e faqeve B1,..., Bn, ndërsa |B1|,..., |Bn| paraqesin numrin e
linqeve që janë të drejtuara jashtë nga këto faqe (forward links). α është një konstantë në
intervalin [0, 1] dhe N është numri i të gjitha faqeve në ueb [7]. Sikurse edhe tek rangu sipas
numrit të thirrjeve, siç edhe shihet nga relacioni rangu i faqes A do të rritet varësisht nga numri i
linçeve të drejtuara praptazi nga faqja A. Mirëpo, sipas kësaj metode, thirrjeve nga linçet e
drejtuara praptazi të cilat kanë rang më të lartë iu jepet rëndësi më e madhe sesa thirrjeve nga
linçet e drejtuara praptazi të cilat kanë rang më të ulët. Si shembull që rrjedh nga ky përkufizim
mund të merret fakti se një ueb faqe e cila ka vetëm një linç të drejtuar praptazi në një ueb faqe
me rang të lartë, do të ketë rang më të lartë, se një ueb faqe e cila ka shumë linçe të drejtuara
praptazi, e të cilat janë me rang më të ulët. Kjo edhe e bën të dallueshme këtë metodë të
përcaktimit të rangut nga metodat që bazohen në numërimin e thirrjeve.
Rangu i një faqeje mund të interpretohet si probabilitet që një vizitorë do të jetë në atë faqe pasi
që ka përcjellë disa linçe. Konstantja α në formulë interpretohet si probabilitet se një vizitor do të
kërcej në mënyrë të rastësishme në një ueb faqe, në vend se të përcjell linçet [7].
Figura 13: Diagrami i tri dokumenteve me vlerat e rangut sipas algoritmit [7]
Rangu i faqeve mund të llogaritet duke përdorur një algoritëm, i cili korrespondon me një eigen-
vektor (vektor, anëtarët e të cilit janë funksione) të një matrice të normalizuar e që përmban linçet
e uebit.
Të supozojmë se r = 0. Dokumenti A ka një linç të drejtuar praptazi në dokumentin C, dhe ky
është linçi i vetëm i drejtuar përpara nga dokumenti C, nga kjo rrjedh
Dokumenti B ka një linç të vetëm të drejtuar praptazi në dokumentin A, por ky linç është njëri nga
dy linçet e drejtuara përpara nga dokumenti A, nga rrjedh
________________________________________________________________________
28
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit
Në figurën 13, ueb faqeve iu janë dhënë vlerat e rangjeve si vijon r(A) = 0.4, r(B)=0.2 dhe r(C) =
0.4. Edhe pse vlera e zakonshme e konstantës α është e përafërt me 0.1, këtu është marrë α = 0.5.
Numri i faqeve N është 3. Duke shfrytëzuar relacionin kryesor fitojmë sistemin e ekuacioneve
Zgjidhja e këtij ekuacioni është r(A) = 14/39, r(B) = 10/39 dhe r(C) = 15/39, nga ku na del se ueb
faqja C ka rangun më të lartë.
Meqë uebi nuk përbëhet nga vetëm tri ueb faqe, duket se aplikimi i këtyre formulave për
llogaritjen e rangjeve të miliarda ueb faqeve bëhet i pamundshëm. Mirëpo, meqë nuk nevojitet
ndonjë llogaritje precize në rastin tonë, mund të shërbehemi me formula të thjeshtuara, të cilat do
të jepnin vlera të përafërta.
Modeli i gjetjes së këtyre vlerave nuk është edhe aq i thjeshtë, dhe përfshin (a) një vektor iniciues
p0 N-dimensional të shpërndarjes së probabilitetit, ku secili anëtarë p0[i] jep probabilitetin fillestar
se një vizitor i rastësishëm do të filloj vizitën në një nyje i, dhe (b) një matricë transitore të
probabilitetit A, të rangut NxN, ku secili anëtarë A[i][j] jep probabilitetin se një vizitor do të
zhvendoset nga nyja i në nyjën j [7].
Grafi i shpërndarjes së probabilitetit, pasi që vizitori të përcjell një linç do të jetë p1 = Ap0, dhe
pasi që të përcjell dy linçe p2 = Ap1 = A2p0. Duke supozuar se relacioni do të konvergjojë, do të
kemi relacionin
p∞ = lim A n p0 , (6)
n →∞
Problemi paraqitet me ueb faqet të cilat nuk përmbajnë linçe, dhe me këtë bëjnë që të rritet faktori
α. Kështu që, rangu r[i] i një nyje i mund të definohet si funksion i gjendjes stabile të
shpërndarjes së probabilitetit. Në mënyrë më të thjeshtë rangu mund të definohet si r[i] = p∞[i],
që është një metodë e barasvlershme me relacionet e nxjerra më parë.
p∞ [i ]
r[i ] = log (7)
min
{ p∞ [k ]}
k ∈ [1, N ]
________________________________________________________________________
29
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit
Ky relacion i jep vlerën 0 nyjës më së paku të rëndësishme, dhe e rrit vlerën për 1 për çdo shkallë
më të lartë të rangut.
Figura 14 paraqet një manifestim të metodës kompjuterike për llogaritjen e rangut të rëndësisë për
N nyje të lidhura të një baze të lidhur të të dhënave [7]. Në hapin 101 të prezantuar në figurën 14,
është zgjedhur një vektor N-dimensional iniciues p0. Në hapin 103, në pajtim me formulën e
gjendjes stabile për p∞, llogaritet pn = Anp0. Matrica A e rangut NxN, që është matricë transitore e
probabilitetit, paraqitet me elementet A[i][j], që tregojnë probabilitetin e zhvendosjes nga nyja i
në nyjën j. Në hapin 105 përcaktohet rangu r[k] për nyjën k, nga anëtari i k-të i vektori pn.
α
A= 1 + (1 − α ) B , (8)
N
________________________________________________________________________
30
5. Rezultatet e kërkimit 5.2 Renditja e rezultateve të kërkimit
pa përcjellë linçet, N numri i nyjeve, ndërsa B është një matricë elementet e së cilës B[i][j] janë të
dhëna si vijon
⎧1
⎪ nëse ⋅ nyja ⋅ i ⋅ drejton ⋅ në ⋅ nyjen ⋅ j
B[i ][ j ] = ⎨ ni (9)
⎪⎩ 0 ⋅ rastet ⋅ tjera
ku ni është numri i përgjithshëm i linçeve të drejtuara përpara nga një nyje i [7].
(1 - α) luan rolin e faktorit të frenimit, i cili kufizon hapësirën përmes së cilës rangu i një
dokumenti mund të trashëgohet nga dokumentet fëmijë. Konstantja α zakonisht e ka vlerën 15%,
andaj faktori (1 - α) rrjedhimisht ka vlerën 0.85 [7].
Përveç faktorëve që përmendëm, po ashtu në shqyrtim gjatë renditjes së rezultateve merren edhe
faktorë të tjerë. Për shembull, mund të vijmë në përfundim se në shumicën e rasteve faqja e parë e
një ueb sajti është më e vizituara, dhe të supozojmë se edhe është më së larti e renditur në
rezultatet e kërkimit. Atëherë, cilado ueb faqe që mund të ketë linçin në faqen e parë do të ketë
rangun më të lartë të trashëguar nga faqja e parë sesa ueb faqet tjera, të cilat nuk kanë linçet e tyre
në faqen e parë.
Pastaj, linçet të cilat janë mjaft të dukshme në maje të faqes, me shkronja të mëdha, a me madhësi
të fontit më të madh iu jepet rëndësi më e madhe se ndonjë linçi që nuk është edhe aq i dukshëm.
Rëndësi e veçantë iu jepet edhe teksteve përreth linçeve (anchors), pasi që shpeshherë ato
përshkruajnë ueb faqen më mirë se vetë materiali që ajo ueb faqe përmban.
Në një eksperiment të bërë në vitin 1998 nga themeluesit e Google për fjalët kyçe “bill clinton”,
rezultatet e kthyera nga makina kërkuese, e cila mbështetej në bazën e të dhënave me më se 24
milion ueb faqe të indeksuara, ishin befasuese. Në figurën 15 janë paraqitur rezultatet e këtij
kërkimi [2].
Sipas këtij eksperimenti, rezultatet e renditura më së larti janë njëkohësisht edhe më relevantet.
Shohim, ndër rezultatet e para paraqiten ueb faqet që janë në kuadër të ueb sajtit të Shtëpisë së
Bardhë, pastaj linçi që na drejton tek posta elektronike e presidentit. Ndërsa më poshtë janë
paraqitur faqet më pak relevante si ueb faqet jozyrtare të admiruesve të tij apo edhe shkrimet e
ndryshme diskredituese për presidentin.
________________________________________________________________________
31
5. Rezultatet e kërkimit 5.3 Efektshmëria e sistemit
Figura 15: Rezultatet e kërkimit të kthyera nga Google për fjalët kyçe bill clinton [2]
Për të demonstruar këtë veçori superiore të Google ndaj makinave tjera kërkuese do t’i
komentojmë disa nga rezultatet e mara nga kërkimet në Google dhe Altavista [3].
Në këtë eksperiment është përfshirë kërkimi përmes fjalëve kyçe që gjenden në kuadër të bazës së
të dhënave që përmban titujt e dokumenteve, e që ka të regjistruara rreth 16 milion dokumente
[3].
________________________________________________________________________
32
5. Rezultatet e kërkimit 5.4 Google dhe makinat tjera kërkuese
Për fjalën kyçe university, shohim rezultatet e kërkimit nga të dyja makinat në figurën e
mëposhtme, ku në anën e majtë janë paraqitur rezultatet e kërkimit të Google, ndërsa në të
djathtën rezultatet e kërkimit të Altavista.
Figura 16: Rezultatet e kërkimit për fjalën kyçe universit, të kthyera nga Google (majtas) dhe
Altavista(djathtas)
Shihet qartë se në rezultatet e paraqitura nga Google prijnë universitetet amerikane me renome
botërore si Stanford University, University of Illinois, Indiana University etj., përderisa Altavista
e ka parë të arsyeshme që me kërkimin për fjalën kyçe university, t’i jep rëndësi më të madhe
departamentit të fizikës optike në Universitetin e Oregonit, sesa ueb faqeve fillestare të
universiteteve, apo edhe vet faqes fillestare të Universitetit të Oregonit.
________________________________________________________________________
33
5. Rezultatet e kërkimit 5.4 Google dhe makinat tjera kërkuese
e tretë është paraqitur ueb portali i Qeverisë së Kosovës. Në anën tjetër, Yahoo dhe WebSearch,
nuk kanë paraqitur këto dy ueb faqe, e as rezultate të përafërta me to, as në 10 rezultatet e para të
këtij kërkimi.
Figura 17: Rezultatet e kërkimit për fjalën kyçe qeveria, të kthyera nga Yahoo (lartë-majtas), Google (lartë-
djathtas), MSN Search (poshtë-majtas) dhe WebSearch (poshtë-djathtas)
________________________________________________________________________
34
6. Si të mashtrohet Google? 6.1 Teknikat për manipulimin e rezultateve të kërkimit
Kapitulli 6
6 Si të mashtrohet Google?
Meqë, siç thamë edhe në kapitullin e kaluar, Google i jep rëndësi të madhe teksteve përreth
linçeve (anchors), duke i pranuar ato si përshkruesit më të mirë të një ueb faqeje të caktuar, nga
kjo rrjedh që sa më koherent të jetë teksti përreth linçeve, aq më lartë në renditjen e rezultateve do
të vendoset ajo ueb faqe [19].
Do të themi se një Google Bomb është krijuar, nëse një numër i madh ueb faqesh përmban linçin
me përshkrim koherent drejt një ueb faqeje të caktuar (ueb faqes e cila është cak i këtij
manipulimi) [19].
Ndër Google Bomb-at më të njohura, dhe ndoshta edhe më me ndikim, ishte ajo që kishte të bënte
me presidentin amerikan George W. Bush. Në shumë ueb faqe, në atë kohë, do të mund të gjenit
linçet me përshkrimin miserable failure (dështim fatkeq), të cilat të drejtonin në ueb faqen që
përmbante biografinë e presidentit amerikan Bush, e që ishte në kuadër të ueb sajtit zyrtar të
Shtëpisë së Bardhë [19].
Edhe përkundër presioneve të mëdha mbi Google për të hequr nga rezultatet e kërkimit këtë linç,
Google vendosi që t’i qëndrojë besnik algoritmit PageRank, duke u arsyetuar se kjo është vetëm
reflektim i opinionit publik në internet [19].
George W. Bush, nuk ishte caku i vetëm i të pasionuarve pas Google Bomb, kryeministrin
britanik do të mund ta gjenit të renditur të parin në rezultatet e kërkimit për fjalën kyçe liar
(rrenacak).
________________________________________________________________________
35
6. Si të mashtrohet Google? 6.1 Teknikat për manipulimin e rezultateve të kërkimit
Cikli jetësor i një Google Bomb-e përfundon kur ajo të bëhet e popullarizuar, dhe kur të
përmendet në ueb sajtet e njohura apo edhe nëpër media [19].
E gjithë historia e Google Bomb-ave duket ta ketë parë fundin në janar të këtij viti, kur Google
lajmëroi se përmes disa përmirësimeve që ka bërë në algoritëm do të minimizohet efekti i kësaj
teknike. Pas ca ditësh nga ky lajmërim, ishte e pamundur të gjinden në rezultatet e kërkimit të
Google linçet e famshme që i drejtonin vizitorët drejt faqeve të presidentit amerikan apo
kryeministrit britanik [19].
Mirëpo, jo këtu përfundon historia e manipulimit të rezultateve të kërkimit. Sot, kudo në botë janë
themeluar kompani të shumta që merren me biznesin e optimizmit të makinave kërkuese, ose më
mirë thënë me manipulimin e rezultateve të kërkimit. Çdokush që dëshiron t’i radhitet ueb sajti në
rendin e parë të rezultateve, do të mund t’iu drejtohej SEO (Search Engine Optimization)
kompanive, që këtë ta bëjë pa investuar edhe aq shumë [20]. Bile, profiti që do të vilet si rezultat i
shtimit të numrit të vizitorëve në ueb sajt, dhe me këtë edhe rritja e shitjes online i mbulojnë, e
edhe i tejkalojnë investimet për të qenë i pari në rezultatet e Google.
Te optimizimi i makinave kërkuese dallojmë teknikat e ashtuquajturat ‘kapela e bardhë’ dhe
‘kapela e zezë’ [20].
Me të parën nënkuptohet arritja e synimeve përmes teknikave të ndershme dhe të përkrahura nga
makinat kërkuese. Vetë Google ka dhënë njoftimin për të gjithë ata që janë të interesuar të
renditen sa më lartë në rezultatet e kërkimit, se përmes përmbushjes së disa kritereve, ueb faqet e
tyre do të renditen sa më lartë nëpërmjet algoritmit PageRank [20]. Ndër kriteret që kërkohen janë
freskimi sa më i madh i informatave në ueb faqe, pra, nga ky kriter pësojnë ueb faqet statike.
Pastaj, projektimi i linçeve, i tillë që të mos shkaktojë konfuzionin e crawler-ëve, siç është rasti
me spider trap [21].
Në anën tjetër, ‘kapela e zezë’, nënkupton shfrytëzimin e teknikave të cilat nuk përkrahen nga
makinat kërkuese, ku bënë pjesë, në rend të parë, teknika spamdexing. Këtu përdoren mënyra të
ndryshme për arritjen e qëllimit si fshehja e tekstit në fillim të faqeve. Në këtë tekst zakonisht
paraqiten fjalët kyçe dhe të dhëna të tjera, të cilat indeksohen nga makinat kërkuese, por nuk
shihen nga vizitorët. Fshehja e tekstit bëhet në mënyra të ndryshme, duke i dhënë atij ngjyrën e
njëjtë si të prapavijës së ueb faqes, apo vendosjen e tekstit në kuadër të etiketave <div>, të cilat e
kanë opsionin që të fshihen nga sytë e vizitorëve. Pastaj, teknikat si cloaking, me ç’rast i jepet
një version i ueb faqes crawler-ëve, e një tjetër version iu paraqitet shfrytëzuesve [20].
Gjithsesi, teknikat e ‘zeza’ janë nën mbikëqyrjen e plotë të makinave kërkuese. Makinat kërkuese
marrin masa të rrepta ndaj ueb faqeve të cilat mundohen t’i thyejnë rregullat e lojës.
________________________________________________________________________
36
6. Si të mashtrohet Google 6.2 Teknikat mbrojtëse kundër mashtrimeve
Google Bomb-ën miserable failure. Kjo u realizua ashtu që u krijuan qindra ueb faqe që
përmbanin linçet me përshkrimin miserbale failure, por kësaj radhe të drejtuara në caqe tjera, në
rend të parë kundër figurave të partisë demokratike në SHBA. Kjo balancoj disi rezultatet e
kërkimit [19].
Në anën tjetër, makinat kërkuese ndërmorën fushatë të egër kundër ‘kapelave të zeza’, duke i
bërë SEO kompanitë të pendohen për të bëmat e tyre në të kaluarën. Google, si prijës i këtij
procesi, ndërmori hapa, përmes të cilave ndëshkoi rëndë ueb faqet që përdornin këto teknika duke
i eliminuar tërësisht nga indeksi i ueb faqeve, të gjitha ueb faqet në të cilat është gjetur material
që do të mund të shkaktonte spamdexing [20].
Mjaft është përfolur edhe për teknikën Sandbox, për të cilën në Google mohojnë ta kenë përdorur.
Sipas kësaj teknike, domenet e regjistruara rishtazi, apo domenet që ndërrojnë shpesh pronarin,
edhe pse të indeksuara nuk paraqiten në rezultatet e kërkimit, për një kohë të caktuar, përderisa
Google të vërtetojë se ueb sajti është serioz, ose së paku është krijuar me qëllime serioze. Kjo
teknikë duket të mos i ketë ndikuar rezultatet e kërkimit të makinave tjera kërkuese [22].
Lufta kundër përfituesve jo të ndershëm tashmë ka filluar, përderisa Google duket të jetë mjaft
vigjilent në përcjellje të këtyre zhvillimeve, dhe në ndërmarrjen e masave ndëshkuese, kundrejt
gjithë atyre që nuk janë konform rregullave.
________________________________________________________________________
37
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese
Kapitulli 7
7 E ardhmja e makinave kërkuese
Drejtimet e zhvillimit që tani po marrin makinat kërkuese, ofrojnë hapësirë për projektim më të
mirë të vetive të tyre semantike. Në garën globale për të qenë në krye të tabelës së klasifikimeve
për makinat kërkuese, po imponohet nevoja për zhvillimin e kuptueshmërisë apo të inteligjencës
artificiale për makinat kërkuese, dhe jo vetëm për to. Google është duke e mbajtur primatin si
makinë kërkuese, vetëm duke u vlerësuar si makina më e mirë kërkuese në aspektin e
kuptueshmërisë së kërkesave njerëzore, dhe kthimin e përgjigjeve në mënyrën më të afërt me
perceptimin njerëzor [5]. Por, është e qartë se Google është larg të qenit ëndrrës, për një
bashkëpunim inteligjent makinë-njeri.
Strukturat mikroskopike dhe idiomat në ueb kanë vënë themelet e tyre në hulumtimet për
kërkimet në ueb. Përpjekje të shumta janë duke u bërë në hulumtimet për çmontimin e ueb faqeve
nëpër regjione të vogla e të definuara më mirë, ashtu që të arrihet deri te ndonjë përfundim logjik
nga frazat dhe fjalitë e nxjerra [16].
Informatat e nxjerra në këtë mënyrë po integrohen së bashku me bazat e tjera të njohurive si
fjalorët, katalogët e ndryshme të domeneve të veçanta e të tjera, sikurse edhe të dhënat e nxjerra
nga burime të ndryshme po ndërthuren së bashku për t’iu qasur problemeve të informacionit. E
gjithë kjo po arrihet përmes XML-it, duke shfrytëzuar strukturën e tij për t’i paraqitur të dhënat
në njërën anë, dhe për t’i përshkruar ato të dhëna përmes meta të dhënave që XML disponon. Kjo,
njëherit po e bën më të thjeshtë dhe më të lehtë shkëmbimin e të dhënave ndërmjet bazave të
njohurive [16].
Duke supozuar se një analisti i duhet ta mbaj të azhurnuar një bazë të të dhënave ku regjistrohen
ndryshimet në departamentin e burimeve njerëzore në një kompani, dhe se shablloni i
informatave në bazën e të dhënave jepet në formën “X ka zëvendësuar Y në pozitën P të
kompanisë K”. Këtë vështirë se do ta gjenim duke kërkuar përmes fjalëve kyçe të formuluara në
pyetësor, pasi pyetësorët e bazuar në fjalë kyçe zakonisht kërkojnë për një entitet të specifikuar
përmes një emri apo grupi emëror. Këta pyetësorë nuk janë të konstruktuar për të bërë kërkime
apo filtrime në bazë të shablloneve ku në mes të anëtarëve kyç ekziston një relacion, emrat e të
cilëve do të duhej të nxirreshin nga një dokument i caktuar [16].
Këto janë probleme bazike në nxjerrjen e informacionit. Zakonisht, hasim në forma përplot me
fusha të cilat duhet mbushur me të dhëna, në mënyrë që ato të krahasohen me shabllonet
përkatëse në kuadër të një dokumenti. Një hap para drejt nxjerrjes së informatave, janë vetë
makinat kërkuese, të cilave kryejnë detyrat si nxjerrja e të dhënave që kanë të bëjnë me URL-në
e ueb faqes, pjesëzat e nënvizuara të dokumentit e të tjera.
Pjesë më e komplikuar në këtë drejtim është nxjerrja e shënimeve si për shembull për një punim
përplot me citate. Kjo është gjë e lehtë nëse i referohemi listës së referencave, mirëpo duket
shumë e komplikuar nëse do të duhej t’i nxirrnim këto të dhëna nga vetë brendia e punimit, ku
emrat e autorëve mund të jenë shkurtuar, viti i publikimit të librit që është cituar mund të
________________________________________________________________________
38
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese
paraqitet me vetëm dy numra, dhe nuk ekziston ndonjë standard i caktuar se me çfarë fonti duhen
të shkruhen apo në çfarë forme [16].
Kuptimi i porosive duket të jetë pjesa më së vështiri e realizueshme sa i përket nxjerrjes së
informacionit. Këtu bënë pjesë si shembull nxjerrja e një tregimi të një zhanri të caktuar nga
artikujt e lajmeve.
Teknikat e nxjerrjes së informatave mund të bazohen në vetitë e induksionit të rregullave apo të
mësimit statistikor, çfarë edhe ofron modeli i fshehtë i Markov-it (HMM) për makinat e gjendjes
fundore (finite-state machines). Një HMM është makinë e gjendjes fundore me mundësi
tranzicioni probabil në një set gjendjesh Q. Kjo makinë fillon me një gjendje fillestare qI dhe
zhvendoset rastësisht nga një gjendje në tjetrën derisa të arrij gjendjen e fundit qF. Në çdo gjendje
ajo hedh nga një monedhë të shumanshme për të vendosur se cilin linç ta përcjell nga gjendja e
tanishme. Përmes formulës së probabilitetit Pr(q→q’) jepet probabiliteti i zhvendosjes nga
gjendja q në gjendjen q’. Po ashtu ekziston edhe një shpërndarje polinomiale e termave që i
shoqërohet secilës nyje, e që janë pjesë e një seti të përgjithshëm Σ të simboleve dalëse.
Probabiliteti Pr(q↑σ) shfaq mundësinë që simboli σ të emitohet si simbol dalës kur makina të jetë
në gjendjen q. Vargu i simboleve dalëse të HMM makinës është x = x1x2...xl$ ($ është simboli
dalës përmbyllës që ka probabilitetin një se do të paraqitet kur makina ta arrij gjendjen e fundme)
[16].
Figura 18: Modeli i Markov-it për nxjerrjen e informatave nga një punim hulumtues [23]
Në figurën 18 është paraqitur diagrami i tranzicionit të gjendjeve për një ballinë të një punimi
hulumtues, e ku përfshihen titulli, autorët, e-mail adresat e tyre, abstrakti etj.
Përveç nxjerrjes së informatave, edhe përpunimi i gjuhës natyrale hyn në zhvillimet e vetive
semantike të makinave kërkuese. Teknikat e paraqitura për përpunimin e gjuhëve natyrale arrijnë
që me mjaftë saktësi t’i analizojnë fjalitë në shumë gjuhë të botës. Në mënyrë që kjo teori të
avancohet edhe më tutje duhet që të krijohen leksikone me fjalë të cilat janë të ndërlidhura në një
rrjet leksikor [16].
WordNet, një fjalor anglisht, ka arritur që të krijojë një rrejt të tillë leksikor. Në këtë rrjet
konceptet unike janë të paraqitura si nyje të quajtura synsets (synonim sets) në një numër grafesh.
Nga një graf për secilën pjesë të ligjeratës. Në secilin graf, synsets janë të lidhura përmes nyjeve
të etiketuara. Grafi i emrave është grafi më i pasur me linqe, meqë në kuadër të tij gjenden
hiponimet (është i llojit të) dhe metonimet (është pjesë e). Këto grafe mund të ju dalin shumë në
ndihmë makinave kërkuese në perceptimin e kërkesave të shfrytëzuesve, edhe pse fjalët e
shumëkuptimta vazhdojnë të paraqesin problem për digjitalizimin e gjuhëve [16].
________________________________________________________________________
39
7. E ardhmja e makinave kërkuese 7.1 Zhvilimi i vetive semantike te makinat kërkuese
Një qasje më të përafërt me realitetin e tanishëm e ofrojnë [24], të cilët propozojnë një teori, me
anën e së cilës do të matej distanca e ngjashmërisë në mes fjalëve. Kjo teori mund të përkufizohet
me analizimin e thjeshtimit në vijim. Kemi dy fjalë të çfarëdoshme x dhe y. Gjatësia e programit
më të shkurtër binar i cili bën llogaritjen, dhe në dalje fiton y, nga hyrja x quhet distancë e
informatës dhe shënohet me E(x, y).
ku K(x, y) është gjatësia binare e programit më të shkurtër që prodhon palën x dhe y, dhe jep
idenë se si mund të ndahen ato.
Si rrjedhojë e kësaj lind distanca e normalizuar e informacionit NID (Normalized Information
Distance), e cila llogaritet përmes formulës
K ( x, y ) − min( K ( x), K (Y ))
NID ( x, y ) = (11)
max( K ( x), K ( y ))
dhe mund të ketë vlerat nga 0 deri 1. Përmes kësaj formule nxjerrim distancën e informatës të
dhënë në intervalin nga 0 në 1 [24].
Për shkak se kjo teori bazohet në teorinë komplekse të Kolmogorovit, e cila është e
pallogaritshme, as NID nuk mund të llogaritet. Mirëpo, ekzistojnë forma të ndërmjetme që na
mundësojnë llogaritjen e këtij koeficienti [24].
NCD (Normalized Compression Distnace) apo distanca e normalizuar e ngjeshjes, përdoret si
zëvendësim për llogaritjen e distancës së informacionit. Duke përdorur C(x) dhe C(y) për të
paraqitur gjatësinë e versionit të ngjeshur të fjalëve x dhe y arrijmë te formula
C ( xy ) − min(C ( x), C ( y ))
NCD ( x, y ) = (12)
max(C ( x), C ( y ))
ku K(x, y) është zëvendësuar me C(xy). Mirëpo, në Google përdorin një metodë tjetër për këtë
njehsim. Sipas kodit mbi të cilin është zhvilluar Google makina kërkuese, kjo distancë llogaritet
përmes formulës 13
e cila quhet NGD Google distanca e normalizuar. Në këtë formulë me G(x) kuptohet gjatësia më e
vogël e prefiks-kodit për një fjalë të caktuar, pasi që te Google, me x shprehet më shumë emri i
një objekti sesa vetë objekti. Rangu i vlerave të NGD është në mes 0 dhe pakufi [24].
Do të marrim një shembull për të ilustruar këtë dukuri. Sipas eksperimenteve të [24], nëse
kërkojmë në Google për fjalën kyçe horse na kthehen 46.700.000 rezultate. Për fjalën kyçe rider
do të na kthehen 12.200.000 rezultate. Ndërsa, nëse i fusim të dyja bashkë në fushën e kërkimit
do të kemi 2.630.000 rezultate. Nga kjo rrjedh
Vijmë në përfundim se nëse merren parasysh këto llogaritje, makinat kërkuese do të jenë në
gjendje që në mënyrë intuitive t’ia ‘qëllojnë’ se çfarë po kërkojnë shfrytëzuesit.
________________________________________________________________________
40
8. Përfundimi Google, si funksionon dhe si të mashtrohet
Kapitulli 8
8 Përfundimi
Marrë parasysh të gjeturat e eksperimenteve dhe hulumtimeve, sikurse edhe duke u mbështetur në
literaturën e gjerë mbi makinat kërkuese, arrijmë në përfundim se makinat kërkuese janë një
teknologji mjaft e përdorur në ueb nga individët e të gjitha lëmive. Në bazë të po këtyre gjetjeve
arritëm ta paraqesim një pasqyrë të qartë mbi funksionimin e makinave të sotme kërkuese, duke
iu përmbajtur objektivave të paraqitura në fillim, për shpjegimin detaj të rrjedhës së funksionit të
makinës deri tani më të përsosur dhe më të shfrytëzueshme në ueb.
________________________________________________________________________
41
Shtesat Lista e figurave
Shtesat
Lista e figurave
Figura 1: Grafi i rritjes së numrit të ueb faqeve .............................................................................. 4
Figura 2: Klaster arkitektura (stendat) e Google ............................................................................. 6
Figura 3: Arkitektura e sistemit të skedarëve të Google ................................................................. 9
Figura 4: Kontrolli i shkrimit dhe rrjedha e të dhënave ............................................................... 11
Figura 5: Një pjesë e tabelës të BigTable, që ruan të dhënat për ueb faqe13
Figura 6: Arkitetktura e nivelit të lartë të Google makinës kërkuese ............................................ 15
Figura 7: Indekset e avancuara dhe të përmbysura dhe leksikoni ................................................. 17
Figura 8: Rrjedha e një crawler-i të thjeshtë sekuencial................................................................ 18
Figura 9: Një faqe e bazuar në HTML dhe struktura përkatëse .................................................... 21
Figura 10: Pseudokodi i funksionit map dhe reduce ..................................................................... 22
Figura 11: Pamja e përgjithshme e ekzekutimit të funksionit map dhe reduce............................. 23
Figura 12: Relacioni në mes tri dokumenteve të linçuara ndërmjet veti ....................................... 27
Figura 13: Diagrami i tri dokumenteve me vlerat e rangut sipas algoritmit.................................. 28
Figura 14: Rrjedha e një manifestimi të bazuar në invencionin .................................................... 30
Figura 15: Rezultatet e kërkimit të kthyera nga Google për fjalët kyçe bill clinton...................... 32
Figura 16: Rezultatet e kërkimit për fjalën kyçe universit, të kthyera nga Google (majtas) dhe
Altavista(djathtas)................................................................................................................. 33
Figura 17: Rezultatet e kërkimit për fjalën kyçe qeveria, të kthyera nga Yahoo (lartë-majtas),
Google (lartë-djathtas), MSN Search (poshtë-majtas) dhe WebSearch (poshtë-djathtas).... 34
Figura 18: Modeli i Markov-it për nxjerrjen e informatave nga një punim hulumtues................. 39
Lista e tabelave
Tabela 1: Makinat kërkuese............................................................................................................. 4
Lista e shkurtesave
ASCII American Standard Code for Information Interchange
CPU Central Processing Unit
FTP File Transfer Protocol
GFS Google File System
HMM Hidden Markov Model
HTML HyperText Markup Language
HTTP HyperText Transfer Protocol
NCD Normalized Compression Distance
NID Normalized Information Distance
NGD Normalized Google Distance
SEO Search Engine Optimization
SSG Sistemi i Skedarëve të Google
URL Uniform Resource Locator
WWW World Wide Web
XML eXtended Markup Language
________________________________________________________________________
42
Shtesat Lista e figurave
________________________________________________________________________
43
Referencat
Referencat
[1] Search Engines and Web Dynamics.
Knut Magne Risvik, Rolf Michelsen.
Fast Search & Transfer ASA.
[4] Improving the Ranking Capability of the Hyperlink Based Search Engines Using
Heuristic Approach.
Haider A. Ramadhan and Khalil Shihab.
Sultan Qaboos University, Muscat, Oman.
________________________________________________________________________
44
Referencat
________________________________________________________________________
45