NoSQL Databases, Lotus Notes, and PLATO
Revised December 10, 2012
On December 5, Wired published an article by Klint Finley documenting the development of “NoSQL” databases — i.e., nonrelational databases — that keep track of ginormous quantities of information for enterprises like Google and Amazon. These databases can exist across many servers, so they can expand more or less infinitely. And unlike relational databases, data can be structured in any way that suits the data; they are not restricted to tables with rows and columns.
Finley traces this latter characteristic to Lotus Notes, created in the 1980’s by Ray Ozzie. And he then correctly explains that Lotus Notes had its roots in PLATO Notes, which I created in 1973. Ozzie worked on the PLATO system software staff at the University of Illinois during some of the same years I worked there, and the flourishing online community that Notes engendered on PLATO inspired him to replicate and expand on the concept — a goal that he nurtured for quite a few years until he was able to get funding to develop Lotus Notes.
Quoting from Finley’s Wired article:
The Notes platform was inspired by PLATO Notes, an online community that ran on the PLATO mainframe at the University of Illinois. PLATO Notes creator David R. Woolley wrote in 1994 that the project began in 1973 as a simple bug reporting system. Originally, users reported bugs simply by editing a text document, but this led to a few problems.
“There was no security at all. It was impossible to know for sure who had written a note,” Woolley wrote. “Most people signed or at least initialed their comments, but there was nothing to enforce this. And occasionally some joker would think it was fun to delete the entire file.”
So Woolley — then just 17 years old — was assigned to create a more structured system for reporting bugs. The tool he developed let users type their bug report into an application which would save the report into the text file, along with the user’s name and the date of the submission. The support staff could then display the notes and add responses, which would be added to the same file. Woolley also added two more sections: “System Announcements” and “Public Notes.” General Notes was a message board that enabled users to post and respond to messages on any topic.
Woolley’s method of saving messages to a file, instead of a relational database, was a predecessor to the modern “document database.”
You can think of a relational database as a big spreadsheet. Data is organized into tables, columns, and rows. If you want to add a field, you add a column, and that column appears in every row for that particular table. This keeps your data structured and uniform, but it’s more difficult to manage lots of unstructured data or data that’s structured in multiple ways.
A document database is more like a collection of documents. Each entry is a document, and each one can have its own structure. If you want to add a field to an entry, you can do so without affecting any other entry.
Soon, PLATO developers were adding more applications. By 1974, they had an e-mail application, a chat room, online games, and more.
In 1984, Ray Ozzie — a Lotus developer who had worked on PLATO while attending the University of Illinois — left Lotus to start a company called Iris Associates. Lotus then funded Iris with the agreement that it would have exclusive rights to the company’s flagship product: a system for corporations that was based [on] PLATO.
Today, many see Lotus Notes as a legacy system ready to be relegated to the same dustbins as WordPerfect and Novell Netware. But Notes paved the way for just about every type of corporate communication and collaboration application that came after it, from e-mail clients like Microsoft Outlook to the social network tools like Jive Software to, yes, CouchDB.
Finley’s article originally contained some inaccuracies about PLATO, most of which he graciously corrected after he and I exchanged a few emails. The remaining minor quibble I have is that “Public Notes” was the name of the notes file that was open to discussion about any topic. The other two original notes files were “System Announcements”, which he mentions, and “Help Notes” which was specifically for asking technical questions about PLATO and receiving help from the system staff or other users. In 1976 I rewrote Notes, generalizing the concept so there could be an unlimited number of notes files, both public and private.
I appreciate that Klint Finley and Wired drew attention to the genealogical connection between PLATO and the technology of today. PLATO was far ahead of its time, and many of the things we’re now accustomed to using everyday on the internet appeared first on PLATO. Yet PLATO’s place in history is too often overlooked.
Read Finley’s article in Wired.
Read my 1994 article about PLATO Notes and the online community it spawned.