A Framework for Aggregating Private and Public Web Archives

06/03/2018 ∙ by Mat Kelly, et al. ∙ Old Dominion University 0

Personal and private Web archives are proliferating due to the increase in the tools to create them and the realization that Internet Archive and other public Web archives are unable to capture personalized (e.g., Facebook) and private (e.g., banking) Web pages. We introduce a framework to mitigate issues of aggregation in private, personal, and public Web archives without compromising potential sensitive information contained in private captures. We amend Memento syntax and semantics to allow TimeMap enrichment to account for additional attributes to be expressed inclusive of the requirements for dereferencing private Web archive captures. We provide a method to involve the user further in the negotiation of archival captures in dimensions beyond time. We introduce a model for archival querying precedence and short-circuiting, as needed when aggregating private and personal Web archive captures with those from public Web archives through Memento. Negotiation of this sort is novel to Web archiving and allows for the more seamless aggregation of various types of Web archives to convey a more accurate picture of the past Web.



There are no comments yet.


page 2

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1. Introduction

Conventional Web archives preserve publicly available content on the live Web. Some Web archives allow users to submit URIs to be individually preserved or used as seeds for an archival crawl. However, some content on the live Web may be inaccessible (e.g., beyond the crawler’s capability compared to a live Web browser) or inappropriate (e.g., requires a specific user’s credentials) for these crawlers and systems to preserve. For this reason and enabled by the recent influx of personal Web archiving tools, such as WARCreate, WAIL, and Webrecorder.io, individuals are preserving live Web content and personal Web archives are proliferating (marshall-rethinking).

Personal and private captures, or mementos, of the Web, particularly those preserving content that requires authentication on the live Web, have potential privacy ramifications if shared or made publicly replayable after being preserved (Marshall:2012:IAS:2232817.2232819). Given the privacy issues, strategically regulating access to these personal and private mementos would allow individuals to preserve, replay, and collaborate in personal Web archiving endeavors. Adding personal Web archives with privacy considerations to the aggregate view of the “Web as it was” will provide a more comprehensive picture of the Web while mitigating privacy violations.

This work has four primary contributions to Web archiving:

Archival Query Precedence and Short-circuiting: Allow querying of individual or subsets of archives of an aggregated set in a defined order with the series halting if a condition is met (Section 3).

TimeMap/Link Enrichment: Provide additional, more descriptive attributes to URI-Ms for more efficient querying and interaction (Section 4).

Multi-dimensional user-driven content negotiation of archives: Increase user involvement in request for URI-Ms in both temporal and other dimensions (Sections 5 and LABEL:sec:negotitationDimensions).

Public/Private Web Archive Aggregation: Introduce additional special handling of access to private Web archives for Memento aggregation using OAuth (Section LABEL:sec:auth).

(a) Local Archive capture of facebook.com
(b) Internet Archive capture of facebook.com
(c) Private content on the live Web that is extremely time sensitive to preserve for future access.
Figure 1. Personalized and Private Web pages.

1.1. Solutions Beyond Institutions

Personal Web archives may contain captures with personally identifiable information, such as a time sensitive statement verification Web page (Figure (c)c) or a user’s facebook.com feed (Figure (a)a). A user may want to selectively share their facebook.com mementos (1555440) but wish to also regulate access to them (Marshall:2014:AAF:2740769.2740772). Without the ability of authenticating as a user on the live Web, many public Web archives simply preserve the facebook.com login page (Figure (b)b). Both captures are representative of facebook.com, and they may have even been captured at the same time. Users may be hesitant to share their mementos of facebook.com (or other personal or private Web pages) without a mechanism to ensure that the Web page as the user experienced it is faithfully captured and that the access of those captures can be regulated.

As a counterpoint, an individual’s personal Web archive is more susceptible to disappearing without an institution’s backing. Maintaining backups of archived content is unwieldy, requires diligence or automation, and is still at the mercy of hardware failures. While distributed propagation of the captures to other places may ameliorate this issue, another privacy issue remains in that distributed content may be sensitive and must be handled differently at the level of access.

To observe the more representative picture of “what I saw on the Web of the past” inclusive of private Web archive captures, we could give precedence to private Web archives over public Web archives when aggregating. For example, temporally aggregating my friends’ captures (potentially residing in multiple private Web archives) with those consisting of preserved Facebook login pages (Figure (a)a) from public Web archives (who are rightly not responsible for preserving my Facebook feed) may not be desirable. Instead, a user may want to instruct the aggregator to only aggregate mementos from archives with certain characteristics, e.g., a set of private Web archives, and only if no personal captures are found, look to the public Web archives for captures (Figure 2). This sort of runtime specification of archival query precedence does not currently exist. Today’s Memento aggregators can only query a static set of public Web archives specified at configuration time (Figure 3).

Because more personal and private, non-institutional backed Web archives are being created, and these archives may contain sensitive data that cannot be shared without special handling, more work must to be done to address the impermanence of personal Web archives with consideration for their contents.

Figure 2. Archival precedence using private first then public Web archiving querying model (PrPu).
Figure 3. Conventional Memento aggregators query a set of public Web archives and do so in an equally-weighted querying model circuiting.

1.2. Enrichment of Archival Aggregates

We provide amendments to the semantics of Memento TimeMaps to encourage aggregation of mementos from more archives while still allowing for the distinction between conventional and enriched captures with additional metadata. We introduce additional mementities (a portmanteau of “Memento” and “entity”)222Used for distinction from the term “entity” as defined and in the now-deprecated RFC2616 describing HTTP/1.1. for accessing various types of Web archives. The use of mementities could enable negotiation in additional dimensions beyond time, systematic aggregation of private captures, regulated access control to Web archives that may contain personal or private mementos, etc.

!context ["https://oduwsdl.github.io/contexts/memento"]
!id {"uri": "http://localhost:1208/timemap/cdxj/http://facebook.com"}
!keys ["memento_datetime_YYYYMMDDhhmmss"]
!meta {"original_uri": "http://facebook.com"}
!meta {"timegate_uri": "http://localhost:1208/timegate/http://facebook.com"}
!meta {"timemap_uri": {"link_format": "http://localhost:1208/timemap/link/http://facebook.com", "json_format": "http://localhost:1208/timemap/json/http://facebook.com", "cdxj_format": "http://localhost:1208/timemap/cdxj/http://facebook.com"}}
19981212013921 {"uri": "http://archive.is/19981212013921/http://facebook.com/", "rel": "first memento", "datetime": "Sat, 12 Dec 1998 01:39:21 GMT"}
19981212013921 {"uri": "http://web.archive.org/web/19981212013921/http://facebook.com/", "rel": "memento", "datetime": "Sat, 12 Dec 1998 01:39:21 GMT"}
19981212024839 {"uri": "http://web.archive.org/web/19981212024839/http://www.facebook.com/", "rel": "memento", "datetime": "Sat, 12 Dec 1998 02:48:39 GMT"}
20170330231113 {"uri": "http://web.archive.org/web/20170330231113/http://www.facebook.com/", "rel": "memento", "datetime": "Thu, 30 Mar 2017 23:11:13 GMT"}
20170331013527 {"uri": "http://web.archive.org/web/20170331013527/https://www.facebook.com/", "rel": "last memento", "datetime": "Fri, 31 Mar 2017 01:35:27 GMT"}
Figure 4. An abbreviated CDXJ TimeMap from MemGator for facebook.com.

In this work (Section 4) we introduce three new types of attributes for richer TimeMaps: content-based attributes based on data when a URI is dereferenced, derived attributes requiring further analysis beyond dereferencing but useful for evaluating capture quality, and access attributes that guide users and software as to requirements needed to dereference mementos in private, personal, and archives with access restrictions.

Through this TimeMap enrichment, a user will be able to specify the semantics to be selective in the set of archived URIs (URI-Ms) returned in a TimeMap through a set of attributes beyond time and original URI (URI-R). This will allow the user to interact with the Memento aggregator to specify a custom subset and/or supplement the existing supporting archives in the aggregated result returned.

Conventional Memento aggregation (sanderson-global) (Figure 3) is accomplished by a user requesting captures for a URI-R from a remote endpoint. The software receiving the request then relays this request to a set of Web archives with which it is configured. Once the Web archives return a response containing their captures, the aggregator software temporally sorts the URI-Ms, adds additional Memento metadata, and returns the aggregated TimeMap to the user.

In this work we also describe a cascading hierarchical relationship between the aggregators and the mementities involved in aggregation and negotiation. We introduce a “Meta-Aggregation” concept (Section 5) to allow for a recursive relationship of one aggregator onto another, “building up” an aggregate result, potentially including supplemental information in the aggregation. Section LABEL:sec:archivalSelection_mma describes multiple scenarios where supplementing the memento aggregation using a meta-aggregator mementity would be useful. This hierarchy may also include other mementities like one to regulate access to private Web archives (identified with a URI-P) and another, a StarGate, to allow for selective negotiation (Section LABEL:sec:stargate), e.g., allowing the client to request that only results from private Web archives are returned from an aggregator.

2. Background and Related Work

2.1. Archiving and Linked Data

The Memento Framework (rfc7089) provides the constructs to interact with Web archives in the temporal dimension. An archival capture (memento) is identified by a URI-M. Memento aggregation allows identifiers for mementos (URI-Ms) from multiple Web archives to be temporally sorted using the parameters of the original live Web URI (URI-R) and a timestamp of the capture (Memento-Datetime). Memento TimeMaps contain a listing of URI-Ms for mementos of an original resource on the live Web. TimeMaps also include contextual information like the URI-R that the TimeMap represents, URIs for a Memento mementity to handle temporal content negotiation (TimeGate, i.e., URI-Gs), and identifiers for other TimeMaps (URI-Ts).

Memento TimeMaps are conventionally formatted and extend upon the Web Linking specification (rfc8288). The syntax of the Link format applies to both information expressed in HTTP headers as well as information supplied in a TimeMap listing. Because of this, a limited set of attributes about URI-Ms is allowed within a TimeMap inclusive of rel and datetime. Additional information about a URI-M would be useful if present in a TimeMap. For example, knowing the HTTP status code of the dereferenced URI-M would reduce the amount of time needed to determine unique captures in the archive (kelly-jcdl2017). Extending TimeMaps may also provide the facility for the integration of private and public Web archives.

Alam et al. (salam-cdxj) defined the CDXJ format, an extension of the conventional CDX (cdx) archival indexing format, as an extensible means of associating additional attributes to URI-Ms. CDX files serve as indexes for Web archive files and contain many fields, like MIME-type, status code, and content-digest of the memento, which are not present in TimeMaps. MemGator (memgator) is an open source Memento aggregator that supports CDXJ TimeMaps (example in Figure 4) along with conventional Link-formatted and additionally JSON-formatted TimeMaps. In this work, we adapt the code for MemGator to handle additional HTTP request parameters supplied by a client as well as producing TimeMaps with the additional proposed attributes.

While these two dimensions are sufficient for the aggregation of public Web archives, additional parameters are required to express the need for privacy considerations or further steps to be executed to dereference the URI-M. Beyond the ability to express distinction in private and public mementos, it may not make sense to request public Web archive captures from an aggregator based on a variety of conditions. Some examples where expressions to distinguish captures are in isolation by URI (explicit exclusion of public captures from results) and Archival precedence (e.g., only check for captures of facebook.com in public Web archives when none are in my own).

The ‘profile’ link relation type (rfc6906) (discussed in Section 3) provides a standard set of semantics for processing a resource representation. We leverage and extend these semantics to allow a user to request mementos with certain properties from Web archives.

In earlier work, we developed WARCreate (kelly-jcdl12), a Google Chrome browser extension, to allow a user to capture content from their browser, even pages behind authentication, into the standard web archiving (WARC) format. We also re-packaged institutional grade Web archiving tools in WAIL (berlin-wail), a native desktop application, to allow individuals to preserve, replay, and retain complete control of their captures. More recently, the Webrecorder.io service allows similar capability, including allowing the user to capture content behind authentication. But unlike WARCreate and WAIL, Webrecorder relies on the user’s credentials being proxied through the service, a potentially undesirable feature with privacy ramifications.

2.2. Privacy and Security

The Snowden Archive-in-a-Box project (snowden) is an autonomous version of the the Snowden Digital Surveillance Archive. The project uses a Raspberry Pi single-board computer along with other hardware and a data set containing files leaked by Edward Snowden to allow browsing of the files without a user being surveilled. This use case highlights access as being the problematic factor beyond the base case of the content being sensitive. When aggregating captures from a Snowden archive with captures from other archives, requesters may wish to prevent requests from propagating to other archives via the aggregator (by specifying a privateOnly profile) or to only consult other archives when no results are returned from their instance (request precedence, both discussed in Section 3).

While little research has been performed on the aggregation of private and public captures, multiple surveys have been performed by a variety of researchers on user’s perspectives on private Web archives. In particular, Marshall and Shipman (Marshall:2012:IAS:2232817.2232819) surveyed Web users on potential efforts for institutions to preserve their private Web contents. They particularly highlighted the need for exploration of who retains control of access of private content once it is preserved and made available.

The OAuth 2.0 Authorization Framework (rfc6749) (usage discussed in Section 4.3) provides a model for tokenization that we apply for persistent access to private Web archives. Using this model requires a secondary authorization server, implemented in this research as an additional mementity to decouple the authentication burden on the archive. This model, however, requires the archive to be aware of this additional mementity to act as a gateway to the archive.

Cushman and Kreymer (ilya-hacker) performed an extensive review on the security of Web archives in the context of both preservation and replay. Through technical examples on how an attacker might capture private resources, they provided approaches for mitigating each sort of attack. In related work, Brunelle et al. (brunelle-dlib2016) described issues with private Web archiving on an organizational scale. Through analyzing the results of an archival crawler instance, they identified content that should not have been accessible to the crawler, which required wholesale removal of WARCs containing the information for lack of a method of selective removal.

2.3. Memento and HTTP Mechanics

Rosenthal (dshr-aggregators)

emphasized that temporal order may not be optimal for TimeMaps returned from Memento aggregators. He stated that aggregators need to develop ways of estimating usefulness of preserved content and conveying these estimates to readers. In a different work, Rosenthal

(dshr-importance) described the behavior of aggregators returning “Soft 403s” consisting of captures of login pages when the user likely expected content shown that was originally behind authentication.

Rosenthal (dshr-importance) also described a “hints list” that an aggregator might provide based on its own experience of requesting content from archives. In this work Rosenthal also alluded to a hypothetical mechanism of the aggregator filtering content like login pages from the results and redirecting a user to a version of the TimeMap containing only captures that are not a login page.

Jones et al. (sjones-raw1; preferHeader-wsdlBlog) discussed obtaining the “raw mementos” consisting of un-rewritten links in captures in a systematic way using the HTTP Link response header. By utilizing the HTTP Prefer request header (rfc7240), a user would be able to obtain a version of the memento as it appeared at the time of capture instead of a version with relative links rewritten by the archive to point back within the archive and not the live Web. An archive, in response and to confirm compliance with the request, would return the memento with the HTTP Preference-Applied response header along with the requested original version of the memento.

The HTTP Prefer header (rfc7240) allows an explicit means for a client to express their preferences of optional aspects in an HTTP Request. Van de Sompel et al. (preferHeader-wsdlBlog) highlighted that the Prefer header could be used by Web archives to allow clients to specify a request for the unaltered or un-rewritten content. Rosenthal (preferHeader-dshr) echoed Van de Sompel et al. by suggesting a list of transformations (screenshot, altered-dom, etc.) for a memento via a new HTTP header.

This work focuses on the transformation of TimeMaps, not the mementos themselves. The rewriting problem in previous work is pertinent to replay of URI-Ms whereas what we accomplish is more expressive metadata of the mementos prior to and to mitigate issues with dereferencing URI-Ms. A goal of this work is to further involve the client in the aggregation process. Interaction with the aggregators through these sort of mechanisms will be a first step in accomplishing this.

Fielding and Reschke (rfc7231) defined proactive and reactive content negotiation as that which is determined by the server as a best-guess based on metadata and a model involving communication and selection of representations, respectively. The latter may be accomplished a variety of ways inclusive of the utilization of the HTTP 300 Multiple Choices and 406 Not Acceptable status codes as well as the less commonly implemented HTTP Alternates header and Transparent Content Negotiation (rfc2295). As we anticipate generating derivative TimeMaps consisting of any number of permutations of additional attributes applied on the mementos, it would be useful to associate and allow users to choose the variant they prefer using these status codes and HTTP transaction patterns.

In previous work (kelly-msthesis), we highlighted an issue of URI-collision in the realm of personal Web archives wherein (for example) both a login page and the authenticated content of a live Web application may reside at the same URI-R (Figure 1). We (kelly-dlib2013) extended this work by identifying personalized representations of mementos and providing a mechanism to navigate between additional dimensions beyond time. As personal Web archives proliferate and are at some point aggregated into multi-archive TimeMaps (cf. a TimeMap from and containing only listings from the archive itself), it would be useful to distinguish URI-Ms that represent personalized mementos, mementos that were originally behind authentication, and mementos in personal Web archives that require additional considerations and mechanisms to access.

3. Archive Query Precedence and Short-Circuiting

Private Web archives contain an inherent characteristic where exposing the metadata about an archive’s contents could be sufficient to identify the archive’s contents. For example, a private archive responding with a TimeMap containing URI-Ms for captures of my online bank statement would reveal where I am banking as well as where I am preserving personal banking information.

To mitigate the unnecessary revelation of potentially personal information, a client who has set up a Memento aggregator with access to their private Web archive may wish to have requests sent to public Web archives only if no results are returned from their private Web archive.

Figure 2 illustrates requests being first sent to the private archives then to public Web archives. But, it may also be desirable to allow this type of behavior to functionally coexist with conventional pipelined asynchronous archive querying. As with the Snowden Archive-in-a-Box example in Section 2, checking for the existence of captures of this content in other archives may imply interest or association with the subject matter, in some cases itself being revealing or even incriminating. To maintain privacy, a Memento aggregator with access to the Snowden archive would require special handling of requests for resources that might be contained in that archive. For example, a user may want requests for a certain URI-R to only be requested from the Snowden archive or their own personal Web archive, and not other public or private Web archives.

We propose two initial approaches to accomplish this: explicit specification by a client at the time of request and analysis of mementos with a potentially personalized representation. For the latter, we (kelly-dlib2013) identified three methods for identifying personalized representations. Of the methods proposed, but not investigated further (we opted for one of the other three), was to be able to specify additional environment variables when selecting a representation of a resource. The downside, we mentioned, was the requirement of a specialized client. The specialized “client” in this case may be the mementity responsible for determining the degree of personalization of the representation, i.e., the StarGate.

When aggregating and replaying a URI-R over time from a set of archives consisting of captures from both public and private Web archives, it may be desirable to first check for private captures prior to requesting URI-Ms from public Web archives (Figure 2). For example, in aggregating URI-Ms for facebook.com that include mementos of my news feed from my private archive and unauthenticated login pages from institutional public Web archives (Figure 1), the latter is less useful in observing how the page has changed over time. To maintain relevancy of the desired sort of representation, we may want to check for the existence of captures from private Web archives first and then, only if none are present, resort to requesting the captures consisting of a login page. This model of precedence (request priority) and short-circuiting (stop requesting captures if a condition is met) via Memento aggregators does not currently exist but could be critical in a user expressing what they expect from an aggregator beyond simply mementos for a URI-R.

Figure 5. PrivateOnly and PublicOnly aggregation in an MMA.

In the basic model below, we express various access precedence models (henceforth profile) for containing boolean categorization of private and public Web archives. In each profile, order is significant and thus a simple regular expression can be used where symbolizes a public Web archive endpoint, a private Web archive endpoint, and the “+” superscript indicating at least one or more consecutive instances.


The basic profiles pair with the syntax of the profile relation type (rfc6906), allowing clients to request resulting TimeMaps containing URI-Ms from a subset of archives from which the Memento mementity requests (Figure 5). The preliminary scheme for short-circuiting of subsequent requests is also boolean, e.g., requests should only be made to public Web archives when the privateFirst profile (Equation 4) is specified by the client when no identifiers for captures are returned from private archives. This model also assumes that the sets and are disjoint () for simplicity, but may not be the case in reality. For Web archives that contain both private and public captures, an approach toward achieving mutually exclusivity could be to separate each set of the private and public URI-Rs into an abstraction of separate collections. For example, as discussed earlier, the UK Web Archive contains captures from its legal deposit with restricted off-site access; that is, a user cannot access the mementos unless physically on location at the library (Figure 6).


$ curl -I https://www.webarchive.org.uk/wayback/archive/*/http://www.example.org

HTTP/1.1 451 Unavailable For Legal Reasons

Date: Wed, 25 Oct 2017 04:39:35 GMT

Server: Apache-Coyote/1.1

Content-Type: text/html;charset=utf-8

Transfer-Encoding: chunked

Set-Cookie: JSESSIONID=823BD09DF8DD489087763640A8150023; Path=; HttpOnly

Content-Language: en

Figure 6. Accessing a URI-M at UKWA using curl returns an HTTP 451 status code.

4. Additional TimeMap Attributes

Aggregating private and public mementos requires the ability to distinguish captures that require special handling. To accomplish this and to provide the ability for TimeMaps to be more descriptive of the URI-Ms they contain, we extend the TimeMap syntax and semantics to allow additional attributes. In this work we introduce three new types of attributes for richer TimeMaps: content-based attributes based on data when dereferenced, derived attributes requiring further analysis beyond dereferencing but useful for evaluating capture quality, and access attributes that guide users and software as to requirements needed to dereference mementos in private, personal, and archives with access restrictions. In this work we focus primarily on the access attributes but define other classes of attributes for future extensibility.

4.1. Content-based Attributes

In previous work (kelly-jcdl2017), we highlighted that the URI-Ms in a TimeMap for google.com produce nearly 85% HTTP redirects when dereferenced. Determining how many mementos exist from an archive for a URI-R is thereby impossible from a TimeMap alone. Enriching a TimeMap with information about the dereferenced capture would improve methods for determining how well (in quantity) a URI-R has been captured. HTTP data obtained when dereferencing a URI-M like status code (rfc7231), content-type (rfc7231), and Last-Modified (ainsworth-hypertext2015) would be useful. For some of these attributes (like the aforementioned), the data may exist in the archival indexes, typically formatted as CDX. However, while many Web archives expose a Memento endpoint, few make these additional content-based attributes about the captures available through a CDX server333Internet Archive does currently expose a CDX endpoint with limited fields at http://web.archive.org/cdx/search/cdx?url=example.com. Thus, once these attributes are discovered by dereferencing, they may be retained and expressed with the assumption that they are an accurate account of the archival record.

4.2. Derived Attributes

Other attributes about a memento may require calculation to obtain, which can be computationally and temporally expensive when performed at archival or even URI-R scale. This section briefly describes one such example of a derived attribute: Memento Damage calculation. Adding the ability for this derived attribute to be present in a TimeMap would allow for more efficient evaluation of memento quality. Brunelle et al. (brunelle-ijdl2015-damage) developed a metric for determining the quality of a capture (cf. quantity in Section 4.1) when dereferencing a URI-M with a particular focus on the quantitative significance of missing embedded resources. Determining “Memento Damage” requires calculation beyond simple counting, as all resources are not equally weighted, particularly when absent. Having this information calculated and present in a TimeMap would allow a user to select the best or most complete URI-M without needing to iterate through all URI-Ms.

4.3. Access Attributes

An impetus for this research is integrating private and personal Web archives through aggregation via Memento TimeMaps. CDXJ allows additional attributes to be specified and considered when a URI-M is dereferenced. Figure 7 shows how a token may be stored in an enriched CDXJ TimeMap where the authentication procedure is discoverable at runtime. We utilize OAuth2 (rfc6749) for authorization when dereferencing URI-Ms with this field for tokenization for persistent access to private mementos.

Access control may be needed in cases where private and personal Web archives are aggregated with public Web archives via TimeMaps. An authentication procedure and subsequent tokenization will allow persistent access using a token derived from authenticating. Figure 7 shows a token being attributed on a per-URI-M basis, though a single token may be applied to all URI-Ms returned from an archive. The responsibility for attributing the token to an individual or set of mementos may lie in either the archive itself or the aggregator in this preliminary model.

4.4. Sources of Derivatives

CDXJ allows metadata fields (lines beginning with !meta) about the TimeMap to precede the listing of captures. Figure 4 contains metadata fields within a CDXJ TimeMap that are typically also found in a Link-formatted TimeMap, e.g., URI-R for the original resource, TimeGates, and other related TimeMaps. With the introduction of derived attributes (Section 4.2), it is critical to not just give context as to the semantics of new attributes like “damage” but also to provide guidance in generating this value.

Figure 7 provides an example where a derived attribute requiring calculation (memento damage (brunelle-ijdl2015-damage)) and an access attribute are defined for guidance within the TimeMap. Definitions in the context utilize a URI to associate semantics of an attribute for a memento. We are still currently exploring further syntax for more expressive attributes in CDXJ TimeMaps.

!context ["https://oduwsdl.github.io/contexts/memento", "https://oduwsdl.github.io/contexts/damage", "https://oduwsdl.github.io/contexts/access"]
!id {
  "uri": "http://localhost:1208/timemap/cdxj/http://facebook.com"}
!meta {"...": "..."}
19981212013921 {
  "uri": "http://localhost:8080/20101116060516/http://facebook.com/",
  "rel": "memento",
  "datetime": "Tue, 16 Nov 2010 06:05:16 GMT",
  "status_code": 200,
  "damage": 0.24,
  "access": {
    "type": "Blake2b",
    "token": "c6ed419e74907d220c6647ef0a3a88a41..."
Figure 7. An amended CDXJ record for a private capture of facebook.com. Line breaks added for readability.

5. Memento Meta-Aggregator

In this work we extend on the role of a Memento aggregator to possess additional capabilities when interacting with Web archive users, Web archives, other Memento aggregators, and other mementities. MemGator (memgator) allows a user to host a Memento aggregator at a location of their choosing (inclusive of the user’s local machine) and configure a set of Web archives to query when starting the software. While conventional, remotely located aggregators assume that all Web archives queried are publicly accessible, a locally hosted, customizable aggregator may interface with archives that have restricted access. For example, a MemGator instance may request mementos from a Web archive that is only accessible on the user’s local area network or co-hosted on the user’s machine on which the aggregator resides. Non-public archives are treated and aggregated agnostically without further consideration of their holdings. In this section we describe a mementity to account for the shortcomings of conventional Memento aggregators while also extending their standard functionality and Memento interfaces.

A Memento Meta-Aggregator (MMA) serves as a functional superset of a conventional Memento Aggregator (MA). A conventional MA provides access through identifiers to mementos (URI-Ms), TimeGates (URI-Gs), and TimeMaps (URI-Ts) from a set of Web archives. An MMA provides the ability to both supplement (Figure LABEL:fig:mmaHierarchy) and selectively filter the results returned from an MA with URI-Ms from additional Web archives at the request of the user or as configured with the MMA (Figure 8). In a proof-of-concept of this work, we build upon the open source MemGator to introduce these additional roles outside of the scope of the Memento aggregator mementity type to define the MMA mementity type.

Figure LABEL:fig:mmaHierarchy describes a sample hierarchical relationship of mementities consisting of MMAs, MAs, and Web archive (WAs). When MA receives a request for URI-Ms for a URI-R, for instance, the request is relayed to WA, WA, and WA for the sets of mementos {}, {}, and {}, respectively. MA is then responsible for combining and temporally sorting the URI-Ms then returning the aggregated TimeMap to the requesting user (or mementity). The temporal ordering within an archive corresponds to the second index () for convenience in the figure, however, this ordering may not hold between archives. For example, is older than per the temporal ordering diagram on the right side of the figure. The ordering for the mementos contained within the configured archives as requested from various mementities is displayed in the bottom portion of the figure. This figure also shows examples of an MMA obtaining results from multiple MAs (e.g., MMA from MA and MA) and even MMAs referring to other MMAs for their results when queried (e.g., MMA referring to MA, WA, and MMA with the latter referring to WA and WA). The configuration of MMA is similar to the relationship of MMA to MMA in Figure 8 where a user may configure an MMA to both refer to a custom set of sources for results as well as reuse the in-place selective filtering of the sources. In this case, MMA would inherit the restriction of MMA of not sending requests for mementos of http://alicesembarassingphotos.net/vacation.html to Bob’s archive.

A = Alice’s archive B = Bob’s archive C = Carol’s archive
I = Internet Archive R = URI-R
MMA = Set of archives sourced for X’s MMA for R
MA = Memento aggregator at mementoweb.org
Figure 8. A Memento Meta-Aggregator is configured to perform selective aggregation.

Results from other Web archives that are aggregated with the results from an MA may be public non-aggregated Memento-compliant Web archives or private Web archives. We note that a conventional MA is not required to be present to use an MMA, because the aggregation of a static set of public Web archives may be performed by an MMA in a black box banner as if the MMA were identically configured with the same archives as the MA.

An MMA can be configured to return an aggregated TimeMap based on a set of Web archives for which it has been configured or it may be provided a set of archives to query upon request from a client. This abstraction provides a level of extensibility to current Memento aggregators for which the additional functionality may not be appropriate, scalable, or interoperable; however, providing an on-demand set of archives to query is useful in the context of personal Web archiving.

A Archive of
MA Memento Aggregator of
MMA Memento Meta-Aggregator of (denoted using Greek)
 am Memento of index from archive of index