[7] [DFN[[[Memento framework]]]] は、[[資源]]の過去の状態を取得するための [[HTTP]]
の機能群です。

* 仕様書

[REFS[
- [3] [CITE@en[RFC 7089 - HTTP Framework for Time-Based Access to Resource States -- Memento]] ([TIME[2014-10-05 16:32:34 +09:00]] 版) <http://tools.ietf.org/html/rfc7089>
-- [4] [CITE@en[RFC 7089 - HTTP Framework for Time-Based Access to Resource States -- Memento]] ([TIME[2014-10-05 16:32:34 +09:00]] 版) <http://tools.ietf.org/html/rfc7089#section-1.1>
-- [9] [CITE@en[RFC 7089 - HTTP Framework for Time-Based Access to Resource States -- Memento]] ([TIME[2014-10-05 16:32:34 +09:00]] 版) <http://tools.ietf.org/html/rfc7089#section-1.3>
-- [2] [CITE@en[RFC 7089 - HTTP Framework for Time-Based Access to Resource States -- Memento]]
( ([TIME[2014-10-05 16:32:34 +09:00]] 版))
<http://tools.ietf.org/html/rfc7089#section-2.2.3>
]REFS]

* プロトコル

[13] 次の概念が定義されています。
[FIG(short list)[
- [[Original Resource]]
- [[Memento]]
- [[TimeGate]]
- [[TimeMap]]
]FIG]

[12] 次の[[HTTPヘッダー]]を定義または利用しています。
[FIG(short list)[
- [CODE(HTTP)@en[[[Memento-Datetime:]]]]
- [CODE(HTTP)@en[[[Accept-Datetime:]]]]
- [CODE(HTTP)@en[[[Vary:]]]]
- [CODE(HTTP)@en[[[Link:]]]]
]FIG]

[14] 次の[[リンク関係型]]を定義しています。
[FIG(short list)[
- [CODE(HTTP)@en[[[original]]]]
- [CODE(HTTP)@en[[[memento]]]]
- [CODE(HTTP)@en[[[timegate]]]]
- [CODE(HTTP)@en[[[timemap]]]]
]FIG]

* Memento (一般名詞)

[5] [[Original Resource]] の [DFN[[[Memento]]]] は、
[[Original Resource]] の以前の状態をカプセル化した[[資源]]です [SRC[>>4]]。

[6] ある[[時刻]]に存在した [[Original Resource]] の [[Memento]]
とは、 [[Original Resource]] のその時刻の状態をカプセル化した[[資源]]です [SRC[>>4]]。

[EG[
[8] [CODE(URI)[http://www.ietf.org/]] の [[Memento]] の例 [SRC[>>9]]:
[FIG(list)[
- [CODE(URI)[http://web.archive.org/web/19970107171109/http://www.ietf.org/]]
- [CODE(URI)[http://webarchive.nationalarchives.gov.uk/20080906200044/http://www.ietf.org/]]
]FIG]
]EG]

[EG[
[10] [CODE(URI)[http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol]] の [[Memento]]
の例 [SRC[>>9]]:
[FIG(list)[
- [CODE(URI)[http://en.wikipedia.org/w/index.php?title=Hypertext_Transfer_Protocol&oldid=366806574]]
]FIG]
]EG]

[EG[
[11] [CODE(URI)[http://www.w3.org/TR/webarch/]] の [[Memento]] の例 [SRC[>>9]]:
[FIG(list)[
- [CODE(URI)[http://www.w3.org/TR/2004/PR-webarch-20041105/]]
- [CODE(URI)[http://archive.is/20120527002537/http://www.w3.org/TR/webarch/]]
]FIG]
]EG]

* 実装

[1] [CITE[Wayback Machine APIs | Internet Archive]]
( ([TIME[2014-08-27 01:38:37 +09:00]] 版))
<https://archive.org/help/wayback_api.php>

[15] [CITE@en[RFC 7089 - HTTP Framework for Time-Based Access to Resource States -- Memento]]
( ([TIME[2014-10-05 16:32:34 +09:00]] 版))
<http://tools.ietf.org/html/rfc7089#section-2.2.4>

[16] [[Internet Archive]] でアーカイブされている過去の [[Webサイト]]の各ページにも
[[Memento]] の [CODE(HTTP)@en[[[Link:]]]] [[ヘッダー]]や
[CODE(HTTP)@en[[[Memento-Datetime:]]]] [[ヘッダー]]が追加されているようです。

[17] [CITE@en[Memento update]]
( ([[Herbert Van de Sompel]]著, [TIME[2010-03-20 02:33:16 +09:00]]))
<https://lists.w3.org/Archives/Public/public-lod/2010Mar/0169.html>

[18] [CITE@en[Memento compliant DBpedia Archive with Triple Pattern Fragments support]]
( ([[Herbert Van de Sompel]]著, [TIME[2016-06-02 07:25:02 +09:00]]))
<https://lists.w3.org/Archives/Public/public-lod/2016Jun/0000.html>

[19] [CITE@en-US[Memento at the W3C | W3C Blog]]
([TIME[2016-09-01 12:11:32 +09:00]])
<https://www.w3.org/blog/2016/08/memento-at-the-w3c/>

[FIG(quote)[
[FIGCAPTION[
[20] [CITE@en[Data on the Web Best Practices]]
([TIME[2017-01-30 21:58:55 +09:00]])
<https://www.w3.org/TR/2017/REC-dwbp-20170131/#VersioningInfo>
]FIGCAPTION]

> Use Memento '''['''RFC7089''']''', or components thereof, to express temporal versioning of a dataset and to access the version that was operational at a given datetime. The Memento protocol aligns closely with the approach for assigning URIs to versions that is used for W3C specifications, described below.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[21] [CITE@en[Web Annotation Data Model]]
([TIME[2017-02-24 02:14:26 +09:00]])
<https://w3c.github.io/web-annotation/model/wd2/#time-state>
]FIGCAPTION]

> A Time State resource records the time at which the resource is appropriate for the Annotation, typically the time that the Annotation was created and/or a link to a persistent copy of the current version. The timestamp for the resource could be resolved via the Memento protocol, described in RFC 7089 '''['''rfc7089''']'''.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[22] [CITE@en[Selectors and States]]
([TIME[2017-02-24 02:14:26 +09:00]])
<https://w3c.github.io/web-annotation/selector-note/#h-timestate_def>
]FIGCAPTION]

> A Time State resource records the time at which the resource is when the intended selection occurs, typically the time that the resource was created and/or a link to a persistent copy of the current version. The timestamp for the resource could be resolved via the Memento protocol, described in RFC 7089 '''['''rfc7089''']'''.

]FIG]


[23] [CITE@en[archive.is]]
([TIME[2015-05-07 02:49:11 +09:00]])
<http://mementoweb.org/depot/native/archiveis/>

[24] [CITE[Web Science and Digital Libraries Research Group: 2013-07-15: Wayback Machine Upgrades Memento Support]]
([TIME[2019-02-10 08:39:53 +09:00]])
<https://ws-dl.blogspot.com/2013/07/2013-07-15-wayback-machine-upgrades.html>