[comp.emacs] Implementation of hypertext

daveb@geac.UUCP (David Collier-Brown) (01/28/88)

In article <757@brandx.rutgers.edu> webber@brandx.rutgers.edu (Webber) writes:
| There are, of course, many groups where the hype (pie in the sky application)
| of hypertext has been discussed.  To approach the nitty-gritty details
| of hypertext, we seem to lack two things: a common implementation of hypertext
| and a body of information to contemplate the hypertexting of.  
| 
| The first problem should be the simplest to solve.  Curses gives one a fairly
| portable terminal interface that would allow text to be displayed in a manner
| permitting portions of the text to be pointed to and actions taken as a result
| thereof.  Conventions for referencing other text pieces and storage/retrieval
| of same have been briefly discussed, but ultimately will be whatever the 
| implementer decides to do.  One would expect the basic unit of text to
| be what can comfortably be displayed on a normal terminal screen.  

  Interestingly enough, a set of 1:1 relationships and the mechanism
for following them to (possibly distant) text exists in the "ctags"
facility of vi and various emacs.

"normal" tags example:
fredM	fred.c		/^main(argc,argv)$/
usage	fred.c		/^usage() {$/

  I noticed that the current tags file contains sufficient
information for Jove (an emacs subset) to find locations in files
other than the one being edited and possibly located in distant
directories.  This constitutes a "weak" Hypertext as it stands.

  I also note that one could extend the file format and the display
program to allow a 1:many linkage to be represented and followed.
A (potted) example follows:

tags file:
Performance	plan/requirements.2		/^.SH Performance/
Performance	plan/requirements.5		/^.SH Performance/
Reliability	plan/requirements.2		/^.SH Reliability/
Reliability	plan/requirements.5		/^.SH Reliability/
Reliability	src/checklist.nroff		/^2.6.2 New Versions/
Reliability	src/checklist.nroff		/^2.9.3 Backout/
Reliability	src/checklist.nroff		/^9.6.1 Regression Tests/

  I envisage a goto_this_subject command which, when I place the
cursor on "Reliability" will display:
	plan/requirements.2		.SH Reliability
	plan/requirements.5		.SH Reliability
	src/checklist.nroff		2.6.2 New Versions
	src/checklist.nroff		2.9.3 Backout
	src/checklist.nroff		9.6.1 Regression Tests

... and allow me to select where I next wish to go.  

--dave (I think a GNU could do [it]) c-b

-- 
 David Collier-Brown.                 {mnetor yetti utgpu}!geac!daveb
 Geac Computers International Inc.,   |  Computer Science loses its
 350 Steelcase Road,Markham, Ontario, |  memory (if not its mind) 
 CANADA, L3R 1B3 (416) 475-0525 x3279 |  every 6 months.