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.