Apertium-dixtools
See also Crossdics
Contents
Download
$ svn co https://apertium.svn.sourceforge.net/svnroot/apertium/trunk/apertium-dixtools
Software prerequisites
You will need to install Ant and Java Development Kit 6 (JDK6)
$ sudo apt-get install ant sun-java6-jdk
Compiling
$ cd apertium-dixtools $ ant jar
Note:
- If you update from SVN its always a good idea to do 'ant clean' first.
- 'ant jar' also attempts to do some testing of itself. This might fail, if someone made changes without ensuring that the tests runs. Just continue with installation and report the test failures to the list.
Problems
If you get an "The J2SE Platform is not correctly set up." error with property "platforms.default_platform.home" is not found, then try
$ ant -Dplatforms.default_platform.home=/usr jar
or if it f.ex. says error with property "platforms.JDK_1.6.home" is not found, and you want to point to a specific Java version, then try
$ ant -Dplatforms.JDK_1.6.home=/usr/lib/jvm/java-6-sun jar
(On Mac: if you want to put the full "/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/" (or whatever) path in there, first make a symlink from the .../1.6.0/Commands folder to .../1.6.0/bin, since ant expects javac to be in the bin-subdirectory of platforms...home)
Testing
The testing is quite verbose. The output looks like:
-do-test-run: [junit] Testsuite: dictools.CrossDictTest [junit] [1] Loading bilingual AB (regression_test_data/crossdict/input/apertium-es-ca.es-ca.dix) [junit] Reading file regression_test_data/crossdict/input/apertium-es-ca.es-ca.dix ... 200 lines of text [junit] ------------- ---------------- --------------- [junit] Testsuite: misc.eoen.SubstractBidixTest [junit] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.073 sec [junit] [junit] ------------- Standard Error ----------------- [junit] checkEarlierAndRestrict [junit] ------------- ---------------- --------------- [junit] checkEarlierAndRestrict
If the test fails
If you get somethink like
[junit] ------------- ---------------- --------------- test-report: -post-test-run: BUILD FAILED /home/j/esperanto/apertium/apertium-dixtools/nbproject/build-impl.xml:595: Some tests failed; see details above.
... then the program was correctly build, but it didn't pass the tests. It can still be installed and will probably run fine.
The most probably reason (apart from someone has changed the program in a way that breaks the tests), is that your'e not using Unicode. Try writing
export LANG=en_US.UTF-8
(or some other Unicode language installed - I use eo.UTF-8) and run the tests again. If that doesent help please report it on the mailing list.
Installing
$ sudo ant install
Notes for developers
Wishlist and notes for Apertium-dixtools
- theres awful lot of code, much more than needed. another way of handling XML where you dont have to write classes (and formatting code!!) for each tag.
- If you already have a XML schema (.xsd) for your XML file structure, JAXB (Java Api for XML Binding) might be your choice. You just run the .xsd through the JAXB compiler (xjc) and get a bunch of classes (yes, one class per tag/type, but you don't have to write them yourself). Then you use the JAXB marshaller to convert XML documents to object structures and vice versa (with optional validation support). The JAXB marshalling code is included in the Sun JRE since version 6, and the JAXB compiler is available under a dual GPL+CDDL license. I used JAXB a lot (both at work and for hobby projects) and I really like it. Of course, it is still your decision. --Mihi 19:18, 24 February 2009 (UTC)
There should be many more options, and ALL sub-commands should take a -fmt parameter where all could be specified:
- 1line or multiline entries
- indenting
- also 1line on pardefs
- multiwords -- one line or many lines
- multiwords -- should they be separated
(because sometimes with complex multiwords you want to have them laid out differently and apart e.g. you have a section for verbs and it has first "simple" verbs, then it has the multiword verbs)
- multiwords -- the simple verbs are one per line
- multiwords -- and the multiword verbs are over several lines