Hacker News new | past | comments | ask | show | jobs | submit login
Hypertext '87 (1988) [pdf] (unc.edu)
86 points by todsacerdoti on Dec 28, 2021 | hide | past | favorite | 10 comments



This remains my favourite conference, and it is fun to see the very first proceedings.

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.


Ben Shneiderman's paper "User interface design for the Hyperties electronic encyclopedia" describes both the PC and Unix SunView window system version of HyperTIES, which we subsequently reimplemented for the Sun NeWS window system as a multimedia browser written in C, using PostScript to render and implement the user interface, and FORTH for scripting, as well as an authoring tool written in UniPress Emacs MockLisp, which we described in this paper published in Hypermedia, vol. 3, 2 (1991)101–117:

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):

https://www.donhopkins.com/home/ties/newdb/compiled.f


I've taken a look at some of the examples of HyperTIES Markup Language from your links. It seems so logical and easy to follow. It was interesting for me to see that it even had a conditional display of content.


We considered using SGML, but decided not to, because we wanted to focus on ease of use and writability and maintainability for hypermedia authors.

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!


Thank you for sharing all these wonderful stuff.

Is there a specification of the Forth dialect used in NeWS? Why not use postscript for scripting too?


NeWS didn't use FORTH. But HyperTIES used both FORTH and NeWS because there were a lot of things that FORTH could do that NeWS couldn't, like link and call C code directly.

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

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:

https://www.youtube.com/watch?v=b8Wyvb9GotM


What a nice find! I've used Gopher back in the days, I've heard about Veronica WAIS and some other technologies from early 90s but I've never seen any other in action. I was a kid at that time so HTML was the beginning oy hyperlinks and hypermedia to me. It is nice to see some of the pioneer work that was done before "my time".


I enjoy seeing and reading these historic texts and initial documents tremendously. So great seeing how everything has been built up since.


I wish I had more time to read these, as sometimes you can find techniques that are potentially superior for some use-cases. Some of them are out there in these books, having since-been replaced by a cheaper, commoditized equivalent.


Yes, there is a lot of wisdom in some of them. With progres some of the good-old-stuff gets lost and at latter stage it is much harder to introduce them once again.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: