Back when I was writing my doctoral dissertation (and we lived in holes in the ground and had to clean the roads with our tongues on the way to school), I had a big box full of large index cards, on each of which were the notes from one book or article I'd read. These were no ordinary index cards. They were high-tech! To help me navigate the complex of their mutual associations, the cards had little holes all around the edges. On each card, using a special hand punch, I would clip a notch from the edge of the card to a hole or holes corresponding to a "keyword" or idea dealt with in that book or article. To "search" the box for cards associated with a certain keyword, I slipped a knitting needle into that hole, and lifted and shook the cards. All cards that fell off the needle onto the desk (or floor) had that keyword. To do an AND search or an OR search, I just repeated the action with the fallen cards or the cards on the needle, respectively. I was the envy - or was it the laughing-stock? - of Cornell University's Olin Library.
Oh, how I wish I'd had Markus Guhe's SlipBox. (And a personal computer. And electricity.)
It was probably inevitable that I'd be attracted to an application like SlipBox. In the first place, it's a snippet keeper, a classification that always interests me and about which I've written extensively in TidBITS. Second, just like my own applications, it's a simple tool that the developer originally created for his own use and to meet his own needs, and then proceeded to give away for free.
SlipBox has two distinguishing features: simplicity and "scents." Let's start with the simplicity. A SlipBox document is, metaphorically, a box of index cards ("slips"). On each card you can put whatever you want. There's one big field for styled text, which can include pictures and even entire files (or links to files). There are also three non-styled fields for adding keywords, source, and type information. You can add a card, navigate between cards in order, and navigate "forward and back" among recently viewed cards as in a browser. There's also a Search tab, in which you can search on the keyword field, the source field, or the full text; a nice touch is that you can preview a found card's text right in the Search tab, or you can click a checkbox to "mark" it for later viewing in a separate read-only window. And that's about it. So far, SlipBox sounds rather like iData 2 - a flat-file free-form database, a digital shoebox (see "iData Pro, Go Cocoa," 09-Aug-04).
Now, however, we come to the "scents." Scents are SlipBox's distinguishing feature, and here's how they work. When you create and populate a card, you are expected to give it some keywords. These keywords need to have some consistency from card to card (if you use the keyword "Socrates" on one card you probably wouldn't want to spell it "Sokrates" on another). To help you with this, a drawer displays all existing keywords in alphabetical order; double-click one to add it to the list of this card's keywords. Or, just start typing in the keywords field, and the likeliest matching keyword will be auto-completed for you. In supplying these keywords, you are expected to free-associate, but, as SlipBox's online help charmingly advises, you should not "try to create an ontology of keywords" - that is SlipBox's job.
So what is an "ontology of keywords," and what's a scent? It's simple: a scent is the (possibly forking) path created by associations of keywords on the same card. The ontology is the complete collection of such paths.
For example, suppose one card has the keywords "line" and "bug" and another card has the keywords "formatting" and "bug". Then the following scents are created:
bug formatting line formatting bug line line bug formatting
That's a ridiculously simple example, of course, but it serves to show the idea. Just keep extrapolating. (There will be a scent leading from keyword A to keyword B if A and B appear on the same card, or if they each appear on different cards along with keyword C, or if A and C appear on one card, B and D appear on another, and both C and D appear on cards along with keyword E - and so on.) The idea is that you can use scents to trace associations at a distant remove, of which you would not otherwise have been aware.
The scents themselves appear in outline form in the Keyword Scent tab of your document. So, the top level of this outline is exactly the same as what appears in the keywords drawer - it's an alphabetical list of all keywords. But this is an outline, so you can click the triangle next to a keyword to see the keyword(s) associated with it (as in my diagram, above). If you double-click a keyword, you're taken to the Search tab and the search is performed, so now you're looking at a list of all cards containing that keyword.
What's really so delightfully compelling about this whole system is that it's stupid. SlipBox isn't doing any data mining or linguistic analysis, so you're spared the complexities of something like DEVONthink (see "DEVONthink Thinks, So You Don't Have To," 08-Mar-04), which attempts "intelligently" to divine the contents of your snippets and to associate them for you. SlipBox isn't intelligent at all; it's merely presenting, in outline form, the card-and-keyword pairings that you yourself have explicitly constructed by using them on the same card. And that is precisely what I would have needed when I was writing my dissertation. It would have done all that my index cards did, but it would have been even better, because in addition to doing searches, I might have learned something about how the ideas in my dissertation were connected.
SlipBox has a few additional bells and whistles. It can search a BibDesk database, it can use GraphViz to chart your keyword ontology, and you can search your SlipBox documents with Spotlight (though I happen to believe that this feature is incorrectly implemented). You can export to plain text or to RTFD, link from one index card to another, and create an index card from within another application, using Services. SlipBox suffers from one curious limitation: you can't delete a card; I believe this is because of the way each card is assigned a number incrementally at the time of creation. But you can move a card into the Trash, which takes it out of the searchable nexus, and even more important, you can move a card from the Trash back into the normal card world and then just reuse it, emptying its fields and giving it completely new content.
What SlipBox needs now is more users and some intelligent feedback for its developer. So if you're looking for a simple snippet keeper, please give SlipBox a try. SlipBox is a 1.3 MB download and requires Mac OS X 10.4 Tiger. It's a lot better than a box of index cards, a special hole punch, and a knitting needle. And did I mention it's free?