ONLINE. REAL-TIME LANGUAGE TRANSLATION SYSTEM AND METHOD
WITH COLLABORATION
FIELD OF THE INVENTION
This invention relates to online communication, especially to online real-time language translation system and method with collaboration.
DESCRIPTION OF THE PRIOR ART
Nowadays, more and more users work, communicate and exchange together through available networks. However, as the users are from different places in the world and may use different languages, their communication may sometimes be very difficult. In order to enable communication between users with different literacy, a front-end chatting tool with translation capability is essential. In order for this component to work, it needs to collaborate with a translation Agent, which will provide the services to translate texts to a specified language. Herein, collaboration is provided for the services including chatting in one session, communicating in one meeting and sharing one documents among different users.
There are translation service providers offering online real-time machine translation capabilities over the Internet such as IBM Alphaworks, Lernout & Hauspie, EWGate, e-lingo, etc.
However, the current online real-time collaboration applications have not seamlessly integrated online real-time text language translation. The present invention has designed to tap on machine translation capabilities of the existing service providers.
There is an increasing need for a system that is not only a communication tool but also provides online real-time translation service.
SUMMARY OF THE INVENTION
An object of the present invention is to provide a system to allow people to work, communicate and exchange together freely and intuitively just like virtually having a face-to-face meeting. The main emphasis on the system is simplicity and intuitiveness.
According to one aspect of the invention, it is to provide an online real-time translation system comprising: at least one collaboration client(s) used for sending
messages; at least one collaboration server(s) connecting with said collaboration client(s) through a network, for distributing the messages from the client(s) and determining therefrom whether translation is necessary or not, if necessary, sending a translation request to at least one relevant translation server(s) that can provide the necessary translation service via a linking means, receiving the translated text via said linking means and then returning the translation result to the client; and said linking means for deciding the at least one relevant translation server(s) to be linked and linking up the collaboration server(s) with the relevant translation server(s) for the translation and transferring messages necessary for translation therebetween.
According to another aspect of the invention, it is to provide an online real-time translations method with collaboration for used in a translation system, the translation system comprising at least one host and at least one participant collaboration client(s), at least collaboration server(s) and a linking means, wherein the method comprising the steps of:
BRIEF DESCRIPTION OF THE DRAWINGS
The object and features of the present invention will become more readily apparent from the following detailed description taken in conjunction with the accompanying drawings in that:
Fig. 1 is an illustration showing a system architecture of the online real-time translation system according to one embodiment of the present invention;
Fig. 2 is an illustration showing a multi-threaded configuration of the collaboration server in the online real-time translation system of the present invention;
Fig. 3 depicts exemplary translation messages transferred among the collaboration client, the collaboration server and the translation gateway within the online real-time translation system of the present invention and the translation server;
Fig. 4 is an illustration showing an example of a message format of a message packet being transferred;
Fig. 5 is a diagram showing an example of a translation related GUI for a host;
Fig. 6 is a diagram showing an example of a translation related GUI for a participant; and
Fig. 7 is a flow chart showing the steps of the online real-time translation method according to an embodiment of the invention:
DETAILED DESCRIPTION OF THE INVENTION
Now, the conceptual system architecture of the online real-time translation system of the present invention will be described with reference to Fig. 1. Fig. 1 is an illustration showing a system architecture of the online real-time translation system according to one embodiment of the present invention.
As shown in Fig. 1, the online real-time translation system according to one embodiment of the invention includes a plurality of collaboration clients 1 and l', a collaboration server 2 and a linking means 3 (which is shown as a translation gateway in Fig. 3). It is appreciated that the number of the collaboration client is not limited to two, although there are two collaboration clients 1 and 1' as shown in Fig. 1. Also, the translation gateway may be substituted with other linking means known to those skilled in the art.
The collaboration client is not only a front end User Interface of the chatting functionality but also the UI for user to use the translation system of the present invention. It can be an ActiveX component for plug-ability. There will be slight difference between the host and the participant collaboration client in that the host will be able to select whether to enable the translation.
With reference to Fig. 1, users of a session may use the collaboration clients 1 and 1' to communicate with each other or other clients (not shown) through the Internet and/or Intranet. However, it is also possible that the communication may be made through other networks available.
In Figs. 5 and 6, there are diagrams showing examples of the translation related Graphic User Interfaces (GUIs) for a host and a participant, respectively. Herein, host is a user who hosts a session. It is assumed in one embodiment of the present invention that the host has the privileges to enable/disable certain features, including translation, to be available to other participants. The participant here means the user who is not hosting a session. If a translation is enabled by a host of a session, the participants of the session may select the language preferred. In the GUI of Fig. 5, it shows that the host has permission to enable or disable the translation features in the current meeting. With reference to the participant GUI in Fig. 6, the boxes with oblique lines and grids indicates if the translation feature is enabled or disabled by the host, respectively, which means that the participants have no right to activate this feature. The chat GUI with translation basically allows the participant to select the language he prefers to use for chatting.
In the following, the collaboration server 2 will be described with reference to Figs. 1 and 2. Fig. 2 is an example showing a multi-threaded configuration of the collaboration server 2 in the online real-time translation system of the present invention.
The main function of the collaboration server 2 is to handle the chat logic. As shown i Fig. 2, the collaboration server 2 is shown as a multi-threaded server. The main thread (server manager) is responsible for listening and accepting any incoming request from the collaboration client. Upon request for a new collaboration session on the collaboration server, a worker thread (session manager 1 or 2 or 3) is created. It is known that the number of the session managers is not limited to 3. One session manager corresponds to each session. In Fig. 2, the hash table in the server manager also indicates the correspondence between each session and each work thread. The database interface may be used for connecting to a database, such as the database of the tracking database 5.
Each session manager may have functions to handle packets enabling/disabling translation capability and chat packets requesting translation. Upon any translation request, session manager will create a HTTP connection sending and receiving HTTP request and reply to and from the translation gateway. Using HTTP protocol is because the translation gateway 3 is implemented using an application server accept HTTP request. (Alternatively, other protocol, e.g., TCP connection, may be used depending on the application server used by the translation gateway.)
The collaboration server 2 handles the chat messages. It keeps track of what language each participant prefers and determines any need for translation in the chat session. When translation is necessary, the collaboration clients 1 and 1' may send messages to the collaboration server 2. The collaboration server 2 will make translation request and send the translation request to the translation gateway 3, which in turn forwards the request to a relevant translation server 4 (i.e., relevant translation service provider).
As shown in Fig. 1, the translation gateway 3 is the interface between the collaboration server 2 and the translation server 4. The main function of the translation gateway 3 is to receive messages from the collaboration server 2, process the translation request and forward the request to the relevant translation server 4. The text to be translated is also forwarded to the translation server 4.
For the incoming messages from the translation server 4, the translation gateway 3 will process the reply and forward the message to the relevant collaboration server 2. Specifically, when the relevant translation server 4 finishes the language translation
processing and returns the translated result back to the translation gateway 3, the latter will receive the translated text from the translation server 4 and return it to the collaboration sever 2, which in turn will send the translated text back to the relevant chat UIs (i.e., collaboration client).
Translation Gateway 3 is able to handle linkages between more than one Translation Servers (TS). The Translation Gateway 3 can connect to different Translation Servers with different translation capabilities. It keeps track of the capabilities of each Translation Server and is responsible to decide and prioritize, upon the translation request from Collaboration Server, which Translation Server to handle the translation. The logic of deciding and prioritizing Translation Server can be dynamically configured on the Translation Gateway.lt can be generally illustrated as following: say TS1 can translate Chinese to and from English, and French to and from English, TS2 can translate French to and from Chinese. In a conference among a Chinese, a British and a French, when the Chinese sends Chinese text, the Collaboration server 2 will broadcast the Chinese text to everyone first, and at the same issue a Chinese to English translation request and a Chinese to French translation request to the Translation Gateway 3. Because the Translation Gateway 2has information of that TS1 can handle Chinese to English, and TS2 can handle Chinese to French, it will issue the relevant requests to TS1 and TS2, respectively. After collecting the result back from TS1 and TS2, it will return the result back to Collaboration Server 2 which will in terms send the translated English text to the British and the translated French text to the French.
The translation gateway 3 may be built on a scalable architecture so that it will be used by multiple collaboration servers 2 and able to forward translation requests to multiple translation service providers, depending on the relevancy. Therefore, the translation service are channeled through the central translation gateway 3, as a gateway of distributing translation service, that links up difference translation server provider (e.g. IBM Alphaworks, EWGate, L&H, e-lingo, etc.).
. The translation server 4 of Fig. 1 is responsible for all the language translation processing and returns the translated result back. The translation server 4 is provided by third party translation service providers. As shown in Fig. 1, when receiving the translation request, the translation server 4 will distribute the text to be translated to the relevant translation engine in a translation engine cluster connecting thereto, depending on the language to be translated. It will receive, for example, string messages and reply translated string.
As shown in Fig. 1, the online real-time translation system of the present invention further comprises a tracking system for keeping track of the translation transaction. In Fig. 1, the tracking system is implemented as a tracking/billing database 5. The fracking/billing database 5 is used for tracking the usage of translation service from each provider that it supports and checking against the bill from each translation provider. The tracking system may be built on the translation gateway 3. For tracking, the translation gateway 3 may communicate with the tracking database 5 to track the translation request with the relevant session ID. The tracking system may be implemented in Open DataBase Connectivity (ODBC) or Java DataBase connection (JDBC) for fracking database access. Otherwise, the tracking system may be implemented in other form.
All data communications are done on an IP networking using TCP or HTTP protocol. This ensures that all; the building blocks in this system are platform and implementation language independent.
The translation gateway 3 may be implemented on Servlet, therefore the translation service can be provided through a typical Web client/browser.
The collaboration server 2 may be implemented on Linux using C/C++ for efficient and intensive collaboration data processing.
The collaboration clients 1 and 1' may be implemented on Windows platform using Microsoft COM Technology for modularity and scalability.
The translation gateway 3 may be implemented as a servlet on, for example, Lutris Enhydra Application Server. This is for speedy development, as well as for multiple protocol accessibility-HTTP, TCP, etc. Each service provider may provide the protocol/access stub into the Servlet. Single access protocol will be implemented between the collaboration server 2 and the translation gateway 3.
In the following, the exemplary messages used in the translation system are described with reference to Fig. 3 and 4. Fig. 3 depicts the exemplary translation messages transferred among the collaboration clients 1 and 1', the collaboration server 2 and -the translation gateway 3, while Fig. 4 is an illustration showing an example of the message format of a message packet being transferred.
With reference to Fig. 4, each message packet is composed by a header portion and a body portion.
The header portion consists of PacketLength (for example, 4 bytes) to indicate the length for the current packet, Event (for example, 2 bytes) to indicate what this message is all about, and Session ID (for example, 4 bytes) to indicate the session that the
message is referring to.
The body portion contains Event Parameters of the message. For example, when the collaboration server 2 request the translation gateway 3 to make a translation request, the Event parameters should be the Session ID, the username, the text that requires translation and a sequence number for this transaction. The following Table I shows the Event Parameters for each Event.
Table I
The above-mentioned table II illustrates another embodiment of the translation method.
The following is a description to the online real-time translation method according
to one embodiment of the invention. The description will be made based on Figs. 3 and 7. Fig. 7 is a flow chart showing the steps of the online real-time translation method according to an embodiment of the invention.
According to Fig. 7, the translation method begins with a chatting step S In the chatting step SI, one or more users of different literacy may start a session with the chat GUI through a network. Then, in step S2, the host(s) of the session may choose to enable/disable the translation capabilities.
If the host chooses to enable translation in step S2, the collaboration client 1 (or 1') of the host(s) will send a message, e.g., CC_TRA_ENABLE, to the collaboration server 2 to enable translation in the session. Upon receiving the message, the collaboration server 2 will send a message, e.g., CS_TRA_GET_INFO, to the translation gateway 3 to get a list of, for example, the translation server, their domain and the language supported by each server. The message may be sent the first time when the collaboration server 2 is started and periodically after that. After receiving the message, the translation gateway 3 will send a message, such as CT_TRA_GET_INFO . to the translation servers available to get a list of the translation services supported by each of them. Then, the translation servers will send back the list. Same is sent back by the TG 3 to CS 2.
As shown in Fi.g 3, when receiving the information getting message from the collaboration server 2, the translation gateway 3 will return a message, e.g., TG Tl^ RET INFO, including the list of the translation servers and relevant information to the collaboration server 2. Then, a message including the information of available languages, e.g., CS_TRA_ENABLE, will be sent to the collaboration clients of the host and the participant(s).
Then, as shown in step S4, all the collaboration clients, including the host(s) and the participant(s), may select the languages they preferred with a message, e.g., CC_TRA_LANG.
Then, in step S5, the translation gateway 3 may choose server(s) that can provide appropriate translation service from the server according to the selection of language.
- The collaboration client(s) may send their chat packet, e.g., CC_CHAT, to the collaboration server 2 as shown in step S7. However, it is known that this step may be positioned in any places of the flow chart. As shown in step S8, when receiving the chat packet, the collaboration server 2 will send a message, e.g., CS TRA CHAT, to the translation gateway 3 to make a translation request. Then the translation gateway 3 will request the relevant translation server 4 to make translation processing to the chat packet. In step S9, the translation gateway 3 will return the result from the translation server 4 to
the collaboration server 2. Then, in step S10, the collaboration server 2 will send the chat text to the collaboration clients with a message, e.g., CS_CHAT. As mentioned above that the translation is enabled, the message, therefore, may include the original chat text and the translated chat text.
However, if the host chooses disabling translation by a message, e.g., CC_TRA_DISABLE, in step S2, the flow will proceed to step Sl l, wherein the collaboration server 2 will send to all collaboration clients a message, e.g., CS_TRA_DISABLE to disable translation and update the GUIs. Then, the flow will return to steps 7 and 10 for sending the chat packet to the collaboration server 2 and the collaboration server 2 will distribute the chat text received. It is also known that the step S7 may be placed anywhere in the flow chart.
The above-mentioned are the preferred embodiments of the present invention. It will be apparent to those skilled in the art that changes and modification may be made therein without departing from the spirit and scope of the invention as defined in the following claims.