Folk Concepts

Specific modules and algorithms were considered for a speculative realization of Folk Memory.

Concepts

Here I elaborate the above principles by describing the purpose or responsibility of various conceptual components. These collectively form a distributed object infrastructure upon which high-volume, world-wide, non-stop and incremental applications can be built.

Object: The unit of communication between servers. Objects may refer to other objects, but those references may be temporarily elided as a consequence of transmission. A transmitted copy of an object is a less authoritative vestige of its source.

Trail: Objects maintain a trail that records a sequence of servers through which the object has been copied. The root of a trail is presumed to be the server hosting the most authoritative copy of an object, the primary authority

Ellipsis: A mark that stands in place of a reference within an object on a server. Unlike a proxy, the ellipsis offers no access to the object it replaces. An ellipsis will spontaneously transform into a native reference should any vestige of the elided object appear on the server. The transformation event can trigger computation within an object or its observers.

Promotion: An object may spontaneously raise its own authority, perhaps due to locally acquired new state that supersedes that of the source copy. Promotion initiates a process of trail reversal where the revised object is distributed to previously authoritative servers. Promotion is to prime authority, and is quick. Shorn trails then persist only as required by connection and distribution heuristics.

Resolution: An object can be assembled from various sources of various and changing authority. The resolution process guarantees that only one copy of an object will exist per server, and that updates to its non-reference state is atomic. {Should the object participate in its own resolution?} Identity confusion is possible, thought unlikely, among objects of the same kind.

Server: A server hosts objects of various authority and shares them through bi- directional connections with other peer servers. Servers have a network identity which is recorded in the trail of objects it distributes. Peers may connect with a server in the hope of recovering more authoritative information about an object, for example: revised state or copies of elided references. A server does not respond to queries. Rather, it responds to a connection by sending copies of objects by a schedule of its own devising.

Connection: Servers establish bi-directional symmetrical point-to-point connections for the purpose of sharing objects. A server simultaneously distributes outbound objects and collects inbound objects. A server may terminate a connection at any time and will often do so to conserve system and CPU resources or because of apparent blockage or other failure of the channel. Heuristics may depend on knowing which objects have been collected from which channels (hence pools).

Extinction: An object that is no longer distributed with primary authority is in danger of extinction. A server has some obligation to continue distributing objects for which it is the prime authority. Should such a server fail, an object may still be saved by promotion on another server. An object cannot be deleted--only forgotten which may lead to eventual extinction.

Transmission: Objects are transmitted using an open-loop wire protocol on top of a stream protocol such as tcp/ip. Class definitions (bytecodes) are transmitted with objects unless they are known to already exist on the receiving end. {Or should the receiver request missing classes thus introducing closed-loop behavior?}

On this page I reflect how federated wiki borrows from and sometimes contradicts this original thinking. Compare the older work, side by side.