A language service is a Web service which enables us to access a language resource such as a machine translator and a dictionary. The Language Grid is a Service Grid for language services and can combine language services. The Language Grid is mainly used to support multilingual communication.
The Language Grid is build on Service Grid Server Software. The Language Grid makes various interfaces for language services available. Libraries for creating/invoking language services are also available.
The software packages and manuals are available at Download page.
Source Code Repository
The source code of language services are classified into the following three categories.
- Language Service Interface (Core Component)
- Defines an interface of a language service as a Java interface.
- Repository URL: http://svn.code.sf.net/p/servicegrid/code/language-grid/language-service/trunk/jp.go.nict.langrid.service.language_1_2/ (View)
- Abstract Service Wrapper (Core Component)
- Implements the above service interface and processes common in the same service type.
- Repository URL:
- http://svn.code.sf.net/p/servicegrid/code/language-grid/language-service/trunk/jp.go.nict.langrid.wrapper.common/ (View)
- http://svn.code.sf.net/p/servicegrid/code/language-grid/language-service/trunk/jp.go.nict.langrid.servicecontainer/ (View)
- http://svn.code.sf.net/p/servicegrid/code/language-grid/language-service/trunk/jp.go.nict.langrid.cosee/ (View)
- Language Service Wrapper (Optional Component)
- Wraps a language resource as a language service. A language service wrapper is implemented as a subclass of the above abstract service wrapper.
- Repository URL: http://svn.code.sf.net/p/servicegrid/code/language-grid/language-service/modules/ (View)
Language Service Interface
Language Grid provides the following interfaces of language services. Refer to the manual available on the download page for the detailed process of creating/using language services.
*Development is ongoing.
|Service Category||Language Service||Description|
|Translation||Translation (TRANSLATION)||General translation. Translates text from one specified language into another.|
|Translation with Temporal Dictionary (TRANSLATIONWITHTEMPORALDICTIONARY)||This service translates an input text from a source language to a target language by combining with temporal dictionary data (pairs of texts in source language and target language), and is used when utilizing dictionary data that is not provided as Web service.|
|Multilingual Mixed Document Translation Service*||This service translates a sentence including some words in different languages.|
|Back Translation (BACKTRANSLATION)||This service consists of two translation services, and is used for estimation of translation quality. These two translation services are connected sequentially. Second translation service translates the translated sentence into the input language.|
|Multi-Hop Translation (MULTIHOPTRANSLATION)||This service consists of multiple translation services, and is used for translation between languages unsupported by any single machine translator Web service. These multiple translation services are connected sequentially, and you can set the intermediate language.|
|Paraphrase||Paraphrase (PARAPHRASE)||This service searches for and returns a paraphrased expression in the same language. Well suited for converting simple, easy to handle text in translation.|
|Transliteration*||This service converts a sentence from one language into the other.|
|Dictionary||Bilingual Dictionary (BILINGUALDICTIONARY)||Displays a bilingual dictionary. Can support several languages as a dictionary, but can only retrieve definitions in one language.|
|Bilingual Dictionary Longest Match Search (BILINGUALDICTIONARYLONGESTMATCHSEARCH)||Bilingual dictionary that supports a longest match search. This service takes parameters for morpheme arrays and uses this information to search for longest language array matches.|
|Pictogram Dictionary (PICTOGRAMDICTIONARY)||This service searches for pictograms signifying words in a language.|
|Concept Dictionary (CONCEPTDICTIONARY)||This service searches for the concepts a word possesses.|
|Multimedia Dictionary*||This service searches a multimedia content by a keyword. |
|Multilingual Glossary*||This service searches a meaning of a word.|
|Dictionary Creation Support*||This service searches translation/concept/pictogram/meaning alternatives of a list of word to create a user dictionary.|
|Corpus||Parallel Text (PARALLELTEXT)||This service searches for parallel text.|
|Adjacency Pair (ADJACENCYPAIR)||This service searches for pair responses.|
|Template Parallel Corpus*||This service generates translation by filling in the blanks in a translation template with words.|
|Analysis||Morphological Analysis (MORPHOLOGICALANALYSIS)||General morphological analysis service. Analyzes and returns morpheme arrays for an inputted text.|
|Similarity Calculation (SIMILARITYCALCULATION)||Calculates the level of similarity of two texts in the same language.|
|Dependency Parser (DEPENDENCYPARSER)||Parses the dependency in a text.|
|Language Identification (LANGUAGEIDENTIFICATION)||General language identification service. Identifies and returns language code for an inputted text.|
|Speech||Text To Speech (TEXTTOSPEECH)||Text to speech service. Synthesize and returns voice audio file for an inputted text.|
|Speech Recognition*||This service converts inputted voice audio file to text.|
|Other||Structural Alignment Creation*||This service aligns syntax trees of two sentences in different languages.|
|Meta Service||Service Management Service*||This service searches language services.|
Language Service Ontology
The hierarchical structure depicted in the above table is derived from a structured knowledge of the relevant domain, which we call language service ontology (Hayashi et al., 2008). The figure show below overviews part of the language service ontology particularly relevant to the language services: the class of LanguageProcessingResource is first divided into LinguisticProcessing and LR_Access (language resource access).
The class of LinguisticProcessing is further divided into Translation/Paraphrase and LinguisticAnalysis sub-classes by focusing on their input/output data types. Translation is defined as taking a sentence string in the source language as the input and producing another sentence string in the target language while keeping the meaning. On the other hand, LinguisticAnalysis is further detailed by types of the input/output language data. For example, JapaneseDependencyAnalysis is defined as taking a Japanese sentence string as the input, and adding syntactic dependency annotations to it, where the input or output data is defined as a sub-type of LanguageDataObject class.
The class of LR_Access is introduced to define a group of services whose main functionality is to access a static LanguageDataResource. It is further sub-classed according to sub-types of language data resources it is accessing. For example, the ConceptDictionary_Access class is introduced to define the lexicon access function to the so-called WordNet-type semantic lexicons whose type is ConceptDictionary.
It is crucial that the service ontology be grounded on relevant international standards on language resources so that it can serve as a shared knowledge for defining language services. The standards are particularly important in defining taxonomies of the language data object and resource classes. For example, as the type of a dictionary can be defined by the information structure, ISO LMF (Lexical Markup Framework) (Francopoulo et al., 2009), a standard modeling framework that covers a wide range of dictionaries, can be adopted to formally define a dictionary data resource type. Similarly, a standard formalism for characterizing a particular linguistic annotation type, such as SynAF (Declerck, 2008) for syntactic structures, can be incorporated into the service ontology and utilized in defining the associated linguistic analyzer type. To validate the effectiveness of these standards in the language Web service context, we have been working on experimental web services adopting these standards (Hayashi et al., 2010), (Savas et al., 2010).
Since service ontology defines the service types and standard service interfaces, we can combine multiple services within a same service type or across different types so that more and more new services can be easily created based on the users' requirements. By this means, service ontology enables the increase of service variation in a spiral fashion in the service-oriented collective intelligence platform (Hayashi, 2010).
- Declerck, T. (2008). A Framework for Standardized Syntactic Annotation. LREC 2008.
- Francopoulo, G., Bel, N.,George, M., Calzolari, N., Monachini, M., Pet, M., and Soria, C. (2008). Multilingual Resources for NLP in the Lexical Markup Framework (LMF). Language Resources and Evaluation, Vol.43, No.1, pp. 57–70.
- Hayashi, Y., Declerck, T., Buitelaar, P., and Monachini, M. (2008). Ontologies for a Global Language Infrastructure. ICGL 2008.
- Hayashi, Y. (2010). Toward a Standardized Set of Language Service Web APIs. FLaReNet Forum 2010 (position paper).
- Hayashi, Y., Declerck, T., Narawa, C. (2010). LAF/GrAF-grounded Representation of Dependency Structures. LREC 2010.
- Savas, B., Hayashi, Y., Monachini, M., Soria, C., and Calzolari, N. (2010). An LMF-based Web Service for Accessing WordNet-type Semantic Lexicons. LREC 2010.