Help:Extension:Memento

This extension provides web time travel capability for MediaWiki platforms. It introduces negotiation in the datetime dimension for web content by leveraging the Memento protocol specified in RFC 7089. With a browser extension installed, like the Memento Extension for Chrome or Firefox, a user can select a date and time using their browser and browse the web as if it were that date. With this extension, MediaWiki will support the same time travel protocol natively supported by several web archives.

An Example Use Case Using the Memento MediaWiki Extension
The diagram to the right shows a possible use case. In step 1, the user starts on a web page at lanl.gov and uses the Memento for Chrome browser extension to choose a date and time of December 15, 2012. With each additional right click, the Memento Protocol delivers them versions of pages from that date from both wikis and web archives. In step 5 they find a reference from 2009 and choose to change the browser date to April 7, 2009, and then continue to browse the web, as if it were that date in 2009.



Here are the details of the diagram:
 * 1) The user is at http://lanlsource.lanl.gov/hello, sets the time travel date to 2012-12-15.
 * 2) The page has a link to http://en.wikipedia.org/wiki/Web_archiving. The user right-clicks the link in an attempt to access the version of that page that was active on 2012-12-15.
 * 3) Red Arrow transition 1
 * 4) The user lands on http://en.wikipedia.org/w/index.php?title=Web_archiving&oldid=526371727 which was the active page from 2012-12-04 until 2013-02-28.
 * 5) The page has a link to http://en.wikipedia.org/wiki/World_Wide_web. The user right-clicks the link in an attempt to access the version of that page that was active on 2012-12-15.
 * 6) Red Arrow transition 2
 * 7) The user lands on http://en.wikipedia.org/w/index.php?title=World_Wide_Web&oldid=528224441 which was the active page from 2012-12-15 until 2012-12-19.
 * 8) The page has a link to http://www.w3.org. The user right-clicks the link in an attempt to access the version of that page that was active on 2012-12-15.
 * 9) Green Arrow transition 3
 * 10) The user lands on http://web.archive.org/web/20121218021502/http://www.w3.org, a version of the page available from the Internet Archive, with archival datetime 2012-12-18.
 * 11) The user goes back to http://en.wikipedia.org/w/index.php?title=World_Wide_Web&oldid=528224441, and scrolls down in the page.
 * 12) The page has a Reference:   in which Web Content Accessibility Guidelines (WCAG) Overview links to http://www.w3.org/WAI/intro/wcag.php.
 * 13) The user resets the time travel date to the indicated retrieval time of the linked page, 2009-04-07.
 * 14) The user right-clicks the link to http://www.w3.org/WAI/intro/wcag.php in an attempt to access the version of that page that was active on 2009-04-07.
 * 15) Blue Arrow transition 4
 * 16) The user lands on http://web.archive.org/web/20090401074742/http://www.w3.org/WAI/intro/wcag.php, a version of the page available from the Internet Archive, with archival datetime 2009-04-01.

Additional Use Cases

 * Digital Archaeology. Wikis are becoming a source of digital archeology, and accessing prior versions of pages become more and more important to many users in the Humanities when trying to determine how the world has evolved.
 * Avoiding spoilers. MediaWikis are used as fan platforms, such as the Game of Thrones wiki. Because the TV episodes don't air at the same time across the world, many current pages in such fan platforms contain spoilers. To avoid spoilers, fans can use Memento to set a date prior to the episode containing the spoilers they want to avoid, and view the wiki without spoilers. Related to this use case, sports fans can potentially use the extension to avoid sports results. An exploration of this concept was covered in this paper.
 * Casual Historical Interest. Users often wish to see versions of resources prior to certain events, for example, the page about Michael Jackson in Wikipedia both before his death. And, once they are on an old version of that page, they may want to see what other Wikipedia pages linked from the Michael Jackson page looked like at that time.
 * Terminology changes. MediaWikis are used for scientific purposes, for example, as platforms to provide and maintain terminology definitions. Such definitions may change over time and may be interrelated. From the perspective of scholarly discourse, it may be important to be able to see exactly what the interrelated definitions looked like, for example, when they were used in a scholarly publication.
 * Seamless web time travel. Pages in MediaWikis commonly contain links to the web at large. Sometimes it is helpful, and sometimes necessary (e.g. when links are dead) to see the state of such linked resources at some time in the past, for example, at the time when a linked resource was accessed by the editor. This functionality is supported out of the box by a Memento client and thus not require a MediaWiki to install this Memento extension. However, with the extension installed, temporal navigation is possible both within and outside of the MediaWiki. A user would experience seamless web time travel between wikis, web archives, and other content management systems, such as WordPress.
 * Editor Review. MediaWiki editors can benefit from Memento time travel by being able to easily visit the state of interrelated pages at some time in the past, for example, to assess the differences before and after editing wars.
 * Temporal Text Mining and Data Extraction. By supporting datetime negotiation to access page versions, a MediaWiki allows software agents to easily access the state of the entire system as it was at a certain point in the past, or to collect all versions of a page that were published during past time range. This capability may be helpful in support of text mining and data extraction activities and applies to both page-oriented MedaWikis and to data wikis such as Wikidata. It potentially allows for republication of structured information at a frequency that remains in lock step with the evolution of a MediaWiki, rather than in batch mode as is the case with DBpedia. See also the paper with this regard.

How Memento Works
This extension allows access to versions of MediaWiki pages by implementing support for the  HTTP request header to perform datetime negotiation, a variation on content negotiation specified in RFC 2295. The datetime for negotiation is expressed as a value of the   HTTP header. The Memento extensions for Chrome or Firefox or the command line utility mcurl can be used to set this datetime value. A special resource named a TimeGate accepts this datetime and then redirects the user to the page as it existed on that date.

Datetime negotiation works in two simple steps:
 * When a client requests a page, this extension will provide the URI of a TimeGate for the page in the HTTP Link header. The TimeGate is capable of datetime negotiation to access versions of the page.
 * When a client navigates to the TimeGate and performs datetime negotiation with it, the TimeGate provides the client with the version of the page that was operational at the datetime used for negotiation. The creation datetime of that version is provided in the  HTTP response header, along with links in the HTTP Link header including a link to the current version of the page and to a TimeMap for the page.

This extension also allows access to a TimeMap for a MediaWiki page, which is a document that enumerates all versions of the page as well as a TimeGate for the page. When a client requests a page, this extension will provide the URI of a TimeMap for the page in the HTTP Link header.

This MediaWiki extension uses the same handlers as the MediaWiki software to connect to the database. Hence all the existing database permissions and page access permissions are honored. It uses a  database connection, which means that the database connection can only read from the tables. Therefore, this plug-in makes no changes to the data in the wiki.

Usage
The best way to experience this extension is by installing Memento Time Travel for the Chrome browser. After installing Memento Time Travel, enter the URL of a page in your wiki and set the desired date-time. Memento Time Travel will use the TimeGate installed in the wiki to load the version of the article that was live at the requested date-time.

After setting the date-time in Memento Time Travel, a user can click both the internal and external links in the page and navigate the web in the past.

Templates
MediaWiki, by default, retrieves the most recent version of a template when transcluded in an article. This extension allows datetime content negotiations on transcluded templates.

Special Pages
Special pages under the URL http://your.wikiserver.here/index.php/Special:SpecialPages do not have a history, i.e. there are no revisions to these pages. Hence, the Memento extension cannot perform time negotiations on these resources.

Deleted Contributions
This plugin does not make any deleted revisions accessible.

Timestamps
This extension searches for and retrieves the mementos using the modified time of an article. Timestamps are not unique identifiers and it is possible that an article will have more than one revision at any given time. This extension handles this situation by redirecting to the revision that has the highest revision id.

MediaWiki does not resolve deleted revisions using revision ids, but use timestamps instead in their URIs. Hence, we could not come up with a way to resolve a situation when more than one deleted revision has the same timestamp.

Wikis with Memento Plug-in Installed

 * W3C Wiki

Links

 * http://www.mementoweb.org/
 * strategy:Proposal:Digital Archaeology
 * Extension:MementoHeaders
 * Extension:TimeMachine
 * Extension:BackwardsTimeTravel
 * T36778 "Deploy extension Memento on Wikipedia sites" (2012/2013, regarding an earlier version, cf. 2016 update)
 * RfC on English Wikipedia (2012)