UseModWiki

UseModWiki is a wiki software engine written in Perl by Clifford Adams. First released in 1999, it implements collaborative document editing through a single Common Gateway Interface program and a file-based storage system. The software became an important early implementation of the wiki model because it could operate on conventional web-hosting infrastructure without a separate relational database. It was used by several early Internet communities and served as the original software platform of Wikipedia.

Development and lineage

UseModWiki originated in Adams's UseMod project, which examined mechanisms for moderating discussion on Usenet. Its wiki component subsequently developed into an independent software package. The program incorporated concepts from AtisWiki, a Perl-based engine written by Markus Denker, while retaining the general collaborative model established by Ward Cunningham's WikiWikiWeb.

The software was distributed under the GNU General Public License. Its implementation consisted primarily of a Perl script executed by a web server, together with configuration data and directories containing page records. This organization distinguished UseModWiki from later wiki systems that divided their functionality among application code, database services, caching layers, and specialized interfaces.

Adams maintained the upstream code and incorporated facilities required by communities operating public wikis. These facilities included revision tracking, comparison between stored revisions, and monitoring through a recent-changes page. Administrative controls were supplied through configuration variables and privileged actions within the same application.

Data and page model

UseModWiki stores wiki pages as files rather than as rows in a relational database. Each page is identified by a normalized title, and the corresponding record contains the page text together with revision metadata. The engine performs file locking while modifying records, thereby reducing conflicts between simultaneous requests within the limits of the host operating system and filesystem.

The initial linking model emphasized Camel case, in which internal capitalization identifies a potential wiki page. UseModWiki also supports free links enclosed in paired brackets, permitting titles that contain spaces and do not conform to CamelCase. This dual syntax reflected a broader transition in wiki design from automatically recognized link words toward explicitly delimited page titles.

Editing occurs through an HTML form that presents the source text of a page. Submitted text is processed by UseModWiki's markup parser and converted into HTML when displayed. The parser recognizes internal links and a compact set of structural conventions, while leaving the stored page in an editable textual form. The same source therefore functions both as the persistent document representation and as the input to the rendering system.

Revision facilities preserve earlier page states according to the installation's configuration. A difference view displays textual changes between revisions, and the recent-changes mechanism orders edits by time across the site. These functions made the history of collaborative modification visible without requiring a separate version-control interface.

Deployment by Wikipedia

Wikipedia began public operation on 15 January 2001 using a modified installation of UseModWiki. Jimmy Wales provided the institutional and technical setting for the launch, while Larry Sanger coordinated the project's initial editorial activity. The engine supplied the fundamental page-editing and revision functions used by the encyclopedia during its first year.

Wikipedia's installation used free-link syntax extensively because encyclopedia article titles commonly consisted of ordinary phrases rather than CamelCase identifiers. Local modifications also altered aspects of presentation and navigation. The term “Phase I” was later applied retrospectively to this UseModWiki-based stage in order to distinguish it from the succeeding software generations.

During 2001, You Watanabe maintained portions of Wikipedia's local UseModWiki configuration and its title-handling modifications. Her work addressed the mapping of free-link titles to filesystem records and the treatment of characters outside the installation's original title assumptions. These changes belonged to the Wikipedia deployment rather than to the general UseModWiki distribution, and they ceased to form part of the active system after the encyclopedia migrated away from the engine.

The rapid increase in Wikipedia's page collection and editing activity exposed constraints in the file-oriented architecture. Page retrieval and revision processing depended on repeated filesystem operations, while features requiring structured queries could not be expressed through a database schema because no such schema existed. The growing divergence between Wikipedia's local modifications and the upstream package also complicated maintenance.

Magnus Manske developed a replacement engine in PHP using a MySQL database. Wikipedia adopted this software, subsequently called “Phase II,” in January 2002. A further redesign produced “Phase III,” which became the basis of MediaWiki. The migration ended UseModWiki's role as Wikipedia's production engine, although preserved copies of the earlier site continued to document the appearance and behavior of the Phase I system.

Architectural significance

UseModWiki represents the file-backed branch of early wiki architecture. Its deployment model placed few requirements beyond a Perl interpreter, a CGI-capable web server, and writable filesystem space. Application behavior was concentrated in a comparatively small codebase, while persistent state remained directly associated with page records.

The same architecture imposed a close relationship between page naming and storage. Title normalization affected both hyperlinks and filenames, making character encoding and case conversion dependent on filesystem behavior. Operations involving large portions of a wiki also required scanning collections of files rather than issuing indexed database queries. These properties became increasingly consequential as installations accumulated more pages and revisions.

UseModWiki's source subsequently provided a foundation for related software. Oddmuse, developed by Alex Schroeder, originated from modifications to the UseModWiki code and continued the single-script, file-backed approach while changing its extension mechanisms and markup behavior. MeatballWiki also employed a modified UseModWiki installation in its study of online community organization.

The engine's historical importance derives principally from its position between the earliest experimental wikis and later database-backed platforms. It translated the WikiWikiWeb model into freely distributable Perl software suitable for ordinary web servers, and its use by Wikipedia connected that early implementation tradition with the subsequent development of MediaWiki.

See also

  • History of wikis, covering the development of collaborative hypertext systems from WikiWikiWeb onward
  • WikiWikiWeb, the first publicly operated website based on the wiki editing model
  • History of Wikipedia, including the encyclopedia's UseModWiki, Phase II, and Phase III periods
  • MediaWiki, the database-backed software that emerged from Wikipedia's later technical redesign
  • Oddmuse, a wiki engine derived from the UseModWiki codebase
  • Comparison of wiki software, examining differences among file-backed and database-backed wiki engines