Glacial Erratics

Why is it Purple?

July 31, 2003

Someone in the group I'm working with asked why PurpleNumbers are purple. My answer ended up being a big context provider, so I'm dumping it here. This is likely full of errors as the story as I've heard it is incomplete and I was unable to check some things because the network path to California was busted while I was writing. Saved here for later revisions.    (0001EX)

UPDATE: Eugene has filled in some of the gaps in this and corrected some misconceptions I had.    (0001HQ)

It's purple mostly by chance    (0001EY)

Back in the late 60s and early 70s Doug Engelbart's lab at the Stanford Research Institute was working hard on allowing people to work together to be more effective at solving problems. One of the first things they discovered was that people don't work together as well as they could and the tools and process for doing so were not well developed.    (0001EZ)

So, they set about working on those tools and processes. Some of the things they developed include: mice, personal workstations, hypertext, windowing GUIs, chorded keyboards, video conferencing, remote terminal manipulation and something called NLS.    (0001F0)

NLS was a do-it-all editing environment for communication and coding. It had a graph based document storage model that allowed structural/sectional and nodal identifiers to be placed on content of the documents, based on various rules depending on the type of content. Nodal identifiers stayed with the content, regardless of how it was edited. Structural identifiers were hierarchical from the start of the document, indicating nested sections and lists. As such they could change as the document was edited and published.    (0001F1)

The editor was customized to be aware of these things so that the identifiers could be made visible or invisible as necessary.    (0001F2)

When editing documents it was possible to use copy from other versions or other documents in several different ways:    (0001F3)

I don't know if they called it transclusion or not. That term comes from Ted Nelson and his Xanadu project. While Xanadu has some similar goals and concepts to NLS (later called Augment) it has a much different attitude toward hierarchy. NLS is all about hierarchy, Nelson doesn't like rules.    (0001F7)

What it means, though, is that you have the content by reference. If it is changed in the original source, the change shows up immediately in the place where it is transcluded.    (0001F8)

In both Augment and Xanadu you can jump around in and amongst documents in the now familiar hypertext way. In those environments, though, the links were bidirectional. If you followed a link to its destination, you could tell at the destination that there was an incoming link, and you could follow it back home. In both systems, links were highly granular: in NLS you can jump to any identifier, in Xanadu you can jump to anything.    (0001F9)

Fast forward a few decades to the Berners-Lee web. Hypertext the HTTP/HTML way comes into being and catches on like wildfire, in part because it is simple to implement. That simplicity left out some fun features:    (0001FA)

Fast forward a few years later still: Doug Engelbart has never received the proper credit for the things he developed. Nowadays he spends his time sitting in a fairly pleasant windowed office just down the hall from the cafeteria at the Logitech building in Silicon Valley. He participates in a group called the Bootstrap Alliance ( ) which still struggles valiantly on attempting to fulfill Doug's vision of coming up with ways to help society solve what he calls complex urgent problems.    (0001FE)

Part and parcel of that vision is, amongst many other things, granular addressability of content; as much content as possible. To help display the value of granular addressability, the content on the Bootstrap site is marked up with identifiers very similar to those in Augment. These NIDs, as they came to be called, were published in purple.    (0001FF)

A next step was to add purple numbering to mail archives, still considered one of the primary places for productive conversation. This allowed granular referencing. EugeneEricKim added a filter module to Mhonarc to make that happen. He then later created some code for processing well formed XML to add identifiers to arbitrary tags within.    (0001FG)

Still later he and I modified UseModWiki to create PurpleWiki, allowing the same granular referencing into wiki content. MattLiggett created the first iteration of the IRC logger, processing the output to HTML with purple numbers.    (0001FH)

Around Christmas of 2002 I started mooning over how to add transclusion to the already beneficial granular addressability. I had long been grumpy about the fact that the identifiers used with PurpleNumbers were only unique to the page on which they were presented. This struck me as a horrible violation of identifier ethics.    (0001FI)

I realized that if we started creating identifiers from a central source, all the tools that used that source would be able to transclude content from one another.    (0001FJ)

So that's what I did. TransClusion is now possible in a rudimentary form by screen scraping from web pages.    (0001FK)

The latest version of PurpleWiki is generic enough that its purple number tools can be used with a variety of applications. The new style of purple numbers have been implemented in:    (0001FL)

and coming soon:    (0001FT)

As it turns out, if you are on a white background and the CSS is set up correctly, the fuzzy lavender purple looks pretty good, noticeable but not too intrusive.    (0001FW)