The Artima Developer Community
Sponsored Link

Cool Tools and Other Stuff
Multiple Contexts, Information Reuse, and Backpointers
by Eric Armstrong
January 22, 2006
When it comes to information reuse in multiple contexts, backpointers are critical. Doug Engelbart said so in 1968. I finally understand why...


Doug Engelbart always said that backpointers were necessary. I just encountered a concrete example that points out why.    (01)

If a chunk of text is referenced in several difference contexts--perhaps linked in one and included in another--then /backpointers/ show where they are. They let you see where and how a particular segment of information is being used.    (02)

Mechanically, backpointers are very much like links. In fact, they are essentially links with a type tag that says "I'm pointing backwards".    (03)

Note: Type tags on links are something else that Doug always claimed as necessary. They were actually implemented in the NLS system he demonstrated in 1968, and never seen since. (For more on "The Mother of all Demos", see Doug Englebart's NLS System).    (04)

It's important to identify backlinks because they have different /semantics/ than regular links. So while forward links and link-transclusions would be automatically processed when displaying a document, back-pointers might not be seen unless you ask for them.    (06)

A concrete example will make it easier to see why backpointers are vital.    (07)

In my role at Sun Microsystems, I've had an opportunity to think about to structure the installation pages for the Java platform. The Document Information Typing Architecture (DITA) looks like a natural fit here because:    (08)

There are a few other opportunities for reuse, but those are the major ones.    (012)

The issue to be solved came up when one of the reviewers pointed out that some of the Linux instructions don't apply to Solaris (or vice versa) and that, every time he takes them out, they wind up reappearing later.    (013)

It was easy to see why. The instructions were so long, and the differences so minor, that would only be natural for a writer working on one to simply copy their changes over to the other.    (014)

With manually pasted text, it's possible to consider taking the writer to task for not being detail-minded enough to observe the minor discrepancies. The fact that no human being on earth is not that detail-minded does not have to dissuade us from our righteous indignation. We can chastise that writer to our heart's content. Why not? It does our soul good.    (015)

But in an environment of automatic reuse, there would be /no way/ for a writer to know who might be using their content, and in what context--unless there were backpointers to follow.    (016)

The first several interface implication for backpointers is simple: You need to know how many backpointers there are for a given bit of material. That number gives you important information all by itself:    (017)

Finally, when a piece of information is used in more than one context (yours or others), you need a way to see them in some reasonable fashion. As contemplate the change you plan to make, you then have several interesting options. In choosing which options to implement, the authoring system needs to balance interface complexity against functional completeness:    (022)


With reuse comes the necessity for managing backpointers, so that editing and revisions can be carried out intelligently.    (032)

Talk Back!

Have an opinion? Readers have already posted 2 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Eric Armstrong adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Eric Armstrong has been programming and writing professionally since before there were personal computers. His production experience includes artificial intelligence (AI) programs, system libraries, real-time programs, and business applications in a variety of languages. He works as a writer and software consultant in the San Francisco Bay Area. He wrote The JBuilder2 Bible and authored the Java/XML programming tutorial available at Eric is also involved in efforts to design knowledge-based collaboration systems.

This weblog entry is Copyright © 2006 Eric Armstrong. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use