FLIRA, A GATEWAY / DISPATCHER PROGRAM
Theodor Holm Nelson
Founding Designer, Project Xanadu
(This is a shorter version of a too-long paper
I wrote yesterday, written from scratch.
It may also be repeating stuff from the last
year or so, but let's consider it anew.)
In the last year I have issued many proclamations
about Xanadu structure.
This is intended to simplify and clarify
by a possible restructuring of XanaduSpace.
I propose to create a gateway program
to receive user input,
pipe it where it belongs,
dispatch results among parts.
A key aspect is that 'Xanadu proper' is reduced
to two functions:
- EDIT OPERATIONS
Other functions-- publishing, permascrolls, etc.--
are in separate modules that all receive
their orders from the dispatcher.
This should make it easier--
1. to keep the Xanadu program lean and mean.
2. To program these other functions
as stubs and simple versions
3. To evolve user commands and interaction
4. To visualize this conglomerate.
=== === === NAME
Not deeply important or committed.
I like sound of "Flira"--
- could be girl's name
- suggests flight
- means 'face' in Logban (why not?)
=== === === IN TERMINAL PYTHON?
For early Xanadu interaction we don't need
fancy editing input graphics, just to see the result.
=== === === ALL THE PROPOSED MODULES
(Probably leaving something out.)
The names are meant to be clearly
distinguishing from other subfunctions
that may or may not be in use. Plz
correct if necessary, but then we'll
all know what they are.
FLIRA. Input face, dispatcher, receives
input characters, receives outputs from
other modules and redirects them where
XANACORE. Core Xanadu: enacts
one edit, shows current view (poss. of many
pages and documents).
XANAPOSITORY. Network machine holding
one's documents and publishing them.
(Could of course be separate.)
MVERSIONER. Handles microversion
logging and enactment.
XANASTORE. This handles selection
and opening of documents (note that
'open' doesn't mean the same thing
- AT FIRST: can just be the dox locally
- LATER: manage and search one's dox
at the Repository.
- LATER: presumably will cacne parts
of documents in current use.
PSCROLLER. Handles permascroll
input and publishing.
AT FIRST: Raw permascroll freely available
LATER: redacted permascroll supplied to public.
XANAPUBLISHER. Publishes a microversion
at the Repository, instructs PSCROLLER
to expose latest characters, reassigns
global document name to new microversion.
MICROSALE. Will handle microsale of contents,
if any, by a system similar to permascroll
XANAPAGEMANAGER. Keeps track of which
pages are on in the user's current viewspace
and how much space is allotted to each.
- Note that in principle ALL pages could be open,
so we'll have methods for choking their
allotment when not viewed lately, or something.
ZZOGLPOINT. Preents a point in zzspace
which is to be presented, and what dimensions
will be assigned to x,y,z.
XANARRANGEMENT. This will be a routine
for arranging documents on the screen,
comparable to the two-plane view of
the Origins demo.