Architecture

Or: What's going on here?

Introduction

This project is, in part, a demonstration of several library and information science principles laid on top of a software system designed by the project author called warp. Warp was designed as an interactive thought experiment. Warp associates collections of documents with collections of word plus definition[1] pairs. In the document collections sections may be marked as "warpable" [2]. This text is fed to the warp engine that finds words for which it has definitions. These words are marked as hyperlinks into the dictionary where the word and its definition are displayed.

When word plus definition pairs are displayed the definition is fed to the warp engine. This provides linking among definitions, not just between the document collection and the definitions. It is hoped that such linking will allow people to further understand whatever is being defined.

[ Top ]

Changing Definitions

Warp operates in two states, authorized and unauthorized. The default mode is unauthorized. In this mode a user may browse the system, read the document collections and investigate the linkages between documents and definitions and among definitions.

In authorized mode[3] a user may edit definitions. The user may change existing definitions to make slight corrections or to change them completely. They may also add new words. When a definition is changed the previous versions remain available for display with the most recent version displayed by default.

No information on who made the change is kept.

This editing power has some (intentional) implications related to the sanctity of the original document, definitional authority and anonymity that are discussed elsewhere in this project.

[ Top ]

Technical Aspects

Warp is written in Perl. A single CGI script "uses" a module called Warp.pm to access a MySQL database where the word definition pairs are maintained. Words and definitions are kept in separate tables so that creation and modification times can be applied separately to words and definitions.

At startup the system:

  • Makes a list of all the words defined in the database
  • Selects a document from a directory of source documents
  • Parses the document for the words it knows about and creates hypertext links between the document and the word definitions
  • Adds some header and footer information to the document and displays it to the web browser
When a user views a definition the system:
  • Makes a list of all the words defined in the database
  • Pulls the most recent definition of the word selected from the database
  • Parses the definition to create links between known words and other definitions
  • Determines if there are other, earlier, definitions for this word
  • Displays the word, the definition and the list (if any) of earlier definitions (as links) to the web browser
When a user is authorized additional links are added to the definition display page. These include links for editing the current word and for adding additional words.

[ Top ]

History

The first version of Warp was written on a few cold winter nights to experiment with creating unexpected links between dynamic documents. It was inspired, in part, by systems such as Wiki and Everything2 but is intentionally much simpler. Those systems are cumbersome because they were designed to do something. Warp was never designed to do anything other than screw around. It turns out, however, to make a nice glossary engine for a project that has something to with hypertext, authorship, thought augmentation, etc.

Previous is Rationale
This is Architecture
Next is Resources


Notes:

  1. Definition is used here in a very loose sense. The definition half of a word definition pair can contain anything and since the definition may be edited by an unknown author its authority is somewhat suspect.
  2. A section is marked as a target for warp by wrapping it in a <warp></warp> pair. A document that has no such pairs and is fed to the warp system will have the entire text marked for warped words.
  3. Contact the author for authorization information. This is not an exclusive club.

[ Top ] [ Contact ] [ Help ] [ Search ] [ GlobalWarp ] [ Login ]