Last week, I had an epiphany of sorts. I was working on creating a document at work. To get to the finished product, I had to refer to and poach from several other documents. I had to edit several sections, and to bounce back and forth between sections to ensure that I was maintaining consistency of subject matter and voice. I needed to include several images, but I wasn’t sure until near completion exactly what order I wanted to use them. The beginning of the document needed a chunk of boilerplate text modified to fit current needs. Finally, there was some new text that needed to be created, and linked to existing documents in a meaningful way.
This is in most respects a typical work project for me, and for any technical writer. And Microsoft Word is uniquely unsuited for this sort of work. As is every other word processing application. What I am doing is not processing words. I am processing ideas, or at least concepts. Certainly, at a low level, there is a lot of word processing going on, but it is not the primary activity. I could just as easily use notepad for the word processing.
My frustration with the tools at hand led me to think. (Some of these ideas go back a ways, but the totality of the thing hit me like a bat to the head.) One can imagine a word processing spectrum running from notepad to pagemaker. At the one end, you find a rudimentary text entry application with minimal editing functionality. It exists merely to accept words, fiddle with them in a limited way and save them to a file. At the other end are desktop publishing applications such as Adobe Pagemaker. Programs such as this are awkward at best for purposes of creating text, but have truly remarkable abilities to format, arrange and prettify already extant text. They serve to prepare text for publishing.
Other programs exist on or near the spectrum between these two endpoints. UNIX text editors like vi and emacs take the notepad concept and take it to its logical conclusion. Their purpose is not merely text entry, but to control text files. Their search and editing capabilities are very powerful, but only for manipulating pure text – not for any sort of formatting. However, they have been specialized for use as coding tools. Word and other high-end word processors improve upon the text manipulation tools of notepad, but only slightly. What they add is a significant portion of the formatting powers of the desktop publishing software in an easy to use form. You can see what a letter will look like in Word, and print it. Word offers nifty templates for letters and other forms of business correspondence. It is designed for use by secretaries, though it has been adopted by nearly everyone else.
All of these applications either manipulate text, or its appearance, or some combination of the two. This is all very useful, but does not address the problems involved in creating any piece of writing larger than a letter or memo. The process of authoring is larger than the either the manipulation of text, or its appearance. When an author, screenwriter, technical editor, journalist, pundit or anyone writing anything more involved than a memo begins to write, they very rarely dive in and create a complete piece of work in one sitting. Often there is research. Notes about characters. References and citations. Background notes, or drafts.
All of this either exists in one large and unwieldy word doc; or in many, many collectively unwieldy smaller docs. In the former case, all the information is crammed together, and the larger the doc, the more complicated the task of quickly locating the desired information. Scrolling through tens or hundreds of pages of notes to find one thing is time consuming. The search capabilities of word are entirely inadequate to the task. If instead the author has broken his information into many smaller docs, the ease of use depends on how cleverly he has named and organized the documents. Any failure of attention may lead to crucial information being in a misleadingly named doc, or filed in the wrong place, or put in the wrong doc. This leads to exceedingly tedious opening and closing of word docs to find that little tidbit.
Neither situation is conducive to effective research or writing. Microsoft OneNote and a couple writing tools address some of these needs. But while OneNote can organize notes and information reasonably well, it does not make it easy to write. Software like the Writer’s Dreamkit help you keep track of certain information like characters and timelines, but are still poor interfaces for writing. And the help they provide in organization are strictly limited to specific types of writing.
What is needed is authoring software. Software that allows easy and intuitive organization of information as it is entered and easy and intuitive access to that information during the writing process. Software that provides a comfortable and powerful but not unwieldy text-entering interface. Software that allows searching your information and the web right from the text, with minimal interruption in the flow of writing. Software that does what you want but doesn’t get in the way. Software that I’d call the Octopus. Imagine a clever, friendly octopus logo.
This software would not provide full formatting and desktop publishing functionality. But it would be much more than a mere text entry device.
The primary enhancement would be a meta-interface. Imagine an octopus stretched around an invisible globe. Each arm would be a directory tree. On the arms, documents would hang like suckers. Click and grab the globe to spin the octopus in any direction. Docs near the center of the screen would be larger than those farther away – and the larger the doc, the more information in it would be displayed in this interface. Running the mouse over a doc would cause it to pop up to a larger size, so you can see what’s in it. Clicking on a text nugget would bring it to the front semi-permanently – allowing easy movement between several active windows. Text could be drag-dropped from window to window.
The octopus interface would allow easy, intuitive management of information. Assume that you’re writing a screenplay. You fire up the software, and create a new project – a new octopus. It starts as a simple node in the middle of the screen. What do you want to do first? Perhaps some notes about the characters that will be in your movie. You right click on the central node, and select create new arm. A short arm will appear to the side of the central node. You name it “characters.” You right click on that arm, select new nugget. A text window, full sized, appears. Here you enter background information for your hero, Bob. But what about Alice? Right click and select spawn new nugget. Another window appears where you can enter information about Alice. If you minimize the text windows, you will see two nuggets on the arm that you created. But what about locations? Right click on the central node and create a new arm, and a new nugget. Make some notes about where you want to film, and what sorts of sets will be needed. Another arm for more general notes. But hey, you realize, this is all background. Create a new arm, call it background, and simply detach the other two arms and reattach them to “background.” Now, you have a branching arm.
Now that you’ve sorted that out, you need to start writing. A new arm, script. A new nugget, scene one. Start typing. Move on to scene two by spawning a new nugget. Or you’re not sure what’s going to happen in scene two, but you do know how it all turns out. Don’t worry, you can always add a new nugget between scene one and scene three.
Wait! You’ve got a complicated plot, and you need to keep track of where everyone is at all times. Spawn a new arm off of screenplay, timeline. Write your timeline – but whenever you get to an event mentioned in your timeline, you can create a direct, internal link from that point in the screenplay to that entry in the timeline. If you make alterations in the timeline, you can easily track down where you need to make changes in the screenplay. Later, as you are considering casting, images of potential actors could be added in a string of new nuggets, or embedded in the character arm.
Or say you’re a historian, conducting research for a new book. Information you gather from your reading can be entered and automatically organized as you collect it. Bibliographic information can be recorded as individual nuggets on a reference arm – and linked when that source is cited in the text. Auto footnotes. Say your history is of the Second World War, and you’re discussing events surrounding the Battle of the Bulge. What was going on in the Pacific theatre? If you’ve organized your information as you entered it, you can go to the octopus navigator and skim over to pacific theatre arm, and quickly locate by context the information you need, copy some of it, move back to your active window, and continue without the hassle of a tedious search.
Better, say you can’t remember where that one tidbit is. Unlike word, the Octopus would have powerful search capabilities. Grep for terms, and a search window will pop up displaying results ranked by relevance. Each will link to that location in the appropriate nugget.
As your project becomes more complex, you can navigate the interface by dragging the octopus around. Bring the part you wish to focus on to the front, and those parts will become bigger. Move out a level, and you can navigate through all of your projects the same way. Import your old documents into the system automatically, and easily arrange them into sensible structures by clicking and dragging one arm to another, or one doc into another tree. The Octopus manages your creation. As you create, you create your own intuitive organizational structure. Octopus’ interface allows you to easily navigate your information.
The other major improvement is in writing. Word and other word processors have minimal editing and searching capabilities. And most of what they have is focused on editing format, and simple search and replace. Why not include all the powerful text editing capabilities of vi or emacs? They use basically the same concepts, but different commands to do them. Include both. For all the wonders of the GUI interface in general, when you’re typing you need two hands. Unless you happen to be a motie, you don’t have a third hand available to use a mouse. Building a comprehensive set of keystroke commands in allow you to keep typing.
The most powerful writing tools ever developed are the dictionary, the thesaurus and Google. Word 2003 finally made one of these directly available – right click on a word, and synonyms appear write there in the context menu. (I didn’t know about this until I actually looked, after I got the idea myself. At least they got something right.) But all of this should be available. Right click on a word, and the dictionary definition should appear in the context menu. Along with synonyms, antonyms, related words, and so on. Select a word or phrase, and right click to dump that into Google search as a search string. Dump the results into a new text nugget for later consideration. Build in writing and research tools. Templates for references and citations. Writer’s thesauri. Quotation libraries.
Right from the interface, you should be able to search the software’s onboard libraries of dictionary and thesaurus entries, quotes, grammar rules, and so on. You should also be able to search all of the text nuggets in your current project, and all your other projects. The search engine should be more powerful than the basic search in Word – something more along the lines of the grep tool from the UNIX world. Full on regular expression searching, once you get the hang of it, is very powerful. And finally, you should be able to search the web. Google is currently the best tool for that, and most people don’t use it to it’s full capacity. You could embed some of the more abstruse search capabilities of Google directly into Octopus’ search tool.
Once you have finished your creation, simply select the nuggets that you wish to include in your final draft. Octopus will convert those into a single file readable by Word, WordPerfect, PageMaker or any other software so that you can add the formatting before sending it off. That’s what those applications are good for – not for the process of creation.
Octopus thus has two key advantages over any other word processing application. First, it manages the totality of information connected with your project. All of the information, text, data that you have gathered is almost automatically organized in an easy to use structure. And Octopus’ interface allows you to quickly, intuitively and easily navigate that structure to locate the information you need, when you need it without interrupting the creative process.
Second, it offers powerful tools to manipulate and search the text as you create it. The tools of UNIX text editors like vi or emacs are available as keystroke commands. Regular expression searches of your data, and Google-style searches on the internet are available with a single click. Links between different nuggets, and the information within them are easily created with a single click and point. Built in dictionaries and thesauri display definitions and synonyms with a single click. You don’t have to leave what you’re doing to find the information you need.
I write professionally, creating software manuals, process documentation and so on for IT projects. On the side, I write screenplays, short stories, and novels that are getting almost readable. I also write non-fiction history. Every one of these projects would be made easier with software on these lines. Technical writers, authors, scholars, historians, scientists, journalists, and screenwriters could all use software like this. I described my idea to a developer friend of mine, and he said it would be very useful in organizing code and development projects. Anytime you need to not merely write, but keep track of what you write, the Octopus would be invaluable.
If any of you are developers (Ross…) I will work with you to develop this. Productivity software doesn’t have the same kind of overhead as games. No graphics except for making the UI slick. (Very slick.) Mostly, it’s just code. It could be done, and a lot of the tools are already out there, they just haven’t been assembled. If it were done right, this could be a hit. Because it would be useful, and cool.