Single Input, Multiple Outputs

People mostly work with the `surface expressions' or `renderings' of a document; they listen to it or read it.

A computer works with the `deep representation' or, as Oliver Scholz calls it, the `encoded document file'. In the process of rendering, the computer converts a deep representation into a surface expression.

In the old days, computers were so limited that they could not carry out complex renderings quickly; an electronic code triggered a visual display to show a character or a new line, and that was that. From a programmer's point of view, the deep representation was similar to the surface expressions.

Nowadays, the two can be different.

Even after a human generation, Info still provides the most efficient on-line help format. This is because you can search for a pattern within a large document. This makes for easy and quick navigation. (Web documents are limited to single pages. If the whole document is on one page, and you have a decent browser, that is fine. But if not, you are stuck.)

An Info file has a `deep representation' that you can see with the Emacs command `find-file-literally' and with some other commands.

But many people look at Info files using the `info' Emacs command or a similar program. What they see (or hear) is a `surface expression'.

Initially, the `surface expression' looked similar to the `deep representation', except that you could move around with hypertext links. (This is all from a decade or more before Tim Berners-Lee invented his hypertext markup language. Because he worked in an environment with more modern computers and displays than those from 10 years before, he also made it easy to add images to one of his hypertext documents — and the World Wide Web was born.)

As time passed, Info `rendering' came, in some cases to convert a chapter heading with a line of asterisks below it — a simple representation — to a heading with a different font or voice and no line of asterisks — a representation that takes more computing power to render for a human.

Every document has at least four forms: its deep representation, its frugal surface representation for sighted people, it surface representation for blind people (who may not be permanently blind, but situationally blind, like car drivers), and its surface representation when printed on paper.

In addition, a document may have one or more less frugal surface representations, involving different fonts or voices. Both the Info format and HTML, the format used for the World Wide Web, are less frugal.

The question is how far to go? When you edit a document, should you edit just the deep representation? Or should you edit just one of the surface expressions? Or should you be able to edit all, or as many as logically possible, of the various formats? (You cannot specify font or voice in a frugal surface expression.)

In Texinfo, you can edit only the deep representation. Changes to the deep representation will propagate to the surface expressions.

Changes to an HTML surface expression, which I inadvertently make fairly frequently, will not propagate back. Similarly you can edit the visual or auditory info output, but that editing cannot propagate to any of the other formats either.

Similarly, many `word processing' environments provide only one read-write interface. But by default, they have you edit a surface expression rather than the deep representation. This is certainly simpler for the novice since he or she can make use of already acquired knowledge about books and typesetting or discover it through easy practice. That may well be the reason.

Otherwise, it looks as if the creators of the program think of the computer as a `super-typewriter' or typesetting machine and that people are still working with paper. In such a situation, the deep representation is the same as its one and only surface expression — but that no longer is the situation, and has not been for a generation!

In any event, if you are going to have multiple read-only renderings but only one read-write, then it better to edit the deep representation than to edit one of the surface expressions. That way no one inadvertently comes to think that a computer is a single output device.

However, that is awkward.

People prefer to edit the various different surface expressions for paper, for a graphic display, and for a sound device, as well as the deep representation that holds them, and have a change to one change them all.

Such a read-write capability is becoming feasible. Indeed, I think the capability has been feasible for a decade; it requires good user interface design. My suggestion, made a decade ago, is to show a document's very slow re-rendering with a a moving `wave of change' along a scroll bar.

This way, a person can have two windows open on the same document, one near its beginning and the other near its end, and not be surprised to see a change in the window near the end long after making a change in the window near the beginning.

(I suspect the convention will have to be that edits which result from the `wave of change' have precedence over changes made earlier — this even though the `wave of change' starts near the beginning of the document some time before the tail end text is edited.)


Return to: Notions

Or return to: Rattlesnake Home Page

webmaster@rattlesnake.com