« | Home | »

Critex Wrap-up

Critex is a prototype of a critical text editor using graphical presentation similar to a word processor but producing semantic output.

Although the software is nowhere near ready for end users, the goal of my research was clearly successful: user-friendly editing of TEI XML is both possible and desirable when the structure of the text and the semantics of the apparatus are known in advance.

Tools used

I developed Critex as a quick-and-dirty prototype after being accepted to THATCamp. Development took late April and May, continuing into the first day of THATCamp.

In that time, I learned the basics of Objective C, the Cocoa application framework, (see the third edition ) and a Lisp dialect named Nu which can be used to develop Cocoa applications. These are wonderful tools with fantastic documentation that enabled me to begin with easy tasks right away and move into more advanced topics as I needed. For applications that only need to be deployed to a few computers, or where the audience can be assured of having Macs (such as a museum or other public installation), Cocoa provides an incredible set of tools that make it easy to quickly develop intuitive and feature-rich interfaces. As a dialect of Lisp, Nu allows programmers to write for the native Objective C runtime in an extremely abstract and powerful language.


Critex is currently able to format a basic learner’s edition of a text (with original text, translation, glosses, and notes), store the representation in objects that map to semantic units, and convert these objects both to their screen representation and to a static file format. Export to HTML or Latex would not be difficult to implement given a specific set of rules for how each semantic elements should be output.

The greatest challenge for the project remains generalization. In order to demonstrate a functioning program for THATCamp, I decided to hard-code Critex for one very specific kind of critical edition. If a large print project with a fixed set of semantic relationships and a single format of critical apparatus wanted to adopt Critex for its own needs, adjusting the code would be a relatively straightforward task.

I have decided that it would be pointless to continue to develop Critex in its current form without a specific project and set of users to tailor it for.

Many large-scale collaborative projects could benefit from using an application like Critex instead of facing the difficulties of extracting semantic information from Microsoft Word or teaching scholars to edit XML by hand.


The code for Critex is available via GitHub. Anyone can read the source, but to build the application from source you will need:

Going forward

Many of the conventions of print critical editions are based on the constraints of print; critical texts intended for digital publication must set new conventions based on the new constraints of the digital medium. Cutting-edge textual scholars will have to shape these conventions themselves, creating some of the tools they need as they go. While developing these tools, standard tool-development ideology ought to apply: small, orthogonal tools; plain text inputs, readable by humans or piped to other tools;

So textual scholars who are not contented with a single hard-coded set of apparatus and semantic items will have to find their own way. I am currently experimenting with the use of Emacs Org-mode to organize information with automatic cross-linking, tagging and metadata. Org-publish mode provides a simple method for exporting these files to html or latex. Org-mode would require a number of modifications to work appropriately with a plain text representation of critical apparatus and citations, and a user dedicated enough to consider learning Emacs and how to extend it.

A powerful, self-hosted, self-modifying platform is necessary for creating customized, organized, semantic textual scholarship. Although we should not fall back on reading our serialization model (XML) instead of an interface, neither can we provide an interface that takes away power and flexibility. Creating digital texts requires sharp tools and scholars well-trained to use them.

· Jul 7