Tag Archives: Ocelot

A Prime Year

So 2017! Let’s hope you turn out to be a good one.

I guess traditionally I should be using this post to make my predictions about the industry and technologies I’m engaged in to demonstrate thought leadership. The truth is I think I’m going to be arrogant and let the industry catch up a bit first with all of the innovations I have spent the last two years working on. Sure, I have forward looking plans based on what I think will be prevalent trends and requirements in the year ahead but sometimes you have to live in the moment and execute on what is imminent.

My team will be busy through Q1 with the migration of a large part of our operations to Plunet. Then we have the ramping up of a major new account that we were awarded last year.

Development has re-started slowly it has to be said with some small tasks that were started before Christmas taking an annoyingly long time to get finished. Or maybe I’m getting increasingly impatient.

Q1 will almost certainly see an update to Ocelot. We are trying to simplify and expand the configuration of plug-ins and the user interface so that you launch with windows and tools in a state ready to go.

I’ve resumed the Angular 2 and F# learning I started last year. Using Angular I’m writing a web-based string translation editor component which I hope will be simple in operation and blisteringly fast. With F# I started by writing some basic NLP utilities such as string tokenization and n-gram generation. I would like to try and re-write some of my Review Sentinel machine learning algorithms but I’d be surprised if I get all of that done this year.

So I’m going to finish this post by wishing you all and your families a safe, enjoyable, productive, and happy year.

Ocelot 2.2 Released

Ocelot 2.2 is now available for download. This release focuses on improving the editing experience generally with support for drag-and-drop and also in relation to inline tags: there is now a small context menu which helps replace deleted inline tags. Gratitude and kudos to Aaron Madlon-Kay who did a great job on these enhancements.


Ocelot 2.1

We released Ocelot 2.1 today at http://bit.ly/296H0J4. It includes bidirectional language support, an awesome new totally configurable ITS LQI grid with intuitive hot keys, saving of Notes in XLIFF 1.2 and search and replace.

Ocelot 2.0

I am pleased and excited to announce the release of Ocelot 2.0 available as source code and binaries. Special thanks go to Kevin Lew, Marta Borriello and Chase Tingley who were the main engineers of this release.

The new features are:

  1. Support for XLIFF 2.0 Core;
  2. Translation Memory and Concordance lookup;
  3. Save XLIFF document as TMX;
  4. Language Quality Issue Grid;
  5. Set the fonts used for source and target content;
  6. Support for notes in XLIFF 2.0
  7. Serialization of Original Target in XLIFF 2.0 using the Change Tracking Module.



Ocelot now supports XLIFF 2.0 documents. It still supports XLIFF 1.2 documents and auto-detects the XLIFF version of the document being opened.

Translation Memory and Concordance lookup

A new window above the main editing grid now displays two tabs for Translation Memory lookup matches and Concordance Search results. If it is not visible then clicking on the splitter bar just below the font selection controls under the menu bar should reveal them.

Ocelot works with Translation Memory Exchange (TMX) files. The View->Configure TM menu option opens the TM Configuration dialog where you can specify which translation memories you want to use (in a fallback sequence), the penalty if any to be applied to the TM, the maximum number of results to display, and the minimum match threshold which matches must satisfy in order to be shown.

We have also added the ability to save the document as TMX.

Language Quality Issue Grid

Adding Internationalization Tag Set 2.0 Language Quality Issue metadata, even using the “Quick Add” mechanism of release 1 that could be configured in the rule.properties file, has been cumbersome. The LQI Grid reduces this to a one-click or one-hot key operation (excluding any comments you want to add).

The grid is customizable graphically allowing a matrix of issue severities (columns) and a user defined selection of types (rows) to be configured along with hot keys for every combination. Clicking any cell in the grid or typing its associated hotkey sequence will add the required Localization Quality Issue metadata. For example, clicking the cell at the intersection of a “Major” error severity column and “style” error category row will add an <its:locQualityIssue locQualityIssueSeverity="..." locQualityIssueType="style" /> entry to the relevant segment.

Source and Target Fonts

Just below the menu bar are two comboboxes which allow you to set the font family and size to be used for the source and target content.

XLIFF 2.0 Notes

On the View menu, the Configure Columns option allows you to display a Notes column. Text entered into cells in this column will be serialized as XLIFF <note /> elements.

Serialization of Original Target

Ocelot now captures and serializes the original target text if modified as a tracked change using the XLIFF 2.0 Change Track module. One limitation here, which we hope to address as part of XLIFF 2.1 is that only the text (and no inline markup) is saved.

I hope that these enhancements are useful.

Prove It!

I gave two important demonstrations this week to senior management:

  1. Phase one of our distributed production platform which uses many enterprise integration architecture patterns
  2. Using the semantic enrichment facilities of the FREME e-services from a proprietary plug-in to Ocelot that we built using its plug-in API.

The distributed platform demonstration went well and showed the potential of the architecture:

  1. Configurable routes from one micro-service to another
  2. Scalability
  3. Fault tolerance
  4. Composability and reuse.

What I particularly like about this architecture is that we can incorporate discrete processes with blocks of translation management system workflow. For example, we can transform assets from one format to another, carry out validation, pre-edit, post-edit, inject, and generally modify and optimise every aspect of the production process.

The Ocelot presentation went better than I even anticipated in that it captured the imagination of two of the attending senior managers: our Vice President of Global Sales commenting that he thought it would open up opportunities to speak to new departments and roles and within organisations who in turn could influence localization stakeholders and buyers.

I’ll be giving both presentations again next week to a customer and the collaborators and Project Officer of the FREME consortium.

A Busy 4 Months

The last four months have been some of the busiest and productive I’ve known. Achievements relate to Machine Translation, dash-boarding, workflow integration, Ocelot and the FREME Project.

MT, dash-boarding and workflow integration are a widening of our adoption 18 months ago of enterprise integration patterns. Two new strategic hires covering the skill sets of ASP.NET Web API, AngularJS, Java Spring and SOAP services are about to deliver high impact tools and automation.

Ocelot and FREME have also made great progress following my third recent hire.

I finally joined the XLIFF Technical Committee and look forward to contributing to what I believe is a fundamental technology in our industry.

I’ll try to post more about each of these in the near future. Suffice to say the rumors of my demise based on lack of posts are unfounded.


The web site for our new European Commission funded Horizon 2020 project went live on 2015-03-27. I’m very excited about this project. It encompasses many important current topics: Big Linguistic Linked Data; The Semantic Web; NLP Technologies; Linguistic Linked Data Interoperability and Intelligent and Enriched Content.

My goals for the project include new features for our open sourced editor, Ocelot. The planned features will further integrate it with other linguistic technologies and standards, not least the Semantic Web and Linked Linguistic Data Clouds themselves.

Having missed the project kick-off in Berlin in February, I’m looking forward to meeting all of the world-class academic and industry partners.


2015 R&D Agenda

2015 is set to be very industrious for my Research and Development Team.

On the development side we have ambitious plans for a substantial amount of distributed, cloud based automation and integration. It’s exciting but at the same time a little frustrating as so much of the code will have to be written as opposed to being available in existing libraries. Our first distributed, cloud platform, Synthesis, has lived up to expectations and delivered cost and time savings, scalability and reliability. The new event and action rules engine will provide powerful and flexible real-time configuration. This has set a high bar for the new systems but I am optimistic and enthusiastic to get started.

From a research perspective, in addition to a targeted project with the new ADAPT Centre, we will kick off a European Commission Horizon 2020 project code named “FREME” (Open Framework of E-Services for Multilingual and Semantic Enrichment of Digital Content). This is an exciting opportunity to work again with the Deutsches Forschungszentrum für Künstliche Intelligenz (DFKI), the Instituts für Angewandte Informatik (InfAI)and Tilde as well as some new collaborators.

Ocelot will restate its commitment to industry standards and interoperability by supporting XLIFF 2.0. It will also form a prototype client for some of the envisioned FREME services.

Before that however, is a well earned break and the chance to play with some tools and books Santa got for me: JetBrains’ WebStorm, “Python 3 Text Processing with NLTK 3 Cookbook”, and “AngularJS UI Development” from Packtpub.

If you celebrate Christmas, have a wonderful one!