armantas ostreika, andrius lauraitis. html dokumentų turinio palyginimo algoritmas

31
HTML DOKUMENTŲ TURINIO PALYGINIMO ALGORITMAS KTU MULTIMEDIJOS INŽINERIJOS KATEDRA DR. ARMANTAS OSTREIKA DOKT. ANDRIUS LAURAITIS LIKS Kompiuterininkų dienos 2015, Panevėžys, Rugsėjis 17-19 d.

Upload: lietuvos-kompiuterininku-sajunga

Post on 18-Jan-2017

303 views

Category:

Technology


9 download

TRANSCRIPT

Page 1: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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.

Page 2: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

Į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

Page 3: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 4: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

TIKSLAS

Pristatyti algoritmą, skirtą palyginti dvi skirtingas HTML dokumentų versijas, vizualiai atvaizduojant aptiktus pakeitimus rezultatų dokumente.

4 iš 31

Page 5: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 6: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 7: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 8: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

Į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

Page 9: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

SIŪLOMAS HTML DOKUMENTŲ PALYGINIMO

ALGORITMAS

Page 10: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

ESMINIAI APDOROJIMO ETAPAI

10 iš 31

Page 11: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

Algoritmo Veikimo Principas

11 iš 31

Page 12: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 13: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 14: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 15: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 16: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 17: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

PASIEKTI EKSPERIMENTINIAI

REZULTATAI

Page 18: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 19: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 20: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 21: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 22: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 23: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

GREITAVEIKA (2)

23 iš 31

Page 24: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 25: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

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

Page 26: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

26

PAVYZDŽIAI (1)

26 iš 31

Page 27: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

27

PAVYZDŽIAI (2)

27 iš 31

Page 28: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

28

PAVYZDŽIAI (3)

28 iš 31

Page 29: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

PAVYZDŽIAI (4)

29 iš 31

Page 30: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

PAVYZDŽIAI (5)

30 iš 31

Page 31: Armantas OSTREIKA, Andrius LAURAITIS. HTML dokumentų turinio palyginimo algoritmas

AČIŪ UŽ DĖMESĮ!