Installing Kahina for TRALE


To obtain, build and run Kahina for TRALE, you need:

Installing SICStus Prolog with Jasper

TRALE requires SICStus Prolog, so you need to buy a license and install it if you have not done so already. It supports SICStus Prolog 3 (SP3) and, experimentally, SICStus Prolog 4 (SP4).

Kahina for TRALE also requires that the existing installation of SICStus Prolog include the Prolog-Java interface Jasper, set up with a version 6 or higher Java Development Kit (JDK).

You may have to modify your LD_LIBRARY_PATH before installation to ensure SICStus Prolog can find Under Ubuntu 13.04, I added this line to my ~/.bashrc:

export LD_LIBRARY_PATH=/usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/client:$LD_LIBRARY_PATH

The successful installation then looked like this (a successful run of the SP4 installation script looks similar):

ke@apis:~/install/sp-3.12.11-x86-linux-glibc2.5$ ./InstallSICStus --all-questions
		      SICStus Prolog Release 3
	       Binary Distribution Installation Script

This script will install SICStus Prolog 3.12.11 on your computer. Before
proceeding, make sure that you have downloaded the correct
distribution and that you have your licensing information at hand, as
you will be prompted for site-name, license code, and expiration date
during the installation.

It is also recommended that you read the Release Notes before installing
SICStus Prolog. The Release Notes can be found online at

During the installation, a cache-file (install.cache) will be created
which will store your answers to be used as defaults if you need to
run the installation script again. You may safely delete this file if
you wish.

The installation script will ask a couple of questions regarding the
installation. Most of these questions have a default alternative in
square brackets ([]). Pressing return will give you the default
answer. If you do not understand the question, the default answer will
usually do what you want.

Note: You must have Perl installed and available in your PATH. Perl is
      available for free from Typically Perl is already

Report bugs and other problems to SICStus Support using

Install SICStus Prolog 3.12.11 [yes] ? 

Checking installation cache... install.cache

Where do you want to install SICStus [/home/ke] ? 

Creating uninstall script...
Decrypt key [xxxxxxxxxxxx] ? 

You should now enter your site-name, license-code, and expiration date.

Sitename [Kilian Personal] ? 
License-code [xxxx-xxxx-xxxx-xxxx-xxxx] ? 
Expiration date [permanent] ? 
Install the pre-built binaries (chose "no" for full installation, or "help") [no] ? 

The script will now ask you for some information about external
software packages. If you leave the answers blank, the script will try
to determine the information automatically.

Do you wish to install the Tcl/Tk interface (library(tcltk)) [no] ? 

Do you wish to install Jasper (the Java interface) [yes] ? 
For the Java interface you should now specify the 'installation path' of
the Java installation. E.g. if the path to the java compiler is
/usr/local/jdk/bin/javac, the 'installation path' is probably /usr/local/jdk.
Note that this is somewhat platform dependent. In case of problems you should
consult the installation instructions for your Java installation to find out
what the 'installation path' is.
Specify JDK installation path, e.g., /usr/jdk1.2.2 (or leave blank) [/usr/jdk1.2.2] ? /usr/lib/jvm/java-7-openjdk-i386

(This information is displayed regardless of the JDK installation path specified.)
NOTE: About JDK 1.3.X and later

Read *important* compatibility information in the release notes
in Section "Supported Java Versions".

NOTE: About Java location.

By default the location of Java is embedded in the SICStus development
system executable (sicstus) or the jasper foreign resource. This makes
it possible for library(jasper) to find the Java libraries (e.g., without setting LD_LIBRARY_PATH. See the release

Embed JDK paths for library(jasper) (recommended) [yes] ? 

Do you wish to install the Berkeley DB module (library(bdb)).  [no] ? 
Specify the path to your C compiler (or leave blank) ? 
Specify the path to your C++ compiler (or leave blank) ? 

The installation will proceed without further user interaction,
unless there are errors.

Configuring system. This may take a few minutes...  done.
Installation package was built for Glibc 2.5.
This systems uses Glibc 2.17.
SICStus is built and distributed for several versions of Glibc.
If there is a version of the SICStus installation package
corresponding to the version of Glibc installed on your machine,
you should use that installation package.
Attempt an installation anyway [no] ? yes
Continuing despite wrong Glibc version...

Decrypting sicstus.tar.compress.crypt... 
Unpacking sicstus.tar... (please wait) ok.

Copying files to /home/ke. This may take a few minutes...  Installing documentation into /home/ke/lib/sicstus-3.12.11

Creating development system symlinks...

Creating development system binary...

Creating copies of SICStus run-time for multiple run-time support

Creating spdet and spxref...

Creating save-dumps...

Compiling license file...

Performing final link step for the Jasper module...
Linking ok.
Linking jasper.s.o... ok.
Creating ok.

Completing uninstall info...

Cleaning up... 

Installation complete.

The SICStus development system has been installed as:

The documentation can be accessed locally by opening the URL:


or on the SICStus website:

Uninstall by running /home/ke/install/sp-3.12.11-x86-linux-glibc2.5/UnInstallSICStus

Obtaining TRALE

Current versions of TRALE contain a new version of TRALE's source-level debugger, called trale-sld, that uses Kahina as a GUI. Check out the latest version of TRALE from the Subversion repository. To do so, open a shell, go to the directory under which you want your TRALE installation to live, and then run:

svn checkout svn+ssh:// trale

This will create a directory called trale and checkout TRALE into it.

Note: As of this writing, a bug prevents trale-sld from working when SICStus Prolog 3 is used. You may try to use an older TRALE revision by passing the option -r 260 to the svn checkout command to work around this for the moment.

Obtaining Kahina

Now run:

cd trale
git clone

This will create a directory kahina inside the trale directory.

Building Kahina

After checking out TRALE, go into the trale directory and run:

make kahina-build

The first time, this will fail and instruct you to create a file in the kahina subdirectory, pointing to the jasper.jar file of your SICStus Prolog installation. Follow the instructions, then just re-run the command.

Updating Kahina to a new version

Whenever a new version of Kahina is released, you can obtain it from the trale/kahina directory like this:

git pull

Then, from the trale directory, run:

make kahina-build

Using TRALE with Kahina

You start TRALE from the command-line by running the trale script found in the trale directory. Before running it, make sure that the environment variable TRALE_HOME is either not set or set to the path of the trale directory.

First steps

After starting TRALE using trale, activate the debugger by setting the debugger flag to on:


You can try if it works by using the predicates dcompile_gram/1 to compile a TRALE grammar and drec/1 to parse a sentence, or (experimentally) dquery/1 to resolve a query in the ALE programming language. Each of these commands should bring up the Kahina GUI (you can read more about their function and usage in the TRALE documentation). Alternatively, you can just ask the following query:


This will start the GUI but make the Prolog prompt inaccessible, in return giving you the possibility to start compilation processes and parsing via the Parse menu in the GUI. Closing the GUI will return you to the Prolog prompt. You can do this at any time while debugging, resulting in the abortion of the current compilation/parsing/query resolution process.

Using TRALE's XEmacs-based debugger

TRALE's Kahina-based source-level debugger is the successor of an older XEmacs-based source-level debugger, which is still available by setting the TRALE_DEBUGGER environment variable to xemacs before starting TRALE, like so:

export TRALE_DEBUGGER=xemacs
Last modified 19 months ago Last modified on Aug 4, 2017, 11:56:51 PM