Are there plans to cooperate with Memento protocol

From @severak on Tue Sep 15 2015 12:03:14 GMT+0000 (UTC)

It seems there is something called Memento protocol. It’s defined by RFC 7089.

It’s already implemented by some notable web archives (archive.org, Library of Congress Web Archive, archive.is).

Are there any plans to support this (or cooperate somehow)?


Copied from original issue: https://github.com/ipfs/faq/issues/35

From @jbenet on Tue Sep 15 2015 22:39:10 GMT+0000 (UTC)

We should definitely support this. https://github.com/ipfs/archives

From @davidar on Sat Sep 26 2015 01:51:04 GMT+0000 (UTC)

:+1:

From @nickkolok on Sun Aug 14 2016 15:17:58 GMT+0000 (UTC)

But Memento doesn’t use hashes, does it?

InterPlanetary Wayback (ipwb) interfaces with IPFS and serves captures using the Memento protocol.

Memento ties in heavily with an extended version of the the Web Linking spec (RFC5988), particularly with TimeMaps of original resources, e.g.,

<https://ipfs.io>; rel="original",
<http://localhost:1208/timemap/link/https://ipfs.io>; rel="self"; type="application/link-format",
<http://web.archive.org/web/20140610003600/http://www.ipfs.io:80/>; rel="first memento"; datetime="Tue, 10 Jun 2014 00:36:00 GMT",
<http://web.archive.org/web/20140716102622/http://ipfs.io:80/>; rel="memento"; datetime="Wed, 16 Jul 2014 10:26:22 GMT",
...
<http://web.archive.org/web/20170523094036/https://ipfs.io/>; rel="memento"; datetime="Tue, 23 May 2017 09:40:36 GMT",
<http://web.archive.org/web/20170523094036/https://ipfs.io/>; rel="last memento"; datetime="Tue, 23 May 2017 09:40:36 GMT",
<http://localhost:1208/timemap/link/https://ipfs.io>; rel="timemap"; type="application/link-format",
<http://localhost:1208/timemap/json/https://ipfs.io>; rel="timemap"; type="application/json",
<http://localhost:1208/timemap/cdxj/https://ipfs.io>; rel="timemap"; type="application/cdxj+ors",
<http://localhost:1208/timegate/https://ipfs.io>; rel="timegate"

The latter was produced with a local instance of MemGator [1], an open source Memento aggregator. MemGator also supports the CDXJ [2] format (and JSON) for TimeMaps. A CDXJ format looks like:

@context ["http://tools.ietf.org/html/rfc7089"]
@id {"uri": "http://localhost:1208/timemap/cdxj/https://ipfs.io"}
@keys ["memento_datetime_YYYYMMDDhhmmss"]
@meta {"original_uri": "https://ipfs.io"}
@meta {"timegate_uri": "http://localhost:1208/timegate/https://ipfs.io"}
@meta {"timemap_uri": {"link_format": "http://localhost:1208/timemap/link/https://ipfs.io", "json_format": "http://localhost:1208/timemap/json/https://ipfs.io", "cdxj_format": "http://localhost:1208/timemap/cdxj/https://ipfs.io"}}
20140610003600 {"uri": "http://web.archive.org/web/20140610003600/http://www.ipfs.io:80/", "rel": "first memento", "datetime": "Tue, 10 Jun 2014 00:36:00 GMT"}
20140716102622 {"uri": "http://web.archive.org/web/20140716102622/http://ipfs.io:80/", "rel": "memento", "datetime": "Wed, 16 Jul 2014 10:26:22 GMT"}
20140819133040 {"uri": "http://web.archive.org/web/20140819133040/http://ipfs.io:80/", "rel": "memento", "datetime": "Tue, 19 Aug 2014 13:30:40 GMT"}
20140917113514 {"uri": "http://archive.is/20140917113514/http://ipfs.io/", "rel": "memento", "datetime": "Wed, 17 Sep 2014 11:35:14 GMT"}
...
20170523094036 {"uri": "http://web.archive.org/web/20170523094036/https://ipfs.io/", "rel": "memento", "datetime": "Tue, 23 May 2017 09:40:36 GMT"}
20170523094036 {"uri": "http://web.archive.org/web/20170523094036/https://ipfs.io/", "rel": "last memento", "datetime": "Tue, 23 May 2017 09:40:36 GMT"}

In IPWB we use the JSON block in CDXJ entries to store the IPFS hash of the payload and HTTP headers as extracted from a WARC [3] file. Doing this allows us to associate the hashes with both the URI of original resource (URI-R in Memento nomenclature) and datetime.


I was told “New users can only post 2 links”, so here’s the source 'd inline above.

[1] https://github.com/oduwsdl/memgator
[2] https://link.springer.com/article/10.1007/s00799-016-0184-4
[3] https://www.iso.org/standard/44717.html

This reminds me that we should update MemGator CDXJ serialization to use ! as meta record prefix instead of the currently used @ character which is not sort friendly.