From 43daeaf1b4364b5dd5c1741840d0f43ea85dc8b0 Mon Sep 17 00:00:00 2001 From: aarne Date: Sun, 19 Jan 2014 18:28:36 +0000 Subject: [PATCH] translation doc with a module diagram and as html --- lib/doc/translation.dot | 14 +++ lib/doc/translation.html | 229 +++++++++++++++++++++++++++++++++++++++ lib/doc/translation.png | Bin 0 -> 25569 bytes lib/doc/translation.txt | 42 ++++++- 4 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 lib/doc/translation.dot create mode 100644 lib/doc/translation.html create mode 100644 lib/doc/translation.png diff --git a/lib/doc/translation.dot b/lib/doc/translation.dot new file mode 100644 index 000000000..17d48ff4a --- /dev/null +++ b/lib/doc/translation.dot @@ -0,0 +1,14 @@ +graph { + Translate ; + RGLSyntax ; + Extensions ; + Dictionary ; + Translate -- RGLSyntax [style = dashed] ; + Translate -- Extensions ; + Translate -- Dictionary ; + Extensions -- RGLCategories ; + RGLCategories ; + RGLSyntax -- RGLCategories ; + Dictionary -- RGLCategories ; +} + \ No newline at end of file diff --git a/lib/doc/translation.html b/lib/doc/translation.html new file mode 100644 index 000000000..bbd2764a5 --- /dev/null +++ b/lib/doc/translation.html @@ -0,0 +1,229 @@ + + + + +From Resource Grammar to Wide Coverage Translation with GF + +
+

From Resource Grammar to Wide Coverage Translation with GF

+Aarne Ranta et al.
+Work in progress, January 2014 +
+ +

+GF, Grammatical Framework, was originally designed for the purpose of multilingual controlled language systems, +which would enable high-quality translation on limited domains. The abstract syntax of GF defines the semantic +structures relevant for the domain, and the concrete syntaxes map these structures to grammatically correct +and idiomatic text in each target language. The reversibility of GF enables both generation and parsing, +and thereby translation where the abstract syntax functions as an interlingua. +

+

+As a bottle-neck of GF applications, it was soon realized that the definition of concrete syntax requires a lot +of manual work and linguistic skill, due to the complexities of natural language syntax and morphology. Some of +the complexities can be ignored in a small system. For instance, in a mathematical system, it may be enough to +use verbs in the present tense only. But very much the same linguistic problems must be solved again and again +in new applications: French verb inflection is much the same in mathematics as in a tourist phrasebook. To solve +this problem, the GF Resource Grammar Library (RGL) was developed, to take care of "low-level" linguistic +rules such as inflection, agreement, and word order. This enables the authors of application grammars to focus +on the semantics (when designing the abstract syntax) and on selecting RGL functions that produce the idioms they +want. The RGL grew into an international open-source project, where more than 50 persons have contributed to +implementing it for 29 languages at the time of writing. +

+

+The RGL was thus originally designed to be used just as its name says: as a library +for application grammars, which were the ones used as top-level grammars, i.e. for +parsing, generation, and translation at run time. Little attention was paid to the usability of RGL as a top-level +grammar by itself. But when applications accumulated, ranging from technical text to spoken dialogue, the coverage +of the RGL grew into a coverage that approximates a "complete grammar" of many of the languages. +And recently, there has indeed been success in using the RGL as a wide-coverage translation grammar, +mainly due to Krasimir Angelov's efforts to scale up the size of GF applications from language fragments +to open-text processing. This success is a result of four lines of development: +

+ + + +

+The result of this work is indeed a large-coverage translation system, which can be used in the same way as Google +Translate, Bing, Systran, and Apertium - to "translate anything", albeit with a varying quality. At the moment of +writing, the performance is not yet generally on the level with the best of the competition, but shows some promising +improvements in e.g. long-distance agreement and word order. In order to make these into absolute improvements, we +will need to fix problems that the other systems (or at least some of them) get right but where GF translation +often fails: +

+ + + +

+Given that these issues get resolved, the strengths of the GF approach can be made more visible: +

+ + + +

+The recipes for improvement are, as always, more work and new ideas. Each of the four weaknesses mentioned +above can be relieved by more work - in particular, lexical coverage by more work on the lexicon, since +automatic extraction methods cannot really be trusted. As for disambiguation, new ideas about probabilistic +tree models are being discussed. As for speed, new ideas on parsing (in particular, the integration of disambiguation +with parsing) would help, but also the complexity of grammatical structures plays a major role. As for idiomacy, +more work is being done in introducing constructions (non-compositional syntax rules, generalizing the notion of +multiword expressions, in particular, phrases in SMT), but also new ideas are being discussed on how to +extract such constructions from e.g. phrase tables. +

+

+In the following, we will focus on describing the role of grammar in the GF translation system - in particular, how +RGL can be modified to become usable as a top-level grammar for translating open text. +As RGL was not meant to be used for parsing open text, but rather for the controlled language generation task, +it has serious restrictions: +

+ + + +

+Despite these problems, the RGL has shown to be a possible starting point for large-scale translation. It has a couple +of advantages speaking for this: +

+ + + +

+Of course, we are still left with the other +option of addressing translation with an application grammar, something +similar to the ResourceDemo with flatter and more semantic structures. But this would in turn require +the replication of many rules, even though it would be to a large extent doable by using a functor, that is, +by just one set of rules covering all languages. +

+

+Thus the path chosen is a mixture of RGL and application grammar. In brief, the translation grammar consists of +

+ + + +

+The following picture shows the principal module structure of the translation grammar. +

+

+ +

+

+Notice: the current module structure and naming do not yet quite correspond to the description here. +Thus currently the top module is "Parse" and contains both "Translate" and "Extensions". +The Dictionary module is "Dict", and coincides in the case of English with the monolingual +morphological dictionary. However, the more sense distinctions are introduced for the needs +of translation, the less adequate it becomes to keep these two together. +

+

+Here is a description of each of the modules: +

+ + + + + + diff --git a/lib/doc/translation.png b/lib/doc/translation.png new file mode 100644 index 0000000000000000000000000000000000000000..1dcd9f5e9db908746a16d0cb32a0a9522c0f8fdc GIT binary patch literal 25569 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 JF6*2UngGMdu}lB} literal 0 HcmV?d00001 diff --git a/lib/doc/translation.txt b/lib/doc/translation.txt index a347fbb30..f8e626537 100644 --- a/lib/doc/translation.txt +++ b/lib/doc/translation.txt @@ -1,5 +1,6 @@ From Resource Grammar to Wide Coverage Translation with GF -Aarne Ranta +Aarne Ranta et al. +Work in progress, January 2014 GF, Grammatical Framework, was originally designed for the purpose of **multilingual controlled language systems**, @@ -73,6 +74,12 @@ Given that these issues get resolved, the strengths of the GF approach can be ma and linguistic information. - **Adaptability**, i.e. the ease of fixing bugs, adapting the system to special domains, and personalizing it. + This can be done with great precision, e.g. fixing a bug without breaking anything else. + +- **Light weight**. The system runs on standard laptops and even on mobile phones; the size of the run-time + system for all pairs of 8 languages is under 20MB, and recompiling the whole system (e.g. after bug fixes or + domain adaptation) is a matter of a few minutes, where corresponding sizes for SMT systems are gigabytes of size + and days of retraining. - **Multilinguality**, in the sense that once the parsing of the input is settled, the output can be readily rendered into all other languages, @@ -153,4 +160,37 @@ Thus the path chosen is a mixture of RGL and application grammar. In brief, the +The following picture shows the principal module structure of the translation grammar. + +[translation.png] + + +//Notice: the current module structure and naming do not yet quite correspond to the description here.// +//Thus currently the top module is "Parse" and contains both "Translate" and "Extensions".// +//The Dictionary module is "Dict", and coincides in the case of English with the monolingual// +//morphological dictionary. However, the more sense distinctions are introduced for the needs// +//of translation, the less adequate it becomes to keep these two together.// + +Here is a description of each of the modules: + +- **Translate** is the top module, which combines the RGL syntax with syntax extensions and a dictionary. + The RGL syntax is not inherited in its entirety, which is indicated by a dashed line. The overridden abstract + syntax functions (common to all languages) are replaced by functions in the Extensions module, whereas the + overridden concrete syntax definitions (specific to each language) are defined in this Translate module. + This consists of the module named ``Translate``. + +- **RGLSyntax** stands for the standard RGL module for syntax, excluding the RGL test lexicon and + the language-specific extensions of it. This consists of the standard module named ``Grammar`` and + the emerging module named ``Construction``. + +- **Extensions** stands for the syntax extensions added to the RGL syntax. This consists of the module + named ``Extensions``. + +- **Dictionary** is a large-scale multilingual dictionary. Its abstract syntax uses as identifiers English words + suffixed by categories and word sense information. This consists of the module named ``Dictionary``. + +- **RGLCategories** stands for the type system of the standard RGL, the module named ``Cat``. + + +