Hyperwords Menu



It is easy to program a computer to do wonderful things, as long as there is a way for the user to describe to the computer exactly what it is the user wants the computer to do, and what the user wants the computer to do something on. This is partly why we can have amazing games and other software.

The world wide web is a wonderful net, covering the planet and providing access to publish information which is pretty much guaranteed to be readable by pretty much anyone with a net access. But it doesn't allow the user to interact with the data in the same way as a program written for the specific computer does, like a word processor.

Some attempts have been made to deal with this, most notably Java, a programming language which lives in its own world on all kinds of computers. But it's still slow and relatively cumbersome to use on a wide range of date.

Enter the Hyperwords Menu. It is a cool as hell technology which grafts a pop-up menu on to a document by the server. It is inspired by Doug Engelbart's HyperScope concept of a web-based intermediary, but while he was thinking about a control panel, this system integrates directly with the words on the page.

Initially the Hyperwords Menu works only on the output from the HyperBlog we are developing, but in the future it will work on different kinds of HTML pages.

But what does it do? The author of the document (or blog) writes a glossary, a dictionary of terms for the blog,. The Hyper Pop-Up Menu attaches itself to every instance of every word in the glossary when they appear in the document.

And provides a way for the user to give commands to the server. For instance: highlight this word, show the glossary definition of this word, show only paragraphs with this word and so on.

Essentially, it is a way for the user to issue commands to the server based on a word - or term - in the document, to either re-display the content in a different way or to relate the word with external content. This could be pretty powerful I feel.




The Hyperwords Menu-Up Menu is simply an infrastructure for providing the user the means to send a command (chosen from the menu) to the server referring to a word/sentence/paragraph/document the user is pointing to, for the server to carry out some work on. The menu will automatically pop-up when the user points to a word which is in the glossary, as described below.

URL Memory

All commands invoked by the Hyperwords Menu-Up Menu will be coded into the URL. This already works with the HyperBlog system. When this is created for the HTML pages it is important the commands can be understand by a human as well.

This makes it possible to copy and paste links of pages which have been modified, so that we can discuss them with others and create links to these pages making what could be called editorial views.





There are three (initial) types of documents the Hyperwords Menu-Up Menu will work on are:



The user visits the blog. Any control the blog supports can be available in the Hyperwords Menu-Up Menu. Any future features we want to have in the Hyperwords Menu-Up Menu will have to be coded from within the HyperBlog system - thus clear API's from the HyperBlog is important.


User types in http://www.invisiblerevolution.net in their browser. All pages shown inside this domain with the comment: <!--type="Hyperwords Menu page" in the header be parsed to add the Hyperwords Menu-Up Menu.

It is important to note that the capabilities the Dynamic HyperText and the ViewSpec features add will be increased over time, but for now the basic mechanism of putting a control in an existing HTML page (only pages on invisiblerevolution.net created by PageMill with the same kind of formatting this page has) which can send a command to the server is required.

project note: The server processes which the Hyperwords Menu-Up Menu invokes for the HTML pages are a part of the Hyperwords Menu-Up Menu programing project, as are the Timeline processes. The Blog ones are under the blog programming team.


The timeline on this site is a special case of HTML where all the entries are to be treated as separate entities, like the blogs. In other words, each entry will be the same as a blog entry. I have put the comment <!--type="Hyperwords Menu table" in the first line in the had of the timeline. This should let the system know which Hyperwords Menu-Up Menu is appropriate.




The menu should not add anything visually to the page, it should stay visually quiet. Invisible when not used, simple when in use.

Sample layout style, mocked up in HTML:

A sample of the pop-up on hover is available here. Please note that the the visual design is much to colorful and messy for what we need.





There will be a few commands for any type of document, and some specific commands for the different document types supported:


The glossary

The glossary will be a simple HTML document where the author (initially me, Frode) will be able to keep adding references with a simple HTML convention of the glossary definition.

Then the definition comes in the line after the glossary word. The definition is preceded by 'definition'. This is so that in the future we can add other structured elements to the glossary entries.

The entry is ended with three dashes (---)


This is the glossary word

definition: This is the glossary definition


This is the second glossary word

definition: This is also a glossary definition



Paragraph Level Adressability.

To enable the 'Copy' functions. The user will here point to the end of paragraphs. This is different from the other commands where the user points to a word in the glossary.

An anchor tag in front of every paragraph. This anchor tag is id'd by the first characters of the paragraph. A link to this anchor tag is added at the end of the paragraph. It looks like this: '.    ' In other words, a period (the natural end of the sentence) and four non-breaking spaces. CSS will be used to make sure they look normal until mouse-overed, when an underline will show, like this: '.    '

This means that users will be able to copy the link to the '.    ' and paste it into a browser which will load the page to that paragraph. A question remains: Will I have to get rid of the frames to make this work? Can a user paste a URL with an anchor tag? (This has since shown to be OK.)

We may do sentence level addressability in the same way. But for the user, it's still useful to be able to point to full paragraphs...






Doug Engelbart's  I N V I S I B L E    R E V O L U T I O N


© Frode Hegland 2003