HTML DOKUMENTŲ TURINIO PALYGINIMO ALGORITMAS
KTU MULTIMEDIJOS INŽINERIJOS KATEDRADR. ARMANTAS OSTREIKADOKT. ANDRIUS LAURAITIS
LIKS Kompiuterininkų dienos 2015, Panevėžys, Rugsėjis 17-19 d.
ĮVADAS
■ HTML failai yra periodiškai tvarkomi internetinių sistemų baziniai elementai;
■ Daugelyje atvejų HTML dokumentai yra redaguojami sukuriant, ištrinant ar atnaujinant esamo turinio dalis - taip vystoma nauja dokumento versija;
■ Vartotojui tampa aktualu palyginti originalų ir atnaujintą dokumentą, redaguotus skirtingų autorių.
2 iš 31
PROBLEMA
■ Dokumentų turinio palyginimas nėra paprasta ir triviali užduotis nes matomas tekstas yra užkoduojamas ir formatuojamas įvairiomis žymėmis, kartu su metaduomenimis, kurie yra priklausomi nuo dokumento kūrėjo;
■ Visos šios aplinkybės HTML dokumentų turinio palyginimo automatizavimo ir vizualizavimo procesą padaro pakankamai sudėtingu. Tokio pobūdžio uždavinys šiai dienai nėra pilnai išspręstas, todėl reikia ieškoti galimų sprendimų.
3 iš 31
TIKSLAS
Pristatyti algoritmą, skirtą palyginti dvi skirtingas HTML dokumentų versijas, vizualiai atvaizduojant aptiktus pakeitimus rezultatų dokumente.
4 iš 31
UŽDAVINIAI
■ Nagrinėti egzistuojančius sprendimus, pateikiant panašaus pobūdžio įrankių lyginamąją analizę;
■ Nustatyti galimas HTML dokumentų palyginimo algoritmo taikymo sritis;
■ Supažindinti su vis dar neišspręstomis nagrinėjamo uždavinio problemomis ir pasiūlyti sprendimą, kuris pagerintų lyginamų HTML dokumentų pakeistų turinio fragmentų aptikimo kokybės rezultatą.
5 iš 31
TAIKYMAI
■ Sisteminių failų stebėjimui ir versijų kontrolei;
■ Aptinkant pakeitimus projektiniuose ar baigiamuose darbuose. Tokiu būdu būtų galima mažinti plagiatų skaičių;
■ Padedant programinės įrangos kūrėjams, turinio redaktoriams, interneto tinklapių dizaineriams, kokybės valdytojams.
6 iš 31
PANAŠAUS POBŪDŽIO ĮRANKIŲ ANALIZĖ
■ Įdiegtos Windows ir Linux OS priemonės:– COMP ir FC komandos;– Diff;
■ Daugiau funkcijų turintys failų palyginimo įrankiai:– Daisydiff (teksto fragmentų turinio pakeitimų
nustatymas, netinkamai suformatuoto HTML dokumento ir failų tekstų nuoseklus palyginimas, vizuali navigacija);
– HTML-diff (vizualus turinio pakeitimų atvaizdavimas);
– HTML Match (palyginimo rėžimų ir detalizavimo lygmenų parinkimas, išvesties formatų nustatymas, skirtukų ignoravimas, navigacija tarp atskirų pakeisto turinio fragmentų). 7 iš 31
ĮRANKIŲ ANALIZĖS APIBENDRINIMAS
Pavadinimas
Vartotojo Sąsaja
Pakeitimų fiksavimo lygis
Pakeitimų fiksavimo
vizualizacija
Formatavimas ir stiliaus išlaikymas
Didelių failų
apdorojimas
Diff Tekstinė Eilutė Ne** Ne Taip
FC, COMP Tekstinė Simbolis, Eilutė Ne Ne Ne
Daisydiff Tekstinė* Simbolis, Žodis, Eilutė
Taip Dalinis*** Taip
HTML-diff Tekstinė Simbolis, Žodis ,Eilutė
Taip Dalinis**** Taip
HTML Match
Grafinė Simbolis, Žodis ,Eilutė
Taip Dalinis***** Taip
* Bazinė versija veikia tekstiniu rėžimu, tačiau yra grafinės vartotojo sąsajos (GVS) sistema DaisyCMS. ** Standartinė versija neturi šios funkcijos, tačiau yra keli įrankio variantai kai pažymima pakeista eilutė. *** Testuojant buvo prigeneruota papildomų nereikalingų HTML gairių, o palyginimų rezultatų dokumento struktūra sugadinta. **** Kai kurie išvesties simboliai nebuvo atpažinti naršyklėje. Turinio pakeitimai nebuvo aptikti HTML lentelių elementuose.***** Vizualinis įrankio rėžimas nepateikė jokių rezultatų su kelių lygių šakotais HTML elementais ir vidinių komentarų gairėmis.
8 iš 31
SIŪLOMAS HTML DOKUMENTŲ PALYGINIMO
ALGORITMAS
ESMINIAI APDOROJIMO ETAPAI
10 iš 31
Algoritmo Veikimo Principas
11 iš 31
DUOMENŲ PERKĖLIMAS Į ATMINTĮ
■ Nustatomas dokumento eilučių skaičius, kuris nusako pradinio teksto eilučių masyvo dydį;
■ Realizacijos funkcijoje failas skaitomas iki pabaigos, o duomenys surašomi masyve;
■ Procedūra pritaikoma su skirtingais argumentais pradiniam ir pakeistam dokumentams.
12 iš 31
PRADINIŲ DOKUMENTŲ ANALIZĖ
■ HTML komentarų tvarkymas ir tuščių dokumento eilučių šalinimas;
■ Skyriklių ignoravimas eilutės pradžioje ir pabaigoje;
■ Standartinių gairių (<p>, <td>, <h1>, <h2>, <!– ir kt.) performatavimas;
■ Dokumento teksto eilučių prastinimas, sukuriant pradinės eilutės kopiją. Tokios eilutės turi tik žymės pavadinimą ir turinį.
13 iš 31
TURINIO PAKEITIMŲ NUSTATYMAS (1)
■ Scenarijus, kai lyginamuose dokumentuose yra vienodas eilučių skaičius:– Dokumento eilutės dekompozicija. Kiekvienas
išskirtas teksto fragmentas yra išsaugomas masyve. Procedūra taikoma abiem dokumentams;
– Fiktyvių eilutės elementų įterpimas. Funkcija, kuri analizuoja abiejų dokumentų teksto fragmentų masyvą ir nustato, kurie elementai turi būti įterpiami, pašalinami ar nepakeisti;
– Pakeistų eilutės teksto fragmentų išsaugojimas. Remiasi fiktyvių eilutės elementų įterpimo funkcija ir sugeneruoja naują teksto fragmentų masyvą;
– Rezultatų eilutės formavimas. Anksčiau aprašytoje funkcijoje sukurto masyvo elementai jungiami į vieną eilutę.
14 iš 31
TURINIO PAKEITIMŲ NUSTATYMAS (2)
■ Scenarijus, kai lyginamuose dokumentuose yra skirtingas eilučių skaičius: – Modifikuotų dokumento eilučių paieška.
Analizuojama ar lyginamame dokumente yra eilučių, kurių nors vienas teksto fragmentas iš pradinio dokumento buvo keistas;
– Fiktyvių elementų įterpimas dokumente. Ši funkcija atlieka abiejų dokumentų suvienodinimo veiksmus;
– Turinio pakeitimų paieška visame dokumente. Pagal ankstesnių funkcijų suformuotus elementus, eilutės fiksuojamos kaip įterptos arba pašalintos. Jei aptinkamos tik modifikuotos eilutės, tada pirmo scenarijaus funkcijos yra vykdomos.
15 iš 31
PAKEITIMŲ VIZUALIZACIJA IR REZULTATŲ KAUPIMAS
■ Galutinio rezultato pateikimas yra kontroliuojamas išoriniame CSS faile;
■ Specifinė funkcija sukuriama tam, kad būtų susiejamas HTML palyginimo rezultatų dokumentas ir CSS failas;
■ Stilių faile apibrėžtos dvi klasės: įterptam turiniui (žalia spalva) ir ištrintam turiniui (raudona spalva);
■ Šiame etape fiksuojami algoritmo greitaveikos rezultatai.
16 iš 31
PASIEKTI EKSPERIMENTINIAI
REZULTATAI
TESTAVIMAS
Parinkti failai tokiu principu, kad algoritmas būtų įvertintas kuo įvairesniais aspektais testuojant elementus: – HTML komentarai;– Tuščios eilutės;– Gairių vidiniai stiliai;– Teksto eilutės be informacinio turinio;– HTML lentelės, paragrafai, antraštės;– HTML Multimedia elementai (video,
paveikslai ir t.t)– MS Word palaikymas.
18 iš 31
TURINIO PAKEITIMŲ NUSTATYMAS ŽODŽIO IR EILUTĖS LYGMENYSE
■ Žodžio lygmuo:
■ Eilutės lygmuo:
pirmas.html antras.html<p>Multi</p> <p style ="margin
left:14px;">TotalMultidimensional</p>
Eil Nr.
pirmas.html antras.html
1 <p>We update our feed a month with news.</p>
<p>We We We update our a OK month with some some news.</p>
19 iš 31
TURINIO PAKEITIMŲ NUSTATYMAS DOKUMENTO LYGMENYJE
Eil Nr. pirmas.html antras.html
123
<p>Introduction statement</p><p>Second deleted line text. </p><p>New multimedia object</p>
<p> My new sentence </p><p>Second line added text. </p>
■ Realiuose dokumentuose gairės gali būti įkomponuotos aibe įvairių vidinių stilių arba metaduomenų, išdėstytos keliais lygiais;
■ Galimas scenarijus ir toks, kai HTML gairės yra skirtingos, o turinys tas pats.
20 iš 31
HTML MULTIMEDIJA OBJEKTŲ APTIKIMAS
• Fiksuojami tie multimedijos objektai kurie įterpti naujai į pakeistą dokumentą ar pašalinti iš pradinio;
• Aptikti objektai įrėminami žaliai (raudonai);
• Palaikomos HTML 5 standarto gairės (video, audio, Youtube ir kiti įskiepiai) bei senesni atvaizdavimo formatai (embed, object, iframe).
21 iš 31
GREITAVEIKA (1)■ Testuoti failai ruošti HTML teksto redaktoriumi
bei generuojant MS Word priemonėmis;■ Greitaveikos testai atlikti tiek su vienodu, tiek
skirtingu dokumentų eilučių skaičiumi;■ Kompiuteriai buvo atjungti nuo tinklo paliekant
aktyvius tik sisteminius procesus.Eksperimentuose naudoti kompiuteriai:PK1: Genuine Intel® CPU T2050 1,60 GHz, 0.99 GB RAM, 32-bit;PK2: Intel® Core™ i5 – 2430M, 2,4 GHz, 8 GB RAM, 64-bit;PK3: Intel® Core™ 2 Duo CPU P8700, 2.53 GHz, 4 GB RAM, 32-bit;PK4: Intel® Core™ i5 – 3470 CPU 3,2 GHz, 4 GB RAM, 64-bit.
22 iš 31
GREITAVEIKA (2)
23 iš 31
IŠVADOS (1)
■ Viena iš pirmųjų reikšmingų palyginimo priemonių buvo XX a. septintajame dešimtmetyje sukurtas Diff algoritmas;
■ Aukštos kokybės, visiškai universalių ir išbaigtų, rezultatus vizualizuojančių HTML failų palyginimo įrankių šiuo metu dar nėra sukurta;
■ Sukurtas HTML dokumentų palyginimo algoritmas aptinka turinio pakeitimus žodžio, eilutės ir dokumento lygmenyse išlaikant visus stiliaus duomenis, o taip pat suteikiant galimybę apdoroti didelius failus. Šios savybės pagerina vizualaus rezultatų atvaizdavimo kokybę;
24 iš 31
IŠVADOS (2)
■ Algoritmas realizuotas C++ programavimo kalba ir testuotas MS Windows operacinėje sistemoje;
■ Siūlomas realizuotas HTML dokumentų palyginimo algoritmas yra prototipas, o tolimesni darbai turi būti atlikti optimizavimo ir greitaveikos pagerinimo srityse pvz.: pritaikant skirtingas duomenų struktūras su žemesnio lygio programavimo kalba, nagrinėjant lygiagretaus programavimo su CUDA grafiniu procesoriumi pritaikymą ir kt.
25 iš 31
26
PAVYZDŽIAI (1)
26 iš 31
27
PAVYZDŽIAI (2)
27 iš 31
28
PAVYZDŽIAI (3)
28 iš 31
PAVYZDŽIAI (4)
29 iš 31
PAVYZDŽIAI (5)
30 iš 31
AČIŪ UŽ DĖMESĮ!