Tag Archives: JavaScript

Review Sentinel Document Profile Dashboard

I have been working for the last few weeks on designing a new intuitive way to visualise Review Sentinel conformance data at a document level.

Ideas have culminated in what I’m calling a Document Profile. This is essentially a scatter chart of the individual segment conformance scores sorted by score in ascending numeric (descending conformance) order. This is plotted and labelled with a single overall numeric indicator for the document.

Conformance scores cannot be naively aggregated (summed or averaged) because a document with a large number of good conformance scores and few very poor conformance scores could conceivably give an overall result similar to a document that contains all medium severity conformance scores.

Instead we have identified a threshold score which ideally the vast majority of segment scores would fall below. We can then express the number of segments below this threshold as a percentage of the whole document.

Having prototyped the graphing in Microsoft Excel, we had to find a way of mimicking it on the web. I settled on two relatively new open source JavaScript libraries: D3 and AngularJS.

D3 was easy to come up to speed on. There are masses of sample charts on their web site and as always a good Pluralsight course. I was able to prototype quickly and easily using Plunker, JSFiddle, etc.

It’s a testament to Angular’s clear, concise and modular architecture that I was able to learn everything I needed to without writing practically a line of code. I have few slots of contiguous focus time these days but I was able to pick an Angular concept (scopes, binding, directives) and study it for an hour here and there (on planes, buses and walks). I then did all of the coding practically in a single sitting.

The finished article is small, modular, elegant and very easily enhanced.

I’ll leave a deployment here for a short while for people to play with. The data is for one US English source document machine translated into three languages: Spanish, French and Brazilian Portuguese. Three charts show the conformance of the raw MT output against a human translated reference corpora and the fourth shows the conformance of the Brazilian Portuguese document after post-editing (using directed post-editing effort in Ocelot).

Old Dog, New Languages

I think I’m becoming a fan of JavaScript – or at least some of its facilities and a few frameworks that are built on top of it.

When you get to know about JavaScript’s beginnings it’s not so surprising why it is quirky.

My desire to up-skill for JavaScript is my desire to render Review Sentinel Document Quality Profiles on the web. So I have been reading and watching a lot about D3.js and AngularJs. D3 has nice function chaining but I find some of its constructs tricky despite understanding its underlying enter, update, exit pattern. Angular I love even though I’ve only touched the surface.

My learning was aided by the PluralSight JavaScript for C# Developers, and AngularJS for .NET Developers courses.

Here’s what the current beta version looks like:


Here Comes the Summer

I have bombarded myself with JavaScript for the last three weeks driven by a feeling of inadequacy. Not that I’m incapable of writing it or unable to decipher fairly terse blocks of it. It’s just that I don’t have much of a requirement to use it on a daily basis and so I don’t feel fluent in it. Others seem to be using it just about everywhere. Following a tweet (I can’t remember who you were but thanks) I watched Douglas Crockford’s Pluralsight course entitled “JavaScript the Good Parts“. This course is quite a departure from the normal Pluralsight format in that it is a video of Douglas giving a live presentation rather than a hidden teacher narrating over a series of learning modules. The course was enlightening, interesting and frightening. Scary in respect of JavaScript being designed and implemented within such a short space of time, its sometimes quirky features (to whit the treble equals ‘===’) and yet its ubiquitous adoption.I then took a look at AngularJS. I’m interested in frameworks which simplify the presentation and state management of data which is retrieved via http. Despite my wariness of JavaScript I was really impressed by its clean structure, ease of assimilation and flexible integration patterns with ASP.NET MVC. Finally I went on a whistle-stop tour of Breeze and Jasmine.
I’ve been out and about as much as possible recently too. During transport from location to location I have been trying to re-kindle old interests like computer graphics and colour. Therefore spent some time looking at POV-Ray, Color Scheme Designer, Paletton, Adobe Kuler, PaintStrap, Lavish and GraphViz.
I attended the 7th Multilingual Web Workshop in Madrid this week. The city reminded me a lot of London in terms of architectural style and scale, transport and points of interest. The University is massive. The event dinner was at Posada de la Villa and the lamb was possibly the best I’ve ever tasted in a restaurant.
We got great feedback from the reviewers of our Multilingual Web – Language Technologies European Union funded project. I hope this stands us in good stead to receive funding for our recently submitted Horizon 2020 ICT-15 proposal.
I do occasionally go off grid and get out onto the water. The weather hasn’t been too bad and so I was able to get out a couple of times. As the skipper of the yacht I go out on said: “I knew you’d be ringing as soon as it was May”. Finally I will be presenting at FEISGILLT and Localization World in June in Dublin.