A Modest Proposal
Motivation
It is useful to be able to link to latest version of another website, so that if that target website changes, all link(s) to it from other sites do not have to be changed somehow.
However, for purposes of viewing the web as it was in the past, that is something of an anti-feature. For example let’s say I link to cnn.com, which updates every day, at least, and I leave my site alone. Fast forward 10 years. Now, let’s browse the permaweb starting at my site, the version from 10 years ago. We click on cnn.com, and we get the latest, current version. Or maybe cnn.com stopped being updated 3 years ago, we get that version. We do not get the version from when I last updated my site 10 years ago.
By contrast, if my link contains the cnn.com latest version at the time, then one can sort of step back in time and surf the web as it was when I published.
So what would be nice then, if we can combine both of these behaviors depending on the end-user’s present usage goal. ie: does user want the current version of linked sites, or do s/he want to experience the web as it was 10 years ago when I last published?
Proposed Solution
- All links between sites must be versioned to be considered valid. and.
- An optional attribute preferlatest may be added to <a href> tag. and.
- The user-agent (eg web browser) should offer two modes:
a. normal browsing.
b. history browsing.
Description
In normal browsing mode, the version number is ignored/dropped when a <a href> link is clicked, provided the link has preferlatest attribute. If link is missing ?version, then it is considered invalid and is not displayed as a link. (This is to prevent lazy authors.) If preferlatest is missing, then the version parameter in the URL is preserved. This enables linking to historic versions of URLs even in normal browsing mode.
In history browsing mode, preferlatest flag is ignored and the version number is always preserved in the url.
Summary
The combination of a) requiring that version always be specified, b) providing option preferlatest flag, and c) implementing normal and historic browsing modes in user-agent, allow the web to be viewed as a dynamic ever-changing thing in the present, but also as global fixed snapshots in the past. This is powerful and has not existed before.
Final Note
An even better experience could be obtained for browsing historic versions of the web eg on a specific day or even hour/minute in the past (without requiring linking sites to include any version attribute) if there were a way to associate each version of a page with a timestamp. However, afaik, the design of the Safe Network has no concept of universal time, or any timestamp mechanism. As such, usage of versions as described above may be our best technical means for historical snapshotting.