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.

What Is BrowseSpace?

BrowseSpace is a tool that allows web designers to create first-class orderings of collections of HTML documents. These orderings are called browse-spaces and are essentially ordered graphs whose nodes are HTML documents and whose edges are hyper-links. Browse-spaces allow a set of documents to be presented in multiple overlapping dynamically configurable orderings. For example, a set of electronic texts might be ordered temporally by date of publication, or in some other order preferred by the author in a given collection. Using BrowseSpace, the texts need not directly hard-code their relationships to other texts. This information can be maintained separately, as a first-class entity in a browse-space file.

How Does It Work?

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).

A simple BrowseSpace .bsp file for two nodes associated with the files A.html and B.html is:

          NODE StartNode {
		FILE A.html,
	        EDGE Next TO OtherNode

          NODE OtherNode {
	        EDGE Back TO StartNode LABEL "Back to Start",
		FILE B.html

The .bsp file above would result in a browse-space that looks like the following:

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:

A example of a link into the browse-space above (assuming it is stored in a file called example.bsp) could be:

Note that the BrowseSpace CGI script is invoked explicitly and is passed the appropriate parameters.

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.

Questions, comments?

Please send mail to
Adam Ferrari