Doug Engelbart (Stanford Research Institute Director of the Augmented Human Intelligence Research) – The Mother of All Demos (Dec 9, 1968)


Chapters

00:01:42 The Augmented Human Intellect Research Center
00:11:56 Interactive Navigation and Reference Linking
00:15:57 Interactive Hierarchical File Organization
00:18:52 Understanding Hypermedia Systems
00:22:52 Augmented Human Intellect: Pursuing Effectiveness and Discipline
00:31:15 The Engelbart Mouse
00:34:08 Understanding Feedback and Command Repertoire
00:37:37 Augmenting Human Intellect: Design of the Online System
00:45:26 Exploring System Design and Structure with Special Languages in NLS
00:51:50 NLS Programming Language and Compiler Development
00:56:46 The Structure of Early Programming Languages
00:59:09 Examples of Usage of the NLS
01:04:34 Intelligent Message Filtering Systems
01:07:06 Interactive and Collaborative Text Processing and Content Analysis
01:13:07 Collaborative Information Retrieval and Communication
01:17:29 Direct and Indirect Retrieval
01:19:29 Navigating Large Data Sets
01:29:56 Augmentation System Development and Activities

Abstract

Douglas Engelbart’s Visionary Leap into the Future: Pioneering the Digital Revolution

Engaging the Future: A Leap into Enhanced Productivity and Organization

Douglas Engelbart, a pioneer in the field of computer science, unveiled a visionary system in 1968 at the Fall Joint Computer Conference under his “Augmented Human Intellect” program. This groundbreaking research shifted the interaction between humans and computers, primarily through the introduction of a graphical user interface (GUI). Engelbart showcased a sophisticated console backed by a computer, enabling real-time manipulation of statements, words, and text. This intuitive system laid the foundation for the digital revolution, empowering intellectual workers with instant access to responsive computer displays.

Innovative Systems for Navigating and Referencing

Engelbart’s system offered a range of features for efficient navigation and organization. Hierarchical structures and user-centric controls allowed users to navigate information in unprecedented ways, such as jump-to-identity and jump-to-name functions, cross-referencing, and creating structured paths. The tool’s hierarchical structure facilitated information organization and exploration, with users interacting intuitively and performing various operations within the system for daily work.

Revolutionizing Human-Computer Interaction

Engelbart emphasized file management and presentation control, introducing dynamic text formats and chains of views for efficient navigation. A robust command system, including a one-handed keyboard equivalent, and the unique mouse operation, which tracked movements on a surface, transformed user interaction with computers. This user-friendly design streamlined command execution and interaction.

Empowering Tools and Collaboration Techniques

Engelbart’s presentation extended beyond technological advancements, showcasing practical applications. Users could easily access, navigate, and modify documents, leveraging features like joint file usage for collaboration, a messaging system for efficient communication, and a content analyzer for targeted information retrieval. This holistic approach exemplified Engelbart’s vision of enhancing productivity and organization across various domains.

Conventions for Message Handling:

Engelbart’s NLS introduced a messaging system with specific conventions for sending and managing messages. The @ symbol denoted messages directed to specific individuals, and multiple recipients could be indicated by adding more @ symbols followed by their initials.

Searching for Messages:

NLS incorporated a content analyzer tool for efficient message retrieval. Users could search for messages based on criteria such as sender, recipient, or specific keywords.

Filtering Messages:

The content analyzer also allowed users to filter messages based on predefined criteria, such as urgency or recipient.

Finding Messages:

NLS enabled users to pinpoint specific messages by searching for criteria like sender, date, or other relevant parameters.

The Single-Handed Chording Keyboard

This device consists of five keys, with each finger resting on a key. Pressing any one key produces a character, while pressing any two keys together produces a different character. There are a total of 31 possible combinations of keys that can be pressed. The keyboard also provides feedback mechanisms to the user, such as the echo register, tracking spot, and view specs. It enables users to enter text and commands quickly and easily, with a command repertoire that is efficient and user-friendly.

Advancing Software and System Design

Engelbart discussed software organization and system design, introducing special languages for designing and studying user features in the NLS (oNLine System). The MOL (Meta-Oriented Language) facilitated efficient code development in a time-sharing system. A control metalanguage for defining dialogue protocols, a structured approach to documenting hardware design, and programming languages designed for ease of use and understanding were also introduced.

Control Meta-Language

Engelbart developed a precise language to describe command functions and control dialogs, allowing programmers to explore the routines used in specific commands and directly access the relevant code file.

Implementation of Online System

The NLS system was implemented using a hardware design by Bill English and software design by Jeff Rulison. It incorporated a swapping drum, a large Bryant disk, two display systems, and an input controller into the SDS-940 system. A priority system on the bus enabled multiple devices to access the memory without interfering with the CPU.

Display Systems

The display systems were constructed using small, high-resolution CRTs and commercial TV cameras with 875 line scanning rates. The video signal was generated by looking at a small CRT, which was more cost-effective than traditional display monitors. Short-term storage in the camera tube allowed for a flicker-free display, and one display generation hardware could be used for multiple displays.

NLS Special Languages

NLS features multiple special languages that provide flexibility in designing and studying user features, functions, and commands. These languages have been particularly useful for programmers working online during system development.

System Guide File

The system guide file is a tool that helps system programmers navigate the NLS code. It contains an overlay structure diagram, where each label represents an overlay, code file, and statement. Selecting a label allows programmers to move directly to the corresponding section of the code.

Code Structure and Finite State Machine

The code structure in NLS is designed to reflect the flow of a finite state machine. As programmers step through the code, they can follow the characters a user would type to execute a particular command.

MOL (Machine Oriented Language)

The other portion of the text edit overlay is written in MOL (Machine Oriented Language), a low-level language that provides direct access to the machine’s instructions and registers. It is used for implementing system-level functions and optimizing performance-critical sections of the code.

The MOL programming language is a high-level language with phrase structure and control constructs like if and while statements, but it’s also very close to 940 machine language, allowing programmers to manipulate registers and perform indirect addressing.

The Machine-Oriented Language (MOL) enables the creation of fast and efficient code necessary for the operation of the time-sharing system.

MOL is designed to mesh with the block structure of NLS, making it easy to navigate and zoom in and out of different parts of the code.

NLS features a variety of special-purpose languages designed for specific tasks, such as editing, debugging, and searching.

These languages are designed to fit with NLS’s linking structure and conventions, making it easy to move between them.

The syntax of these languages is designed to complement NLS’s aids for moving around and navigating the system.

NLS’s compilers are all written in a higher-level language called Tremeta, which is a compiler compiler.

This allows for quick modifications to the syntax and meanings of commands in NLS’s control language and easy adaptation to new hardware features and experimental changes.

A system guide file consists of three sections:

The first section contains information about program structure, pictures, and fast links.

The second section focuses on retrieval.

The third section includes notes and information about bugs and issues in the system.

NLS keeps track of who is using the system and what actions they are taking at all times.

This allows users to leave notes for each other and provides automated information about who did what and when.

NLS allows users to set up search patterns to find specific information within the system.

The top branches of the NLS programming language are subroutines, each representing a user action.

The names of these subroutines are in the programming language and are triggered by specific user inputs, such as hitting a key on the keyboard.

The subroutine specifies the computer’s response to the user’s input, including displaying material on the screen and waiting for the next user action.

The programming language in NLS has a hierarchical structure, resembling a branching tree of choices made by the user.

Each level of the hierarchy represents a specific user action and the computer’s response to that action.

This hierarchical structure makes it easier for users to understand how the system works and to create new commands.

The NLS programming language is designed to operate at the concept level, allowing users to work with concepts rather than specific programming details.

This makes it easier for users to learn how to use the language and to create new commands that are meaningful to them.

Engelbart emphasizes the importance of providing users with a direct manipulation interface and the ability to see the results of their actions immediately.

This user-centered approach is designed to make computing more accessible and efficient.

NLS has a user guide that provides definitions, descriptions, and procedures for commands.

Users can easily navigate the guide by jumping to specific terms or phrases.

The guide is helpful for new users to quickly familiarize themselves with the system.

NLS allows users to study and modify papers within the system.

Users can easily open and navigate through a document, searching for specific terms or sections.

The system can be used to organize and print papers, with special directives embedded in the text to control formatting and layout.

NLS enables multiple users to collaborate on the same file.

Users can leave messages for each other, facilitating coordination and planning.

The system provides usage conventions to ensure that all users understand how to interact with the file.

NLS is a powerful tool for organizing and accessing information.

It provides a user-friendly interface, enabling users to quickly find and manipulate data.

NLS facilitates collaboration among multiple users, making it an effective tool for teams and organizations.

Fostering Collaboration and Information Retrieval

Engelbart envisioned collaborative working modes, featuring shared text editing, audio coupling, video conferencing, and remote control, to enhance team-based interactions. The system’s information retrieval capabilities, such as explicit and implicit specification methods and keyword retrieval, showcased a robust approach to managing and accessing vast amounts of information.

Collaborative Computer Use: Two Users Connected Via Computer, Audio, and Video

Early Collaboration Techniques:

– NLS allowed collaboration via leaving messages and filtering them.

– Joint files enabled real-time collaboration with instant response times.

Establishing Collaborative Mode:

– To initiate collaboration, a user would request to be connected to another user’s terminal.

– The user would then ask the other user for their terminal number.

Collaborative Features:

– Users could see each other’s text and point to it using a marker.

– One user could control the display while the other could observe and comment.

– Audio coupling allowed users to communicate verbally.

Visual Connection:

– Users could see each other through video cameras mounted on their consoles.

– This allowed for face-to-face communication while collaborating.

Information Retrieval Collaboration:

– Users could discuss information retrieval techniques and explore complex data structures.

– They could utilize content analyzers to help locate relevant information.

– Collaboration enabled efficient navigation and discovery of information.

A Legacy of Innovation and Teamwork

Douglas Engelbart acknowledged his supportive team and family’s role in his journey. He also mentioned the upcoming involvement in the ARPA computer network, anticipating its challenges and opportunities. Engelbart’s pioneering work transformed the way humans interact with computers, laying a foundation that continues to influence the digital world today.


Notes by: Ain