Hyperwords Menu
THE SIGNIFICANCE
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.
HOW IT WORKS
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.
WHAT IT WORKS ON
There are three (initial) types of documents the Hyperwords Menu-Up
Menu will work on are:
- Blog
- HTML on this site
- Timeline table on this site
Blog
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.
- Gather
[Add paragraphs from all other blogs with 'this word']- future
feature
- Show
[Show only blogs with 'this word']
[Do Not Show blogs with 'this word']
[First sentence only]
- Highlight
[Color 'this word' green everywhere]
HTML
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.
Timeline
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.
WHAT IT LOOKS LIKE
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.
THE COMMANDS
There will be a few commands for any type of document, and
some specific commands for the different document types supported:
- Glossary
[Show Document Glossary entry for 'this word'] -
Opens in new, smaller, window
[Show My Glossary entry for 'this word']
- future feature
- Show
[Show only paragraphs with 'this word']
[Show only paragraphs without 'this word']
- Search
[Search Google for 'this word'] - future
feature - Opens Google search results in a new, smaller,
window
[Search Websters for 'this word'] - future
feature - Opens Websters search results in a new, smaller,
window
- Highlight
[Color 'this word' red everywhere] - future
feature
[Color 'this word' green everywhere]
[Color 'this word' blue everywhere] - future
feature
- Copy
[Copy this Paragraph with Link] - copies
the paragraph with the URL added to the end of it to the clipboard
[Copy this Sentence with Link] - future
feature - copies the sentence with the URL added to the
end of it to the clipboard
[Copy this Paragraph Link] -
copies the URL of the paragraph to the clipboard
[Copy this Sentence Link] - future feature-
copies the URL added of the sentence to the clipboard
- Annotate
[Highlight this word in yellow] - future
feature
[Highlight this sentence in yellow] - future
feature
[Highlight this paragraph in yellow] -
future feature
[Add comment] - future feature - opens
text window for user to type in a comment with is added to the
document on next viewing.
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 (---)
Example:
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...