Hypertext '87 (1988) [pdf]
cs.unc.edu
cs.unc.edu
While there are many fun papers here, the first systems paper, KMS, deserves special attention. KMS was one of the very first hypermedia systems to take advantage of the power of networked graphical workstations. It was very fast (less than 0.25 s to move from frame to frame), and while it did not use the chording keyboard championed by Engelbart, it used context aware button combinations of the three buttoned mouse for much the same purpose to enable very efficient use by experienced users (and with the cursor showing the available options for the less well trained). It was a fast, WYSIWYG, collaborative hypermedia authoring system, and it was made before GUIs became standardised, leaving its creators free to make the system as they wanted. It had a scripting language, so users to extend it.
At my university, we still had a running installation of KMS into the late nineties. It was interesting to use, and it was always fun to expose students to this radically different graphical user interface, and vision of what hypermedia might have been.
Unfortunately, it is not easy to find videos of the system in action.
Designing to Facilitate Browsing: A Look Back at the Hyperties Workstation Browser
https://donhopkins.medium.com/designing-to-facilitate-browsi...
Building User Interfaces in NeWS (screen snapshots of developing user interfaces, HyperTIES, Emacs, and PostScript programming in NeWS):
https://www.donhopkins.com/home/ties/scans/BuildingUserInter...
Emacs Authoring Tools for HyperTIES:
https://www.donhopkins.com/home/ties/scans/EmacsAuthoringToo...
https://www.youtube.com/watch?v=hhmU2B79EDU
HyperTIES Markup Language:
https://www.donhopkins.com/home/ties/scans/HyperTIESMarkupLa...
New HyperTies Database Format:
https://www.donhopkins.com/home/ties/scans/NewHyperTIESDatab...
HyperTIES Notebook:
https://www.donhopkins.com/home/ties/scans/HyperTIESNotebook...
Early NeWS HyperTIES Prototype with Pie Menus:
https://www.donhopkins.com/home/ties/scans/PieMenuHyperDemo....
What is Emacs? (UniPress Emacs 2.20 NeWS version and "SoftWire" protocol proposal):
https://www.donhopkins.com/home/ties/scans/WhatIsEmacs.pdf
UNIX and X-Windows Implementations for the Hyperties Hypertext System (research proposal that led to the NeWS version):
https://www.donhopkins.com/home/ties/scans/UMIACSHyperTIESPr...
User interface design for the Hyperties electronic encyclopedia (published in Hypertext '87):
https://www.donhopkins.com/home/ties/scans/UIDesignForHyperT...
Research Directions for HyperTIES
https://www.donhopkins.com/home/ties/scans/ResearchDirection...
Early PC HyperTIES brochure:
https://www.donhopkins.com/home/ties/scans/HyperTIESBrochure...
Early HyperTIES leaflets:
https://www.donhopkins.com/home/ties/scans/HyperTIESLeaflets...
More HyperTIES stuff:
https://www.donhopkins.com/home/ties/
Ben Shneiderman discusses and demos different versions of HyperTIES:
https://www.youtube.com/watch?v=1uyO-xUTt6Y&t=12m41s
Ben Shneiderman introduces Pie Menu, Emacs, and HyperTIES demos:
https://www.youtube.com/watch?v=8Fne3j7cWzg
Deep dive through the layers of HyperTIES:
Some HyperTIES Markup Language (Hubble Space Telescope, demo, and NeWS Talk databases):
https://www.donhopkins.com/home/ties/newdb/spacetel/spacetel...
https://www.donhopkins.com/home/ties/newdb/particip/particip...
https://www.donhopkins.com/home/ties/doc/demos/
Some MockLisp code implementing the authoring tool: Yet Another HyperTIES Implementation, This Time In Emacs (YAHTITTIE):
https://www.donhopkins.com/home/ties/yahtittie.ml
Some PostScript Code implementing the user interface: NeWS Forth HyperTIES Target Class Definitions
https://www.donhopkins.com/home/ties/target.ps
Some PostScript Data and Code implementing a Font Pull-Out Pie Menu "applet":
https://www.donhopkins.com/home/ties/doc/obj/font-menu.tn0
https://www.donhopkins.com/home/ties/doc/obj/fontmenu.ps
Some C code implementing the formatter: NeWS HyperTIES formatter
https://www.donhopkins.com/home/ties/fmt.c
Some FORTH code implementing the browser: NeWS Forth HyperTIES storyboard interpreter stuff (HyperTIES Markup Language interpreter, storyboard compiler, formatter control, browser scripting, authoring tool support, and C/Forth integration)
https://www.donhopkins.com/home/ties/fmt.f
More machine generated FORTH code: the Space Telescope database, with each HyperTIES Markup Language storyboard compiled into a FORTH word, which are compiled into threaded code and dumped into a restartable binary FORTH image, which calls into C code to send PostScript code to NeWS, creating PostScript display lists to draw the screen and interactive objects to manage links, menus, and extensible PostScript plug-in "applets" like the font menu above):
Yes, it had macros and conditionals. I wrote the initial markup language interpreter in FORTH, so I could drop into Forth and do all kinds of crazy things, and it could even compile storyboards into FORTH words (one word per each storyboard) that it compiled and dumped out to a binary image, so it could start up and display pre-formatted compiled pages quickly (kind of like partial evaluation, and Smalltalk VM images).
That was probably a premature optimization (or maybe not, since a 4 meg Sun 3/50 was pretty slow), but that was just the kind of stuff FORTH is great for, and it was fun to write FORTH code that wrote FORTH code that called C code that wrote PostScript code that wrote PostScript code! ;)
I used Mitch Bradley's awesome 68k Sun FORTH system, which could dynamically link and call back and forth to C code (by running the Unix linker to dynamically relocate a library to run inside a chunk of FORTH's memory -- SunOS didn't have actual support dynamically linked shared libraries yet), and he later developed it into OpenFirmware:
https://news.ycombinator.com/item?id=29261810
Later we replaced FORTH with a custom HyperTIES Markup Language interpreter that was written in C, and supported macros and conditionals and shared definitions, kind of like style sheets (but using the same markup language, not one language for markup and another for style).
The coolest part was that you could script and configure reusable embedded NeWS "applets" in PostScript, like custom pie menus for font selection and other commands, text editors, user interface widgets, PostScript driven animations, interactive popup targets, buttons that sent commands to NeWS, Emacs, FORTH, the Unix shell, etc, not unlike Java applets or web components that web browsers eventually supported.
It was no coincidence that the same guy who wrote Java (James Gosling) also wrote those two other languages we used to implement HyperLook, long before he wrote Java: NeWS PostScript and UniPress Emacs MockLisp!
Is there a specification of the Forth dialect used in NeWS? Why not use postscript for scripting too?
The FORTH I used was Mitch Bradley's "Sun Forth", aka "Forthmacs" (with the Jove ersatz Emacs editor by Jonathan Payne built in), which eventually evolved into OpenFirmware, and which was once defined by an IEEE standard, "IEEE 1275-1994", but it was withdrawn because the standard was not reaffirmed:
https://en.wikipedia.org/wiki/Open_Firmware
>Open Firmware is described by IEEE standard IEEE 1275-1994, which was not reaffirmed by the Open Firmware Working Group (OFWG) since 1998 and has therefore been officially withdrawn by IEEE.
It's still alive and maintained and used for many things. Here's the source code, called OpenBIOS, as well as some other implementations and versions:
https://github.com/openbios/openbios
https://github.com/openbios/openfirmware
https://github.com/openbios/openboot
https://github.com/openbios/smartfirmware
https://openfirmware.info/Welcome_to_OpenBIOS
https://openfirmware.info/Open_Firmware
https://github.com/MitchBradley/openfirmware
Also there's also Mitch's very portable "cforth":
https://github.com/MitchBradley/cforth
There's even an Open Firmware Song: