home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d01xx
/
d0176.lha
/
HyperNet
/
HypNet.Txt
< prev
next >
Wrap
Text File
|
1989-02-04
|
6KB
|
141 lines
Hyper-Net
(aka HyperKludge)
By Glenn Everhart 9/4/1988
Hypertext systems come in two flavors: the text-based ones,
in which pointers are from parts of text/graphics/etc. files to
other parts of such files, and card-based systems. In these, the
pointers are from "cards" to other "cards". The first type is very
much nicer to use for documents, since very fine-grained cross references
are possible. However, it tends to require that all accesses to the
data be via hypertext-aware tools. The "card" type systems (e.g.
NoteCards) are much easier to deal with, at the cost of coarser-
grained linkages.
HYPNET (which I initially planned to call HyperKludge) is
a very simple hypertext card type system designed to be usable on
just about anyone's system.
It can be thought of as a directed graph or network of nodes
which have arbitrary interconnections.
You move from one "node" to another "node", and at each one
you can perform some action. These actions might be things like
editing files, viewing text, drawing graphs, retrieving data, or
the like. At each node, you can follow the paths of the graph to
other nodes. Also, your actions are allowed to alter the paths
permitted. This is a bit like a menu system, but differs from
some menu systems in that it is NOT hierarchical. On a windowed
system, the actions would be spawned with no waiting, so that
several could be active at a time. To allow HYPNET to run on any
terminal, I used default LIB$SPAWN, so this concurrency will not
normally appear. (Of course, if the action is a SPAWN/NOWAIT,
it may appear even so, but the exit of the "parent" spawn will
probably kill it.) A later refinement may allow selection of
wait/nowait for spawns.
One use of such a beast is to provide a more "random access"
document, consisting of a bunch of files. One might have, for
example, a set of one-chapter files with movement allowed back
to the contents, introduction, or some general appendices at
any time, and some movement across chapters where non-sequential
threads of interest can be defined. By editing the node and link
lists, you can grow such a network as you go, too.
The following file is for the mini-hyper-notecard system
HypNet.For. It is expected to be available in the current directory
and be named HYPDAT.DAT.
Rules are as follows:
1. Nodes have + in column 1. When a node is active, the command
(follows the nodename line and has a $ in column 1) is spawned,
and then a menu is displayed showing successor nodes. These have
> in column 1 and must match nodenames EXACTLY (case, too.)
Selection of a successor node then locates THAT node and fires
off ITS command, and so on...
Actually, if the command has a & in column 1, it will be
fired off with SPAWN/NOWAIT instead of just SPAWN.
2. There MUST be a node named START someplace in the file. It is
where the system starts up when initially begun.
3. Node names can be long. Up to about 75 characters are available.
4. Any legal VMS command can be used. Spawn/nowait is available for
asynchronous operation. (Use & in col 1 for this behavior.)
5. Viewing the network or changing it is accomplished (kludge! ecch!)
by editing this file or looking at it. (Hey: this is a text mode
program and if you want something better, YOU can always add to it.)
6. Access is sequential (for now; another big PFBBTPHBFPHBFHTBTTT) but
this file is closed during all command executions, so edits to it
take effect next time around.
7. A menu selection of item 99 restarts things. Invalid file formats
may lead to program exits. Status of the lib$spawn is currently
not checked, however.
8. A VT100 or other similar ANSI terminal is assumed. Only minimal
ANSI support is needed, though, namely clear screen and cursor
positioning. That stuff is all in separate subroutines. Fix
it yourself if you want for other terminals.
9. Up to 16 successor nodes can be defined at any node. No more for
now. There has to be SOME limit, and I hope that's more than
anyone will need. If it isn't, define some more nodes to keep
your nodes from getting too dense.
10. There is no logical limit to the size of a network. However, this
version has no limit to how long it'll take finding anything,
either. Smallish is beautiful.
11. Reply 99 to successor number to go back to start. Reply 98 to
exit the program.
12. In the Amiga version of the program, a command line with second
character & will automatically have an ENDCLI issued after the
action completes. Initial character $ will issue NEWCLI and initial
character & will issue NEWSHELL (AmigaDos 1.3 command) in column
1 for the action lines. Commands are passed to the shells via
scratch files in ram:. There are 9 unique filenames used in
succession, a crude attempt to avoid problems with shells that
remain active with locked input files for extended periods. This
is not a problem with the VMS version.
Enjoy, and please make updates or enhancements to this thing
available via DECUS too.
Glenn Everhart
(example below of a crude script. Try the HYPDAT.DAT script on Amiga
for a working script that does a small amount of useful stuff on
Amiga.)
+START
$edit HYPDAT.DAT
>node1
>node2
+node1
$t node1.txt
>node2
>node3
>node4
+node2
$t node2.txt
>node1
>node5
>node6
+node3
$li node*.txt
>node5
>node1
>node6
+node4
$t node4.txt
>node1
>node6
+node5
$t node5.txt
>node1
>node3
>node6
+node6
$t node6.txt
>node4
>node1
>node3
; example database for hyper-network
; each node has plus in front, followed by what that node
; should do. Links are preceded by greater-than. The commands
; are preceded by dollar sign. Ordinarily the node network
; node names would be more meaningful than here; this is just
; for testing. - Glenn Everhart
; HyperKludger....