Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Build Status GitHub license

ixa-pipe-time is a multilingual Temporal processing tagger developed within the IXA pipes tools [].


  1. Overview of ixa-pipe-time
  1. Usage of ixa-pipe-time
  1. API via Maven Dependency
  2. Git installation


We provide competitive models based on robust local features and exploiting unlabeled data via clustering features. The clustering features are based on Brown, Clark (2003) and Word2Vec clustering. To avoid duplication of efforts, we use and contribute to the API provided by the Apache OpenNLP project with our own custom developed features for each of the three tasks.



ixa-pipe-time provides a runable jar with the following command-line basic functionalities:

  1. server: starts a TCP service loading the model and required resources.
  2. client: sends a NAF document to a running TCP server.
  3. tag: reads a NAF document containing wf elements and tags and normalizes temporal expressions.

Each of these functionalities are accessible by adding (server|client|tag) as a subcommand to ixa-pipe-time-${version}-exec.jar. Please read below and check the -help parameter:

java -jar ixa-pipe-time-${version}-exec.jar (tag|server|client) -help


If you are in hurry, just execute:

cat file.txt | java -jar ixa-pipe-tok-$version-exec.jar tok -l en | java -jar ixa-pipe-time-${version}-exec.jar tag -m model.bin

If you want to know more, please follow reading.

ixa-pipe-time reads NAF documents (with wf elements) via standard input and outputs NAF through standard output. The NAF format specification is here:


You can get the necessary input for ixa-pipe-time by piping ixa-pipe-tok as shown in the example:

There are several options to tag with ixa-pipe-time:

  • model: pass the model as a parameter.
  • language: pass the language as a parameter.
  • outputFormat: Output annotation in a format: timeml and NAF. It defaults to NAF.


cat file.txt | java -jar ixa-pipe-tok-$version-exec.jar tok -l en | java -jar ixa-pipe-time-${version}-exec.jar tag -m en-model-tempeval3.bin


We can start the TCP server as follows:

java -jar ixa-pipe-time-${version}-exec.jar server -l en --port 2060 -m en-model-tempeval3.bin

Once the server is running we can send NAF documents containing (at least) the WF layer like this:

 cat file.tok.naf | java -jar ixa-pipe-time-${version}-exec.jar client -p 2060


The easiest way to use ixa-pipe-time programatically is via Apache Maven. Add this dependency to your pom.xml:



The javadoc of the module is located here:


Module contents

The contents of the module are the following:

+ formatter.xml           Apache OpenNLP code formatter for Eclipse SDK
+ pom.xml                 maven pom file which deals with everything related to compilation and execution of the module
+ src/                    java source code of the module and required resources
+ Furthermore, the installation process, as described in the, will generate another directory:
target/                 it contains binary executable and other directories


Installing the ixa-pipe-time requires the following steps:

If you already have installed in your machine the Java 1.8+ and MAVEN 3, please go to step 3 directly. Otherwise, follow these steps:

1. Install JDK 1.8

If you do not install JDK 1.8+ in a default location, you will probably need to configure the PATH in .bashrc or .bash_profile:

export JAVA_HOME=/yourpath/local/java8
export PATH=${JAVA_HOME}/bin:${PATH}

If you use tcsh you will need to specify it in your .login as follows:

setenv JAVA_HOME /usr/java/java18
setenv PATH ${JAVA_HOME}/bin:${PATH}

If you re-login into your shell and run the command

java -version

You should now see that your JDK is 1.8.

2. Install MAVEN 3

Download MAVEN 3.3.9+ from

Now you need to configure the PATH. For Bash Shell:

export MAVEN_HOME=/home/ragerri/local/apache-maven-3.3.9
export PATH=${MAVEN_HOME}/bin:${PATH}

For tcsh shell:

setenv MAVEN3_HOME ~/local/apache-maven-3.3.9
setenv PATH ${MAVEN3}/bin:{PATH}

If you re-login into your shell and run the command

mvn -version

You should see reference to the MAVEN version you have just installed plus the JDK that is using.

3. Get module source code

If you must get the module source code from here do this:

git clone

4. Compile

Execute this command to compile ixa-pipe-time:

cd ixa-pipe-time
mvn clean package

This step will create a directory called target/ which contains various directories and files. Most importantly, there you will find the module executable:


This executable contains every dependency the module needs, so it is completely portable as long as you have a JVM 1.8 installed.

To install the module in the local maven repository, usually located in ~/.m2/, execute:

mvn clean install

Contact information

Rodrigo Agerri
University of the Basque Country (UPV/EHU)
E-20018 Donostia-San Sebastián


IXA pipes temporal processing tagger







No releases published


No packages published