20
Slika 6.1 Različiti blogovi na blog.hr servisu
Struktura blogova usmjerila je dizajn programa pretraživača. Prikupljanje podataka
napravljeno je tako da proces obrade jednog bloga generira dodatne blogove za obradu. Početni
blog odabran je nasumično meĎu trenutno predstavljenim blogovima na stranicama blog.hr-a.
Cilj je bio prilikom obrade bloga pronaći sve blog postove i sve komentare koji se na njemu
nalaze. Kako se struktura blog stranice uvelike razlikuje od bloga do bloga, program pretraživač
pomoću nekoliko jednostavnih pravila prolazi kroz sve dostupne stranice koje pripadaju
pojedinom blogu. Srećom, kako smo već spomenuli, svi blogovi imaju link na stranicu s
komentarima na pojedini blog post. Struktura ove stranice odreĎena je blog.hr servisom uvelike
olakšavajući prikupljanje podataka iz komentara. Na slici 6.2. možemo vidjeti izgled stranice s
komentarima koja je jednaka za sve blogove.
21
Slika 6.2 Stranica s komentarima ureĎena od strane blog.hr servisa
Program pretraživač je napisan u Javi. Koristi jsoup za parsiranje HTML-a (engl.
Hypertext Markup Language), te activejdbc za komunikaciju s MySQL bazom. Prilikom rada
prolazi kroz zadani blog prikupljajući sve stranice koje mu pripadaju, na taj način prikupljajući i
sve dostupne komentare. Prilikom skupljanja komentara, kako je već spomenuto, prikupljaju se i
novi blogovi za obradu. Pojednostavljeni prikaz rada programa pretraživača prikazan je slikom
6.1.
Slika 6.3 Pojednostavljeni rad programa pretraţivača
Rad programa pretraživača ukratko se može opisati na sljedeći način:
Ima li u bazi podataka u tablici blogova neobrađenih blogova?
Obradi prvi neobrađeni blog
Učitaj URL bloga
Obradi stranicu
Pronađi sve valjane linkove i upiši ih u tablicu link_todo
Pronađi sve komentare
Koji je blog autor komentara?
Ako taj blog ne postoji u tablici blogova dodaj ga
Dodaj komentar u tablicu komentara
Ima li valjanih linkova u tablici link_todo?
22
Obradi stranicu
Zapiši da je blog obrađeni i vrati se na početak
Započinjemo s petljom koja se izvršava dok u tablici blogova ima neobraĎenih blogova.
Prilikom svake iteracije te petlje iščita se URL ( engl. Uniform Resource Locator) jednog
neobraĎenog bloga te se taj blog krene obraĎivati. Pritom se učita navedeni URL, te se na njemu
obavlja pronalaženje linkova i komentara. Kroz proces pronalaženja linkova učitana stranica se
pregledava za linkove koji ispunjavaju odreĎene uvjete, a ti su da pripada blogu kojeg
obraĎujemo ili da vodi na stranicu s komentarima. Ukoliko link ispunjava jedan od ovih uvjeta i
pritom nije već zapisan u link cache tablicu, dodaje se u tablicu link _todo. Postoji poseban
slučaj kada pronaĎeni link vodi na neki drugi blog. Tada ga zapisujemo u tablicu blogs odnosno
zapisujemo ga za buduću obradu. Nakon pronalaženja linkova na stranici se izvršava
pronalaženje komentara. Proces pronalaženja komentara traži specifične HTML elemente koji
odgovaraju strukturi komentara na stranici s komentarima odreĎenima od strane blog.hr servisa.
Nakon što pronaĎemo komentar, podatke o njemu upisujemo u tablicu komentari (comments).
Isto tako, ukoliko pronaĎemo neki blog s kojim se dosada nismo susreli i njega zapisujemo u
tablicu blogova za buduću obradu. Time završavamo pronalaženje komentara. Nakon obrade
ovog prvog URL-a ulazimo u drugu petlju koja se izvršava dok god ima još linkova u tablici
link_todo. Ukoliko ima, učita se URL iz link_todo i ponovno se na njemu izvršava pronalaženje
linkova i pronalaženje komentara. Zatim se taj link izbriše iz tablice list_todo. Završetkom ove
petlje prazni se link_cache te se blog navodi kao obraĎen.
6.2. Eksport u Gephi
Kako bi vizualno prikazali podatke o komunikaciji meĎu blogovima prikupljene pomoću
programa pretraživača, bilo je potrebno podatke spremljene u bazu podataka pretvoriti u format
razumljiv Gephi programu. To je .gexf format datoteke. Eksportiranje se obavlja tako da se šalje
upit u bazu podatakakojim se učitavaju svi zapisani blogovi, te stvaraju čvorovi počevši od
onoga kojem je datum nastajanja najstariji. Nakon toga eksporter prolazi kroz sve komentare iz
baze i zapisuje ih kao vezeu .gexf formatu. Na taj način nastaju novi čvorovi i veze izmeĎu njih.
Veze izmeĎu blogova dodaju se na način da gledamo postoji li već veza izmeĎu čvora i i čvora j.
Ukoliko veza ne postoji dodajese. Ako je veza postojala prije, tada se mijenja težina tako da ae
povećava za jedan i zapisuje vrijeme kada se težina veze izmeĎu blogova promijenila. Na kraju
svi podaci se ispisuju u .gexf formatu datoteke.
23
6.3. Obrada u Gephi
Nakon pripreme u .gexf format podaci se mogu učitati u Gephi alatu za vizualizaciju. Naš
rad u Gephiju biti će spremljen kao Gephi projekt te će se taj oblik kasnije koristiti prilikom
stvaranja videa kojim je vizualno prikazana komunikacija kroz vrijeme. Prikupljeni podaci dalje
su obraĎivani ne bi li iz njih dobili što više informacija. Tako su za naš graf izračunati dodatni
atributi kao što su modularnost (engl. modularity) i blizina centriranosti (engl. closeness
centrality). Modularnost nam omogućuje lakše raspoznavanje podgrupa unutar grafa
dodavanjem različitih boja, pa su prikazani čvorovi različito obojani u boje skupine kojoj
pripadaju na osnovu izračuna modularnosti. Mjerom blizine centriranosti odreĎuje se veličina
čvora i to na način da što je neki blog veći označava da ima veći broj kratkih veza, odnosno da je
bolje povezan s drugim blogovima. Ove vrijednosti dodijeljene su pojedinom čvoru od samog
početka prikaza i ne mijenjaju se dalje kroz vrijeme. S druge strane, veze koje spajaju čvorove
mijenjaju se s obzirom na podatke zapisane u .gexf datoteci, te na grafu možemo vidjeti vrijeme
kada nastaju i promjene njihove težine ukoliko do nje dolazi. Osim postavljanja ovih vrijednosti,
učinjene su još neke dodatne male izmjene ne bi li naš graf bio pregledniji, pa je tako
pozadinapostavljena u crnu boju i omogućena je transparentnost veza.
6.4.
Program za stvaranje prikaza dinamičke vizualizacije
Gephijeve mogućnosti za obradu dinamičkih grafova, u inačici koja je korištena u
vrijeme pisanja rada (0.8.2.-beta) su ograničene. Sam Gephijev modul za vizualizaciju nema
mogućnost izrade videa, i premda je moguće prikazati razvoj dinamičkog grafa unutar Gephijeve
radne površine, preciznost i kvaliteta prikaza su mnogostruko manji nego kada se koristi
Gephijev modul za vizualizaciju. Kako bi prikaz bio kvalitetan, iskorišten je taj Gephijev modul
kako bi se izgenerirao slijed od velikog broja slika koje su kasnije spojene u video.U realizaciji
je korištengephi toolkit library pomoću kojeg je moguće programski pristupiti svim
mogućnostima koje Gephi pruža. Za potrebe ovog rada korištena je nestabilnainačica (gephi-
toolkit-0.9-20130429.180226-105-all.jar) zbog nekoliko neispravnosti u aktualnoj stabilnoj
inačici. Program koji generira slike vizualizacije radi na jednostavan način; na početku se učitava
već pripremljeni Gephi projekt, postavlja se početni i krajnji datum vizualizacije, te radni datum
na početni datum. Pokreće se petlja koja će se izvršavati sve dok je radni datum raniji od
krajnjeg. Unutar petlje graf se filtrira na period od početnog datuma do radnog. Zatim se izvodi
50 iteracija algoritma za rasporeĎivanje – force atlas 2 – pri svakoj iteraciji izgenerira se .png
sličica prikaza grafa. Na kraju petlje radni datum se pomiče unaprijed za dan te se petlja
Dostları ilə paylaş: |