Jak archiwizować interaktywne strony WWW?

Obecnie projektowane strony internetowe charakteryzują się bardzo wysokim stopniem interaktywności. W przypadku archiwizacji stron WWW zasada jest jednak prosta – im więcej interaktywnych elementów (generowanych przez skrypty JavaScript), tym trudniejsze jest uzyskanie kompletnej, archiwalnej wersji danej strony. Problemy mogą dotyczyć drobiazgów – automatycznej archiwizacji może umknąć rozwijana lista lub menu, błędnie odtwarzane skrypty mogą jednak również zmienić charakter całego zapisywanego obiektu lub uniemożliwić dostęp do jego treści.

Taka sytuacja miała miejsce w 2012 roku, kiedy wikipedyści protestowali przeciwko wprowadzeniu przez rząd Stanów Zjednoczonych SOPA (Stop Online Piracy Act). W ramach protestu 18 stycznia 2012 roku zawartość stron Wikipedii ukryta została za czarną planszą, wyświetlaną za pomocą kodu JavaScript. Szybko okazało się jednak, że archiwalna wersja strony w Internet Archive w ogóle nie uwzględnia tego fragmentu kodu. W związku z tym archiwalna zawartość z tego dnia nie tylko nie uwzględniała faktycznego obrazu strony, ale też nie spełniała podstawowej funkcji archiwów Webu, jaką jest zabezpieczenie i udostępnienie obiektów cyfrowego dziedzictwa.

Problem polega na trudności zarówno z zapisaniem podczas crawlingu, jak i reprezentacją w archiwum zawartości kodowanej w języku JavaScript. W efekcie w archiwum prezentowane są obiekty, które albo uzupełniają archiwalny widok strony zawartością na bieżąco ładowaną z Internetu (powstają wtedy swego rodzaju kolaże, na których archiwalna zawartość przeplata się z aktualną), albo też w ogóle nie uwzględniają kodu JavaScript (jak w opisanym wyżej przypadku).

Wciąż trwa dyskusja dotycząca tego, w jaki sposób najlepiej gromadzić i udostępniać interaktywną zawartość stron WWW. Jedna z proponowanych (i bardziej obiecujących) metod skupia się na odkryciu wszystkich możliwych reprezentacji danej strony i zebraniu wszystkich jej widoków, które po użyciu kodu JavaScript dostępne są dla użytkowników. Indeksowana w ten sposób zawartość powinna charakteryzować się bardzo wysoką dokładnością, znacznie wydłużony jest jednak czas potrzebny na wyszukanie i zapisanie danych (proces crawlingu). Podstawą dla tego działania jest model crawlingu pozwalający na gromadzenie witryn działających jako Rich Internet Applications (RIAs).

W ramach eksperymentalnych prac na opisaną wyżej metodą wykorzystywano crawler Heitrix, utrzymywany i rozwijany w ramach działalności Internet Archive. Warto zaznaczyć, że mimo obiecujących wyników, jego autorom nie udało się zebrać i zapisać w archiwum danych identycznych z zawartością dostępną dla użytkowników Internetu. Obecnie JavaScript jest to jedne z największych wyzwań związanych z funkcjonowaniem archiwów WWW.

Justin F. Brunelle, Michele C. Weigle, and Michael L. Nelson. 2017. Archival Crawlers and JavaScript: Discover More Stuff but Crawl More Slowly. In Proceedings of ACM Joint Conference on Digital Libraries, Toronto, Ontario, Canada, June 2017 (JCDL2017): https://www.cs.odu.edu/~mweigle/papers/brunelle-jcdl17.pdf

Treść dostępna na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Blog naukowy, publikacje i materiały edukacyjne pracowni w 2018 roku powstały w ramach projektu Upowszechnianie wiedzy o archiwizacji Webu i metodach korzystania z historycznych zasobów WWW w instytucjach publicznych i sektorze NGO, prowadzonego przez Stowarzyszenie EBIB i finansowanego przez MNISW w programie Działalność Upowszechniająca Naukę (DUN).