Developer

Watson translation for IBM Control Desk

Can IBM’s Watson replace the human translator ? I realized a Proof Of Concept (POC) how to translate an IBM Control Desk service request by IBM Watson language translate service. I addressed a real Customer scenario where the service requests are opened by self-service application from UK users and the service requests are handled by Latin American call and contact center.

Watch the demo video here:

 

Similarly to my previous article I’m presenting a POC to use IBM Watson as support to IBM Control Desk. My idea is to use IBM Watson to translate a Service Request from one language to another.

My solution is able to leverage the power of IBM Bluemix during the IBM Control Desk service request handling. Bluemix is an open-standard, cloud platform for building, running, and managing applications, moreover Bluemix exposes powerful set of IBM and third-party APIs and services. You can simply create a service based on Watson APIs. My POC uses the Watson Language Translation service :

IBM Watson Language Translation - Bluemix service
IBM Watson Language Translation – Bluemix service

The IBM Watson Language Translation service provides an Application Programming Interface (API) that lets you select a domain, customize it, then identify or select the language of text, and then translate the text from one supported language to another.

The Language Translation service fits with many customer needs, such as:

  • news domain: targeted at news articles and transcripts, it translates English to and from French, Spanish, Portuguese or Arabic
  • conversational domain: targeted at conversational colloquialisms, it translates English to and from French, Spanish, Portuguese or Arabic.

Moreover translation model customization allows you to add your own terms. In my POC I used Watson translation for IBM Control Desk to translate a service request from English to Spanish.

After configured the Language Translation service on Bluemix platform I customized IBM Control Desk.

I extend the TICKET object with two attributes (using database configuration) :

  • DESCRIPTIONLT (ALN)  to store service request’s description translated by Watson
  • LONG_LONGDESCRIPTIONLT (CLOB) to store the service request’s details translated by Watson

I created a Java custom MBO value adapter to translate the service request description and details, here the core’s code used in action and init method. You can see my simple REST client in Java for IBM Watson for more details.

public class WatsonLangTranslation extends MboValueAdapter {

...

logger.info("WatsonLangTranslation action start");
try {

thisMbo = getMboValue().getMbo();
String description = getMboValue("description").getString();

logger.info("WatsonLangTranslation action SR description: " + description);

HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();
String url = "https://8055bc7e-892d-41c0-b6a6-843d5ad5dXXX:[email protected]/language-translation/api/v2/translate?model_id=en-es-conversational&text="
+ description;
url = url.replaceAll(" ", "%20");

HttpPost post = new HttpPost(url);

post.setHeader("Accept", "application/json");
post.setHeader("Content-type", "application/json");
StringEntity input = new StringEntity("");
post.setEntity(input);

HttpResponse response = client.execute(post);
HttpEntity entity = response.getEntity();

if (entity != null) {
InputStream inputStream = entity.getContent();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
for (String line = null; (line = bufferedReader.readLine()) != null;) {
builder.append(line).append("\n");
}

JSONObject jsonObject = new JSONObject(builder.toString());
System.out.println("REST API invoked " + jsonObject);

JSONArray docs = jsonObject.getJSONArray("translations");

JSONObject tra = docs.getJSONObject(0);
String LangTranslation = tra.getString("translation");

System.out.println("traslation: " + LangTranslation);
thisMbo.setValue("descriptionlt", LangTranslation);

}
...

At the end the Service Request application looks like this one:

IBM Control Desk with Service Request details translated by Watson
IBM Control Desk with Service Request details translated by Watson

That’s all !

Your comments and suggestions are welcome !

 

Related Articles

3 Comments

  1. I read you article about Watson translation for IBM Control Desk and it is very interesting. I am currently working on a Maximo upgrade project 7.1 to 7.6 implementation in China. The client uses Maximo in the Traditional Chinese language. The English language is also available. The client asked if it is possible to translate some attributes in ‘transaction’ tables which does not have Multi language support. We want to start with the Service Request & Work Order description. The translation needs to be made from Chinese to English and the other way around. In the future the French language must be added into the translation. Is this language combination available?

    I already created a Bluemix account and created a new service with a ‘trainable’ plan. For the information on the Bluemix website I would expect that a ‘Patent domain’ ADVANCED is required in my situation. When I open the IBM Watson Language Translation tool the only option for me in the Base Model section is ‘NEWS’

    Thanks for your assistance,

Back to top button