MOX

Brian P Templeton bpt@tunes.org
Sat Jan 19 12:07:02 2002


Brian P Templeton <bpt@tunes.org> writes:

> I have begun preliminary work on a system called MOX. (``MOX'' stands
> for ``MOX Obviates Xanadu'', since it was originally going to be a
> hypertext system; `mox' is also a Latin word for `soon', with
> allusions to the common phrase `RSN'.)
> 
> It is centered around a datastructure called an arrow, in honour of
> Brian Rice's Arrow system - I don't yet understand Arrow, but after
> attempting to read the Arrow papers one more time, I thought of
> locatives and how an ``arrow'' might be something like a locative
> (though I knew that that is not what an Arrow arrow is).
> 
> An arrow acts as a pointer into a 'verse (short for ???verse). A
> 'verse, the allusion being to poetry and rhyme, acts as an environment
> in other languages, except that instead of being a mapping between
> symbols and objects, it is simply a collection of objects, internally
> identified by a tumbler (a word borrowed from Xanadu) - though I may
> change `tumbler' to something else, since I don't really know what
> would be like in Xanadu other than being of the form 0.x.y.z (I could
s/what would be like/what they would be like/
> probably do some research on it, though).
> 
> [Those who've listened to me promise to post to the TUNES list on IRC,
> besides having learned how good I am at procrastination :), may notice
> that I've generalized from a huge Xanadu-like ``Objectuverse'' to
> smaller 'verses. I think that this was a good design decision, but I
> may reverse it if necessary. The worlds thread from a few years ago,
> Alan Grime's Sphere project, and other ideas were influential here.]
  ^^^^^^^^^^^^
  Alan Grimes'
> 
> An `object' in MOX is simply something that has a tumbler, some slots
> (well, zero or more slots, probably), and hints. (The name `hints'
> will probably change to `annotations' later on, as it appears that
> Fare came up with this idea a long time before I did.) I am not quite
> sure how the slots will work yet.
> 
> [After considering recent ideas I've had concerning
> protocols/interfaces, specification languages, etc, I may change the
> semantics of objects completely, but then again, I may not. MOX
> doesn't yet exist and so /ipso facto/ doesn't even have ten users, so
> unlike the designer of `make' I don't even have a *bad* excuse :).]
> 
> In MOX, source code is merely a sequence of arrows, possibly, e.g.
> using the Lisp tradition of using lists to represent function
> applications. However, there are *no symbols*. It will likely be
> possible to attach a default label to an object, through hints, but
> there is no particular reason why one must use labeled objects at all.
> In fact, using hints, someone could implement, say, a system where
> objects were identified by color (yes, that's probably a really stupid
> idea, but there are most likely some interesting variations on it).
> 
> Some interesting things appear to be possible with arrows; for
> example, if MOX were to adopt the Lispish convention of making source
> code simply a series of sexps, then MOX could implement Arc's
> ``name-munging'' (I have no idea what the real name of the ``feature''
> is) cleanly. (In Arc,
>     (eqcar x y) === (eq (car x) y)
> but in MOX, something like
>     (|eq||car| |x| |y|) === (|eq| (|car| |x|) (|car| |y|))
> with `|...|' denoting an arrow to the object whose canonical name is
> `...', could be cleanly implemented, I think.)
> 
Oops. I forgot to mention that this would probably rely on a sort of
arrow called a multi-arrow, which could also be used for multiple
values.

>  - Synopsis -
> MOX is based on a datastructure called an arrow (in honor of Brian
> Rice's excellent Arrow system, which it seems that no one other than
> he understands :)). Source is just a sequence of arrows ``pointing''
> to an object in a 'verse, which can orthogonally or non-orthogonally
> make objects persistant, and [FIXME: is this a good idea? - probably
> not] the same arrow will always point to the same object, unless,
> perhaps, a hint is provided to the contrary. A 'verse is a collection
> of objects. There are no symbols in MOX, though they can be emulated.
> MOX combines development and hypertext in a somewhat novel way.
> 
> This post is poorly organized and incomplete, but it will hopefully
> give you some idea of the basic concepts of MOX. All questions are
> gladly answered and I would very much appreciate any feedback at all.
> 
> Thanks in advance,
> -- 
> BPT <bpt@tunes.org>                     /"\ ASCII Ribbon Campaign
> backronym for Linux:                    \ / No HTML or RTF in mail
> 	Linux Is Not Unix                X  No MS-Word in mail
> Meme plague ;)   --------->             / \ Respect Open Standards
> 

BTW, water, if you read this, am I correct in predicting that you'll
arrive in San Diego, CA soon? (You probably can't answer that :).)

Best regards,
-- 
BPT <bpt@tunes.org>	    		/"\ ASCII Ribbon Campaign
backronym for Linux:			\ / No HTML or RTF in mail
	Linux Is Not Unix			 X  No MS-Word in mail
Meme plague ;)   --------->		/ \ Respect Open Standards