Адкрытые URL-адресы, якія цітуюцца Базай даных часовых поясаў IANA: Перапіс зламаных лінкаў.
Перапіс 1 327 URL-адрес цитатаў з базы даных tzdata: пряме завантажэння, розблокаванне через проксі, вярнэнне дадзеных з Wayback, а таксама тое, што застаецца, калі архіўы не працуюць.
База дадзэнай IANA Time Zone Database фіксуе, як змянююцца местныя гадзіннікаў у всьмі роўнах свету. Менш зрозумела, але ў яе блоках каментараў таксама паведамляецца, звядзе канчыліся гэтыя правіла. Основны ресурс знаходзіцца за адресай https://github.com/eggert/tz.
У апытнае даследжэнне гэтых цітатаў была задана практычная запытка: з усіх публічных URL-адрэсаў, зазначаных у каментарах, скількі з іх яшчэ працуюць сёння? Кожная такая URL-адрэса была зборана, перапрацавана, а калі было трэба — вярнутая, спачатку за дапамогою проксі, які абходзіць звычныя блокі для ботаў, а потым за дапамогою API Wayback, калі жывы хост больш не існаваў. Код, табелі даследжэння і процес вярнення дадзэнай для 1,327 URL-адрэсаў публікуюцца за адресай https://github.com/sixthextinction/tzdata-citation-census.
«Яма з кролікамі» апавялася з запіску 2008 года, напісанага волонтэрам Патрісом Скаталінам. Ён пераканструюваў точны момент пачатку змены часу в Марокко ў 2008 году (фон: https://en.wikipedia.org/wiki/Daylight_saving_time_in_Morocco), чытаў савременны абзвешчэнне на https://www.avmaroc.com/actualite/heure-dete-comment-a127896.html і стаўляўся да неяснасці ў перакладзе з французкага на англійскі. Запісак, які ён заставіў, є типовым для такых корпусаў: у яму наводзіцца номер указа 2–08–224 і прызнаецца, што офіцыйны текст не могаў быць знайдзены ў інтэрнете тады.
Історычныя базы даных заполнены такімі запіскамі — номерамі указаў, газетнымі публікацыямі, URL-адрэсамі газет, датамі і поясненнямі, чырэз што адна джеральця перамагала іншую. Большая запытка — скількі з тых публічных URL-адрэсаў яшчэ функцыонуюць пасля гадоў змены.
Што такое tzdata на самай працоў?
База дадзеных часовых зон IANA — это набор файлаў-тэкста, якія падтрымваюцься учаснікаў. Аператывныя системы і среды выканання працоўнае програмнай лінгвістыкі запытваюць яе, калі ім патрэбны часы за стаўкамі гадзінніка для паветранага часовага пояса. Канечныя корыстнікі рэдка ачынаюць гэтыя файлы, пры тым як практычна кожная дыстрыбуцыя Linux і среда выканання працоўнае програмнай лінгвістыкі ўключаюць іх у свою структуру. Калі якая-небудзь юрыдыкцыйная тэриторія зменяе своі гадзіннікі, база дадзеных павінна апублікуваць апдэйт, іначы кожны працоўнае програмнай лінгвістыкі, якая аднойчы залежыць ад яе, будзе паказваць некоректную местную гадзіну.
Учаснікі можаць следаваць інструкцыям па выправленнях, якія розмешчаны на адрэсе https://data.iana.org/time-zones/tz-how-to.html, калі прыносяць праекты змян.
Самыя правілы можаць быць кароткімі. Змена часу восеньнай перадачы ў Марокко у 2008 годзе выражаецца двумя лініямі простага тэксту ў файле africa:
# Rule NAME FROM TO - IN ON AT SAVE LETTER/S
Rule Morocco 2008 only - Jun 1 0:00 1:00 -
Rule Morocco 2008 only - Sep 1 0:00 0 -
Гэтыя лініі визначаюць моменты 1 чэрвеня і 1 верасня, калі машыны па всім свету павінны ўжываць новы час.
У прытакоўых каментарах зберагаецца історыя стварэння. Адпаведальныя за адтрыманне зберагаюць доказы: номеры указаў, урядовыя газеты, публікаціі міністэраў, статті газет чыясць тое, хто падалі інфармацыю, часта з датай, калі была адправлена паведамленне.
Інодзе джэрелы не састаюцца. Адпаведальныя інодзе фіксуюць такіы суперасункі і пазначаюць, койму веруюць. У 2006 годзе Пол Эггерт адмовіўся ад дат з атласаў на корыстце Нацыянальнага бюро метраблікі Аўстрыі (https://www.bev.gv.at/):
# From Paul Eggert (2006-03-22): Shanks & Pottenger give 1918-06-16 and
# 1945-11-18, but the Austrian Federal Office of Metrology and
# Surveying (BEV) gives 1918-09-16 and for Vienna gives the "alleged"
# date of 1945-04-12 with no time. For the 1980-04-06 transition
# Shanks & Pottenger give 02:00, the BEV 00:00. Go with the BEV,
# and guess 02:00 for 1945-04-12.
Неясна, чы рэгламенты адбору джэрел былі створаны з самага пачатку чы развіліся аднаццаўсі. У будзь-якім случае гэта залучае можна выкарыстоўваць летапіс для адліквідацыі рашэнняў, прыйнятых за мяркую болей чым трыдцяти гадоў спольнага адтрымання, особліва калі доказы скудныя чы суперасунковыя.
Што ж адбываецца, калі вы насправды пераглядаеце ціяпераведанні?
Кожны URL быў выявлен у блоках каментаў у дзевяці адпаведных файлах tzdata. У ходзе гэтага аналізу было знайдзена шысцьцать чатырнаццаць блакоў каментаў, якія мелі трынаццацьсот п’ятадзесят два згадкі URL, якія у пасляпэўнай перапісве сталі трынаццацьмістам дваццаць семма разлічных адресоў на шысцьцать дваццаць трох хостаў. Блакі, якія згадвалі толькі кнігі, указы чыю пошту без URL, не былі включаныя ў аналіз.
Кожны адрес быў перапытан за дапамогою звычайнага HTTP-запиту GET, стандартнага заголовка Identity браузера (як описана ў даследжэнні MDN аб User-Agent) і жорсткаг таймауту, каб хосты, якія застряглі, не моглі спамтаваць процэс аналізу.
У ходзе першага аналізу было знайдзена даныя для 663 URL. Іншыя 664 URL не запрацавалі з разных прычын, таму іх было адзіночна класифікавана: код 404 не ўзначае тое ж, што жывая стораніца, якая адмовляе ў автаматызацыі.
Серед прычын неудач:
- 433 элементаў не удалося запрашаць безпасабліва, але ўдалося яго з’яўіць за дапамогай проксі. 178 элементаў адмовіліся у заданым запите (паважнаюча большасць — HTTP 403, частка — 429). Іншыя 255 элементаў не запрацавалі ў домашней сеті з-за проблем з DNS, таймаутам або памылкамі TLS, а не чераз явны блокаванне ботаў. Для обох груп былі прабаваны новыя способы за дапамогай прылады Bright Data’s Web Unlocker, і ўсе элементы былі вярнуты.
- 123 элементаў сапраўды зниклі. Яны вярнулі коды HTTP 404 або 410. Працаваўшы з інструментам Wayback Machine ад Internet Archive, было знайдзена цэлая копія ўсіх элементаў, за выключэнням двух — такім чынам 121 элемент быў вярнут.
- 108 элементаў засталіся нерашанымі (57 з якіх не мелі архіўных копій, 39 продавжвалі не запрацоўваць праз прыладу Web Unlocker, а 12 вярнулі код HTTP 500). У 18 з нерашаных элементаў, усіх з газеты
dof.gob.mxМексіки, былі выявлены памылкі сертыфікатаў — верагодна, це была неправильная настройка хоста, а не выдаленая стораніца; прычыны засталі пахаваныя ад зусіль перапісу.
Зніклы сайт — гэта неудача ў яго зберэнні. Сайт, які адмовляецца прыймаць автаматызаваныя запиты GET, — гэта неудача ў доступе да яго. І тое, і другое перашкоджае простам сканаванню; гэтыя ситуацыі вказываюць на розныя рэшткі ў пытанні, чы гэтыя доказы яшчэ існуюць.
Толькі цыфры не можаюць рассказаць всю історію функцыонавання. У 663 прыкладах успеху ў прямых запитах є урядовыя порталы, архівы газет і персональныя сторанкі, якіе ўсё ще працуюць сэгодні. 433 прыклады вярнення даных через проксі паказваюць, насколькі часта «зламаныя» цитаты на самай справе є наследкам політік проты автаматызацыі. 121 прыклад заполнення базы Wayback паказвае, насколькі часта Internet Archive вже мела корыстны фотакопію — за выключэнням двух прыкладаў 404/410, калі нават сам архів быў пусты. Самэ тое, што гэтыя категоріі трыважаюцца окрема, дапамагае розумець рэзультаты перапісу для тых, хто будзе яго практыкаваць пазней.
Чаму вообща можа быць заблокавана цитата?
Большынства сэйтоў сёгодні ставяцца да кліентаў, які выкарыстоўваюць скрыпты, інакш чым да звычных прыгледачаў. Запросы, якія ігнаруюць JavaScript або не праходзяць пераканальвання прайскупніка прыгледача, можу быць обмежаны па частоте, адхілены або падвергнуты перапрацавке.
Это ускладняе масовую пераканальвань старых цітатаў. URL, які працаваў, калі яго падставіў адпаведны адпаведальнік, можа ўсё ще быць актываў, але рокамі пазней адхіляць просты автаматызаваны запрос.
У корпусе часта з’являюцца офіцыйныя віснікі і правовыя базы дадзеных — dre.pt з Партугаліі, resmigazete.gov.tr з Турччыны, правовы репортар nevo.co.il з Ізраілю і падобныя ресурсы. Адпаведальнікі шчыльна іх воспалівалі, і дзеяныя з тых стораначакоў даўжа не маглі быць запрашаны безпосередна.
Таму няудачны запрос не паводзіцца доказам зникнення. Гэта можа значыць выдаленне або тое, што метод запрашання больш не прыманяецца. Процес вярнення дадзеных атрымуў такія казусы як окремыя катэгорыі.
Чы ўсё-такі гэта проблема tzdata?
Не галоўна мета. Эксперымент выявляе, насколькі добра захаваліся зовнішнія істочнікі, запісаныя ў давга трываючай історычной базе дадзеных.
tzdata не можа захаваць матэрыял, які ён цитуе. Правіла знаходзяцца ў дрэве пад кантролем версій і поставляюцца по всьму свету ў рамках операцыйных систем, але цітаваныя старонкі застаюцца на незалежных веб-сайтах, урядовых порталах і стосах газет.
Проблемы з доступам не ў новінку. У 2014 году ў егіпетскай інформацыі пра перавод часу вже было зазначана, што старонку з ананунамі кабінету міністраў (http://www.cabinet.gov.eg/Media/CabinetMeetingsDetails.aspx?id=347) не можна было завантажыць з-за меж краіны. Проблемы з гео-блокаванням існавалі ўже задаўно, яшчэ до ціх перапісаў.
Як на самай працэ павернення дадзеных?
Процес павернення дадзеных веліся ў окремыя пакеты, таму способы абмера застаўаліся рознымі.
Прабава кожнага методу на кожным URL — прымальных, потым проксі, а пасля архівах — прыведзе да збільшэння абсалютнага колькасці “вярнутых” дакументаў, адночасна затуманюючы класыфікацыю. Код 404 разлічаецца ад тымчасовага блакання. Архіўны скрайнек таксама не є ідэентычным сторанцы, якую чытаў адпаведны адпаведальнік; гэта ўзяты кадр з якога-небудзь пазнейшага або ранейшага моменту.
Ещасцовы пакет выкарыстоўвалі толькі для прымальных запитоў і фіксаваў точны статус HTTP. URL-ы, якія вярнулі коды 404 або 410, прабывалі ў окремым, з обмежэнням частоты пакете да API доступнасці Internet Archive. URL-ы, якія выключыліся або былі заблакаваны, на гэтым этапе не надаўаліся архіву.
Канцэптуальна:
async function checkCitation(url) {
const direct = await get(url); // one plain GET, no tricks
if (isOk(direct)) return { status: "live", via: "direct" };
if (direct.status === 404 || direct.status === 410) {
const archived = await wayback(url); // only for confirmed-dead
if (archived.hit) return { status: "recovered", via: "wayback" };
}
return { status: "unresolved" };
}
Працэўка через проксі была ўжо іншым этапам. Ёй былі нацэльваны URL-адресы, якія не маглі быць запрашаны безпосереднюю працэўкой з-за блакавання або проблем з доступнасцю, а не тые URL-ы, якія вже паказвалі коды 404 або 410. Блакаваныя URL-адресы прабываліся знову як звычныя GET-запросы через прыстрой Bright Data’s Web Unlocker, які выступае як натыўны проксі HTTPS:
import { ProxyAgent, fetch as proxyFetch } from "undici";
const AUTH = process.env.BRIGHT_DATA_UNLOCKER_AUTH; // format like USER:PASS
const dispatcher = new ProxyAgent({
uri: `@brd.superproxy.io:44445`">http://${AUTH}@brd.superproxy.io:44445`,
requestTls: { rejectUnauthorized: false },
proxyTls: { rejectUnauthorized: false },
});
const res = await proxyFetch(url, {
dispatcher,
headers: { "User-Agent": UA, Accept: "*/*" },
redirect: "follow",
});
Гэты шлях — не рэзультат адрасавання браузерам; гэта проста HTTP-запрос, які праходзіць через Web Unlocker. Кантрольныя даны трэба размістіць у файле .env:
BRIGHT_DATA_UNLOCKER_AUTH=brd-customer-XXXXX-zone-web_unlocker:PASSWORD
BRIGHT_DATA_UNLOCKER_PROXY_HOST=brd.superproxy.io
BRIGHT_DATA_UNLOCKER_PROXY_PORT=44445
Разлучанне разных спосабаў працэўкі дазволяе у фінальной табелі розразліцаваць безпосереднія запрашання, восстановленыя через проксі, восстановленыя з архіваў і нерашаныя цитаты.
З метадыячнай точкы зору, наявнасць кансэлера адзынакоўвае стан «стораніцы, якая ўсё ўсёткі лежыць за вызамом», ад «стораніцы, якая зникла». Без такога разліку наўманітны краулер пачнёць занадто многа лічыць прыклады зламаных спяваў. Таксама, адправка толькі адпаведзей 404/410 да Wayback дапамагае утримацца ад перэплыву API архіва хостамі, які проста блакавалі ботаў, што спануляваў бы статыстыку вяснавання і выкарыстоўваў бы ліміты для запытак нізкай цэнны.
Што можна зробіць з джэрамі, калі яны ў вас ёсць?
У гэтым случае ключовым пытаннем была доступнасць: чы можна яшчэ запрашаць наведзены URL, і якщо не можна, чы можна вяснаваць дакумент у іншым месца?
Для історычнага набора дадзэнай неабяжна ўтримка тыквотаў з самай вярнутай сторанцы. Для газетнага кантэйнера або правовай базы дадзэнай гэта можа значыць выкарыстоўванне номера указу, даты, загаворкі і адпаведных тыквотаў, якія зберагаюцца разам з первым адказам. Тады доказы застануцца нават якщо URL пазней перестане працаваць, і не будзе патрэбна яшчэ адна процедура сканавання, каб зноў знайсці лінкі.
Павтараючыяся хосты ўжо падходзяць для автаматызаціі. Пасля адкрыцья можлівасці запрашання дадзэнай, структураваны збірчык можа задаць поля і працаваць на той жа інфраструктурны фундамент. Звычайныя HTTP-сторанцы падходзяць для працоўніка, оріентаванага на код; сторанцы з великай колькасцю JavaScript-кода патрабуюць працоўніка браузера.
Тады што на самай працо застаецца, калі архіў гэтага не мае?
Сто вачын URL-адрэсаў засталіся нерашаныя — гэта апошнё 8 процэнаў з 1,327 унікальных URL-адрэсаў; гэта незначны пярасёк, але ён станавіць проблему з-за великай колькасці немагчымых да вярнучэння адказаў. Хоць пярасёк невеликі, кожны URL-адрэс колісць падтрымваў конкрэтную правілу часовага пояса.
Правілы застаюцца ў файле tzdata. Што не хватает, так гэта часткі або ўсёй зовнішняй сторонней сторонкі па тым адрэсе.
З 108 URL-адрэсаў 57 вярнулі коды 404 або 410 без жадных запісаў пра наявнасць адказаў у Wayback. 39 адрэсаў таксама не працавалі через проксі (з якіх 18 — гэта проблемы з сертыфікатамі Мексіки). 12 адрэсаў выдалі іншыя HTTP-памылкі, якія не былі прабаваны знову і не адправлены у Wayback.
Могла быць болей экзотычная метода вярнучэння, але пад час перапісу была неабходна фіксаваная правіла абаранення: трэба было вымерваць стан цитатаў за дапамою адной і той жа процедуры, а не вечна перашукваць стрымліваючыся калекцыю адказаў.
Меры цитатаў як спосабу зберагчэння
Історычныя наборы дадзеных і старонкі, якія яны цитуюць, маюць асиметрычныя якосці зберагачвання.
Правілы часовых зон знаходзяцца ў системе кантролю версій і распространяюцца через безліч дыстрыбуцый програмнага забэрэжчыка. Адразу пасля ўключэння такое правіла можа застацца у чыны ўсё тады, калі доказы, якія його обосноввалі, вже не існуе.
У цитаваных матэрыялах такой гарантіи немае. Яны можу існаваць пад аднім URL у рамках адной організацыі. Якщо гэтая організацыя перайдзе, выдаліць, змені правіла доступу або заўсёды пакінет службу, цитата стане важкай або немагчымой да знаходжэння. Такі спосаб абяцкання часта называецца «згнілым спрыяжэннем».
Адпаведальныя за tzdata збіраюць інфармацыю пра джэрела ўжо дзесяткі гадоў і часта адзначаюць нявернасць. Гэта значна спрыяе пазнейшым даследаванням, у працоўнасці з якімі не дапамагалі бы безпадставныя тверджэння. Аднак аўтарытетная цітата таксама не зберагачвае сам матэрыял, і адпаведальныя за проект не зобав’язаны копіюваць усё, на што яны сацярожна апілююць.
Таму перапісьве ў меньшай ступені яўляецца крытыкай dzdata, чым парадам таго, насколькі можна даверляць зовнішнім URL-адрэсам як історычным апавяданням. Большасць цітатаў была можна знайсці ў якой-небудзь форме. Меньшы, але значныя класы цітатаў не было можна знайсці. База дадзеных яшчэ зберагае правілы, якія былі встановлены тыми джэрамі; у 108 случаях яна вялікай меры не можа восстановіць URL-адрэсу.
Парадзеўка перапісьва чыраз год змогла б, верагатна, перасунуць дзеякі URL-адрэсы межы катаграфіяў, адколі сайты зменяюць правілы TLS, CDN чы рэгламенты для роботаў. Цікавы показнік — гэта не адна процэнтная цифра, зафіксаваная ў часе; гэта тое, насколькі шыбка цітаты пераходзяць з категоріі «вымагаецца безпосередній доступ» у категорію «трэбуецца проксі» чы «толькі архіў», і скількі з яных патрапляюць у нерашаны залишак, які не можа запрацаваць жадны автаматызаваны метод.
Для тых, хто адмініструе іншыя дасобы з великім тэрміном жыцця — даны клёстара CLDR, базы геанаўмов, інструменты для збору законадаўства — застосоўваецца тая ж схема аналізу. Указайце кожны публічны URL у прымэтках або полях походжання, класіфікуйце проблемы па сэмантыцы HTTP, вярніцеся да ресурсу за дапамогою інструмента адзлокавання толькі тады, калі проблема стосуецца правіл доступу, а таксама зверніцеся да архіва толькі тады, калі выходны істочнік паведамляе пра зникненне ресурсу. Праказуйце колькісныя показнікі бакетаў разам з сортаваным списком URL, ўблізу якога чытальнікі зможаць практыкуваць тую ж процедуру, замест таго каб пакладацца на адзін лишыцельны процэнт.