TABARI Program and Source Code

TABARI -- Textual Analysis By Augmented Replacement Instructions -- is the open-source, C++ successor to the KEDS program. This release of the TABARI source code is fully functional for both the Linux and Macintosh operating systems; a somewhat less elegant and older version works with Windows.

Important Note: Our software and dictionary development efforts are now focused on the PETRARCH coder: see this page for details.


We have a 160-page manual for TABARI. The links below download a PDF file; this is formatted (via LaTeX) for double-sided printing on 8-1/2 x 11 inch paper. This manual integrates the older TABARI.changes.doc documentation and the KEDS manual, and also incorporates a number of commentaries on event coding, notably Joe Pull's Ode on Coding.

Download TABARI manual (version 0.8.4b3, August 2014 )

Macintosh OS-X

TABARI runs in the Terminal environment in the Macintosh OS-X operating system using the Unix "ncurses" library, so a single code base supports both OS-X and Linux -- in fact we now regularly re-compile the code that was developed on desktop Macs on assorted Unix servers and do our high-capacity coding there. Follow these instructions to install and run the program. Also following a P)arse, use a browser to open the file "TABARI.Parse.html" to get the much-requested color-coded parse display. With this interface, the program can also be easily run from a server.

Two changes in Version 0.7+ -- the detection of duplicate entries and the deletion of hyphens -- will cause some changes to be required in earlier dictionaries before they will work without generating error messages (or, in very rare cases, errors). In addition, some of the newer compiled code will not run on older Macs, though such machines have probably mostly disappeared by now. Versions 0.8, 0.7 and 0.6 are provided below.

Version 0.8

  • Compiled TABARI Machintosh OS-X Version 0.8.4B2 with manual and demonstration files (6 February 2014).
    Download for OS-X 6 and higher
    Download Version 0.8.3 for OS-X 5 and earlier

  • Download TABARI manual (version 0.8.4b3, August 2014)

  • Download TABARI "Makefile" release 0.8.4B2: This zipped directory contains the source code, manual, a Unix "makefile" and validation/demo files. The Makefile has been successfully compiled in both OS-X and various versions of Linux; it should work on any system with the gcc compiler. (6 February 2014).

  • Comments on Version 0.8.3/4b1: This version adds synonym sets, cleans up a bunch of compiler warnings, adds an option for converting isolated agents to actors, allows default codes for both source and target (which allows coding of sentences where there is no target), actually implements the COMMA function, improves the input error reporting, and has a considerably more robust validation file. Version 0.8.4 allows 2- and 4-digit years to be mixed when the SET: YYYY = TRUE option is used, and deactivated the M)odify/A)ctor option, which no longer worked due to the synsets, and adds several new command line options for use in scripts for automated updates,. This version recently coded 180-million events without crashing, so it seems fairly solid.

  • Issues with Ubuntu Linux [May-2013]: We've had multiple reports that some versions of Ubuntu Linux have serious difficulties installing the 'ncurses' library, which is necessary for TABARI to run, as this is the library it uses for the interface. It is apparently possible to get around this if you have a lot of experience with Ubuntu Linux, but so far we've not been told of a systematic work-around (if you've got one, please let us know!). This seems to only affect Ubuntu and not, for example, Red Hat.

    later: well, we person got the system to work by changing the final line of the makefile to

    $(GCC) -o TABARI.0.8.3b1 -g TABARI.o input.o memory.o utilities.o codes.o output.o coder.o parser.o\ process.o interface.o modify.o xmlinput.o -lncurses

    (this shifts the `-lncurses' from the beginning of the command to the end). We've successfully compiled this on Ubuntu 12.04 in Linode, and that revised version is in the current Makefile for 0.8.4b2

    At the moment our priority is getting the Python-based based successor to TABARI running, and if this is successful, that should be able to run on any system, including Windows. We are hoping that will be available in a reasonably operational form by early March 2014, prior to the International Studies Association meetings.

Version 0.7

  • Download TABARI Machintosh OS-X Version 0.7.6B1: compiled version for OS-X 6 and higher, with demonstration files (15 November 2011).

  • Download TABARI Machintosh OS-X Version 0.7.6B1: compiled version for OS-X versions prior to 6 with demonstration files (10 January 2012).

  • Download TABARI manual (version 0.7.6b1, November 2011)

  • Download TABARI "Makefile" release 0.7.7B1: This zipped directory contains the source code, manual, a Unix "makefile" and validation/demo files. The Makefile has been successfully compiled in both OS-X and various versions of Linux; it should work on any system with the gcc compiler. (12 January 2012).

  • Comments on Version 0.7.6b1: This version corrected a couple more 1-in-x-million crashes, improved the error reporting, and added substantial new functionality, including multiple actor dictionaries, agents, regular noun and verb endings, and system calls in the .project file. It also removed some older .options—VALID and COMMA —which in fact had never actually been implemented; if these commands are in an .options file, they will now cause an error. This version has been used in high-volume (N > 100-million records) coding on a cluster computer, as well as in conventional applications. Version 0.7.7 made a large number of generally cosmetic changes that eliminated compiler warnings.

  • Download TABARI Machintosh OS-X Version 0.7.3B3: compiled version and demonstration files (1 July 2009). This is an earlier dual-processor file that will work on both PPC and Intel processors, though unless you have really old hardware, you should be using the more recent version.


In 2008, Vladimir Petrov produced a basic port of the 0.6 code for Windows -- this runs in a scrolling terminal rather than using the 'ncurses' system so it doesn't look very pretty, but the coding speed is very fast -- in some initial experiments, about twice that of the Mac/Linux system.

Download TABARI Windows Version 0.6 (.zip file). This contains all of the files needs to work with the program in the MS Visual Studio environment. (16 September 2008)

Status of Windows version[s]

The ports by Vladimir Petrov and earlier by Dale Thomas definitely will give you basic TABARI functionality, and are okay if you absolutely positively have to work with Windows. However, the bottom line is that we've never found anyone who was interested in maintaining a Windows version of the program [curious, that...], and since we are a Unix shop, we haven't made the investment ourselves. Consequently, if you are in a Windows environment but have some flexibility, probably the best approach would be to either

  • Get a Linux system hosted on the cloud: we're currently using Linode for a grand total of $20/month, and this is running the entire Phoenix system. At present [early 2014] this is far and away the most economical route.
  • Purchase a Mac Mini for around $600 [or less: I got one at the Penn State surplus story for $200; a monitor cost me another $35];
  • Purchase a less expensive system with Linux already installed, if you can find one. Dell once sold such items [June 2008] for around $260 but they appear to have again been assimilated to the Borg;
  • Download and install [for free] Ubuntu Linux (or any other variant of Linux) on your existing Windows system;
  • Download and install the [free] Cygwin system for running Linux applications under Windows.
  • Contact Lockheed-Martin and see if they would be willing to license their JABARI program, a propriety implementation of TABARI in Java that works on Windows.
First two options will probably take less time; the second two less money; the last gives a professional implementation but LMCO may or may not be interested.

Again, if someone would like to volunteer to fully convert the current version to Windows -- key additional work needed is to get functionality equivalent to that provided by 'ncurses' (or better, like a Windows GUI), the source code, as always, is available.

LAST UPDATED: 15 August 2013