Conman Laboratories

Better living through software …

mod_litbook

Sean Conner

mod_litbook is an experiment in web techonology—an experiment in document reference and retrieval is at the core of this module. Although the initial “Proof of Concept” is the King James Bible, the concept has a broader range of applications than just displaying Bible stories.

I'm not sure why this particular idea hit when it did, nor why I choose The Bible as the “Proof of Concept” (other than it was the most readily available hiarchial structured document available in machine readable format from Project Gutenberg) but the nucleus of the idea came from three areas of hypertext/WWW research.

One idea came from Jakob Nielson's work on user interfaces for the web. The primary article that relates to mod_litbook is using the URL as UI; in that the URL should aid in the navigation of the website. The primay point of Jakob Nielson's article is that the URL should help visualize the structure of the website but I mis-remembered the article in thinking that the URL should also provide an easy way to retrieve the information requested.

Another idea came from Ted Nelson's work on Xanadu, the ultimate in hypertext vaporware (30 years and still no product). But it does have some interesting ideas, namely in tumblers. The concept of each node including all the nodes addressed below it is a powerful concept and one that I started to explore just prior to writing mod_litbook (in addition to some work a few years ago in file system design that is still in the design stage). In playing around with the concept I found that within The Bible, there are frequent references to other passages, and that the references looked similar to the tumblers concept proposed by Ted Nelson. And upon investigation, none of the other online Bible sites I found allowed one to request an arbitrary portion of The Bible. Sure, you could get a book, or a chapter or a verse, but you couldn't get just the portion of Moses at Mount Sinai. At least, not without a lot of work.

The third idea came from Project Zope, an object publishing web server, where the URL doesn't reference a static document but instead names an object to be displayed. The fact that most website URLs point to files (or templates) is a holdover from the early days of the web and the filespace you see in a URL doesn't necessarily have to map to a physical file system, or a file at all.

Now, out of this mess of ideas came mod_litbook, an Apache module that combines an addressing structure similar to tumblers hidden behind an object publishing module using easy-to-remember URLs to retrieve just the portion of the document you want (in this case, using a conventional bible notation munged into a URL,).

Why a module? Because handling all this behing a CGI program would have made the result less elegant and primarily, the server I'm using for the demo system isn't powerful enough to handle an excessive CGI overhead that this may generate. And because I could.

If you do use this product, or just have comments or questions about, just drop me a line. Thanks.