Crossdics Example
Getting English-Galician[1] (A-C) language pair from English-Spanish[2] (A-B) and Spanish-Galician[3] (B-C).
Obtaining apertium-crossdics
Download
$ svn co https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-dixtools
You will need to install Ant and Java Development Kit 6 (JDK6)
$ sudo apt-get install ant sun-java6-jdk
Compiling and installing
$ cd apertium-crossdics $ ant jar $ sudo ant install
What you need
Dictionaries
To get an English-Galician (A-C) language pair from English-Spanish (A-B) and Spanish-Galician (B-C), you need the following dictionaries:
- Morphological A: apertium-en-es.en.metadix
- Morphological C: apertium-es-gl.gl.dix
- Bilingual AB: apertium-en-es.en-es.dix
- Bilingual BC: apertium-es-gl.es-gl.dix
Cross Model Document
You will also need a:
- Cross Model ABC: cross-model-en-es-gl.dix
A cross model document must contain at least a default pattern-action. Here you have a very simple example of cross-model-en-es-gl.xml document.
<?xml version="1.0" encoding="UTF-8"?> <cross-model> <cross-action id="default" a="ebenimeli"> <description>Default pattern</description> <pattern> <e> <p> <l>$lemmaA<v n="cat"/><t n="tailA"/></l> <r>$lemmaB<v n="cat"/><t/></r>
</e> <e> <p> <l>$lemmaB<v n="cat"/><t/></l> <r>$lemmaC<v n="cat"/><t n="tailC"/></r>
</e> </pattern> <action-set> <action> <e> <p> <l>$lemmaA<v n="cat"/><t n="tailA"/></l> <r>$lemmaC<v n="cat"/><t n="tailC"/></r>
</e> </action> </action-set> </cross-action> </cross-model>
Read more in How to create a Cross Model Document.
Linguistic Resources Document
Finally, a document with references to the linguistic resources needed.
Example of en-es-gl-ling-resources.xml document:
<?xml version="1.0" encoding="UTF-8"?> <ling-resources> <name>My linguistic resources</name> <description>My linguistics resources: morphological and bilingual dictionaries, cross models, corpora, etc.</description> <resource-set> <name>My linguistic resources to get English-Galician language pair.</name> <description>Morphological and bilingual dictionaries.</description> <!-- cross model en-es-gl --> <resource> <property name="name" value="cross-model-en-es-gl"/> <property name="type" value="cross-model"/> <property name="sl" value="en"/> <property name="tl" value="gl"/> <property name="for-crossing" value="yes"/> <property name="src" value="cross-model-en-es-gl.xml"/> </resource> <!-- cross model gl-es-en --> <resource> <property name="name" value="cross-model-gl-es-en"/> <property name="type" value="cross-model"/> <property name="sl" value="gl"/> <property name="tl" value="en"/> <property name="for-crossing" value="yes"/> <property name="src" value="cross-model-en-es-gl.xml"/> </resource> <!-- 'en' morphological dictionary --> <resource> <property name="name" value="apertium-en"/> <property name="type" value="mon"/> <property name="sl" value="en"/> <property name="for-crossing" value="yes"/> <property name="src" value="apertium-en-es.en.metadix"/> </resource> <!-- 'gl' morphological dictionary --> <resource> <property name="name" value="apertium-gl"/> <property name="type" value="mon"/> <property name="sl" value="gl"/> <property name="for-crossing" value="yes"/> <property name="src" value="apertium-es-gl.gl.dix"/> </resource> <!-- 'en-es' bilingual dictionary --> <resource> <property name="name" value="apertium-en-es"/> <property name="type" value="bil"/> <property name="sl" value="en"/> <property name="tl" value="es"/> <property name="for-crossing" value="yes"/> <property name="src" value="apertium-en-es.en-es.dix"/> </resource> <!-- 'es-gl' bilingual dictionary --> <resource> <property name="name" value="apertium-es-gl"/> <property name="type" value="bil"/> <property name="sl" value="es"/> <property name="tl" value="gl"/> <property name="for-crossing" value="yes"/> <property name="src" value="apertium-es-gl.es-gl.dix"/> </resource> </resource-set> </ling-resources>
Read more about How to create a Linguistic Resources Document
Crossing dictionaries
To use apertium-crossdics:
$ apertium-crossdics -f en-es-gl-ling-resources.xml en-gl
You will get the crossed dictionaries in dix folder.
dix/apertium-en-gl.en-gl-crossed.dix dix/apertium-en-gl.en-crossed.dix dix/apertium-en-gl.gl-crossed.dix