InternetArchiveBot/봇이 깨진 링크를 수정하는 방법

From Meta, a Wikimedia project coordination wiki
This page is a translated version of the page InternetArchiveBot/How the bot fixes broken links and the translation is 100% complete.


끊어진 링크를 수정하는 프로세스는 페이지 내용 구문 분석, 페이지에 표시되는 링크 스캔, 링크 아카이브 생성, 페이지 편집의 4단계로 진행됩니다.

페이지 구문 분석

먼저 봇은 위키의 API에서 작업할 5,000개의 문서 배치를 검색합니다. 배치를 시작하기 전에 봇은 관리 인터페이스에서 환경설정 변경 사항이 있는지 확인합니다. 환경설정 변경 사항을 적용하면 일반적으로 알파벳 순서로 정렬된 5,000개의 문서 배치를 통해 작업을 진행합니다.

봇은 페이지의 위키텍스트를 완전히 스캔하여 페이지 분석을 시작합니다. <nowiki>, <pre>, <code>, <syntaxhighlight>, <source>, HTML 주석을 존중하면서 URL이 포함된 인용 틀, 대괄호 안에 포함된 URL, 일반 게시된 URL에 대해 최대한 많은 정보를 수집하려고 합니다. 또한 다른 편집자나 봇이 링크가 죽은 것으로 선언했거나 이미 연결된 아카이브 URL이 있는 경우와 같이 찾은 링크에 대한 관련 정보를 찾으려고 시도합니다. 다음 단계는 구문 분석 엔진이 반환한 구문 분석 정보를 분석하여 이에 대한 메타데이터를 생성하는 것입니다.

각 참조에 대한 메타데이터(링크가 포함된 소스)는 접근 시간, 보관 시간, 보관 URL, 원래 URL, URL이 죽은 것인지 여부, 페이월 URL로 간주되는 경우 형식이 잘못된 참조인 경우를 포함하는 파서의 데이터를 기반으로 합니다. URL이 이미 죽은 것으로 처리되고 있는지 여부에 따라 원하는 경우 틀로 확장할 수 있는 참조입니다. 참조에서 접근 시간을 찾을 수 없는 경우 InternetArchiveBot은 링크가 페이지에 추가된 시간이 링크가 마지막으로 접근된 시간이라고 가정하여 접근 시간을 추정하려고 시도합니다. 봇에 표시되어야 하는 원래 URL을 나타내지 않는 아카이브 URL이 발견되면 봇은 이를 추정하여 아카이브가 실제로 참조에 속하는지 확인합니다.

템플릿의 URL 관련 참고 사항: 기본적으로 InternetArchiveBot은 알 수 없는 템플릿에 포함된 URL을 처리하지 않습니다. 해당 템플릿을 변경하면 렌더링된 페이지에 어떤 영향을 미칠 수 있는지 알 수 없기 때문입니다. 인용 템플릿으로 구성되지 않은 모든 템플릿은 알 수 없는 템플릿으로 간주됩니다. 템플릿 구성은 인용 템플릿 구성기에서 수행됩니다.

링크 스캔

각 링크가 분석된 후 봇은 그렇게 하도록 구성된 경우 과부하를 방지하기 위해 간격을 둔 URL 조회와 함께 빠른 스캔을 수행하여 링크가 실제로 작동하지 않는지 여부를 판별하려고 시도합니다. 동일한 도메인에 있는 여러 URL은 1초 간격으로 연속적으로 쿼리됩니다. 다른 도메인의 URL은 비동기 쿼리를 위해 그룹화됩니다. 설정된 기준을 충족하는 URL만 스캔에 포함됩니다.

스캔할 URL은 지난 7일 동안 스캔되지 않았어야 합니다. 그러나 URL을 마지막으로 스캔한 결과 URL이 죽은 것으로 표시되는 응답이 나오면 대기 기간이 3일로 단축됩니다. URL은 죽은 것으로 간주되기 위해 연속 3회의 스캔에 실패해야 합니다. 즉, URL이 죽은 것으로 간주되는 데 최소 9일이 걸립니다. 대기 기간은 죽은 것으로 간주되면 7일로 돌아갑니다. 데드 URL이 스캔되어 활성 상태인 것으로 확인되면 해당 상태가 즉시 활성 상태로 재설정됩니다. 영구(즉, 영구적으로 활성) 상태로 설정된 URL 및 도메인은 위키에서 데드 링크로 태그가 지정되고 봇이 자체 평가보다 태그를 수락하도록 구성되지 않는 한 항상 활성으로 표시됩니다. Permalive 링크는 스캔되지 않습니다. permadead(영구적으로 죽은)로 설정된 URL 및 도메인은 예외 없이 항상 죽은 것으로 표시됩니다. Permadead 링크는 스캔되지 않습니다.

permadead 및 permalive 외에도 봇은 구독 사이트로 간주되는 링크를 스캔하지 않는다고 말합니다. 이와 같은 사이트는 응답이 누락된 자격 증명 때문인지 또는 페이지가 실제로 다운되었는지 여부를 알지 않고는 정확하게 평가할 수 없습니다. 결과적으로 봇은 봇에서 수동으로 설정하거나 위키백과에 태그가 지정된 경우에만 URL이 죽은 것으로 간주합니다. 봇은 자료에 접근하려면 무료 또는 유료 계정이 필요한 사이트를 식별하는 사용자가 설정한 템플릿 또는 CS1 템플릿의 매개 변수 값을 찾습니다. 발견되면 도메인이 구독 사이트로 표시되고 봇이 확인을 중단합니다.

죽은 링크 보관

모든 링크가 스캔된 후 봇은 죽은 것으로 판명된 링크의 아카이브를 계속 찾습니다. 그렇게 하도록 구성된 경우 모든 살아있는 링크에 대한 아카이브도 찾을 수 있습니다. 봇이 과거에 특정 링크의 아카이브 URL을 이전에 발견한 경우 해당 링크의 메모리를 따릅니다. 인터넷아카이브봇은 20개 이상의 다양한 보관 서비스를 인식하고 사용할 수 있습니다. 살아있는 링크에 대한 아카이브가 없는 경우 봇은 링크 사본을 웨이백 머신에 저장하려고 시도합니다(구성된 경우). 결과 스냅샷을 새 아카이브 URL로 사용합니다. 데드 링크에 대한 아카이브 스냅샷이 발견되지 않으면 봇은 이를 수정할 수 없는 것으로 간주하고 영구적으로 데드 참조로 표시합니다. 참조에 아카이브 URL이 있는 것으로 보이지만 유효한 아카이브로 인식되지 않거나 URL이 스냅샷과 일치하지 않는 경우 봇이 유효하다고 간주하는 URL로 대체됩니다. 이는 참조의 무결성을 보장하고 실수 및 문서 훼손의 영향을 최소화하는 데 도움이 됩니다.

문서 편집

봇이 링크 분석을 마치면 과거에 되돌린 편집을 반복하고 있는지 확인하려고 시도합니다. 편집을 반복하고 있음을 감지하면 오탐지로 보고되었는지 여부를 포함하여 편집이 되돌려진 이유를 파악하려고 시도합니다. 편집이 잠재적으로 위양성일 수 있다고 평가하는 경우 되돌리는 사용자를 대신하여 위양성을 보고하고 개발자가 보고서를 검토할 때까지 편집을 다시 시도하지 않습니다.

마지막으로 편집 내용이 문서에 게시됩니다. 봇은 또한 그 과정에서 일부 정리 작업을 수행하고 편집하려는 참조에 대한 기타 사소한 변경을 수행합니다. 가장 일반적으로 봇은 틀 간격을 보다 일관되게 만들어 사용 가능한 경우 특히 아카이브 URL에서 HTTPS를 사용하도록 하고 때로는 인용 틀의 UrlStatus를 활성 상태에서 비활성 상태로 전환합니다. 봇이 인용 틀을 사용하지 않는 참조를 발견하는 경우 봇은 참조 형식을 손상시키지 않고 수행할 수 있는 경우 빈 URL 참조를 인용 틀을 사용하는 참조로 변환합니다. 빈 참조에 아카이브 틀, 원본 URL 아카이브 스냅샷에 대한 링크를 렌더링하는 틀이 있고 틀이 더 이상 사용되지 않는 것으로 간주되는 경우 봇은 이를 기본 기본값으로 변환합니다.

편집이 이루어진 후 그렇게 하도록 구성된 경우 봇은 페이지에 대한 변경 사항을 설명하는 토론 페이지 메시지를 남깁니다. 또는 문서를 편집하는 대신 토론 페이지 메시지만 남기도록 봇을 구성할 수 있습니다.