Hypertexts are naturally modeled and reasoned about as graphs. A logical next step is to make the graph-based nature of hypertexts first-class - a separate entity to be specified, examined and manipulated independent of the content of the hypertext.
BrowseSpace orderings are used by a CGI-bin script called BrowseSpace to steer user browsing sessions. At the bottom of each web page presented by the script, hyperlinks are included that allow the user to select an adjacent edge in the graph given the current node (HTML page) being viewed. When the user selects an edge (clicks on a hyperlink), the BrowseSpace script is invoked presents the node (HTML page) to which the link leads, and again appends links corresponding to the edges adjacent to the new node. Thus, the user is ushered through the documents by the BrowseSpace script, which uses a browse-space ordering to determine the links available from each page presented.
BrowseSpace is employed by constructing browse-spaces in .bsp files. These files contain descriptions of the relationships among a set of documents in the form of an ordered graph. Each file contains a simple list of nodes, each of which contains an associated set of edges (arcs).
NODE StartNode {
FILE A.html,
EDGE Next TO OtherNode
}
NODE OtherNode {
EDGE Back TO StartNode LABEL "Back to Start",
FILE B.html
}
Once a browse space is constructed, it must be accessed via an explicit link that calls the BrowseSpace CGI-bin script with the appropriate parameters. For example, a page introducing a collection of texts might have a number of different hard-coded links into various browse-space organizations of the collection. Once in a browse-space, the BrowseSpace script automatically controls the navigation options at the bottom of each page.
The parameters that must be specified on an explicit browse-space entry line are:
http://www.example.com/cgi-bin/BrowseSpace&BS_file=example.bsp&BS_node=StartNode
Examples of two different browse-spaces that order the same set of three simple html documents in two different ways can be found on the BrowseSpace Examples Page.