# OpenTMS

openTMS is an acronym for Open Source Translation Management System.

## Goals

openTMS is a free and open-source translation memory system based entirely on open-source standards. The system relies heavily on XLIFF, Translation Memory eXchange (TMX), Termbase Exchange format (TBX) and accompanying standards to ensure a free and unencumbered exchange of translation and localization data. openTMS implements a standard translation workflow, but features a very fine-grained modularity that makes its adaptable to any conceivable workflow design.

## Software Architecture

The architecture of openTMS is mainly based on several models. These models describe the key components of openTMS. Each model handles a specific aspect of the translation process and its requirements. The models form a framework which guide the construction of language specific software tools.
The following core models are identified:
* Security model: This model describes the security aspects and requirements of OpenTMS. Other models use the security model to allow or restrict the access to OpenTMS specific functions. OpenTMS uses a security model which on the one side secures the communication channel and on the other side secures data (e.g. the value of elements in an xml file or the values in a property file).
* Document model: The document model describes the core documents used in OpenTMS. Basically this is based on XLIFF and TMX. The document model also could be seen as part of the data model but due to the importance of documents as one of the core output produced by the translation and localization process they are modeled separately.
* Process model: This model implements the functions (combined finally into applications – see application model) of the OpenTMS, e.g. a converter or a translation memory search.
* User model: This model realizes the user and its representation in the OpenTMS. The user model works in tight connection with the security. User does now only imply human users, but also other processes. User models have rights attached to them which in turn support the security model of OpenTMS.
* Data model: Basically this model implements the database side of OpenTMS. It uses a generalized database model, called data sources. Data sources are any kind of storage media for data, starting from plain text files towards SQL and other types of databases.
* GUI model: This model specifies editors and other functionality which requires a GUI. The GUI model is not further detailed in the architecture specification here. The GUI model should be defined in a separate document.
* Interface model: The model describes how to extend OpenTMS with new models. The Interface model is an abstract model and needs further inspection. An example of such an extension is the interface to CMS systems. Interface models are also of quite importance as they serve as the connection to other applications (e.g. Web servers, CMS systems) and in general to scripting languages like Perl, PHP etc.
* Application Model: This model realizes programs, which performs tasks like translation etc.
On top of those models the application model organises real applications (like the GUI model). openTMS uses a data source in the data model which organises the access to databases or any other kind of devices which allows to store (TM, terminology, even machine translation) data. Currently the following data sources are supported: TMX files, XLIFF file, SQL databases. Data sources have to implement a set of methods based on the data source interface.
openTMS can be accessed directly through Java or through an XML-RPC server.

## History

OpenTMS was initiated by the Forum Open Language Tools (FOLT) is a forum and working group of service providers in the field of translation and documentation. At first, it was just in the form of directives and white papers that covering the use of a F/OSS, open-standards-based, modular Translation Memory system. The basic objectives of FOLT are the support of standardised exchange formats, non-proprietary software and testing new translation technologies and methods amid the increasing globalization of knowledge. It is concerned with the overall workflow of multi-lingual documentation. From the generation of the original text to the production of texts in the target languages, highlighting any defects or lack of standards in the processes.
Later, Klemens Waldhor and Rainer Kemmler developed a cross-platform web-based system in Germany, which implemented OpenTMS in Java. This featured basic translation memory functions, including pre-translation, concordance search, and configuration of matching rates. Today, this system has been discontinued and is being integrated into the OpenTM2 as a translation memory plugin or server-based component. This new system, on the other hand, originated from the IBM Translation Manager and provides a full-featured, enterprise-level translation workbench environment for professional translators.

## Software Requirements

openTMS is implemented in Java. It requires Java >=1.5 (Linux, Mac OS X, Microsoft Windows). openTMS uses the EPL (Eclipse Public License) license.

## Releases

openTMS is hosted as a SourceForge project here: [openTMS on SourceForge http://sourceforge.net/projects/open-tms]
There are several downloads available:
* A VM for Sun VirtualBox is hosted here: [openTMS http://www.opentms.de/?q=node/29]. This download also contains a php based Web Graphical user interface.
* A Windows installer (containing the XML-RPC server) is hosted here: [openTMS Windows Installer http://www.heartsome.de/arayatest/opentmsserver.exe]
* A version integrated in the Araya XLIFF Editor can be found here: [Araya XLIFF Editor with openTMS plugin Windows Installer http://www.heartsome.de/en/freearaya.php]