WorkingWiki: a MediaWiki-based platform for collaborative research
WorkingWiki is a software extension for the popular MediaWiki platform that makes a wiki into a powerful environment for collaborating on publication-quality manuscripts and software projects. Developed in Jonathan Dushoff’s theoretical biology lab at McMaster University and available as free software, it allows wiki users to work together on anything that can be done by using UNIX commands to transform textual “source code” into output. Researchers can use it to collaborate on programs written in R, python, C, or any other language, and there are special features to support easy work on LaTeX documents. It develops the potential of the wiki medium to serve as a combination collaborative text editor, development environment, revision control system, and publishing platform. Its potential uses are open-ended - its processing is controlled by makefiles that are straightforward to customize - and its modular design is intended to allow parts of it to be adapted to other purposes.
💡 Research Summary
WorkingWiki is an open‑source extension for the MediaWiki platform that transforms a conventional wiki into a full‑featured collaborative research environment. The authors describe how the system bridges the gap between simple text‑based collaboration and the more demanding needs of scientific software development, data analysis, and manuscript preparation. At its core, WorkingWiki treats any block of text marked as “source code” on a wiki page as a real file on the server. When a page is saved, a parser extension extracts these blocks, writes them to a designated directory, and registers a build job in a background queue. The build job is driven by a user‑supplied Makefile, which can invoke arbitrary UNIX commands—compilers, interpreters, LaTeX engines, R scripts, Python modules, etc.—to transform the source into output artifacts such as PDFs, plots, binaries, or log files. The resulting artifacts are then embedded back into the wiki page, giving collaborators immediate visual feedback without leaving the browser.
A major focus of the paper is the seamless support for LaTeX documents. WorkingWiki automatically links LaTeX source files with bibliography databases, runs pdflatex (or other engines) on demand, and displays the freshly compiled PDF inline. Authors can edit text, equations, and figures directly on the wiki, trigger a recompilation, and instantly see the updated manuscript, dramatically shortening the traditional edit‑compile‑review cycle. The same mechanism works for other languages: R scripts can generate statistical graphics, Python programs can run simulations, and C code can be compiled into executables, all under the same version‑controlled wiki framework.
Version control is achieved by combining MediaWiki’s built‑in revision history with the reproducibility afforded by Make. Every edit to a source block creates a new wiki revision, preserving who changed what and when. The Makefile can define “clean” and “rebuild” targets, allowing users to discard old build products and regenerate results from any historical revision, thereby supporting full scientific reproducibility. For teams that already use external VCS such as Git, WorkingWiki can be configured to push or pull files, making it a complementary layer rather than a replacement.
The authors discuss practical concerns about security and resource management. Build jobs run in a limited process pool to prevent server overload, and file‑system permissions are tied to wiki user rights, preventing unauthorized code execution. Optional sandboxing via virtual environments or container technologies (e.g., Docker) isolates dependencies and mitigates the risk of malicious code.
Real‑world deployments are presented from the authors’ own theoretical biology lab. Researchers co‑author a manuscript while simultaneously developing R and C models; the simulation output is automatically inserted into the LaTeX draft, and collaborators can comment on both code and narrative in the same page. In an educational workshop, students used WorkingWiki to write, run, and document code together, demonstrating the platform’s utility for teaching collaborative computational science.
A modular architecture underlies the system: the file‑mapping layer, the build engine, and the user interface are each implemented as interchangeable plugins. This design enables extensions such as language‑specific IDE integrations, connections to external continuous‑integration pipelines, or custom data‑store back‑ends. Consequently, WorkingWiki can be adapted to a wide variety of scientific domains and project scales.
In summary, WorkingWiki leverages the openness and editability of wikis while providing the automation, reproducibility, and versioning required for modern research. By allowing arbitrary UNIX‑based transformations of source text, it serves as a collaborative text editor, development environment, revision‑control system, and publishing platform in a single, freely available package.
Comments & Academic Discussion
Loading comments...
Leave a Comment