WO2000005660A1 - Modular language translation system - Google Patents
Modular language translation system Download PDFInfo
- Publication number
- WO2000005660A1 WO2000005660A1 PCT/US1998/015219 US9815219W WO0005660A1 WO 2000005660 A1 WO2000005660 A1 WO 2000005660A1 US 9815219 W US9815219 W US 9815219W WO 0005660 A1 WO0005660 A1 WO 0005660A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- translation
- client
- engine
- distributed object
- request
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
Definitions
- This invention relates to automated natural language translation systems in which different user interface modules can inter-operate with different translation engine modules.
- a single user interface module could reside on a computer and could invoke any one of a variety of available translation engine modules residing on one or more other computers located across a network.
- MT Machine Translation
- a certain MT system might support a translation option such as "spell check,” which automatically scans a document before translation for spelling errors, whereas a different MT system might not support this option. Consequently, the user must tailor every request to translate a document to the specific options and requirements of the particular MT system being employed. Because each MT system can provide many different features and options, the user must learn and remember which MT systems are capable of particular options. Moreover, because different MT systems often refer to the same concept by different terms, it becomes difficult for a user to set up a "standard" translation request This lack of standardization makes it difficult for users to translate various documents
- the present invention provides a translation system that allows a user of any one of a variety of different user interfaces to be able to send translation requests to and receive responses from any one of a variety of different translation engines That is, a user of the present invention who is familiar with the user interface for a first type of MT system, such as one that translates from Japanese to English, can use that user interface to get translations from the translation engine of a second type of MT system, such as a Russian-to-English system, without having to learn the particularities of the second system and its interface.
- a first type of MT system such as one that translates from Japanese to English
- a second type of MT system such as a Russian-to-English system
- the present invention makes it easier for software developers to write applications that can communicate with a multitude of different MT systems Further, the present invention allows a particular MT system to be able to process translation requests from any one of a number of other MT systems
- the present invention uses a distributed object protocol, such as the Component Object Model (COM) or the Common Object Request Broker Architecture (CORBA), for all communications between a client and a translation engine
- the client and the translation engine each have an interface defined by an interface definition language (DDL) All translation requests sent by the client and all responses generated by the translation engine are sent in accordance with the IDL that defines those interfaces Therefore, the client interface and translation engine will be able to communicate regardless of what machine they are running on (as long as the machines are connected, such as by a network), what operating system the machine is running (as long as it supports the distributed object protocol employed), or the computer language in which the client or translation engine is written (as long as the language system supports the distributed object protocol)
- DDL interface definition language
- the invention features a translation system having a client and a translation engine.
- the client sends a translation request comprising text to be translated from a first language to a second language using a distributed object protocol.
- the client receives a response to the request using the distributed object protocol.
- the translation engine receives the translation request using the distributed object protocol and generates the response corresponding to a translation of the text from the first language to the second language, and sends the response to the client using the distributed object protocol.
- Embodiments of this aspect of the invention can include the following features.
- the translation request and the response can be sent in accordance with an IDL, the IDL defining an interface at the client and an interface at the translation engine.
- the distributed object protocol used by the client and the translation engine to communicate can support a plurality of user interfaces.
- the distributed object protocol can operate in accordance with the Component Object Model (COM) standard or the Common Object Request Broker Architecture (CORBA) standard.
- COM Component Object Model
- CORBA Common Object Request Broker Architecture
- the system can include a notification mechanism having an interface defined by an IDL by which the translation engine can inform the client of errors that occur during translation.
- the system can include a registration mechanism having an interface defined by an IDL by which the translation engine can register itself to be found by the client and can inform the client of components such as user dictionaries that are available with the translation engine.
- the client and the translation engine can be located on the same computer, or on different computers connected to each other. For example, the client and the translation engine can communicate over a computer network.
- the text to be translated can be represented by a character set that is capable of including characters used in a multitude of languages, such as UNICODE.
- the invention features a translation method in which a translation request is sent from a client to a translation engine using a distributed object protocol.
- the translation request comprises text to be translated from a first language to a second language.
- the request is received using the distributed object protocol, and a translation is performed in response to the received request.
- the translation is included in a response to the request, and the response is sent from the translation engine to the client using the distributed object protocol.
- the step of sending a translation request from the client can comprise sending a translation request from the client to the translation engine in accordance with an IDL, where the IDL defines an interface at the client and at the translation engine.
- the translation method can include the step of providing a registration mechanism by which the translation engine can register itself to be found by the client, the registration mechanism having an interface defined by an LDL.
- the translation method can include the step of scanning the translation request for irregularities in the text, such as misspellings or undefined words, prior to sending it to the translation engine for translation.
- the translation method can include the step of providing to the client information regarding the progress of the translation by the translation engine.
- the invention features a translation system comprising either a plurality of translation engines and a client or a translation engine and a plurality of clients.
- the single unit can inter-operate with any one of the plurality of units, and they communicate using a distributed object protocol such as COM or CORBA.
- COM distributed object protocol
- each of the one or more clients and each of the one or more translation engines has an interface define by an LDL, so that all communication between a client and a translation engine will occur in accordance with the LDL.
- a translation engine can maintain separate contexts for each translation request that it receives, enabling the translation engine to translate each request in accordance with particular translation format that might be associated with the translation request.
- FIG. 1 is a block diagram of a modular language translation system in accordance with the invention.
- FIG. 2 is a block diagram of a particular embodiment of the modular language translation system of FIG. 1 in accordance with the invention.
- FIG. 3 is another block diagram of a modular language translation system of the invention.
- FIG. 4 is a block diagram of a modular language translation system having multiple translation engines, in accordance with one embodiment of the invention.
- FIG. 5 is a block diagram of a modular language translation system having multiple clients, in accordance with another embodiment of the invention.
- FIG. 6 is a flow diagram illustrating the operation of the system of FIG. 2.
- FIG. 7 is a flow diagram illustrating in more detail the step of sending a translation request shown in FIG. 6.
- FIG. 8 is a flow diagram illustrating in more detail the translating step of translating shown in FIG. 6.
- a language translation system 10 includes a client 11 and a translation engine 16.
- the client 11 can be any type of system (e.g., a user interface) capable of sending a translation request in accordance with a distributed object protocol to the translation engine 16 and receiving a response from the translation engine 16 in accordance with the distributed object protocol.
- the client 11 could be a proxy server operating in accordance with a protocol such as Gopher, File Transfer Protocol (ftp), HyperText Transport Protocol (http), Simple Network Management Protocol (SNMP), and Simple Mail Transfer Protocol (SMTP), that calls a translation engine 16 to instantly translate content downloaded from a computer network such as the world-wide- eb (WWW).
- a client 11 could be a "web-crawler” or “web-robot” that searches the WWW for content and generically translates the content into a common language.
- the client 11 can be composed entirely of hardwired logic circuitry, but it preferably is realized mainly in software executing on a general purpose computer such as a PC or workstation.
- the client uses a character set that includes characters used in a plurality of languages, such as the UNICODE character set, which is an international character encoding standard that permits computers in one world language community to "talk" with those in another language community.
- a client in one embodiment is a word processing application running on a computer.
- other software applications such as spreadsheets, database programs, web browsers, etc., can be a client 11.
- the client 11 has a client interface 94 that is specified to be in accordance with the distributed object protocol.
- this client interface 94 is defined by an interface definition language (IDL), but one skilled in the art will recognize that other mechanisms can be used to define the client interface 94.
- IDL interface definition language
- a client has a user interface 24 enabling the user of the application to interact with that application.
- the user interface 24 of the application or program can have a translation service that accepts translation requests.
- a WORD document could contain Nisual Basic script that can transmit a translation request using a distributed object protocol.
- the translation request includes text to be translated from one natural language to another.
- the translation request can also include or alternatively can include information directing the translation engine how it should perform the translation, information relating to the particular text to be translated, information relating to the order of translation, or information relating to a particular dictionary to use during translation.
- the information included with the translation request may include part-of-speech settings (indicating the particular parts of speech of one or more words in the text); translation hints; indicators of sentence boundaries; translation guidelines; indications for types of words to translate in a particular fashion, or indicators of discontinuities in the text.
- the information further could include information relating to the desired translation preferences indicating preferred dictionaries, alternate word settings, alternate translations, and alternate sentence translations, as well as indications as to what parts of the text to which the options should be applied. These examples of information are not intended to be limiting; one skilled in the art will recognize that many different types of translation preferences and options may be desirable to be included in the translation request.
- the information also can include markups such as Hypertext Markup Language (“HTML”) and Standard Generalized Markup Language (“SGML”) markup; Rich Text Format (“RTF”) markup; and ⁇ ontypesetting Runoff (“ ⁇ ROFF”) markup.
- HTML Hypertext Markup Language
- SGML Standard Generalized Markup Language
- RTF Rich Text Format
- ⁇ ROFF ⁇ ontypesetting Runoff
- systems other than general purpose computers are employed to realize the client 11, including palmtop computers, personal organizers, mainframe computers, and fax machines. Any system capable of communicating in accordance with the distributed object protocol is intended to be within the scope of the invention.
- the distributed object protocol of the present invention support a plurality of user interfaces, computers, applications, etc.
- an LDL defines an interface at each system used to realize the client 11.
- the translation engine 16 comprises a system that can receive the translation request in accordance with the distributed object protocol and it, like the client 11, preferably is realized mainly in software executing on a general purpose computer.
- the translation engine 16 in this embodiment has a translation engine interface 96 that is specified to be in accordance with the distributed object protocol.
- the translation engine interface 96 is defined by an IDL, although other mechanisms can be used to define the translation engine interface 96, as will be appreciated by those skilled in the art. It should be understood, however, that the translation engine 16 and client 11 could each be realized in any machine, apparatus, or article of manufacture capable of communicating using a distributed object protocol and capable of having an interface specified to be in accordance with a distributed object protocol.
- the translation engine 16 performs translation operations on the source text, in conjunction with data in storage 18.
- data in storage 18 corresponds to all sorts of information used or useful in performing the translation including one or more dictionaries, domain keywords, grammar rules, other databases, etc.
- the translation engine 16 can be located on the same computer as the client 11 or on a separate computer in communication with the client 11.
- the translation engine 16 translation engine 16 After the translation engine 16 receives the translation request from the client 11, the translation engine 16 translation engine 16 translates the text from the first language to the second language. The translation engine 16 then uses this translated text to generate a response to send back to the client 11. The translation engine 16 sends the response to the client 11 using a distributed object protocol.
- the translation system 10 also preferably includes a registry 84 by which client 11 can locate available translation engines 16.
- client 11 can check the registry 84 to find out what translation engines are accessible to the client 11. In one embodiment this checking includes searching for translation engines 16 installed at the client 11.
- the registry 84 searches across a computer network such as the WWW to locate other translation engines 16 that operate in accordance with a distributed object protocol.
- the registry 84 also provides information about options and/or components available on each located translation engine 16.
- these components include one or more of the following: user dictionaries, syntax dictionaries, user dictionary editors, dictionary browsers, secondary translation engines, alternate word finders, alternate sentence translators, sentence boundary finders, asynchronous (background) translators, synchronous translators, fuzzy translation matching, part-of-speech settings, selective translation, spell-checkers, and translation memory archives.
- a translation engine 16 can have associated with it one or more translation options 86.
- a translation option 86 corresponds to a "global" option that applies to any translation request sent to the translation engine 16.
- a translation option 86 might be an operation that scans for undefined words.
- the registry 84 listing the translation engine 16 having this option could indicate as part of the registry 84 that this translation option is available at this translation engine 16.
- the translation request that the client 11 sends to the translation engine 16 typically comprises at least some text to be translated from a first natural language to a second natural language.
- the translation request could comprise some English text that needs to be translated into Japanese.
- the invention is not limited to any particular pairs of languages.
- the translation request can comprise information other than text to be translated, such as information directing the translation engine 16 to perform the translation in a particular manner or in a particular format.
- the translation request can comprise a translation preference directing the translation engine 16 to translate in accordance with a particular user dictionary 38.
- Use of particular user dictionary 38 may be desirable in examples where the text to be translated relates to a particular domain of interest (such as technical or financial); use of a technical or financial dictionary helps to ensure accuracy of translating words that have specific meanings in those domains.
- translation preferences can be handled by the translation engine 16 in several ways.
- the translation engine uses one or more translation preferences objects 88 that are responsive to information in the translation request relating to a desired format of the translation.
- the translation system 10 can further include a preferences editor 26 that permits the client to set the preferences that will be provided to the translation engine 16 as a translation preferences object.
- the translation request can be generated in a number of well-known ways.
- FIG. 3 illustrates one embodiment of the invention used with a system that can provide text to be translated and includes the client 11 having an input interface 12, a display 20, an output interface 14, and a user input device 22.
- the user input interface 12 can be a keyboard, a mouse, touchscreen, or light pen. It should be understood that any user input device that a client 11 can use can be used as a user input interface 12.
- the input interface 12 comprises a connection to a source that can provide text to be translated, such as a modem, serial line, web page, or another system in communication with the client 11.
- the display 20 comprises a computer display or printer. Any apparatus or system capable of communicating information to the client 11 may be used as a display.
- the output interface 14 communicates the final translation of the source text in the second language, where the translation comes from the response sent by the translation engine 16.
- the output interface 14 may comprise a printer, fax machine, a voice interface, an electronic interface, such as a modem or serial line, or it may include other means for communicating the text to the end user.
- the client 11 and translation engine 16 can be interconnected in any number of well- known ways to permit the client 11 to send a translation request to the translation engine 16.
- the client 11 and translation engine 16 are located on the same computer system.
- the client 11 and translation engine 16 are located on different computers capable of communicating with each other.
- this communication occurs via a computer network, such as the Internet.
- communication occurs via a wireless communication system, through coaxial cable such as a cable TN line, through a high speed communications link, or through a telephone line.
- the client 11 and translation engine 16 could share a thin (narrowly defined) interface, wherein the thin interface is flexible enough to allow the client 11 and translation engine 16 to communicate, but supports only a limited number of Application Program Interfaces (API).
- the distributed object protocol with which the client 11 and translation engine 16 communicate is a standard governing the creation of and communication between objects and distributed objects (objects that communicate with objects on other network nodes).
- Distributed object computing simplifies system development and maintenance by creating reusable pieces of code (commonly known as objects) and by allowing objects installed on different computers to communicate over a network.
- a software object is a collection of related function (or intelligence) and the function's (or intelligence's) associated state.
- a set of distributed objects such as a set including all of the objects illustrated in Fig. 2 (the client 11, translation engine 16, dictionary browser 46, etc.), is a collection of independently operating nodes.
- each node comprises an independent process.
- each node has independent storage.
- a node need not comprise an independent process to be usable with the invention.
- each node is on a separate and independent computer, on the same computer as all other nodes, or distributed among two or more computers.
- a number of different distributed object protocols are presently available and could be used with the present invention.
- COM Microsoft Component Object Model
- DCOM Microsoft Distributed Component Object Model
- NisualWorks' Distributed Smalltalk NisualWorks' Distributed Smalltalk
- JAVA RML JAVA RML
- CORBA Common Object Request Broker Architecture
- COM and CORBA are the preferred distributed object protocols.
- COM presently is the defacto standard for building component architectures.
- objects on one node know the names of objects on other nodes. Handles to the distributed objects (also called interface pointers or object references) can be passed from machine to machine, program to program, and process to process. Any entity that can access a handle to a distributed object can call methods on it (calling methods is synonymous with sending a message). Thus, objects on one node can directly send messages to objects on other nodes, and objects on one node can freely migrate to another node.
- One way of ensuring that objects operating in accordance with a distributed object protocol can communicate with each other is by specifying on interface on each object using an interface definition language (LDL). When interfaces are specified using an LDL, the objects can communicate with each other even if the objects themselves are written in different programming languages, by different vendors, or as different versions of the same program.
- LDL interface definition language
- an advantage of the disclosed system which uses a distributed object protocol and has interfaces defined by LDLs, is interoperability.
- Clients and translation engines developed in accordance with the present invention can be treated as interoperable software modules, instead of as incompatible proprietary systems, such as are presently being employed in conventional language translation systems. Further, clients and translation engines developed in accordance with the present invention will be language, vendor, and version neutral.
- a software developer can to design a translation API that works with multiple providers of a translation service transparently; that is, without any special knowledge of which provider or implementation is in use.
- the provider of a translation service can express new, enhanced, or unique translation components to potential consumers in a standard manner, without worries that new versions will be incompatible with consumer's systems.
- the user merely pulls up the standard "print” menu from the application's interface, selects from a set of standard print options (such as "double-sided"), and selects the desired printer. Users can select default options and/or default printers with confidence, knowing that the application and the printer will communicate to accomplish the desired functions or will alert the user when functions are not available. Users of a multitude of applications, therefore, are interoperable with a multitude of printers because the printers and applications act as objects defined by a standard protocol. By requiring that translation engines and clients be defined by a standard protocol, such as a distributed object protocol, the present invention enables clients and translation engines to be interoperable. Referring again to FIG.
- the translation system 10 comprises: a client 11 having a user interface 24, a translation engine 16 comprising a translation preferences server 28, synchronous translator 30, asynchronous translator 32, alternate word server 34, and translation server 36, a user dictionary editor 44, a dictionary browser 46, a preferences editor 26, a user dictionary 38, a syntax dictionary 40, and a base dictionary 42, part- of-speech registry 90, registry 84, alternate sentence server 92, translation option 86, and translation preference object 88.
- a client 11 having a user interface 24, a translation engine 16 comprising a translation preferences server 28, synchronous translator 30, asynchronous translator 32, alternate word server 34, and translation server 36, a user dictionary editor 44, a dictionary browser 46, a preferences editor 26, a user dictionary 38, a syntax dictionary 40, and a base dictionary 42, part- of-speech registry 90, registry 84, alternate sentence server 92, translation option 86, and translation preference object 88.
- the user interface 24 has a translation service for accepting translation requests.
- the user interface 24 is a translation service comprising a standard set of fields into which the client 11 provides text to be translated and/or translation options.
- the user interface 24 need not be located on the same computer as the client.
- a user interface 24 might exist at a remote location accessible to the client 11, such as on a site accessible by a web browser.
- the user interface 24 will be the same regardless of the translation request that a client 11 wants to make. That is, regardless of the application or system, a consistent user interface 24 is presented to the client.
- the user interface 24 permits a client to specify options that affect the translation performed by the translation engine 16.
- a client 11 using the user interface 24 can use the user interface 24 to tell the user of the system 10 if the translation engine 16 supports a particular translation preference, such as spell- checking.
- the client 11 sends a message to a preferences editor 26, which communicates with the translation preferences server 28 to see if the translation preferences that have been selected are available at the translation engine 16.
- the preferences editor 26 has an interface defined by an LDL.
- the preferences editor 26 then notifies the client 11 about the availability of the translation preference so that the client 11 can formulate the translation request in accordance with this information and also provide this information to the user interface 24.
- the translation server 36 receives the preference information and ensures that the translation engine 16 translates in accordance with it.
- the preferences editor 26 will display to the client 11 only the user dictionaries 38 available to the translation engine 16. If the client 11 selects a particular user dictionary 38, then the preferences editor 26 ensures that each time the client 11 sends a translation request to the translation engine, that the translation preferences object 88 reflects the preferred dictionary that the client 11 has selected. In one embodiment, the preferred dictionary is used until the client 11 resets the preference.
- the translation preferences may operate similarly to preferences used in other applications such as web browsers.
- spell-checker As an example of the use of options, consider the example of a spell-checker. If spell- checking is not available for translator 16, then when the user interface 24 is displayed to the user of the system, the spell-checking option will be displayed in a way that indicates that the user cannot select it as an option. For example, a selectable box for spell-checking on the user interface 24 might be "grayed out," indicating to the user that the user cannot select that option. However, if spell-checking is available at translation engine 16, then the user interface 24 will permit the user to select it as an option. Such a technique permits the client 11 and user interface 24 to be interoperable with translation engines 16 having different types of options. This type of feature can be used with components displayed in the registry 84 as well.
- the embodiment of FIG. 2 provides other features helpful to a user seeking to translate text.
- the synchronous translator 30 is used if translation needs are simple.
- the synchronous translator is implemented such that it has an interface defined by an LDL. It provides immediate translation.
- the client 11 sends a translation request that requests use of the synchronous translator 30, the client waits for the translation engine 16 to send a response containing the translation of the text.
- an end user application such as a word processing application
- Such script typically Visual Basic Script
- Software developers skilled in the art will recognize that many other programs can be written in accordance with the LDL to take advantage of the synchronous translator 30.
- the translation engine 16 when a client 11 sends a translation request that requires use of the asynchronous translator 32, the translation engine 16 will perform a translation in the background, so that the client 11 can perform other operations while the translation engine 16 is working. While the client 11 is performing other operations the translation engine 16 keeps the client 11 informed of the progress of the translation by providing information regarding this progress The translation engine 16 can send this information directly to the client 11, or the client 11 can poll the translation engine 16 for this information.
- the client 11 When the client 11 sends a translation request to the asynchronous translator 32, the client 11 also provides the asynchronous translator 32 with a text to translate and a place to write the results.
- the client 11 provides two additional interfaces for this purpose: the translation source interface 96 and the translation sink interface 100 Each of these interfaces is specified by an LDL
- the translation source interface 96 provides the text; the translation sink interface 100 consumes the translation (results are written to it).
- the translation source interface 96 also can allow specification of annotations such as use-specified part of speech settings, HTML markup, etc.
- the translation sink interface 100 not only retrieves translated text, but also supplies part-of-speech information and dictionary source information from the translation engine 16.
- a client 11 when using the asynchronous translator 32, a client 11 also may want to know how to obtain progress information and know when the translation is done.
- the client can provide a translation progress object 102 that is associated with the asynchronous translator 32 and receives notifications of progress The translation progress object 102 has on interface defined by an LDL.
- a client 11 can instead poll the asynchronous translator 32 for progress information.
- An error handler 82 provides a notification mechanism to inform the client 11 if an error has occurred during translation, during the receipt of a translation request, during the receipt of preferences information, etc.
- the error handler 82 is implemented using a call back interface defined by an LDL for specifying errors, providing severity information, and providing numerical error identifications.
- an error call back object is associated with another object that operates in accordance with a distributed object protocol, such as the asynchronous translator 32, a client 11, or a user interface 24
- the translation engine 16 provides a response to the client 11 in accordance with information relating to a desired format of the translation and in some of these embodiments, the client 11 is notified if a desired format is unavailable.
- the translation system 10 further comprises an alternate word server 34 for locating at least one alternate word choice for a given translation request and communicating that alternate word choice to the client 11 and translation engine 16.
- the system translates Japanese to English or vice-versa.
- the translation engine can include a translation server for receiving information related to the desired format of the translation.
- the translation engine further comprises storage 18 that may include one or more areas of disk (e.g., hard, floppy, optical, etc.) and/or memory (e.g., RAM) storage, or the like.
- the storage 18, in some embodiments, is used to store input textual information in a source natural language, output textual information in a target natural language, and all sorts of information used or useful in performing the translation including one or more dictionaries, domain keywords, grammar rules, and other databases.
- FIGS. 4 and 5 illustrate two embodiments of the present invention that take advantage of the interoperability offered by the distributed object protocol employed in the present invention. It should be understood that in both FIG. 4 and FIG. 5, that all of the clients 11 and translation engines 16 operate in accordance with a distributed object protocol.
- FIG. 4 illustrates an embodiment of the invention having a client 11 and a plurality of translation engines 16. Each translation engine 16 can receive a different translation request using a distributed object protocol from the client and produce a response corresponding to a translation of the text of the translation request. The response is sent using a distributed object protocol to the client.
- a user of client 1 1 might have a given piece of text that is in
- the user inputs the text and client 11 formulates a translation request that is sent to one of the plurality of translation engines 16.
- the translation request is sent to a translation engine 16 that performs English-Japanese ("E-J").
- E-J English-Japanese
- this system can access multiple translation engines 16 simultaneously, the system can forward the response generated by the E-J translation engine as another translation request that is sent to a Japanese to English (“J-E”) translation engine. Then, both the E-J and J-E translation engines provide responses back to client 11.
- the user at the client 11 can compare the response provided by the J-E translation engine (which translated the resultant translated text [Japanese] back to English) to the original English text, to verify the accuracy of the E-J translator.
- Such a technique is beneficial in helping a user to detect minor translation errors that occur when translation engines do not recognize the idioms in a particular language. Because these errors can result in a translation having an unintended meaning, it is very helpful to be able to access multiple translations simultaneously, regardless of the peculiarities of the particular translation engine.
- the ability of this embodiment of the invention to remotely host a multitude translation engines, regardless of their origin, has other advantages as well.
- the clients 11 may test a remote translation engine 16 using the user interfaces of their choice without the expensive download of the entire translation engine (often tens of megabytes or more).
- a user of client 11 might have a given piece of text that is in
- the user wants to translate this text into a plurality of different languages, for example Japanese, Spanish, and German.
- the client 11 need only formulate one translation request.
- the client can then send this same translation request to any one (or more) of the translation engines 16 without having to customize the translation request for each translation engine 16.
- the translation engine 16 receiving the translation request sends the client 11 a response corresponding to a translation of the text.
- the client 11 could receive Japanese, Spanish, and German translations of a given piece of English text, from different translation engines 16, using just one translation request.
- Embodiments of this aspect of the invention can include the client further comprising a user interface having a translation service for accepting translation requests and the distributed object protocol that the client and plurality of translation engines communicate with supporting a plurality of translation engines.
- the distributed object protocol used by the plurality of translation engines and the client to communicate operates in accordance with the COM standard.
- the distributed object protocol used by the plurality of translation engines and the client to communicate operates in accordance with the DCOM standard.
- FIG. 5 illustrates an embodiment of the invention having a plurality of clients 11 and a translation engine 16.
- the translation engine 16 is remotely located from one or more of the plurality of clients 11. Any one or more of the clients 11 can send a translation request to the translation engine 16 and receive a response from the translation engine corresponding to a translation of the text of the translation message.
- This embodiment is useful especially when the client 11 is running on a user computer that does not have sufficient memory or processing power to have a translation engine 16 on it.
- This embodiment also is useful for multiple "on the fly" translations requested by a multiple of remote clients 11. For example, several employees of a company each may be on business trips, but are carrying with them systems such as palmtop computers, personal digital assistants (PDA), and the like. Users of such systems have the ability to communicate with remote computers via satellite and cellular connections.
- each user's portable system can be a client 11 communicating with the same remotely located translation engine 16, sending the translation engine 16 multiple translation requests.
- each of the clients 11 communicates using a distributed object protocol, and because the translation engine 16 sends a response using a distributed object protocol, every client 11 will be able to get translations from the translation engine regardless of the type of client 11 (e.g. PDA, laptop, palmtop) or application (database, spreadsheet, etc.) that the client 11 is running.
- client 11 e.g. PDA, laptop, palmtop
- application database, spreadsheet, etc.
- FIG. 6 shows a flow chart illustrating the steps taken in a disclosed embodiment of a method of the present invention.
- the steps will be illustrated using the example of an English to Japanese translator. It should be understood that the present invention is not to be limited to any particular languages.
- the client receives input text in a first language. This text could come from a word processing document, voice input, a string of characters to be input by a user operating a keyboard, etc. For example, the following sentence could be input to the client: "Do you speak English?"
- the client generates a translation request from the input text and sends it to a translation engine in accordance with a distributed object protocol.
- the translation method includes the steps of providing to the translation engine information relating to a desired format of the translation, and in some of these embodiments, the translation method includes the steps of notifying the client if the translation engine cannot perform a translation in accordance with the information.
- step 52 optionally could further include the steps illustrated in FIG. 7.
- the text string above would first be scanned for irregularities (such as typographical errors), as illustrated in step 64.
- the source text also could include annotations, HTML markups, sentence boundary mark-ups, Part -of- Speech settings, etc., for which the translation engine could scan.
- the user can select the desired translation format.
- the translation format desired is to select a Japanese translation that results in English alphabetic characters (romaji) instead of kanji characters.
- the translation preferences object is sent to the translation engine to tell the translation engine the configured attributes of the translation.
- the translation preferences object is sent as part of the translation request. In another embodiment the translation preferences object may be sent independently of the translation request.
- step 54 the translation engine receives the translation request using a distributed object protocol.
- step 56 the translation engine then translates the text of the translation request to the second language in accordance with any selected and available translation options and in accordance with any selected translation preferences.
- the method can further comprise the step of notifying the client if an error has occurred during any of the steps.
- additional standard translation steps such as translating in accordance with a particular dictionary, translating while the client is performing other tasks, translating in accordance with a particular format, etc., can be used in accordance with this aspect of the invention.
- step 56 optionally can include the steps shown in FIG. 8. Referring to step 76 of FIG.
- the client can be notified if an error has occurred during translation. This can occur, for example, if the translation engine encounters a character for which it has no translation. In the previous example message, if the translation engine did not have an appropriate translation for the question mark at the end of the text string, it would notify the client of this error. In one embodiment notification occurs immediately. In another embodiment, the notification forms part of the response sent to the client.
- notification mechanism in accordance with the invention has an interface defined by an LDL.
- reporting of error messages is standardized between the client and the translation engine.
- error callback objects are associated with objects (such as objects associated with asynchronous translation) that generate errors.
- error callback objects can be provided as an argument to other steps.
- client user interface implements this interface with a dialog box.
- any user communication that is capable of stating the error may be used to notify the user of errors.
- numerical error identifiers are associated with custom user interface language strings, to provide error messages into the user interface application.
- the translation engine in one embodiment can notify the client of the progress of the translation. This is helpful if the text to be translated is quite long and/or if the client has selected a translation option such as asynchronous translation (which performs a translation in the background while freeing the client to perform other tasks).
- asynchronous translation which performs a translation in the background while freeing the client to perform other tasks.
- the translation engine After the translation step 56 is completed, the translation engine generates a response (step 58) and sends the response to the client (step 60) using the distributed object protocol.
- the client For the translation request:
- Any of the embodiments of the modular language translation system described herein, including all of the functionality described herein, can be provided as computer software on a computer readable medium such as a diskette or an optical compact disc (CD) for execution on a general purpose computer (e.g., an Apple Macintosh, an IBM PC or compatible, a Sun Workstation, etc.).
- a general purpose computer e.g., an Apple Macintosh, an IBM PC or compatible, a Sun Workstation, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Machine Translation (AREA)
- Multi Processors (AREA)
Abstract
A modular language translation system allows a user of any one of a variety of different user interfaces to be able to send translation requests to and receive responses from any one of a variety of different translation engines. A user of the system familiar with the user interface of a first type of translation system, such as one that translates from Japanese to English, can use that user interface to get translations from the translation engine of a second type of translation system, such as a Russian-to-English system, without having to learn the particularities of the second system and its interface. The user interfaces and the translation engines communicate via a distributed object protocol.
Description
MODULAR LANGUAGE TRANSLATION SYSTEM
Technical Field
This invention relates to automated natural language translation systems in which different user interface modules can inter-operate with different translation engine modules. For example, a single user interface module could reside on a computer and could invoke any one of a variety of available translation engine modules residing on one or more other computers located across a network.
Background Information
Machine Translation (hereinafter "MT") generally describes an area of computer applications that assist or automate the translation of text from one natural (spoken) language to another. The idea of decoding natural languages through mathematical techniques became a reality in the Cold- War period after World War II. The requirements of the intelligence community drove much of the early MT systems and research. Early MT systems typically used literal translation (word for word translation), without the use of linguistic rules. The demand for MT systems remains high in part because of the increased use and importance of the Internet and other networked computer systems. Users worldwide regularly can exchange information with a speed and convenience not possible previously. This information, however, often must be translated to a natural language in which the user is fluent. Business users in particular often need to translate documents. In general, current MT systems have user interfaces that differ depending on which source language is being translated to which target language. Thus, it is difficult for users to learn the interfaces or to translate rapidly or automatically a document into more than one target language.
For example, a certain MT system might support a translation option such as "spell check," which automatically scans a document before translation for spelling errors, whereas a different MT system might not support this option. Consequently, the user must tailor every request to translate a document to the specific options and requirements of the particular MT system being employed. Because each MT system can provide many different features and options, the user must learn and remember which MT systems are capable of particular options.
Moreover, because different MT systems often refer to the same concept by different terms, it becomes difficult for a user to set up a "standard" translation request This lack of standardization makes it difficult for users to translate various documents
Summary of the Invention The present invention provides a translation system that allows a user of any one of a variety of different user interfaces to be able to send translation requests to and receive responses from any one of a variety of different translation engines That is, a user of the present invention who is familiar with the user interface for a first type of MT system, such as one that translates from Japanese to English, can use that user interface to get translations from the translation engine of a second type of MT system, such as a Russian-to-English system, without having to learn the particularities of the second system and its interface. In addition, the present invention makes it easier for software developers to write applications that can communicate with a multitude of different MT systems Further, the present invention allows a particular MT system to be able to process translation requests from any one of a number of other MT systems In one disclosed embodiment, the present invention uses a distributed object protocol, such as the Component Object Model (COM) or the Common Object Request Broker Architecture (CORBA), for all communications between a client and a translation engine The client and the translation engine each have an interface defined by an interface definition language (DDL) All translation requests sent by the client and all responses generated by the translation engine are sent in accordance with the IDL that defines those interfaces Therefore, the client interface and translation engine will be able to communicate regardless of what machine they are running on (as long as the machines are connected, such as by a network), what operating system the machine is running (as long as it supports the distributed object protocol employed), or the computer language in which the client or translation engine is written (as long as the language system supports the distributed object protocol)
By using a distributed object protocol to standardize the way in which user interfaces talk to translation engines, as proposed in the present invention, developers can design MT systems in a "modular" fashion This benefits both the developers and users of MT systems Users who purchase and familiarize themselves with an MT system for one type of language, such as English to Spanish, can use the interface from that system to communicate with an entirely different MT system, such as English to French, as needed without having to re-learn a new system
In general, in one aspect, the invention features a translation system having a client and a translation engine. The client sends a translation request comprising text to be translated from a first language to a second language using a distributed object protocol. The client receives a response to the request using the distributed object protocol. The translation engine receives the translation request using the distributed object protocol and generates the response corresponding to a translation of the text from the first language to the second language, and sends the response to the client using the distributed object protocol.
Embodiments of this aspect of the invention can include the following features. The translation request and the response can be sent in accordance with an IDL, the IDL defining an interface at the client and an interface at the translation engine. The distributed object protocol used by the client and the translation engine to communicate can support a plurality of user interfaces. The distributed object protocol can operate in accordance with the Component Object Model (COM) standard or the Common Object Request Broker Architecture (CORBA) standard. The system can include a notification mechanism having an interface defined by an IDL by which the translation engine can inform the client of errors that occur during translation. The system can include a registration mechanism having an interface defined by an IDL by which the translation engine can register itself to be found by the client and can inform the client of components such as user dictionaries that are available with the translation engine. The client and the translation engine can be located on the same computer, or on different computers connected to each other. For example, the client and the translation engine can communicate over a computer network. The text to be translated can be represented by a character set that is capable of including characters used in a multitude of languages, such as UNICODE.
In general, in another aspect, the invention features a translation method in which a translation request is sent from a client to a translation engine using a distributed object protocol. The translation request comprises text to be translated from a first language to a second language. At the translation engine, the request is received using the distributed object protocol, and a translation is performed in response to the received request. The translation is included in a response to the request, and the response is sent from the translation engine to the client using the distributed object protocol. Embodiments of this aspect of the invention can include the following features. For example, the step of sending a translation request from the client can comprise sending a
translation request from the client to the translation engine in accordance with an IDL, where the IDL defines an interface at the client and at the translation engine. The translation method can include the step of providing a registration mechanism by which the translation engine can register itself to be found by the client, the registration mechanism having an interface defined by an LDL. The translation method can include the step of scanning the translation request for irregularities in the text, such as misspellings or undefined words, prior to sending it to the translation engine for translation. The translation method can include the step of providing to the client information regarding the progress of the translation by the translation engine.
In general, in still other aspects, the invention features a translation system comprising either a plurality of translation engines and a client or a translation engine and a plurality of clients. In either case, the single unit can inter-operate with any one of the plurality of units, and they communicate using a distributed object protocol such as COM or CORBA. In the first embodiment, there can be one or more clients, and in the second embodiment, there likewise can be one or more translation engines. In one embodiment, each of the one or more clients and each of the one or more translation engines has an interface define by an LDL, so that all communication between a client and a translation engine will occur in accordance with the LDL. In one embodiment, a translation engine can maintain separate contexts for each translation request that it receives, enabling the translation engine to translate each request in accordance with particular translation format that might be associated with the translation request. The foregoing and other options, aspects, features, and advantages of the invention will become more apparent from the following detailed description of the invention when taken in conjunction with the accompanying drawings.
Brief Description of the Drawings
In the drawings, like reference characters generally refer to the same parts throughout the different views. Also, the drawings are not necessarily to scale, emphasis instead generally being placed upon illustrating the principles of the invention.
FIG. 1 is a block diagram of a modular language translation system in accordance with the invention.
FIG. 2 is a block diagram of a particular embodiment of the modular language translation system of FIG. 1 in accordance with the invention.
FIG. 3 is another block diagram of a modular language translation system of the invention.
FIG. 4 is a block diagram of a modular language translation system having multiple translation engines, in accordance with one embodiment of the invention.
FIG. 5 is a block diagram of a modular language translation system having multiple clients, in accordance with another embodiment of the invention.
FIG. 6 is a flow diagram illustrating the operation of the system of FIG. 2.
FIG. 7 is a flow diagram illustrating in more detail the step of sending a translation request shown in FIG. 6.
FIG. 8 is a flow diagram illustrating in more detail the translating step of translating shown in FIG. 6.
Description
Referring to FIGS. 1 and 2, in one embodiment a language translation system 10 according to the invention includes a client 11 and a translation engine 16. The client 11 can be any type of system (e.g., a user interface) capable of sending a translation request in accordance with a distributed object protocol to the translation engine 16 and receiving a response from the translation engine 16 in accordance with the distributed object protocol. (The distributed object protocol is explained more fully below.) For example, the client 11 could be a proxy server operating in accordance with a protocol such as Gopher, File Transfer Protocol (ftp), HyperText Transport Protocol (http), Simple Network Management Protocol (SNMP), and Simple Mail Transfer Protocol (SMTP), that calls a translation engine 16 to instantly translate content downloaded from a computer network such as the world-wide- eb (WWW). In another embodiment, a client 11 could be a "web-crawler" or "web-robot" that searches the WWW for content and generically translates the content into a common language. The client 11 can be composed entirely of hardwired logic circuitry, but it preferably is realized mainly in software executing on a general purpose computer such as a PC or workstation.
In one embodiment, the client uses a character set that includes characters used in a plurality of languages, such as the UNICODE character set, which is an international character encoding standard that permits computers in one world language community to "talk" with those in another language community. For example, a client in one embodiment is a word processing
application running on a computer. Alternatively, other software applications, such as spreadsheets, database programs, web browsers, etc., can be a client 11. The client 11 has a client interface 94 that is specified to be in accordance with the distributed object protocol. Preferably, this client interface 94 is defined by an interface definition language (IDL), but one skilled in the art will recognize that other mechanisms can be used to define the client interface 94. Software developers commonly work with this interface. In addition, in another embodiment, a client has a user interface 24 enabling the user of the application to interact with that application. The user interface 24 of the application or program can have a translation service that accepts translation requests. For example, in a script-enabled application such as MICROSOFT WORD 7.0, a WORD document could contain Nisual Basic script that can transmit a translation request using a distributed object protocol.
In one embodiment, the translation request includes text to be translated from one natural language to another. The translation request can also include or alternatively can include information directing the translation engine how it should perform the translation, information relating to the particular text to be translated, information relating to the order of translation, or information relating to a particular dictionary to use during translation. For example, the information included with the translation request may include part-of-speech settings (indicating the particular parts of speech of one or more words in the text); translation hints; indicators of sentence boundaries; translation guidelines; indications for types of words to translate in a particular fashion, or indicators of discontinuities in the text. The information further could include information relating to the desired translation preferences indicating preferred dictionaries, alternate word settings, alternate translations, and alternate sentence translations, as well as indications as to what parts of the text to which the options should be applied. These examples of information are not intended to be limiting; one skilled in the art will recognize that many different types of translation preferences and options may be desirable to be included in the translation request. The information also can include markups such as Hypertext Markup Language ("HTML") and Standard Generalized Markup Language ("SGML") markup; Rich Text Format ("RTF") markup; and Νontypesetting Runoff ("ΝROFF") markup.
In some embodiments, systems other than general purpose computers are employed to realize the client 11, including palmtop computers, personal organizers, mainframe computers, and fax machines. Any system capable of communicating in accordance with the distributed
object protocol is intended to be within the scope of the invention. In one embodiment, it is preferred that the distributed object protocol of the present invention support a plurality of user interfaces, computers, applications, etc. It is also preferred that an LDL defines an interface at each system used to realize the client 11. Referring to the embodiments illustrated FIGS. 1 - 3, the translation engine 16 comprises a system that can receive the translation request in accordance with the distributed object protocol and it, like the client 11, preferably is realized mainly in software executing on a general purpose computer. Also, like the client 11, the translation engine 16 in this embodiment has a translation engine interface 96 that is specified to be in accordance with the distributed object protocol. Preferably, the translation engine interface 96 is defined by an IDL, although other mechanisms can be used to define the translation engine interface 96, as will be appreciated by those skilled in the art. It should be understood, however, that the translation engine 16 and client 11 could each be realized in any machine, apparatus, or article of manufacture capable of communicating using a distributed object protocol and capable of having an interface specified to be in accordance with a distributed object protocol. The translation engine 16 performs translation operations on the source text, in conjunction with data in storage 18. Commonly, data in storage 18 corresponds to all sorts of information used or useful in performing the translation including one or more dictionaries, domain keywords, grammar rules, other databases, etc. The translation engine 16 can be located on the same computer as the client 11 or on a separate computer in communication with the client 11.
After the translation engine 16 receives the translation request from the client 11, the translation engine 16 translation engine 16 translates the text from the first language to the second language. The translation engine 16 then uses this translated text to generate a response to send back to the client 11. The translation engine 16 sends the response to the client 11 using a distributed object protocol.
Referring to FIG. 2, which illustrates a particular embodiment of the invention, the translation system 10 also preferably includes a registry 84 by which client 11 can locate available translation engines 16. For example, when client 11 wants to submit a translation request, the client 11 can check the registry 84 to find out what translation engines are accessible to the client 11. In one embodiment this checking includes searching for translation engines 16 installed at the client 11. In another embodiment, the registry 84 searches across a computer network such as the
WWW to locate other translation engines 16 that operate in accordance with a distributed object protocol. In still another embodiment the registry 84 also provides information about options and/or components available on each located translation engine 16. Typically, these components include one or more of the following: user dictionaries, syntax dictionaries, user dictionary editors, dictionary browsers, secondary translation engines, alternate word finders, alternate sentence translators, sentence boundary finders, asynchronous (background) translators, synchronous translators, fuzzy translation matching, part-of-speech settings, selective translation, spell-checkers, and translation memory archives.
A translation engine 16 can have associated with it one or more translation options 86. A translation option 86 corresponds to a "global" option that applies to any translation request sent to the translation engine 16. For example, a translation option 86 might be an operation that scans for undefined words. Thus, for any translation request that a client 11 sends to a translation engine 16 having this option, the translation engine will scan text of the translation request for undefined words. In addition, the registry 84 listing the translation engine 16 having this option could indicate as part of the registry 84 that this translation option is available at this translation engine 16.
The translation request that the client 11 sends to the translation engine 16 typically comprises at least some text to be translated from a first natural language to a second natural language. For example, the translation request could comprise some English text that needs to be translated into Japanese. It should be understood that the invention is not limited to any particular pairs of languages. As noted above, the translation request can comprise information other than text to be translated, such as information directing the translation engine 16 to perform the translation in a particular manner or in a particular format. For example, the translation request can comprise a translation preference directing the translation engine 16 to translate in accordance with a particular user dictionary 38. Use of particular user dictionary 38 may be desirable in examples where the text to be translated relates to a particular domain of interest (such as technical or financial); use of a technical or financial dictionary helps to ensure accuracy of translating words that have specific meanings in those domains.
The information discussed above directing the translation engine 16 to perform the translation in a particular way, generally referred to as translation preferences, can be handled by the translation engine 16 in several ways. In one embodiment, the translation engine uses one or
more translation preferences objects 88 that are responsive to information in the translation request relating to a desired format of the translation. In another embodiment, the translation system 10 can further include a preferences editor 26 that permits the client to set the preferences that will be provided to the translation engine 16 as a translation preferences object. The translation request can be generated in a number of well-known ways. FIG. 3 illustrates one embodiment of the invention used with a system that can provide text to be translated and includes the client 11 having an input interface 12, a display 20, an output interface 14, and a user input device 22. In some embodiments, the user input interface 12 can be a keyboard, a mouse, touchscreen, or light pen. It should be understood that any user input device that a client 11 can use can be used as a user input interface 12. For example, in one embodiment the input interface 12 comprises a connection to a source that can provide text to be translated, such as a modem, serial line, web page, or another system in communication with the client 11. In some embodiments, the display 20 comprises a computer display or printer. Any apparatus or system capable of communicating information to the client 11 may be used as a display. The output interface 14 communicates the final translation of the source text in the second language, where the translation comes from the response sent by the translation engine 16. The output interface 14 may comprise a printer, fax machine, a voice interface, an electronic interface, such as a modem or serial line, or it may include other means for communicating the text to the end user.
The client 11 and translation engine 16 can be interconnected in any number of well- known ways to permit the client 11 to send a translation request to the translation engine 16. For example, in one embodiment, the client 11 and translation engine 16 are located on the same computer system. In another embodiment, the client 11 and translation engine 16 are located on different computers capable of communicating with each other. In another embodiment, this communication occurs via a computer network, such as the Internet. In still other embodiments, communication occurs via a wireless communication system, through coaxial cable such as a cable TN line, through a high speed communications link, or through a telephone line.
In addition, in still another embodiment, the client 11 and translation engine 16 could share a thin (narrowly defined) interface, wherein the thin interface is flexible enough to allow the client 11 and translation engine 16 to communicate, but supports only a limited number of Application Program Interfaces (API).
The distributed object protocol with which the client 11 and translation engine 16 communicate is a standard governing the creation of and communication between objects and distributed objects (objects that communicate with objects on other network nodes). Distributed object computing simplifies system development and maintenance by creating reusable pieces of code (commonly known as objects) and by allowing objects installed on different computers to communicate over a network. A software object is a collection of related function (or intelligence) and the function's (or intelligence's) associated state. A set of distributed objects, such as a set including all of the objects illustrated in Fig. 2 (the client 11, translation engine 16, dictionary browser 46, etc.), is a collection of independently operating nodes. In one embodiment, each node comprises an independent process. In another embodiment, each node has independent storage. However, it should be understood that a node need not comprise an independent process to be usable with the invention. In some embodiments, each node is on a separate and independent computer, on the same computer as all other nodes, or distributed among two or more computers. A number of different distributed object protocols are presently available and could be used with the present invention. These include, for example, the Microsoft Component Object Model (COM), the Microsoft Distributed Component Object Model (DCOM), NisualWorks' Distributed Smalltalk, JAVA RML, and the Object Management Groups' s Common Object Request Broker Architecture (CORBA) with its Internet Inter-Orb Protocol (HOP). In the disclosed embodiment, COM and CORBA are the preferred distributed object protocols. COM presently is the defacto standard for building component architectures.
Under a distributed object protocol, objects on one node know the names of objects on other nodes. Handles to the distributed objects (also called interface pointers or object references) can be passed from machine to machine, program to program, and process to process. Any entity that can access a handle to a distributed object can call methods on it (calling methods is synonymous with sending a message). Thus, objects on one node can directly send messages to objects on other nodes, and objects on one node can freely migrate to another node. One way of ensuring that objects operating in accordance with a distributed object protocol can communicate with each other is by specifying on interface on each object using an interface definition language (LDL). When interfaces are specified using an LDL, the objects can communicate with each other
even if the objects themselves are written in different programming languages, by different vendors, or as different versions of the same program.
Thus, an advantage of the disclosed system, which uses a distributed object protocol and has interfaces defined by LDLs, is interoperability. Clients and translation engines developed in accordance with the present invention can be treated as interoperable software modules, instead of as incompatible proprietary systems, such as are presently being employed in conventional language translation systems. Further, clients and translation engines developed in accordance with the present invention will be language, vendor, and version neutral. Thus, using this invention, a software developer can to design a translation API that works with multiple providers of a translation service transparently; that is, without any special knowledge of which provider or implementation is in use. Using the present invention, the provider of a translation service can express new, enhanced, or unique translation components to potential consumers in a standard manner, without worries that new versions will be incompatible with consumer's systems.
The problems faced by a software developer who wants to be able to develop a user interface (client) capable of using multiple translation engines are somewhat akin to the user of a personal computer who wants to be able to send a document to any one of a number of printers from any one of a number of applications. Such a user does not want to have to learn the various names and options that the applications and/or the printer manufacturers have given to printing options. To simplify this task, developers of desktop applications such as word processors and spreadsheets established standard "printer drivers" that make the task of conforming to a particular printer's needs transparent to the user. The user need only be familiar with the particular print interface of the application he or she is using. The user merely pulls up the standard "print" menu from the application's interface, selects from a set of standard print options (such as "double-sided"), and selects the desired printer. Users can select default options and/or default printers with confidence, knowing that the application and the printer will communicate to accomplish the desired functions or will alert the user when functions are not available. Users of a multitude of applications, therefore, are interoperable with a multitude of printers because the printers and applications act as objects defined by a standard protocol. By requiring that translation engines and clients be defined by a standard protocol, such as a distributed object protocol, the present invention enables clients and translation engines to be interoperable.
Referring again to FIG. 2, some of the options and features that one embodiment of a translation system 10 in accordance with the invention might include are shown. The translation system 10 comprises: a client 11 having a user interface 24, a translation engine 16 comprising a translation preferences server 28, synchronous translator 30, asynchronous translator 32, alternate word server 34, and translation server 36, a user dictionary editor 44, a dictionary browser 46, a preferences editor 26, a user dictionary 38, a syntax dictionary 40, and a base dictionary 42, part- of-speech registry 90, registry 84, alternate sentence server 92, translation option 86, and translation preference object 88.
The user interface 24 has a translation service for accepting translation requests. In one embodiment, the user interface 24 is a translation service comprising a standard set of fields into which the client 11 provides text to be translated and/or translation options. The user interface 24 need not be located on the same computer as the client. A user interface 24 might exist at a remote location accessible to the client 11, such as on a site accessible by a web browser.
In the disclosed embodiment of FIG. 2, the user interface 24 will be the same regardless of the translation request that a client 11 wants to make. That is, regardless of the application or system, a consistent user interface 24 is presented to the client. The user interface 24 permits a client to specify options that affect the translation performed by the translation engine 16. In addition, a client 11 using the user interface 24 can use the user interface 24 to tell the user of the system 10 if the translation engine 16 supports a particular translation preference, such as spell- checking. The client 11 sends a message to a preferences editor 26, which communicates with the translation preferences server 28 to see if the translation preferences that have been selected are available at the translation engine 16. Preferably, the preferences editor 26 has an interface defined by an LDL. The preferences editor 26 then notifies the client 11 about the availability of the translation preference so that the client 11 can formulate the translation request in accordance with this information and also provide this information to the user interface 24. When the translation engine 16 receives the translation request sent by the client 11 in accordance with the translation preferences, the translation server 36 receives the preference information and ensures that the translation engine 16 translates in accordance with it.
As an example of the use of preferences, consider an example of requesting a particular user dictionary. When the client 11 interacts with the preferences editor 26, the preferences editor 26 will display to the client 11 only the user dictionaries 38 available to the translation
engine 16. If the client 11 selects a particular user dictionary 38, then the preferences editor 26 ensures that each time the client 11 sends a translation request to the translation engine, that the translation preferences object 88 reflects the preferred dictionary that the client 11 has selected. In one embodiment, the preferred dictionary is used until the client 11 resets the preference. Thus, the translation preferences may operate similarly to preferences used in other applications such as web browsers.
As an example of the use of options, consider the example of a spell-checker. If spell- checking is not available for translator 16, then when the user interface 24 is displayed to the user of the system, the spell-checking option will be displayed in a way that indicates that the user cannot select it as an option. For example, a selectable box for spell-checking on the user interface 24 might be "grayed out," indicating to the user that the user cannot select that option. However, if spell-checking is available at translation engine 16, then the user interface 24 will permit the user to select it as an option. Such a technique permits the client 11 and user interface 24 to be interoperable with translation engines 16 having different types of options. This type of feature can be used with components displayed in the registry 84 as well.
The embodiment of FIG. 2 provides other features helpful to a user seeking to translate text. The synchronous translator 30 is used if translation needs are simple. Preferably, the synchronous translator is implemented such that it has an interface defined by an LDL. It provides immediate translation. When the client 11 sends a translation request that requests use of the synchronous translator 30, the client waits for the translation engine 16 to send a response containing the translation of the text.
For example, an end user application, such as a word processing application, could contain script that calls for instant translation of a portion of text. Such script (typically Visual Basic Script) calls the synchronous translator 30. Software developers skilled in the art will recognize that many other programs can be written in accordance with the LDL to take advantage of the synchronous translator 30.
In contrast, when a client 11 sends a translation request that requires use of the asynchronous translator 32, the translation engine 16 will perform a translation in the background, so that the client 11 can perform other operations while the translation engine 16 is working. While the client 11 is performing other operations the translation engine 16 keeps the client 11
informed of the progress of the translation by providing information regarding this progress The translation engine 16 can send this information directly to the client 11, or the client 11 can poll the translation engine 16 for this information.
When the client 11 sends a translation request to the asynchronous translator 32, the client 11 also provides the asynchronous translator 32 with a text to translate and a place to write the results. The client 11 provides two additional interfaces for this purpose: the translation source interface 96 and the translation sink interface 100 Each of these interfaces is specified by an LDL The translation source interface 96 provides the text; the translation sink interface 100 consumes the translation (results are written to it). In other embodiments, the translation source interface 96 also can allow specification of annotations such as use-specified part of speech settings, HTML markup, etc. In still other embodiments, the translation sink interface 100 not only retrieves translated text, but also supplies part-of-speech information and dictionary source information from the translation engine 16.
In addition, when using the asynchronous translator 32, a client 11 also may want to know how to obtain progress information and know when the translation is done. In one embodiment, the client can provide a translation progress object 102 that is associated with the asynchronous translator 32 and receives notifications of progress The translation progress object 102 has on interface defined by an LDL. In another embodiment, a client 11 can instead poll the asynchronous translator 32 for progress information Other features of the embodiment of FIG. 2 include the following. A sentence end finder
80, which has an interface defined by an LDL, attempts to find sentence boundaries in the text to be translated without performing a translation. An error handler 82 provides a notification mechanism to inform the client 11 if an error has occurred during translation, during the receipt of a translation request, during the receipt of preferences information, etc. Preferably, the error handler 82 is implemented using a call back interface defined by an LDL for specifying errors, providing severity information, and providing numerical error identifications. In other embodiments, an error call back object is associated with another object that operates in accordance with a distributed object protocol, such as the asynchronous translator 32, a client 11, or a user interface 24 In some embodiments, the translation engine 16 provides a response to the client 11 in accordance with information relating to a desired format of the translation and in some of these
embodiments, the client 11 is notified if a desired format is unavailable. In some embodiments, the translation system 10 further comprises an alternate word server 34 for locating at least one alternate word choice for a given translation request and communicating that alternate word choice to the client 11 and translation engine 16. In some embodiments, the system translates Japanese to English or vice-versa. In some embodiments, the translation engine can include a translation server for receiving information related to the desired format of the translation. Many other types of translation system features, such as custom dictionaries, spell checkers, background (asynchronous) translators, immediate (synchronous) translators, error checkers, etc., can also be included, as will be understood by those of ordinary skill. Referring to FIG. 3, in another embodiment the translation engine further comprises storage 18 that may include one or more areas of disk (e.g., hard, floppy, optical, etc.) and/or memory (e.g., RAM) storage, or the like. The storage 18, in some embodiments, is used to store input textual information in a source natural language, output textual information in a target natural language, and all sorts of information used or useful in performing the translation including one or more dictionaries, domain keywords, grammar rules, and other databases.
FIGS. 4 and 5 illustrate two embodiments of the present invention that take advantage of the interoperability offered by the distributed object protocol employed in the present invention. It should be understood that in both FIG. 4 and FIG. 5, that all of the clients 11 and translation engines 16 operate in accordance with a distributed object protocol. FIG. 4 illustrates an embodiment of the invention having a client 11 and a plurality of translation engines 16. Each translation engine 16 can receive a different translation request using a distributed object protocol from the client and produce a response corresponding to a translation of the text of the translation request. The response is sent using a distributed object protocol to the client. Thus, for example, in FIG 4, a user of client 1 1 might have a given piece of text that is in
English and needs to be translated into Japanese. The user also wants to be able to tell how accurate the translation is. The user inputs the text and client 11 formulates a translation request that is sent to one of the plurality of translation engines 16. In this case, the translation request is sent to a translation engine 16 that performs English-Japanese ("E-J"). Because this system can access multiple translation engines 16 simultaneously, the system can forward the response
generated by the E-J translation engine as another translation request that is sent to a Japanese to English ("J-E") translation engine. Then, both the E-J and J-E translation engines provide responses back to client 11. The user at the client 11 can compare the response provided by the J-E translation engine (which translated the resultant translated text [Japanese] back to English) to the original English text, to verify the accuracy of the E-J translator. Such a technique is beneficial in helping a user to detect minor translation errors that occur when translation engines do not recognize the idioms in a particular language. Because these errors can result in a translation having an unintended meaning, it is very helpful to be able to access multiple translations simultaneously, regardless of the peculiarities of the particular translation engine. The ability of this embodiment of the invention to remotely host a multitude translation engines, regardless of their origin, has other advantages as well. For example, in one embodiment the clients 11 may test a remote translation engine 16 using the user interfaces of their choice without the expensive download of the entire translation engine (often tens of megabytes or more). In another example, in FIG. 4, a user of client 11 might have a given piece of text that is in
English. The user wants to translate this text into a plurality of different languages, for example Japanese, Spanish, and German. The client 11 need only formulate one translation request. The client can then send this same translation request to any one (or more) of the translation engines 16 without having to customize the translation request for each translation engine 16. The translation engine 16 receiving the translation request sends the client 11 a response corresponding to a translation of the text. Thus, the client 11 could receive Japanese, Spanish, and German translations of a given piece of English text, from different translation engines 16, using just one translation request.
Embodiments of this aspect of the invention can include the client further comprising a user interface having a translation service for accepting translation requests and the distributed object protocol that the client and plurality of translation engines communicate with supporting a plurality of translation engines. In another embodiment, the distributed object protocol used by the plurality of translation engines and the client to communicate operates in accordance with the COM standard. In another embodiment, the distributed object protocol used by the plurality of translation engines and the client to communicate operates in accordance with the DCOM standard.
FIG. 5 illustrates an embodiment of the invention having a plurality of clients 11 and a translation engine 16. In this embodiment, the translation engine 16 is remotely located from one or more of the plurality of clients 11. Any one or more of the clients 11 can send a translation request to the translation engine 16 and receive a response from the translation engine corresponding to a translation of the text of the translation message.
This embodiment is useful especially when the client 11 is running on a user computer that does not have sufficient memory or processing power to have a translation engine 16 on it. This embodiment also is useful for multiple "on the fly" translations requested by a multiple of remote clients 11. For example, several employees of a company each may be on business trips, but are carrying with them systems such as palmtop computers, personal digital assistants (PDA), and the like. Users of such systems have the ability to communicate with remote computers via satellite and cellular connections. In accordance with this embodiment of the invention, each user's portable system can be a client 11 communicating with the same remotely located translation engine 16, sending the translation engine 16 multiple translation requests. Because each of the clients 11 communicates using a distributed object protocol, and because the translation engine 16 sends a response using a distributed object protocol, every client 11 will be able to get translations from the translation engine regardless of the type of client 11 (e.g. PDA, laptop, palmtop) or application (database, spreadsheet, etc.) that the client 11 is running.
One skilled in the art will recognize that all of the embodiments applicable to the aspects of the invention involving a single client and a single translation engine are likewise applicable to embodiments of the invention involving multiple clients and/or multiple translation engines. Many other types of translation system features, such as custom dictionaries, translation options, spell checkers, etc., can also be included, as will be understood by those of ordinary skill.
FIG. 6 shows a flow chart illustrating the steps taken in a disclosed embodiment of a method of the present invention. The steps will be illustrated using the example of an English to Japanese translator. It should be understood that the present invention is not to be limited to any particular languages. Referring to step 48, the client receives input text in a first language. This text could come from a word processing document, voice input, a string of characters to be input by a user operating a keyboard, etc. For example, the following sentence could be input to the client:
"Do you speak English?"
Next, in steps 50 and 52, the client generates a translation request from the input text and sends it to a translation engine in accordance with a distributed object protocol. In some embodiments, the translation method includes the steps of providing to the translation engine information relating to a desired format of the translation, and in some of these embodiments, the translation method includes the steps of notifying the client if the translation engine cannot perform a translation in accordance with the information. Thus, step 52 optionally could further include the steps illustrated in FIG. 7. In this example, the text string above would first be scanned for irregularities (such as typographical errors), as illustrated in step 64. The source text also could include annotations, HTML markups, sentence boundary mark-ups, Part -of- Speech settings, etc., for which the translation engine could scan. Next, referring to step 66, the user can select the desired translation format. In this example, the translation format desired is to select a Japanese translation that results in English alphabetic characters (romaji) instead of kanji characters. Next, referring to steps 68 and 70, the translation preferences object is sent to the translation engine to tell the translation engine the configured attributes of the translation. In one embodiment the translation preferences object is sent as part of the translation request. In another embodiment the translation preferences object may be sent independently of the translation request.
Referring again to FIG. 6, in step 54 the translation engine receives the translation request using a distributed object protocol. Referring to step 56, the translation engine then translates the text of the translation request to the second language in accordance with any selected and available translation options and in accordance with any selected translation preferences. In some embodiments the method can further comprise the step of notifying the client if an error has occurred during any of the steps. One skilled in the art will recognize that additional standard translation steps, such as translating in accordance with a particular dictionary, translating while the client is performing other tasks, translating in accordance with a particular format, etc., can be used in accordance with this aspect of the invention. Thus, for example, step 56 optionally can include the steps shown in FIG. 8. Referring to step 76 of FIG. 8, the client can be notified if an error has occurred during translation. This can occur, for example, if the translation engine encounters a character for which it has no translation. In the previous example message, if the translation engine did not have an appropriate translation for the question mark at the end of the
text string, it would notify the client of this error. In one embodiment notification occurs immediately. In another embodiment, the notification forms part of the response sent to the client.
Another feature of the notification mechanism of the present invention is that the notification mechanism in accordance with the invention has an interface defined by an LDL. Thus, reporting of error messages is standardized between the client and the translation engine.
For example, in one embodiment there is a callback interface, as is understood by these skilled in the art, for specifying errors, providing severity information, and providing numerical identifiers for the errors. In one embodiment error callback objects are associated with objects (such as objects associated with asynchronous translation) that generate errors. In another embodiment the error callback objects can be provided as an argument to other steps. In one embodiment the client user interface implements this interface with a dialog box. However, it should be understood that any user communication that is capable of stating the error may be used to notify the user of errors. In another embodiment implementing this notification mechanism, numerical error identifiers are associated with custom user interface language strings, to provide error messages into the user interface application.
In step 78 of FIG. 8, the translation engine in one embodiment can notify the client of the progress of the translation. This is helpful if the text to be translated is quite long and/or if the client has selected a translation option such as asynchronous translation (which performs a translation in the background while freeing the client to perform other tasks).
Referring again to FIG. 6, after the translation step 56 is completed, the translation engine generates a response (step 58) and sends the response to the client (step 60) using the distributed object protocol. Using the previous example, for the translation request:
"Do you speak English?" the client receives a response comprising text in the second language. For an English to Japanese translation engine, in accordance with the option of using an English alphabetic characters, the text received would be:
"Eigo o hanashi mas ka?"
Any of the embodiments of the modular language translation system described herein, including all of the functionality described herein, can be provided as computer software on a computer readable medium such as a diskette or an optical compact disc (CD) for execution on a general purpose computer (e.g., an Apple Macintosh, an IBM PC or compatible, a Sun Workstation, etc.).
Variations, modifications, and other implementations of what is described herein will occur to those of ordinary skill in the art without departing from the spirit and the scope of the invention as claimed. Accordingly, the invention is to be defined not by the preceding illustrative description but instead by the spirit and scope of the following claims. What is claimed is:
Claims
1. A translation system, comprising: (a) a client for sending a translation request using a distributed object protocol, the translation request comprising text to be translated, the client also for receiving a response to the request using the distributed object protocol corresponding to a translation of the text from a first language to a second language; and (b) a translation engine for receiving the translation request using the distributed object protocol and for generating the response and sending the response to the client using the distributed object protocol.
2. The translation system of claim 1 wherein the translation request and the response are sent in accordance with an interface definition language (LDL), the LDL defining an interface at the client and an interface at the translation engine.
3. The translation system of claim 1 wherein the distributed object protocol used by the client and the translation engine operates in accordance with the Component Object Model (COM) standard.
4. The translation system of claim 1 wherein the distributed object protocol used by the client and translation engine operates in accordance with the common Object Request Broker Architecture (CORBA) standard.
5. The translation system of claim 1 wherein the client and the translation engine are located on the same computer.
6. The translation system of claim 1 wherein the client and translation engine are located on different computers in communication with each other.
7. The translation system of claim 6 wherein the client and the translation engine communicate over a wide area network.
8. The translation system of claim 6 wherein the client and the translation engine communicate over a local area network.
9. The translation system of claim 6 wherein the client and the translation engine communicate over the world wide web.
10. The translation system of claim 1 wherein the text to be translated is represented by a character set that includes characters used in a plurality of languages.
11. The translation system of claim 1 wherein the text to be translated is represented by UNICODE.
12. The translation system of claim 1 wherein the translation request further comprises at least one of the following: part-of speech setting, annotation, HTML markup; SGML markup, RTF markup, NROFF markup, translation option, alternate word setting, alternate translation, sentence-end annotation, translation guideline, translation hint, and an indicator of discontinuities in the text.
13. The translation system of claim 1 further comprising a notification mechanism by which the translation engine can inform the client of at least one error that occurs during translation.
14. The translation system of claim 13 wherein the notification mechanism comprises a callback interface having at least one error callback object, the callback interface defined by an LDL, and wherein the translation engine informs the client of an error occurring during translation by associating the error with the error-callback object.
15. The translation system of claim 1 wherein the client further comprises a user interface having a translation service for accepting translation requests.
16. The translation system of claim 15 wherein the distributed object protocol used by the client and the translation engine supports the user interface and a plurality of other user interfaces.
17. The translation system of claim 1 wherein the distributed object protocol used by the client and the translation engine supports the translation engine and a plurality of other translation engines.
18. The translation system of claim 1 further comprising a registration mechanism by which the translation engine can register itself to be found by the client, the registration mechanism having an interface defined by an LDL.
19. The translation system of claim 18 wherein the registration mechanism includes information relating to at least one component available with the translation engine.
20. The translation system of claim 18 wherein the component is chosen from the group consisting of a user dictionary, syntax dictionary, user dictionary editor, dictionary browser, secondary translation engine, alternate word finder, alternate sentence, sentence end finder, background translation, fuzzy translation matching, part-of-speech settings, selective translation, and translation memory archives.
21. The translation system of claim 1 wherein the translation request further comprises information relating to a desired format of the translation and wherein the translation engine uses a translation preferences object responsive to the information for controlling how the translation engine processes the translation request from the client, the translation preferences object having an interface defined by an LDL;
wherein the translation engine generates a response to the translation request using the distributed object protocol in accordance with the desired format of the translation.
22. The translation system of claim 21 further comprising a preference editor for permitting the client to input the desired format of the translation to the preference editor using the distributed object protocol, the preference editor having an interface defined by an LDL, wherein the preference editor provides the information relating to the desired format of the translation to the translation engine as a translation preference object using a distributed object protocol.
23. The translation system of claim 1 wherein the translation engine further comprises a synchronous translator for providing the client with an immediate response to the translation request using a distributed object protocol, the synchronous translator having an interface defined by an LDL.
The translation system of claim 1 wherein the client further comprises a script-enabled application for calling the synchronous translator, wherein text in the application can be translated by providing script in the application that calls the synchronous translator using a distributed object protocol
The translation system of claim 1 wherein the client further comprises a source that provides the text to be translated and a location for storing the response sent by the translation engine, and wherein the translation engine further comprises an asynchronous translator for providing the client with the response to the translation request using the distributed object protocol while the client is performing other actions, the asynchronous translator having an interface defined by an LDL,
wherein the source provides the asynchronous translator with the text to be translated using the distributed object protocol, and
wherein the location receives the response sent by the asynchronous translator using a distributed object protocol
The translation system of claim 25 wherein the client polls the asynchronous translator using the distributed object protocol for information relating to the progress of the translation
The translation system of claim 25 wherein the asynchronous translator provides to the client information relating to the progress of the translation while the translation is occurring using the distributed object protocol
The translation system of claim 1 wherein the client further composes a progress object for receiving information from the translation engine regarding the progress of the generation of a response by the translation engine using the distributed object protocol, the progress object having an interface defined by an LDL
The translation system of claim 1 further comprising an alternate word server for locating at least one alternate word choice in response to a request from the client using the distributed object protocol, the alternate word server having an interface defined by an
LDL, wherein the alternate word server communicates the alternate word choice to the client using a distributed object protocol.
30. The translation system of claim 1 further comprising an alternate sentence server for locating at least one alternate sentence choice in response to a request from the client using the distributed object protocol, the alternate sentence server having an interface defined by an LDL, wherein the alternate sentence server communicates the alternate sentence choice to the client using a distributed object protocol.
31. The translation system of claim 1 further comprising a sentence end server for determining the ends of sentences and the positions of sentences in the text in response to a request from the client using the distributed object protocol, the sentence end server having an interface defined by an LDL, wherein the sentence-end server communicates this information to the client using a distributed object protocol.
32. The translation system of claim 1 further comprising a part-of-speech registration mechanism indicating the parts of speech available at the translation engine, the part-of- speech registration mechanism having an interface defined by an LDL, wherein the part-of- speech registration mechanism communicates this information to the client using a distributed object protocol.
33. A translation method, comprising: (a) sending a translation request from a client to a translation engine using a distributed object protocol, the translation request comprising text to be translated from a first language to a second language; (b) receiving, at the translation engine, the request using the distributed object protocol; (c) performing, at the translation engine, a translation of the text from a first language to a second language in response to the received translation request, said translation producing a response corresponding to the translation of the text from the first language to the second language; and (d) sending the response from the translation engine to the client using the distributed object protocol.
34. The method of claim 33 wherein the step of sending a translation request from a client further comprises sending a translation request from a client to a translation engine in accordance with an LDL defining an interface at the client and an interface at the translation engine.
35. The method of claim 33 further comprising the step of providing a registration mechanism by which the translation engine can register itself to be found by the client, the registration mechanism having an interface defined by an LDL.
36. The method of claim 33 wherein the stop of sending a translation request further comprises sending a translation request further comprising information relating to a desired format of the translation; and
wherein the step of performing a translation of the text further comprises performing a translation of the text in accordance with the desired format of the translation.
37. The method of claim 33 further comprising the step of providing a notification mechanism by which the translation engine can inform the client if it is unable to perform a translation in accordance with the desired format of the translation, the notification mechanism having an interface defined by an LDL.
38. The method of claim 33 further comprising the step of scanning the translation request for at least one irregularity in the text prior to performing a translation, the irregularity selected from the group including undefined word, undefined string, undefined character, spelling error, and punctuation error.
39. The method of claim 33 further comprising the step of providing information to the client regarding the progress of the generation of the response at the translation engine in accordance with the distributed object protocol.
40. The method of claim 33 further comprising the step of providing a notification mechanism in accordance with the distributed object protocol by which the translation engine can inform the client of at least one error that occurs during translation, the notification mechanism having an interface defined by an LDL.
41. A translation system comprising: (a) a plurality of translation engines, each translation engine for receiving a translation request using a distributed object protocol and for generating a response and forwarding the response to the translation request using the distributed object protocol, the translation request comprising text to be translated from a first language to a second language, and the response comprising a translation of the text from the first language to the second language; and (b) a client for sending the translation request to any of the plurality of translation engines using the distributed object protocol and for receiving the response from that translation engine using the distributed object protocol.
42. The translation system of claim 41 wherein the translation request and the response are sent in accordance with an LDL, the IDL defining an interface at each of the plurality of translation engines and at the client.
43. The translation system of claim 41 further comprising a registration mechanism by which each of the plurality of translation engines can register itself to be found by the client using the distributed object protocol, the registration mechanism having an interface defined by an LDL.
44. The translation system of claim 41 wherein the client further comprises a user interface having a translation service for accepting translation requests and wherein the distributed object protocol used by the client and the plurality of translation engines to communicate supports a plurality of translation engines.
45. The translation system of claim 41 wherein the distributed object protocol used by the plurality of translation engines and the client to communicate operates in accordance with the COM standard.
46. The translation system of claim 41 wherein the distributed object protocol used by the plurality of clients and the translation engine to communicate operates in accordance with the CORBA standard.
47. The translation system of claim 41 wherein the translation request further comprises information relating to a desired format of the translation so that the translation engine that receives the translation request can generate the response in accordance with the information using the distributed object protocol.
48. The translation system of claim 41 further comprising a notification mechanism for informing the client about the availability at each of the plurality of translation engines of the desired format of the translation using the distributed object protocol, the notification mechanism having an interface defined by an LDL.
49. The translation system of claim 41 wherein the plurality of translation engines generate a plurality of responses corresponding to a translation of the text from the first language to a plurality of second languages using the distributed object protocol.
50. The translation system of claim 41 wherein the client and at least one of the plurality of translation engines are located on the same computer.
51. The translation system of claim 41 wherein the client and at least one of the plurality of translation engines are located on different computers in communication with each other.
52. The translation system of claim 41 wherein the client and at least one of the plurality of translation engines communicate using a proxy server.
53. A translation system, comprising: (a) a plurality of clients, each for sending a translation request using a distributed object protocol to at least one translation engine and each for receiving a response to the translation request using the distributed object protocol, the translation request comprising text to be translated from a first language to a second language and the response corresponding to a translation of the text from a first language to a second language; and (b) a translation engine for receiving at least one translation request from any one of the plurality of clients using a distributed object protocol and for generating a response and forwarding the response to the request to that client using the distributed object protocol.
54. The translation system of claim 53 wherein each of the plurality of translation requests and the response are sent in accordance with an LDL, the LDL defining an interface at each of the clients and at the translation engine. 55. The translation system of claim 53 wherein the distributed object protocol used by the plurality of clients and the translation engine to communicate operates in accordance with the COM standard. 56. The translation system of claim 53 wherein the distributed object protocol used by the plurality of clients and the translation engine to communicate operates in accordance with the CORBA standard. 57. The translation system of claim 53 wherein each of the plurality of clients further comprises a user interface having a translation service for receiving translation requests, the user interface defined by an LDL, and wherein the distributed object protocol used by the plurality of clients and the translation engine to communicate supports a plurality of user interfaces. 58. The translation system of claim 53 wherein the translation engine and at least one of the plurality of clients are located on the same computer. 59. The translation engine of claim 53 wherein the translation engine and at least one of the plurality of clients are located on different computers in communication with each other. 60. The translation engine of claim 53 wherein the translation engine and at least one of the plurality of clients communicate using the world wide web. 61. The translation system of claim 53 wherein the translation engine further comprises a plurality of translation objects for maintaining a separate context for each translation request that the translation engine receives, each translation object having an interface defined by an LDL. 62. The translation system of claim 61 wherein at least one of the plurality of translation objects is responsive to a translation request further comprising information relating to a desired format of the translation, and wherein the at least one translation object is responsive to the information so as to control how the translation engine processes the translation request.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000561568A JP2002521751A (en) | 1998-07-23 | 1998-07-23 | Modular language translation system |
PCT/US1998/015219 WO2000005660A1 (en) | 1998-07-23 | 1998-07-23 | Modular language translation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US1998/015219 WO2000005660A1 (en) | 1998-07-23 | 1998-07-23 | Modular language translation system |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2000005660A1 true WO2000005660A1 (en) | 2000-02-03 |
Family
ID=22267525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1998/015219 WO2000005660A1 (en) | 1998-07-23 | 1998-07-23 | Modular language translation system |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2002521751A (en) |
WO (1) | WO2000005660A1 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1130523A2 (en) * | 2000-02-29 | 2001-09-05 | Fujitsu Limited | Relay device, server device, terminal device, and translation server system utilizing these devices |
US7669198B2 (en) | 2004-11-18 | 2010-02-23 | International Business Machines Corporation | On-demand translator for localized operating systems |
EP2784663A1 (en) * | 2013-03-26 | 2014-10-01 | Kiss, Laszlo | Method system and computer program product for collecting, sending and following language requests for mobile applications |
US8949223B2 (en) | 2003-02-21 | 2015-02-03 | Motionpoint Corporation | Dynamic language translation of web site content |
US9128918B2 (en) | 2010-07-13 | 2015-09-08 | Motionpoint Corporation | Dynamic language translation of web site content |
CN107766334A (en) * | 2016-08-23 | 2018-03-06 | 耿诚 | A kind of interpretation method and device of software to be translated |
CN110502762A (en) * | 2019-08-27 | 2019-11-26 | 北京金山数字娱乐科技有限公司 | A kind of transcription platform and its management method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0762299A1 (en) * | 1995-09-12 | 1997-03-12 | Hitachi, Ltd. | Multi-language compatible information system |
-
1998
- 1998-07-23 JP JP2000561568A patent/JP2002521751A/en active Pending
- 1998-07-23 WO PCT/US1998/015219 patent/WO2000005660A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0762299A1 (en) * | 1995-09-12 | 1997-03-12 | Hitachi, Ltd. | Multi-language compatible information system |
Non-Patent Citations (1)
Title |
---|
SCHWARZ: "'Moment, ich verbinde...'", C'T, no. 3, March 1997 (1997-03-01), DE, pages 256 - 273, XP000697801 * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1130523A3 (en) * | 2000-02-29 | 2001-12-12 | Fujitsu Limited | Relay device, server device, terminal device, and translation server system utilizing these devices |
US7216072B2 (en) | 2000-02-29 | 2007-05-08 | Fujitsu Limited | Relay device, server device, terminal device, and translation server system utilizing these devices |
EP1130523A2 (en) * | 2000-02-29 | 2001-09-05 | Fujitsu Limited | Relay device, server device, terminal device, and translation server system utilizing these devices |
US9626360B2 (en) | 2003-02-21 | 2017-04-18 | Motionpoint Corporation | Analyzing web site for translation |
US11308288B2 (en) | 2003-02-21 | 2022-04-19 | Motionpoint Corporation | Automation tool for web site content language translation |
US8949223B2 (en) | 2003-02-21 | 2015-02-03 | Motionpoint Corporation | Dynamic language translation of web site content |
US10621287B2 (en) | 2003-02-21 | 2020-04-14 | Motionpoint Corporation | Dynamic language translation of web site content |
US10409918B2 (en) | 2003-02-21 | 2019-09-10 | Motionpoint Corporation | Automation tool for web site content language translation |
US9367540B2 (en) | 2003-02-21 | 2016-06-14 | Motionpoint Corporation | Dynamic language translation of web site content |
US9910853B2 (en) | 2003-02-21 | 2018-03-06 | Motionpoint Corporation | Dynamic language translation of web site content |
US9652455B2 (en) | 2003-02-21 | 2017-05-16 | Motionpoint Corporation | Dynamic language translation of web site content |
US7669198B2 (en) | 2004-11-18 | 2010-02-23 | International Business Machines Corporation | On-demand translator for localized operating systems |
US10073917B2 (en) | 2010-07-13 | 2018-09-11 | Motionpoint Corporation | Dynamic language translation of web site content |
US10387517B2 (en) | 2010-07-13 | 2019-08-20 | Motionpoint Corporation | Dynamic language translation of web site content |
US9858347B2 (en) | 2010-07-13 | 2018-01-02 | Motionpoint Corporation | Dynamic language translation of web site content |
US9864809B2 (en) | 2010-07-13 | 2018-01-09 | Motionpoint Corporation | Dynamic language translation of web site content |
US9411793B2 (en) | 2010-07-13 | 2016-08-09 | Motionpoint Corporation | Dynamic language translation of web site content |
US11481463B2 (en) | 2010-07-13 | 2022-10-25 | Motionpoint Corporation | Dynamic language translation of web site content |
US9311287B2 (en) | 2010-07-13 | 2016-04-12 | Motionpoint Corporation | Dynamic language translation of web site content |
US10089400B2 (en) | 2010-07-13 | 2018-10-02 | Motionpoint Corporation | Dynamic language translation of web site content |
US10146884B2 (en) | 2010-07-13 | 2018-12-04 | Motionpoint Corporation | Dynamic language translation of web site content |
US10210271B2 (en) | 2010-07-13 | 2019-02-19 | Motionpoint Corporation | Dynamic language translation of web site content |
US10296651B2 (en) | 2010-07-13 | 2019-05-21 | Motionpoint Corporation | Dynamic language translation of web site content |
US9465782B2 (en) | 2010-07-13 | 2016-10-11 | Motionpoint Corporation | Dynamic language translation of web site content |
US9213685B2 (en) | 2010-07-13 | 2015-12-15 | Motionpoint Corporation | Dynamic language translation of web site content |
US11409828B2 (en) | 2010-07-13 | 2022-08-09 | Motionpoint Corporation | Dynamic language translation of web site content |
US9128918B2 (en) | 2010-07-13 | 2015-09-08 | Motionpoint Corporation | Dynamic language translation of web site content |
US10922373B2 (en) | 2010-07-13 | 2021-02-16 | Motionpoint Corporation | Dynamic language translation of web site content |
US10936690B2 (en) | 2010-07-13 | 2021-03-02 | Motionpoint Corporation | Dynamic language translation of web site content |
US10977329B2 (en) | 2010-07-13 | 2021-04-13 | Motionpoint Corporation | Dynamic language translation of web site content |
US11030267B2 (en) | 2010-07-13 | 2021-06-08 | Motionpoint Corporation | Dynamic language translation of web site content |
US11157581B2 (en) | 2010-07-13 | 2021-10-26 | Motionpoint Corporation | Dynamic language translation of web site content |
EP2784663A1 (en) * | 2013-03-26 | 2014-10-01 | Kiss, Laszlo | Method system and computer program product for collecting, sending and following language requests for mobile applications |
CN107766334A (en) * | 2016-08-23 | 2018-03-06 | 耿诚 | A kind of interpretation method and device of software to be translated |
CN110502762A (en) * | 2019-08-27 | 2019-11-26 | 北京金山数字娱乐科技有限公司 | A kind of transcription platform and its management method |
CN110502762B (en) * | 2019-08-27 | 2023-07-28 | 北京金山数字娱乐科技有限公司 | Translation platform and management method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP2002521751A (en) | 2002-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7877251B2 (en) | Document translation system | |
CN101183355B (en) | Copy and paste processing method, apparatus | |
US6119079A (en) | Method and structure for tokenized message logging system | |
US7496230B2 (en) | System and method for automatic natural language translation of embedded text regions in images during information transfer | |
JP4202041B2 (en) | Method and system for applying input mode bias | |
EP0519049B1 (en) | Machine translation and telecommunications system | |
US10541974B2 (en) | Intercepting web server requests and localizing content | |
US20060200766A1 (en) | Translation management system | |
US20030140316A1 (en) | Translation management system | |
WO2001069420A2 (en) | Document localization, management and delivery system | |
EP1280055A1 (en) | Method and computer system for creating and processing a browser compliant human interface description | |
WO2000005660A1 (en) | Modular language translation system | |
KR20000049928A (en) | Apparatus and Method for Managing Multi-national Language Search Engines | |
JP2003296327A (en) | Translation server, genre-classified online machine translation method, and program therefor | |
JPH11175529A (en) | Information processor and network system | |
JPWO2006016477A1 (en) | Translation system, translation server, translation server processing method, program, information storage medium, and translation apparatus | |
JP3467159B2 (en) | Multilingual communication system, server device, and document transmission method for server device | |
Hung | Reuse of free online MT engines to develop a meta-system of multilingual machine translation | |
EP1221082B1 (en) | Use of english phonetics to write non-roman characters | |
JP2004355574A (en) | System for providing external character registration information, device for registering external character information, and method for processing information | |
KR20020049417A (en) | Method for making web document type of image and system for reading web document made by using of said method | |
Gfeller et al. | Standardisation Beyond the Language | |
JP3434161B2 (en) | Multilingual communication system | |
Appleby et al. | The multilingual world wide web | |
JPH10222516A (en) | Multilingual correspondence communication system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP US |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2000 561568 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09744278 Country of ref document: US |