Abstraction of Method

We focus on dispatch as a kind of condition that is open to an increasing number of alternatives that will be managed by other than the immediate programmer. See also Upper Name Hierarchy.

We follow in the tradition initiated by Charles Babbage, recognized by Ada Lovelace, and developed to its full potential by Alan Turing.

Dispatch

By interpreting quantities as instructions a generalization of purpose becomes possible. We exercise tremendous influence over the thoughts of others by choosing who will select the meaning of quantities and who will provide the quantities to be so interpreted.

Mechanical interpretation happens when we attach meaning to symbols and then choose to do one thing or another based on the symbols we encounter. The symbols may be numbers or strings depending only on the convenience of mechanism and representation in available quantities.

A program can be cast as an interpreter as follows: for each symbol, if the symbol has one meaning, apply that, else if it has another meaning, apply that, and so on. This can be written in modern programming languages pretty much this way.

for each symbol if symbol is "sum" then a+b if symbol is "product" then a*b if symbol is ...

The programmer who writes an interpreter will in one way or another dispatch computer resources based on symbols to be provided later. The programmer thereby gives names to resources, the names being a code that represents those resources before they are applied.

Interpreters

Federated Wiki makes use of various interpreters and leaves room for further interpreters to appear later.

Site Names dispatch to collections of pages through the mechanisms of domain name registration and the hosting of web page servers.

Page Names dispatch to page contents when one clicks a link. Each site in the federation has the opportunity to provide a different interpretation for a page name.

Journal Actions dispatch to editing operations that create or modify page contents. Symbols like [+] or [x] code for adding or removing story items. Reinterpreting a subset of actions will recreate any version of a page.

Story Items dispatch to plugins that will interpret the item's content as one or another kind of markup. Each item contains a type, the symbol that identifies the plugin by name. Each site in the federation provides its own plugin for each item type.

Federated Wiki is open to any number of plugins. We can only sample representitive plugins to suggest the variety of interpretation that is possible.

The Method plugin dispatches on the first word of each line. Words like SUM and PRODUCT lead to computations applied to data found by the plugin elsewhere.

The Data plugin dispatches thumb events to display information from corresponding columns.

The Radar plugin dispatches on the format of configuration lines. It also dispatches thumb events to orient the display.

The Factory plugin dispatches based on dropped file type to create appropriately typed story items.

Federation

We consider who in the federation does what when and who checks the results.

A federated wiki site represents a single author/editor who is expected to preserve that domain name as a reference for attribution.

A site operator can configure the complement of plugin versions used to interpret pages. Others are free to interpret pages differently but may return to a particular site to discover its preferred interpretation.

Many plugins select content from adjacent pages in a reader's browser. This gives the reader control over environment within which plugins run. Plugins which retrieve events or data from that environment will respond accordingly.

Evolution favors this approach.

Developers favor this approach.

Distinguish mechanical and cultural interpretation.

Notes

George Dyson recounts the realization of Turing's universal machine at the Institute for Advanced Study.

John Walker describes in simple terms how universal computation depends on large, reliable memory.

Ivan Godard describes the central role of dispatching in modern chip design. website