Previous Issue | Search TidBITS | TidBITS Home Page | Next Issue

TidBITS Logo



Copyright 1991 TidBITS Electronic Publishing. All rights reserved.
Information: <> Comments: <>

Storyspace Introduction

Storyspace 1.1
Eastgate Systems
P.O. Box 1307
Cambridge, MA 02238


7 Penguins out of a possible 10

Price and Availability: -- Single copies of Storyspace cost $160. 10-packs for offices and labs are available for $495. Generous educational discounts are also available. Storyspace is available from a few dealers, but Eastgate is by far the best source. Contact Eastgate for more information.


Matt Neuburg --
Adam C. Engst,

MATT: Eastgate Systems has released its new version of Storyspace: when I started collaborating trans-Pacifically on this review with Adam my copy was called 1.07, though the "About" box read 1.0; now we are up to 1.1, and intriguing noises about the next version are coming from Eastgate. The program bids fair to bring hypertext into common use. Indeed, part of Eastgate's business is the publication of new hypertext efforts, for which the manual includes an appeal. While the prospect of writing hyper-literature may not thrill everyone, users will find that Storyspace can fit a great variety of needs: notepad, personal information management (PIM), computer aided instruction (CAI) authoring, database work, and more. The program is addictive and encourages constant and creative use.

ADAM: So far, Storyspace seems primarily to have found a market in the Macintosh-savvy crowd in higher education. I suspect that is because the authors, Jay David Bolter, Michael Joyce, and John B. Smith all work at institutions of higher learning, if you will. All three have been active in the academic conferences and forums that focus on hypertext, especially those emphasizing the overlap between hypertext technology and creative use within the humanities. Mark Bernstein of Eastgate has relayed some of Storyspace's more interesting uses, including ethnographic field notes and Australian parliamentary strategy, not to mention several extremely interesting pieces of hypertextual fiction, such as Michael Joyce's "Afternoon" and others which should be available from Eastgate by now.

Storyspace has had a long history, and it is one of the few programs that I've followed for much of its development. Back in the fall of 1986 when I was a sophomore at Cornell, I was looking for interesting courses that I could take, having been accepted to a program (the College Scholar program) that waived all course requirements. I found a course in the Society for the Humanities (a department at Cornell that focuses on a different subject each year and is staffed primarily by visiting professors) taught by Jay Bolter. It was a seminar tracing the evolution of information dissemination from the oral tradition to the present electronic media. Only one other person took the course, a librarian at Cornell taking it extramurally, so when the time came to do the final paper, Jay introduced me to his program, Storyspace. I think it had been in development for a year or so at that point, and it had some problems, such as the one that caused me to lose my final project the day before it was due. Luckily it was easily recovered (this was back before I'd particularly used a Mac at all).

I continued on in my College Scholar program, but no more courses like Jay's ever appeared. Instead, I worked on my own, starting the Usenet newsgroup, which was soon taken over by the people who were more interested in the simulated environment, artificial intelligence, and role-playing aspects of interactive fiction. Then, senior year, I had to complete an 8-credit, two semester senior honors project. Well, I didn't have to, but I'm vaguely masochistic that way. Primarily during the winter of that year I wrote what was equivalent to several hundred pages of hypertextual fiction in a far more advanced and stable version of Storyspace.

MATT: Jay Bolter, by the way, is the author of "Turing's Man," an excellent meditation on the way computers and the computer age have altered our vision of ourselves, and something our readers might do well to have a look at. Also, since we are waxing biographical, Bolter and I, though we have never met, have some things in common; we are both Classicists who are also very heavily computer literate, and we have both taught Adam in very small classes at Cornell! In fact, the reason I got into StorySpace was that I had just finished a HyperCard project, involving both CAI and authoring tools, whose purpose was to automate some of the exercises in the book I taught Adam Latin out of; having seen the value of this sort of thing in the classroom, I was looking for other possible tools. I also went to college with Mark Bernstein. So life is like Storyspace itself - full of links.

ADAM: The version that Eastgate Systems markets now is directly descended from the version I was using my senior year, although a number of interface items have become cleaner, and the entire program has become a bit more powerful. I haven't had a chance to write a great deal in this latest version of Storyspace mostly because I keep wasting my time on some stupid thing called TidBITS :-). It also doesn't help that Storyspace isn't as responsive of a text entry environment as Nisus, so I have been doing a bit more with copy and paste out of Nisus.

The version of Storyspace that Matt has and that Eastgate sent me is System 7-compatible. However, the authors are hard at work on a System 7-savvy version that will be able to link text between files transparently, effectively erasing file boundaries. I'll be extremely interested to see how they handle that, because few programs have taken advantage of System 7's capabilities to that extent yet. In addition, although Storyspace has always been a primarily text editor, Jay added basic graphics support at some point several years ago (in the middle of my thesis work, but slightly too late for me to take significant advantage of it). Once Apple ships QuickTime to developers, you can bet that Storyspace will add support for it, making it even more powerful in dealing with all forms of expression.

MATT: Meanwhile I've been working pretty extensively with Storyspace, initially just building a hypertext version of the Greek verb paradigm for my students to use. This sounds like a pretty elementary exercise, and I suppose it is, really; but it is just the right kind of project to put Storyspace through its paces and check out its strengths and weaknesses. In a nutshell, its strength is its whole conception: a tool for building hypertext structures either for yourself to use interactively or to pass on to others as stand-alone documents. Its weakness is that the authors are not ironing out interface issues. To give one example now (there will be many more as we go), Adam said this version is System 7-savvy; but in some ways it isn't even MultiFinder-friendly! It hogs the cursor in an illicit way; if the mouse is over its windows, Storyspace will force a change to its cursor, even if it is not the active application! [ADAM: I've just heard from Mark Bernstein that this bug has been fixed in 1.12. Eastgate is extremely responsive.] But let's go on to describe what Storyspace does.

What You See

MATT: Storyspace's fundamental metaphor is the "writing space," whose algebra is simply this: a writing space may contain one "text space" and/or any number of writing spaces; a text space is a scrolling field which may contain text and pictures.

A little thought will reveal that this describes merely an outliner of the old Apple ][ ThinkTank variety: a hierarchy of headings, each with or without an associated "paragraph." And in fact, one of Storyspace's "views" of your document is outline format. Yet as an outliner, Storyspace is annoyingly weak. In outline view, titles of writing spaces (headings) are limited to 25 characters of (non-configurable) Geneva 12, not enough to say anything meaningful and hardly enough to serve even as a mnemonic; if you want any more you have to add a text space. This text space may be hidden or revealed, and you can reveal several text spaces simultaneously; but each sits as an inconveniently shaped (non-resizable) scrolling field below the heading, so no matter how much is in them you can only see about three of them open at once. As a result, getting a good look at your document as a genuine outline is difficult - Acta will hold the same information in less than half the screen space. Outline view feels like an afterthought, which in a sense (I am informed by Eastgate) it is: apparently the question of whether to include it at all, or, just the other way, to develop it fully, has been the subject of some debate. If the casting vote were mine, I'd give it for the latter; not being able to use Storyspace as a real outliner is a disappointment.

ADAM: Another historical note here. Storyspace has been supported by several companies over its lifetime. At one point, the company supporting it was interested in getting into the personal information manager/outliner/hyper-whatever niche of the market, which had just been created by HyperCard. I believe some of Storyspace's features, such as the outliner, stem from that period in its development. I personally have never been much of an outliner fan, so I just ignored that feature, although in theory I must agree with Matt that the outline capabilities should be stronger. If nothing else, an outline is merely an enforced textual format, no more or less valid than any other format that you could come up with in Storyspace's "storyspace" mode. But I'm getting ahead of Matt.

MATT: The other two views of your document are "chart" view, showing the hierarchy of writing spaces horizontally in tree format, and "storyspace" view, showing it as boxes beside or inside boxes. The associated text spaces in these two views, unlike outline view, open as genuine Mac windows that can be resized and moved. It is possible to open simultaneously the text spaces from more than one writing space, but this requires a little planning (you can't do it if a text space is already open), and the natural tendency is to move about the document doing one of two things: either opening a text space for reading and writing and then closing it again, or else adding, deleting, or rearranging writing spaces within the hierarchy. (Such rearrangement is very easy - just click-drag into a new position - and there are a few useful associated menu commands such as one might expect from an outlining program.) Further, an extremely useful feature in all three views lets you keep the document view in the left half of the screen and a region for a text space in the right half (called "anchoring windows"): here the text space for the writing space last touched is always automatically open without taking up any space in or on top of your view of the document, and so the two functions of manipulating writing spaces and working with text are combined.

A floating toolbar provides the tools you need to create and manipulate these writing spaces in each of the views. Tools include an arrow for selecting and moving writing spaces, a creator tool that creates a new writing space with a single click, a Zoom In/Out tool, and a navigational rosette (to take you up, down, left, right in the hierarchy). The remaining tools allow you create and navigate links, which we'll explain in a minute.

ADAM: If you wish, Storyspace can also find spaces by name and by text located in the associated text spaces, although I found the text searching to be somewhat flaky in the current version.

MATT: Yes, and finding a space by name is not so great either. In outline view, finding a space by name does select that space - but it doesn't change what you see in the window, so you may now have selected something off the screen, and you don't know where it is: but that's why you were trying to find the space by name in the first place! It's little user-interface things like this that make Storyspace unnecessarily frustrating.

ADAM: There are some other outline-related tools we should describe here. Working with text in small chunks has advantages, but sometimes you want to be able to see everything in a single text space rather than in a number of them. A Combine command and a Gather Command allow you to combine the text from the selected spaces or gather them all in a new writing space called "Gatherings." You can then move spaces in and out of "Gatherings" just as you would with any other space. Conversely, an Explode command will break up a large text space into many small text spaces by paragraphs, or, with the option key held down, as chunks based on any character or characters. The advanced Explode command can be quite useful for bringing things into Storyspace, because many external texts are carefully formatted. For instance, you could import a file containing email into Storyspace and explode it using the word "TO:" as the item delimiter. Even documents which don't have such rigid formats, like TidBITS issues, could be imported into Storyspace quite easily with a little help from Nisus's pattern matching and macro capabilities.

MATT: Interesting idea, Adam; and then you could use the linking properties of Storyspace to make a database out of it. So let's explain linking now.

Is What You Link

MATT: We've already said that the fundamental metaphor of spaces within spaces is nothing more than an outliner, and that Storyspace's three "views" are merely graphic manifestations of that fundamental metaphor. The fun that makes Storyspace more than just an outliner starts when you begin adding links to your document. A link is a metaphorical arrow from one writing space, or from specific text within it, to another writing space. To follow a link is called "navigating," and if you navigate a link from a space whose text is open, the text closes and the text space at the other end of the link opens. This happens very fast: it isn't like clicking a button or grouped text in HyperCard, where you have to wait around for the results. In essence this is the whole purpose of Storyspace: to cause whatever is at the other end of the link to appear instantly.

Now if you think about it carefully you will see that a link or collection of links is just a hierarchy by another name: item B may be subordinate to item A in the outline, but if a link leads from B to A, then, in terms of that link, A is subordinate to B. (I didn't notice this until Michael Joyce pointed it out to me over the phone one day.) The ability to add links, therefore, is effectively the ability to superimpose a gigantic number of simultaneous hierarchies (rearrangements) upon a collection of bits of information; navigation is a way to peruse a particular hierarchy by visiting its members in turn, or to change which hierarchy you are following.

ADAM: I'm primarily used to working in the most fluid and powerful of the views, the storyspace view. I think this is because the storyspace view most closely simulates the non-linear environment that I was trying to achieve for my senior honors thesis. I say "non-linear" because the links allow one to transcend the purely linear nature of an outliner or charting tool in which b comes after a and II always follows I. Without true three dimensional displays that can render depth as well as height and width, Storyspace must rely on the Finder metaphor of windows within windows, all connected by these virtual paths to achieve the illusion of non-linearity. It's a hard concept to visualize, but one that proves surprisingly easy to use.

MATT: I disagree with Adam here; I think he really just likes storyspace view because of the way windows open and close with such hypnotic speed (which I must admit is really neat). I almost never use the storyspace view, because I think it does the least to solve the problem of the two-dimensional screen that Adam just mentioned. In storyspace view, all you can see is one writing space (which acts as the program's main window) and the writing spaces just inside it (which are shown as a bunch of boxes in the main window). The only ways you can see to move are down and up the hierarchy: you can click a space and open it to zoom in, causing it to become the new main window, or you can click the go-away box and zoom out, allowing you to see the window you were just in, arrayed next to its siblings. Furthermore, you still can't have space titles long enough to be very helpful. I mostly use chart view, because, like storyspace view, when a text space appears it is a real Mac window, but, like outline view, you can see a lot of the document at a number of levels at once. However, in chart view you get even fewer characters of each space title - only about 9 characters! So I don't really like any of the views very much! This is another one of those user interface problems that bug me so much.

But back to navigation of links.

The way you cause yourself to navigate a link is to press the Navigate tool in the toolbar, which looks like a double-headed arrow. There are two main rules built into Storyspace to dictate what will happen when you do this; it is these rules that make navigation into a simple and powerful reflection of your intended organization.

ADAM: This rule is one that I didn't particularly take advantage of when I was writing my thesis, if only because I wanted the reader to continually be making involved choices. (It also helped that I didn't understand how to do this until it was too late.) However, this feature is terribly useful to authors who wish to create primary paths through the document, paths from which the readers can take alternate side trips whenever they desire (and are allowed by the author).

MATT: Exactly so. An example might be the difference between a beginner and an expert version of one document. You could set up the document so that under one set of conditions, hitting the Navigate button repeatedly would take the user through one set of "simple" texts, and under another set of conditions, it would show a larger set of "complex" texts - which could, however, include the simple texts, because if you come into a "simple" text along the "complex" path, you'll go out again along the "complex" path. Also, Adam, even though you didn't use the second method much, it's easy to imagine how one could combine the branching to a new path in Rule 1 with the following along the current path in Rule 2, to make quite an interesting document.

Actually there is a third navigation rule, but we'll discuss that later, when we talk about stand-alone documents created with Storyspace, since that is the only place where it applies.

ADAM: Three tools in the toolbar make creating links very easy. The simplest is the Note tool, which you use by selecting a word or two in a text space and then clicking on the Note icon, which looks like an asterisk. Storyspace promptly creates a new writing space called Notes (if one doesn't exist already), and in that a writing space using your words as the title. It then brings up the text space for you to type in and creates an untitled link from the original selected text into the new space, and another back to the original. The new writing space is a normal writing space and can be dragged out and arranged or left in the Notes writing space. This tool is good if all you want to do is provide a footnote (as the icon suggests) to a piece of text.

If you want to link already existing spaces, you will want to use the Link tool, which looks like an arrow. It is almost as easy. Select either a writing space or some text within a text space, click the Link tool (a path starts following your cursor at this point) and then click on the destination space. A box will pop up in the middle of the path for you to name the path, but you can just hit return if you don't wish to name that path.

The Link tool's main limitation is that you can't use it to link two spaces you don't see simultaneously. Storyspace is good about letting you open multiple views of a document, but you still may find that it just isn't easy for you to make both the start and the intended destination of a link appear on the screen at once. For that reason, Storyspace includes a Tunnel tool, which works a little differently from the standard tools. To use it, you select a space or some text, click the Link tool to get a path started, and then click on the Tunnel tool icon. The icon changes to indicate that Storyspace knows that a path can come out of the Tunnel. You can then navigate to anywhere in your document and pull the path out of the Tunnel by clicking on the Tunnel icon and then on the destination. The Tunnel tool doesn't forget about the source space, so if you wish to create multiple paths from that space, just keep pulling them out of the Tunnel tool, much as a magician pulls rabbits from a hat.

MATT: A powerful tool for building paths also permits you, within a dialog box, to select writing spaces meeting some criterion (or just manually, by name) and then do such things as generate a series of links through them all, or link each of them to another space or spaces. Since you can also assign keywords to a writing space, it would be a simple matter to use this feature to make paths that would permit you to visit all spaces marked by a given keyword (for example, in maintaining bibliographical notes or index cards).

Storyspace Tools

MATT: Creating links is easy, but charting and rearranging them is not so easy. Links are shown graphically only in storyspace view, and even there they are readily understandable only if just one link emanates from a space and both ends of the link are at the same level of the hierarchy. An option to print a list of links from within Storyspace was not working properly in the version I was sent, and there is no documented way to export link information to a text file. This means that if you want to do something to just one link out of many which stem from a particular writing space - say, delete it, or reroute it - you have quite a difficult task ahead of you.

The problem is alleviated, but not entirely solved, by special authoring tools that allow you to examine and follow the links coming into and out of any writing space. One of these, called the Roadmap, shows you, in a dialog box, the names of the spaces at the other end of the links coming into and going out of any given writing space. It also shows you the name of each link. But it doesn't show you what particular text within the writing space each link emanates from; the only way to find that out is to open the writing space and see what happens when you navigate. Another tool, called the Pathmap, shows the names of all named links (paths) coming into or emanating from a given space, and, on request, tells you the names of all spaces on that path. But it tells nothing about just how those spaces are linked. A third tool, called Change Path, allows you to rename or delete a path - that is to say, it lets you rename or delete all links that have a particular name. But this does not let you delete just one link along that path; you can only delete all links with that name, and furthermore there is no way to Undo or Cancel such a powerful deletion, which seems to me sheer insanity. (You can choose Undo from the Edit menu afterwards, but this restores the links without their name; a bug, I suspect.)

A fourth tool is called Change Guards (we explain below what a guard is). It shows you the links emanating from a selected writing space, and lets you change the name or guard of a link, or the destination of the link. This turns out to be the key to how you delete a particular link when it is difficult to directly select the one you want. You find the right link in the Change Guards dialog box; change its name to something unique, like "ZZZ"; then you close that dialog, open the Change Path dialog, and delete path "ZZZ"! Pretty roundabout if you ask me. Moreover, if you choose to change the destination of the link, what happens is not that the link now points to a different space; rather, the space at the end of the link is renamed! So you can see that while I appreciate these tools, I think each of them could use some more work.

Storyspace Readers

MATT: Thus far we've been describing things you do while Storyspace itself is up and running, and no doubt you've been thinking of uses in your own life to which its read/writable windows and configurable links between them might be put. But there is also another entire side to Storyspace. You can create a Storyspace document and present it as a stand-alone application to someone else without Storyspace itself by building a "reader" into it. Three different styles of reader are provided, including one that permits not only clicking but also answering yes/no and typing words as a means of responding to prompts; in two of them (the ones most likely to be used) all the user sees is one text space at a time, and as screens, not as moveable windows. In any reader, the text spaces and links are absolutely fixed: neither the user nor the application has any way to alter their content once the reader is constructed.

You might think that the result is rather a hamstrung version of Storyspace, but this is not so. Readers have a different purpose from Storyspace itself; and to reflect this, they have a feature that Storyspace does not (well, it does actually: you can always step temporarily into "reader" mode from within Storyspace). It is at this point that Storyspace's third rule of navigation comes into play. When you build a document in Storyspace, you can set up "guards" on any link; these guards take effect only from inside a reader, and what they do is to require that the user have performed certain actions before being permitted to navigate that link. This gives us the following rule:

ADAM: The guards are what give Storyspace's links their true power. The ability to link items is rare, certainly, but I don't know of any other program that gives you the same sort of conditional control over linking. HyperCard might be able to do it with a lot of work and careful scripting, and Owl International might have come out with a newer version of Guide that can do something like this, but otherwise Storyspace is unique in this respect.

MATT: I completely agree. When I first started playing with Storyspace I thought it would be the names of links (and Rule 2) that I would rely on most; but in building my Greek paradigm reader I find that everything depends upon a combination of guards with links from particular text. Using guards you can ask a question and have the next action depend upon whether the user types/clicks Y or N; you can teach a user a repertory of typed commands (Next, Prev, Subjunctive, Help) and respond to them. That's why yet another feature of the interface bothers me. When you create a link you are always given an opportunity to name the link; but sometimes, and only sometimes (the conditioning factor is hard to explain), you are given an opportunity to name the link and attach a guard, all in one dialog. I feel you should always be shown that dialog when you create a link; it's better to let the user turn down an option than to force her/him to take two actions (attaching the guard later on) when one will do.

An included utility also permits you to turn a Storyspace document into a HyperCard 2.0 stack, in which each card consists of a scrolling field showing the text of a text space (your character formatting is lost, alas), where selecting a word by click-dragging across it has the same effect that double-clicking would have had in a Storyspace reader. In essence, this provides HyperCard with the true hypertext abilities that it still otherwise lacks. Such a stack might need considerable modification to be made more useful than a Storyspace reader, though. Tools for importing text, and for exporting it with character formatting intact to MacWrite, are also included.

ADAM: The use of the HyperCard-based reader, called Storycard, is two-fold. First, as Matt says, you can use Storycard as a replacement for one of the three readers included with Storyspace. The resulting stack is much smaller (about half the size) than a Storyspace document that has the application code embedded in it, and it can easily have extra stuff added, though of course that requires a bit of work scripting in HyperTalk. More the idea, I suspect, is that you can very easily link the Storycard stack to other HyperCard stacks that might or might not have been created by Storycard. For example, you could create a stack (to use a hackneyed and tiresome example) with training information that uses snazzy graphics and pseudo-animation and all, and link into that with a Storycard-created technical description of what was happening. Alternately, you could hang out and wait for the truly System 7-savvy version of Storyspace that should have QuickTime capabilities. Unfortunately, the HyperCard version of a Storyspace document is much slower than any of the readers, so I suspect most people will stick to using the readers for distribution.

Storyspace Conclusion

ADAM: Storyspace does have some problems. As I said above, I would like the text entry environment, most notably the backspace key, to be more responsive. The sluggishness is due, Eastgate tells me, to Storyspace checking all its links each time you backspace to make sure none have been deleted. As a writing tool, Storyspace should have a snappy text entry environment. I also would like the Undo to apply to more actions. I somehow managed to find a key sequence relating to the Enter key that would clean up all of my writing spaces in the storyspace view. All fine and nice, but I didn't want to clean the window - I liked how I had them set up. That's the sort of action I'd like to be able to undo easily, although I must say that this too has been fixed in 1.12, although not through Undo, but with option-Clean Up Window, which isn't terribly obvious. [MATT: Sometimes Undo undoes things you never even did. If you accidentally create a writing space in such a way that it now has some of your old writing spaces inside it (which can be done with a single accidental click), selecting Undo will delete the new space and your old spaces as well!] Recently I've been discussing the pros and cons to adding support for infinite Undo capability to Storyspace, and assuming they can decide on an interface that will minimize user confusion, it might happen at some point. A few features, such as navigation along a path (though this one can be hard to pin down if you have a lot of guard fields) and searching for text inside text spaces don't always quite work. However, Eastgate (in the person of Mark Bernstein) took our feedback and bug warnings very seriously. There are a few more serious bugs (though fewer under System 7) that cause the program to crash on occasion, but a timed Autosave (5, 10, or 15 minutes) will save all but the last few words. Of course those last few words are the best you've ever written, but such is life.

The interface could also use a little cleaning up, a task which would be easily accomplished with a couple of hours and ResEdit. [MATT: We're talking here about things as simple as ellipse dots after some menu items that do not call up any dialog box, and lack of them after some that do.] That might clarify the dialog boxes as well, since Apple's human interface guidelines for control and item spacing in dialog boxes do make them more readable. The interim documentation I received could also use work, but Eastgate is continually improving and enhancing the manual and promises to send the final version to anyone who gets the interim version.

Overall, Storyspace is a unique program that provides some features which many programs should have, such as object linking. Like all unique programs, however, Storyspace must define new tools and paradigms for users. That effort succeeds on the whole because of the diligent efforts of the developers, but still needs work in certain areas, most notably in the advanced authoring tools that are contained in large and confusing dialog boxes, some with non-standard interface elements. Still, its concept and possibilities make Storyspace an interesting program to work with in many different situations. The continuing evolution of the interface and presentation can only increase its utility and attractiveness (and rating :-)) in the future.

MATT: I agree. My negative comments are not nitpicking; they are small things which, if changed, could make a huge difference and make this into a knockout program. Eastgate regularly sends me updates and responds positively to my suggestions, taking reports of real bugs very seriously indeed - though I find them less interested in the user-interface issues. You can build things with Storyspace that no other program I know of (in this price range) will let you build; you may find the interface pretty cranky along the way, but when you're done they work. Click on a text, type a word, and zap, the next screen is in your face. That's what Storyspace is really about.

Non-profit, non-commercial publications and Web sites may reprint or link to articles if full credit is given. Others please contact us. We do not guarantee accuracy of articles. Caveat lector. Publication, product, and company names may be registered trademarks of their companies. TidBITS ISSN 1090-7017.

Previous Issue | Search TidBITS | TidBITS Home Page | Next Issue