For programmers . . .

about interfacing or developing with The Literary Machine

Possible new features:

  • data conversion to and from TreePad and similar outlining programs
  • data output in some standard ebook format
  • integration with Office tools like Outlook/Exchange
  • special features for fiction writers
  • special features for students and researchers

Development tasks of immediate interest:

The Background

I wrote The Literary Machine with Delphi 1.0 in 1997, after having had the ideas in mind for many years. The Windows interface and programming tools at this time automatically solved many problems I had struggled with during earlier attempts. I was quite satisfied. In the summer of 2000 I converted to Delphi 5 and added new functionality. This version was developed further in a number of steps during the period from September 2001 to March 2002. The final version is LM 2000, 1.130B

Together with Kathy Krajco at I launched a new project The Literary Machine Professional Edition.

It, too, is a considerable developmental step forward, while preserving full forward compatibility (unbroken since 1997). LM Pro is not free. LM 2000 remains as the freeware and evaluation version of The Literary Machine.

One reason for going beyond the freeware scene is that I am looking for quality and serious intentions from both users and possible cooperation partners. This developmental strategy change is the main reason for changes in LM presentation during 2002.

I make this program for my own use. I do this work because I like doing things I like to do. Yet I welcome partners and cooperation, if there is enough similar thinking. For me this is a project and a development above all else.

The Database

The database is an unsophisticated DOS-Paradox database in separate files.The "BDE" of Borland. It needs no configuring, since the application assumes that the database is located in the db\ directory.

The LM application opens the data files with exclusive access rights in many cases (using the traditional RAD components like TDBGrid). Therefore, it is not be possible to interface LM with other applications while it is up and running. To some extent I have used techniques like periodically testing whether some particular file is present to perform specific external interfacing operations.

I introduced an XML export/import feature in May 2001. It should be a main alternative for LM interfacing. It works in the background, regulated by timers.

With LM not up and running, you are of course free to apply any application to the LM database or to design your own compatibility devices.

(The database's structure is largely The Literary Machine's raison d'être. So, it will probably not be easily changed.)

The ITEM.db/.mb file contains a blob field "Animation", that was used for mind-tree diagrams in version 2 and for pictures in the 3.5 version and onwards. It was originally added for advanced "any binary multimedia" purposes. This is of course a central line for Literary Machine development.

The Outlook

As you might guess, I would gladly take part in open-domain development. But I see few signs of it: this area is peripheral in many respects, and agreement about what to do is minimal.

I could take part in commercial development, so long as the original application remains available to those already using it and open to others who can content themselves with the classic tool.

I also welcome similar, competing applications, since they benefit all.

Currently, the main thrust is in building a user base that contributes good ideas for further development.

BTW, I use it myself. The #1 fact for me.

Gunnar Sommestad


Q & A 

(2000-11-03) I get inquiries concerning language in LM and I have published some technical notes. However, a more straightforward installation routine is needed. It would be great if somebody made a downloadable program for it it could be my first link on a "Utility Page".

(2000-12-19) I am asked, "How can I import data into the LM database". Here follows a few notes about what an import application should do.

The Literary Machine uses Paradox tables, located in the LM.exe - directory.

In order to place text items in the data base, you must update the item keywords table (ITEMKEYS.db), the "concepts" table (DICT.db) and the dictionary table (WORD.db), but in the reverse order.

The database key values are in many cases arbitrary float numbers. Other float numbers are used for (time-stamp) sorting, however it is not essential what their original update values are.

Below I mark primary keys with bold font-type;  F for float, L for integer and A for string type.

1) WORD.db

Add WNo = L-1, Word = A

2) DICT.db

Add  C = F-1,  WNo = L-1

3) ITEM.db

Add IT = F-2, TX =  (text)


Add IT = F-2,  Order = 1, ITC = F-1, WNo = L-1

This simple scheme will manage to input text "items" with a mandatory 1 keyword attached,
which in its turn connects to a single-word "concept".