Skip to main content
QUICK REVIEW

[论文解读] Bringing Web Time Travel to MediaWiki: An Assessment of the Memento MediaWiki Extension

Shawn Jones, Michael L. Nelson|arXiv (Cornell University)|Jun 16, 2014
Web Data Mining and Analysis参考文献 12被引用 9
一句话总结

本文介紹了 Memento MediaWiki 擴充元件 v2.0,該元件將 Memento 協定整合至 MediaWiki,透過時間戳記協商機制,使使用者能以時間旅行方式存取 wiki 頁面的歷史版本。儘管性能表現看似反直覺,但由於 MediaWiki 內部架構的關係,Pattern 2.1(3 個請求)的表現仍優於 Pattern 1.1(2 個請求)。該擴充元件支援完整的 HTTP 錯誤碼、可選的 Memento 標頭,並針對嵌入資源的時間一致性提供原型支援。

ABSTRACT

We have implemented the Memento MediaWiki Extension Version 2.0, which brings the Memento Protocol to MediaWiki, used by Wikipedia and the Wikimedia Foundation. Test results show that the extension has a negligible impact on performance. Two 302 status code datetime negotiation patterns, as defined by Memento, have been examined for the extension: Pattern 1.1, which requires 2 requests, versus Pattern 2.1, which requires 3 requests. Our test results and mathematical review find that, contrary to intuition, Pattern 2.1 performs better than Pattern 1.1 due to idiosyncrasies in MediaWiki. In addition to implementing Memento, Version 2.0 allows administrators to choose the optional 200-style datetime negotiation Pattern 1.2 instead of Pattern 2.1. It also permits administrators the ability to have the Memento MediaWiki Extension return full HTTP 400 and 500 status codes rather than using standard MediaWiki error pages. Finally, version 2.0 permits administrators to turn off recommended Memento headers if desired. Seeing as much of our work focuses on producing the correct revision of a wiki page in response to a user's datetime input, we also examine the problem of finding the correct revisions of the embedded resources, including images, stylesheets, and JavaScript; identifying the issues and discussing whether or not MediaWiki must be changed to support this functionality.

研究动机与目标

  • 在 MediaWiki 中實作 Memento 協定,以支援使用者透過時間戳記協商機制存取 wiki 頁面的歷史版本。
  • 評估不同 Memento 協商模式(Pattern 1.1 與 Pattern 2.1)在 MediaWiki 架構下的性能影響。
  • 擴充 Memento MediaWiki 擴充元件,新增功能如完整的 HTTP 4xx/5xx 錯誤碼支援、可選的 Memento 標頭,以及 200 模式協商(Pattern 1.2)。
  • 調查並原型實作歷史 wiki 頁面中嵌入資源(如圖片、CSS、JavaScript)的時間一致性支援。
  • 識別並解決 MediaWiki 架構上的限制,以實現歷史頁面檢視的完整時間一致性。

提出的方法

  • 實作 Memento MediaWiki 擴充元件 v2.0,利用 MediaWiki 現有的 API 與鉤子系統,支援 TimeGate、TimeMap 及 Memento 資源類型。
  • 評估兩種基於 302 的時間戳記協商模式:Pattern 1.1(2 個請求)與 Pattern 2.1(3 個請求),測量其對頁面載入性能的影響。
  • 使用 MediaWiki 的鉤子系統,特別是 ImageBeforeProduceHTML 鉤子,嘗試根據請求的時間戳記動態載入歷史圖片版本。
  • 探討使用 $file->getHistory() 方法以取得並指派歷史圖片 File 物件,以確保在指定時間戳記下正確渲染。
  • 調查使用 Memento 標頭與 TimeGates 來處理嵌入資源(CSS、JS)的可行性,以確保頁面渲染的時間一致性。
  • 提出兩種架構方案:在 MediaWiki 內部實作時間戳記協商以處理嵌入資源,或在所有資源上完整支援 Memento 協定。

实验结果

研究问题

  • RQ1在 MediaWiki 的請求處理與內部路由機制下,Memento 的 Pattern 1.1 與 Pattern 2.1 性能表現如何比較?
  • RQ2Memento MediaWiki 擴充元件是否能在現有 MediaWiki 安裝上以可忽略的性能開銷進行部署?
  • RQ3嵌入資源(圖片、CSS、JavaScript)在多大程度上可與主 wiki 頁面的歷史版本同步,以達成時間一致性?
  • RQ4為支援嵌入資源的完整時間一致性,MediaWiki 核心或擴充元件架構需進行哪些修改?
  • RQ5在嵌入資源上使用 MediaWiki 內部的時間戳記協商,是否比依賴外部 Memento TimeGate 更具效能?

主要发现

  • 由於 MediaWiki 內部請求路由與快取行為,Pattern 2.1(3 個請求)在 MediaWiki 上的表現優於 Pattern 1.1(2 個請求),與最初的性能直覺相反。
  • Memento MediaWiki 擴充元件 v2.0 對當前與歷史頁面存取的性能影響可忽略不計,確認其適合生產環境部署。
  • ImageBeforeProduceHTML 鉤子的 $time 參數目前未被使用且文件有誤,因為時間戳記字串未經由底層函數處理。
  • 使用 $file->getHistory() 的原型解決方案可實現歷史圖片版本的動態載入,但需清除快取才會生效。
  • MediaWiki 目前缺乏鉤子以在頁面渲染期間修改或插入歷史 CSS 與 JavaScript,需與 MediaWiki 開發團隊合作。
  • 達成時間一致性的兩種可行架構路徑為:優先採用 MediaWiki 內部協商(性能較佳),或在所有資源上完整支援 Memento 協定(標準化但延遲較高)。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。