Asynchronous Wikis

There are many instances where an editable, offline wiki would be useful. Some instances are: ships at sea, remote settlements and spacecraft. These users need small, efficient knowledge bases for survival and a cultural connection to the rest of humanity. A small working group is forming within the MediaWiki community to meet this need.

Providing Onboard Knowledge Bases For Astronauts
As missions head out to cislunar distances and beyond, the ability to have local databases and bodies of knowledge will be more important than ever before. Crews will have to be more self-sufficient as calling home will be increasingly difficult. Wikis are a well established method for sharing and maintaining large bodies of knowledge asynchronously within NASA. We would like to propose deploying offline versions of wikis on the ISS for many utilitarian and cultural purposes.

Phase 1
The Kiwix organization is part of the Wikimedia and MediaWiki communities: the Kiwix software basically works like a browser, except that it reads local, compressed copies of wikis (amongst others) instead of accessing these contents via a permanent connection.

The addition of a Kiwix package onboard the ISS would allow astronauts to access a read-only version of prepackaged MediaWiki content, namely the EVA Wiki as well as Wikipedia (in all languages of the ISS participant countries) and could include other content like TED talks. It has the potential to be very useful to astronauts, putting critical information directly onboard. This phase will test the usefulness of local wikis and help establish cooperation between NASA and the MediaWiki community.

Phase one puts tons of content onboard and available right away, with minimal space requirements. Kiwix functions as a small executable that does not require any specific installation: .zim files take from 20 GB for the Spanish or Russian Wikipedia, to 70 GB for the English one (meaning that they can all fit on a microSD card). We would enable all crew to bring the sum of human culture and knowledge with them. Astronauts will be able to look up any article in Wikipedia, and a lot more: the Project Gutenberg file, for instance, holds 50,000 pieces of classic literature in a few gigs of storage.

Phase 2
Due to the dynamic nature of the NASA wikis, phase 1 is not a viable option for continuously updating the onboard wiki content. In order to minimize communication requirements, transmissions must be limited only to revisions and additions. With numerous, more-frequent updates, the remote wiki will always be up-to-date.

Phase 3
However a wiki’s real value comes from the ability for all users to edit collaboratively. Phase 3 will allow astronauts and terrestrial support staff to update documentation about mission critical processes, like EVAs. In phase 3 we can begin to develop a system for editing and syncing over long distances and low bandwidth. Several “offline editing” prototypes have been attempted but they still need significant development. We can scope NASA’s requirements and gather help from the MediaWiki community to develop a version of offline editing that meets astronauts’ needs. This first step into bidirectional synchronization will likely have a very rudimentary revision conflict handling system.

Phase 4
As the number of contributions to remote wikis increases, the chances of revision conflicts between wikis also increases. Phase 4 is about implementing a smart system to handle these conflicts. This will likely include both software and human intervention, depending on the severity of the conflicts.

Phase 5
The ultimate goal is to provide a distributed network of wiki clones all connected and updated via Multilateral Asynchronous Bidirectional Synchronization. In situations where extremely remote wiki clones cannot directly communicate with the "master" wiki, it may be necessary for revision history to be transmitted through the network of wiki clones.

Related Development

 * https://github.com/MWStake/MABS
 * https://github.com/MWStake/Git-Mediawiki/blob/master/docs/User-manual.md
 * https://phabricator.nichework.com/source/MediaWiki-API/
 * https://phabricator.nichework.com/source/mabs-demo/
 * https://github.com/hexmode/mediawiki-git-remote
 * https://git-scm.com/docs/git-bundle