XML 2003 logo

Open Augment - Back To The Future Preserving The Augment Legacy With XML (01)

Abstract

The groundbreaking work of Dr. Douglas Engelbart's Augment system is one of the most important historical artifacts of the software industry and the SGML and XML and Internet communities in particular. In this short paper we briefly discuss the pioneering ideas of Augment and our efforts to faithfully render them in XML in the OpenAugment open source project (OA) www.openaugment.org. (03a)

The OpenAugment Consortium (OA) is a not for profit open source corporation dedicated to the preservation of Augment. OA is working in cooperation with Doug Engelbart's Bootstrap Alliance www.bootstrap.org to ensure that future generations will have access to the Augment heritage. (03b)

We hope that with the assistance of the wider community, others can learn about the pioneering work of the Augment team while also learning about XML and how it can be used to work with complex information. We think that OA is an interesting substantial use case for XML standards developers. Finally and most importantly we hope that our small contribution will help build momentum for Hyperscope, the Open Hyperdocument System (OHS) [Engelbart00] and focus attention on Engelbart's Unfinished Revolution [Engelbart98]. (03c)

Keywords


Table of Contents

1. Augment - The Pyramids Of Knowledge Management (04)
2. Why Preserving Augment is So Important (05)
3. Augment Is Still Unique (06)
4. Collaborative Authoring versus Editing and Annotating (06c)
5. An Interface and Navigation For Power Users (06d)
6. Augment Is Fragile (07)
7. The Open Augment (OA) Project (08)
8. The OpenAugment Framework (09)
9. Augment Archaeology (010)
10. Implementation Approach (010e)
11. OpenAugment Begin (011)
Acknowledgements
Bibliography
Biography

1. Augment - The Pyramids Of Knowledge Management (04)

During the early stages of development of the Internet, Dr. Douglas Engelbart's group at the Stanford Research Institute (SRI) was the second node on the Arpanet, the precursor to the Internet. This group provided application support to nodes on the Arpanet as they were set up. From this and other prior experience, Dr. Engelbart devised new methods for augmenting human capability and collaboration. For a full biography on Dr. Engelbart and his many achievements please see Dr. Engelbart's website www.bootstrap.org. It is important to note that the Bootstrap Alliance is working on the "Unfinished Revolution" [Engelbart98] through the development of the Hyperscope, which is the first step toward creating the Open Hyperdocument System (OHS). (04a)

Among the many artifacts credited to Dr. Engelbart was the framework originally called oNLineSystem (NLS) and later renamed Augment. NLS/Augment was funded by DARPA and has existed since the 1960's. At its peak, approximately one thousand (1000) users in the federal government and the aviation and military industries used the Augment framework. The original system is still in use today by Dr. Engelbart and the Bootstrap Alliance. (04b)

Augment provides an extensible environment [Engelbart83] for high performance knowledge workers [Engelbart82]. The Augment framework enabled users to collaborate with colleagues in a trusted environment and served as a repository for work, which could be linked to and accessed by other community members based on user profile, level of knowledge, span of action, and/or level of skill. Using Augment, skilled knowledge workers could collaboratively navigate, summarize, correlate, assemble, and publish complex briefing documents as well as share knowledge, useful data and files across organizations and agencies. (04c)

2. Why Preserving Augment is So Important (05)

Augment is important for its many innovations in the areas of structured information, user interface, productivity and uniquely integrated software/hardware technology. It is difficult to compile a comprehensive list of the innovations, many of which were first demonstrated at the famous demo at the Fall Joint Computer Conference in 1968! (05a)

Here is a partial list: (05b)

  1. Hyper Documents (05c)

    • Structured Documents (05c1)

    • Fine grained document address ability (05c2)

    • Hyperlinks (05c3)

    • Glossary (05c4)

    • Multiple document views (Outline, Chapter, first line of every paragraph,...All) (05c5)

    • Tags based publishing (05c6)

    • Versioning (05c7)

    • Access control (05c8)

    • Collaborative authoring (05c9)

    • Email, conference and document archiving (05c10)

  2. User Interfaces (05d)

    • Mouse and Chording Keypad (05d1)

    • Multiple Windows with text and Graphics (05d2)

    • Verb Object Modifier UI (05d3)

    • OO editing e.g. Toggle character, sentence, paragraph (05d4)

    • Extensible command processor (05d5)

    • Shared Screen Conferencing (05d6)

    • Ergonomic design with Herman Miller Furniture (05d7)

    • Supports power user as well as novice (05d8)

  3. Productivity Innovations (05e)

    • PIM - people, places, things, calendar, reminders (05e1)

    • Budgeting - organization and account structure (05e2)

    • Creating documents about documents rather than edit in place (05e3)

    • Scripts to automate tedious tasks (05e4)

    • Instant Messaging (05e5)

    • Hyper document email (05e6)

  4. Other Technical Innovations (05f)

    • Raster scan monitors (05f1)

    • Efficient support of low speed terminals (05f2)

    • Optimal screen updates (05f3)

    • Efficient chunk-linked file structure (05f4)

    • Literate Programming (05f5)

    • Integrated Defect Tracking and Tracability (05f6)

    • One of the first applications of compiler compiler technology (05f7)

    • High Level Systems Programming Language (05f8)

    • The concepts of knowledge worker and community (05f9)

3. Augment Is Still Unique (06)

Unfortunately, while many of the artifacts first implemented in the Augment framework are available in one form or another in modern software implementations, there is no single, unified, modern framework capable of delivering a rich Augment-like environment for collaboration, correlation, semantic linking and complex analytic functionality. (06a)

In this brief paper we would like to highlight two of Augment's features that have yet to be surpassed by modern tools - Collaborative Authoring and a chord and mouse interface for power users. (06b)

4. Collaborative Authoring versus Editing and Annotating (06c)

In most collaborative authoring systems, documents are WYSIWYG edited and annotated in place. Typical examples include MS word versioning and annotation; > and *** in email and threading in discussion boards. These approaches make it difficult to follow the discussion and to attribute various edits and annotations to a particular author. They also require the duplication and reading of substantial amounts of text. They make it difficult to work with multiple documents since the edits and annotations are embedded within the document. (06c1)

Augment takes a non-embedded approach. Selected documents can be designated immutable, and are archived in the Augment Journal (the "journal of record"). Augment provides fine-grained automatic labeling called Statement Identifiers SID's, more recently called "Purple Numbers" [Kim01] for statements (paragraphs) - statement numbers, statement ids, and labels. In addition it provides addressability to the elements of a statement - sentences, phrases, words and paragraphs as seen in today in XPath/XPointer. (06c2)

Editing and Annotation is a hypertext writing activity where one constructs a new document that talks about the previous document. This allows each contribution to stand on its own as a separate document. (06c3)

Further, in Augment all correspondence is a document: notes, email, chat sessions, conferences, budgets, schedules etc. This allows one to reference and discuss all of the relevant artifacts not just one specific document or document version. (06c4)

5. An Interface and Navigation For Power Users (06d)

Although many people credit Augment as a major inspiration for the modern GUI, it featured support for power users. Augment is designed for people who need to process a lot of information, unlike many systems that are intended only to be used with a more casual point and click style. Augment provides simple single character action-object commands. Command completion supports novice users as well as the use of less frequently used commands or options. The chord keyboard [1] and mouse provide for rapid two-handed navigation and editing. Commands and text can be quickly entered simultaneously using the chord keyset in the left hand even as the mouse is being moved by the right hand to select objects and addresses. (06d1)

During navigation, Augment provides the user with a large number of predefined viewspecs that include filtering, outlining, opening separate windows, inlining fragments etc. Like commands, most viewspecs are invoked by single characters that can be entered quickly. Viewspecs enable rapid transit and zooming in and out through many related documents. Augment provided many capabilities only now being seen in XLink, for example: allowing viewspecs to be embedded within a link. (06d2)

Augment's functionality in the area of Linking and Jumping is revolutionary. Engelbart recognized that knowledge encompasses content and relationships. Links are a very good way to describe relationships between entities, or nodes. Just as there are many kinds of relationships, there must be many kinds of links, and there can even be quite complicated kinds of links. The Augment framework provides the ability to define different types of Links, called Link Types, and can even calculate (or evaluate) Link expressions. Unlike XLink, viewspecs were also part of the command vocabulary and are often entered as part of document navigation through hyper documents. While most systems have primitive capabilities for following a link, Augment provided first class linking commands for "taking a link". When one issues the jump item command, an item specifies a location and a view. In this way, the jump command almost always has additional addressing and viewspecs applied to the command - opening up rich possibilities through providing many possible combinations of views, links and jumps. The possibilities are further enhanced by being able to specify link, view and jump expressions which themselves can be combinations of links, views and jumps. (06d3)

While many actions can be achieved via simple action-object commands and their modifiers, power users that (Engelbart calls them "Knowledge Pro's" versus "Knowledge novices") needed to have specialized support for complex operations. Augment links therefore included the ability to associate a content analyzer that would be applied to the linked document. Content analyzers enabled more sophisticated use of selection and presentation of information for specific purposes. Finally, Augment provided macros that were able to invoke commands and walk over the underlying node structure much as we find in the XMLDOM and XML infoset. (06d4)

The ability to apply commands consistently to any node or group of nodes in the hyper document and to have linking and viewing under the active control of the user, facilitated fast viewing and refactoring of information be it programs, calendars or chapters. Engelbart has a special term for the special capability enabled by Augment, which allowed groups to manipulate and create knowledge in this powerful way: CoDIAK which comes from Concurrently Developing, Integrating and Applying Knowledge.(06d5)

6. Augment Is Fragile (07)

The original Augment system was developed on an SDS 940, but most of the work on Augment was done on the DEC PDP-10 and 20 under the TOPS-10/20 operating systems. Augment is implemented in its own structured systems programming language called L10 with much of the system implemented in special languages using early compiler technology. L10 was designed specifically for the PDP-10, hence Augment resides today on an emulated platform. Unfortunately there have been no resources to port L10 and its design to newer processors and operating systems. (07a)

In order to continue the unfinished revolution, Augment, the Bootstrap Institute, Bootstrap Alliance and Engelbart supporters have used a Sparc-based DEC 20 emulator that runs the TOP-20 operating system. Doug laughingly remarks that the emulation is much faster than the PDP-20 on which he worked. (07b)

Since the original terminals are no longer in use, he makes use of custom DOS and Smalltalk Windows clients that emulate the 9600 ASCII terminals of that era. However, even these clients are now becoming dated and unstable. There is a pressing need to move the essential concepts and ideas forward as well as to preserve and protect the original artifact itself in a computer museum. (07c)

7. The Open Augment (OA) Project (08)

The mission of the OA Consortium, a not for profit corporation, is to preserve the Augment legacy of Douglas Engelbart by using modern web standards and unencumbered open source software. OpenAugment will ensure that others have ready access to these important ideas as a seed for their own adventures in collaborative computing. (08a)

The OA project is using W3C standards and open source components to model and emulate the essence of the Augment system. It must be stressed that this is not a complete replica of the Dec PDP 10 implementation. In particular, there are several Augment subsystems that are now widely available through open source, and we are using these rather than building everything from scratch. Information and code for the OA project can be found on our website www.openaugment.org and all will be available under a liberal Open Source license. (08b)

8. The OpenAugment Framework (09)

Augment provided an extensible environment for high performance knowledge workers. Using Augment, skilled knowledge workers could collaboratively navigate, subset,correlate, assemble, and publish complex briefing documents or share knowledge across different organizations. The OA framework is an effort to re-engineer Augment functionality in a phased approach using modern software standards. (09a)

We leverage the legacy of many years of pioneering research by Dr. Engelbart by using the existing Augment system as the use cases and test cases for an open standards-based framework. Augment concepts are migrated to modern technology and standards so they can be readily understood, implemented and further exploited by knowledge workers and researchers. (09b)

The project consists of the following phases or activities, which are being carried out concurrently in an Agile fashion. (09c)

  • Augment - Reverse Engineer for the Essence (09c1)

  • Reengineer OA using open standards and open web technologies (09c2)

  • Migrate Augment Technical Content To OAXML (09c3)

  • OA Development (09c4)

  • OA Integration with some popular external tools and/or their content formats (09c5)

9. Augment Archaeology (010)

The Augment system contains 30 years of collective history of technology, people and organizations and their activities. Fortunately the essence of the system is published; however there are many nuances that can only be experienced by sitting with a master. The system is for the most part well documented and through Bootstrap we have been fortunate to have access to Augment experts [2] to assist us with the software archaeology. (010a)

Together we worked to understand the definitions extensible command processor, its verbs and nouns and modifiers. Although we are using standard web protocols, it was fascinating to look at the terminal to server protocols developed for Augment. (010b)

A major concern was the conversion of Augment documents to our OAXML format. We have spent huge amounts in the past to reverse engineering undocumented legacy file and database formats. Fortunately the Augment internal chunk file format is well documented allowing us ready access to the content in the Augment file system. (010c)

Although many of the subsystems are available today as standard open and closed source packages we were surprised to learn that having a uniform nested structure allowed such a simple implementation of calendars, messages, email and even contact management. The ease of Literate L10, macro language programming provided documentation and text integration that are still not provided in today's modern IDEs. (010d)

10. Implementation Approach (010e)

To ensure the long-term accessibility of OA, we use XML wherever possible in both definition and implementation. The source code will be available under an OSI approved open source license. To ensure both commercial and research availability, we use industry standards and rely on open interfaces and exploit open source components. (010e1)

Our plan from the outset was to reuse the best Open Source- and build the rest! It was obvious that our default client must be the ubiquitous web browser. For subsystems we specifically wanted to avoid rebuilding components that already exist - e.g. text formatters, instant messaging etc. that are invoked by an XML service request. This meant living with less than true fidelity in interop, but our resources were limited and interop is the reality of the modern world. It gave us the essential of an open architecture with plugins. (010e2)

We felt that by leveraging XML as much as possible we would abstract the implementation from underlying language and platform. We were also interested in showing how Augment hyper documents would be represented in OAXML using XPath, XLink, XPointer etc. (010e3)

For those areas that needed programming we opted for scripting them with the assumption that the student could convert the scripts to their favorite language as an exercise. Fortunately this approach is consistent with the popular web services model. (010e4)

The major asset in Augment is the content of the Augment system. A critical first step in the development was the development of the OAXML schema to represent content outside the PDP-10 file system. Given the definition of OAXML, it was a straightforward conversion from the Augment physical file format to OAXML. Once in OAXML it can be easily rendered in HTML or PDF. (010e5)

Unfortunately even modern browsers do not implement the latest XML standards completely so we needed to provide scripting to enable these features for popular browsers. (010e6)

The last area of work is integration with external components and file formats. We realized that it would be difficult to attract users familiar with other popular tools to move their files into OAXML hence we made some initial efforts to make OA interoperate with non-OAXML files. In collaboration with the Bootstrap Alliance's Hyperscope team we are experimenting with simple mechanisms to invoke COTS components and provide fine-grained links to other file formats and applications etc. (010e7)

11. OpenAugment Begin (011)

OpenAugment is a volunteer organized, not for profit company and we appreciate the financial, technical and in kind support we receive. We are close to the first release of OA and we are far from finished. We need reviewers to help us leverage the full expressive power of XML both for representation of the stored data and for their navigation. We need XML transforms to support different media from paper to PDAs. We need people to try the system and provide us with feedback. In order to make OA more practical and useful we need to integrate it with both other open and closed source applications and/or their file formats. (011a)

We look forward to the participation and feedback of the XML community and hope with your support to make OpenAugment an XML exemplar as well as a fitting tribute to the visions of Bush [Bush45], Engelbart [SRI62] [Engelbart68], and Nelson [Nelson87] [Xanadu99]. (011b)

Acknowledgements

We wish to acknowledge the members of the amazing Augment team led by Dr. Douglas Engelbart including Bill English, Ed van de Viet, Martin Hardy, Roger Bates, John Farbodough, Dave Evans, Don Andrews, Jeff Rulifson, Bill Paxton and Steward Brand, Air Force, ARPA. Logitech Corporation has generously provided offices and equipment for the Bootstrap lab. The work on OA has been made possible through the unfailing efforts of Mei Lin Fung, Dorai Thodla, Raylene Pak and Barry Gleeson of the Bootstrap Alliance and Angel Coppola of OpenAugment Consortium, Brian Barry, Bjorn Freeman-Benson, Jeff Eastman, Marcio Marchini of Bedarra Research Labs and Tom Armour of DARPA Genoa program. Lastly we thank all of those who have shared the journey with Doug through their interactions with BootstrapAlliance. (012a)

Bibliography

[Engelbart00] Doug Engelbart, Draft OHS-Project, Plan, 23-Oct-2000 <BI,2120,>, http://www.bootstrap.org/augdocs/bi-2120.html

[Engelbart98] Engelbart's Unfinished Revolution, A Symposium at Stanford University, December 9, 1998, http://unrev.stanford.edu/

[Engelbart83] Douglas C. Engelbart, Authorship Provisions in AUGMENT, Tymshare, Inc. 9-Dec-83

[Engelbart82] Douglas C. Engelbart, Toward High-Performance Knowledge Workers, 29-Sep-82, Published in Office Automation Conference 1982 Digest AFIPS Office Automation Conference April 5 - 7, 1982, San Francisco, CA

[Kim01] Eugene Eric Kim, An Introduction to Purple, August 28, 2001, http://www.eekim.com/software/purple/purple.html

[Bush45] Vannevar Bush, As we may think, Atlantic Monthly 176, July 1945, S.101-108

[SRI62] Augmenting Human Intellect: A Conceptual Framework, Stanford Research Institute, October 1962

[Engelbart68] Douglas C. Engelbart, Live Demonstration of Augment/NLS, Fall Joint Computer Conference, December 9, 1968. http://sloan.stanford.edu/MouseSite/1968Demo.html

[Nelson87] Ted Nelson, Computer Lib/Dream Machines, 1974, Updated Microsoft edition, 1987

[Xanadu99] Xanadu Secrets Become Udanax Open-Source, August 23, 1999. http://www.udanax.com/

Biography

Dave Thomas is the Founder of the Open Augment Consortium.



[1] Five fingered keyboard, where Chords (of simultaneously pressed keys) identify specific alphabets or commands – all 26 alphabets and 10 numbers can be represented on the five fingered chord keyset.

[2] Christina Engelbart, daughter of Doug Engelbart has assisted us. She trained many users of Augment and is herself one of the most accomplished Augment users along with Doug Engelbart.