On Nov 12, 2009, at 3:19 PM, Platonides wrote:
2.3. We have looked into another issue raised by Jakob: Display deleted pages as they existed at the datetime expressed in X- Datetime- Accept. We have actually implemented this. There are 2 caveats:
- as is the case with mediawiki in general, deleted pages are only
accessible by those with appropriate permissions;
- as is the case with mediawiki in general, deleted pages show up in
Edit mode. This code will soon be included at http://www.mediawiki.org/wiki/Extension:Memento
Showing deleted pages in edit mode is not always the case, since they can't be rendered (albeit not with the old templates, which would be an interesting enhacement by your work).
It is impressive how far you have gone. However, I don't think you can do a *complete* implementation.
First, you should be aware that timemachining the pages has been tried in the past. Discussions treating FlaggedReves are also relevant for your project. FlaggedRevs is an extension which allow to mark the status of a page (eg. not vandalised) at a point in time. A naive implementation would store the timestamp and get the old version from the archive. They ended up storing in a table specific to the extension the page content with templates transcluded. However, flaggedrevs is a tool to fight vandalism. Yours is an archival one. You could accept imperfect results under certain circunstances.
Indeed, it suffices to look at the Internet Archive and comparable web archives to see that one needs to live with what is reasonably achievable, not with what one would love to have. Imperfection is allowed when looking at this problem from an archival perspective.
Related to this, one must be careful not to cross the border between:
(a) what can purely be achieved using the primitives of the web architecture (URI, resource, representation), and HTTP, with datetime content negotiation added to the mix; (b) what is in the realm of content, interpretation, etc.
Let me explain what I mean: Wikipedia used to have a page for "Alito". The page got discontinued and in its place came a page "Samuel Alito". Both have their separate URIs, and so for each individually datetime content negotiation will work nicely. That is what I mean with (a) above. However, connecting "Alito" and "Samuel Alito" moves us into the realm of (b). Things could be done in this specific type of case, as redirects are in place between the Alito and Samuel Alito URIs (unfortunately not the 304 or 302 one would expect but rather a 200) meaning such redirection info is in the database. Hence it could be acted upon. And, so we could explore this, although I feel this gets us into the (b) zone. Again, generally speaking we must remain aware of the line between (a) and (b) above. A
Cheers
herbert
== Herbert Van de Sompel Digital Library Research & Prototyping Los Alamos National Laboratory, Research Library http://public.lanl.gov/herbertv/ tel. +1 505 667 1267