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

Post on 18-Jan-2017

303 Views

Category:

Technology

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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Į!

top related