source: FCSannotrans/trunk/src/main/java/nl/mpi/annot/translate/AnnotationTranslatorTestDriver.java @ 6988

Last change on this file since 6988 was 6988, checked in by Leif-Jöran, 8 years ago

Completing the translation configuration test from provided file by printing the annotation tables instead of trying to find CGN tables to test if there are no CGN translation types provided.

File size: 7.4 KB
Line 
1/*
2 * To change this license header, choose License Headers in Project Properties.
3 * To change this template file, choose Tools | Templates
4 * and open the template in the editor.
5 */
6package nl.mpi.annot.translate;
7
8/**
9 *
10 * @author petbei
11 */
12public class AnnotationTranslatorTestDriver {
13    TranslationType ttWhole = null;
14    TranslationType ttSegments = null;
15   
16    TranslationTable FcsCgnPos = null;
17    TranslationTable CgnFcsPos = null;
18    TranslationTable FcsCgnPhon = null;
19    TranslationTable CgnFcsPhon = null;
20   
21    final static String ANNOTATION_TRANSLATION_FILENAME = "annotationTest_OK_003.XML";
22   
23    boolean getTranslationTypeData(AnnotationTranslator at) {
24        ttWhole = at.getTranslationType("replaceWhole");
25        if (ttWhole == null) {
26            System.err.println("*** ERROR *** failed to find annotation TranslationType \"replaceWhole\"");
27            return false;
28        }
29        System.err.println("INFO found translation type \"replaceWhole\"");
30        ttSegments = at.getTranslationType("replaceSegments");
31        if (ttSegments == null) {
32            System.err.println("*** ERROR *** failed to find annotation TranslationType \"replaceSegments\"");
33            return false;
34        }
35        System.err.println("INFO found translation type \"replaceSegments\"");
36        return true;
37    }
38   
39    boolean getTranslationTableData(AnnotationTranslator at) {
40        //--- locate translation table data
41        FcsCgnPos = at.findTranslationTable("FCSaggregator", "PoS", "CGN", "PoS", ttWhole);
42        if (FcsCgnPos == null) {
43            System.err.println("*** ERROR *** failed to find TranslationTable \"FCSaggregator/PoS - CGN/PoS\"");
44            return false;
45        }
46        System.err.println("INFO found TranslationTable \"FCSaggregator/PoS - CGN/PoS\"");
47
48        CgnFcsPos = at.findTranslationTable("CGN", "PoS", "FCSaggregator", "PoS", ttWhole);
49        if (CgnFcsPos == null) {
50            System.err.println("*** ERROR *** failed to find TranslationTable \"CGN/PoS - FCSaggregator/PoS\"");
51            return false;
52        }
53        System.err.println("INFO found TranslationTable \"CGN/PoS - FCSaggregator/PoS\"");
54
55        FcsCgnPhon = at.findTranslationTable("FCSaggregator", "phonetic", "CGN", "phonetic", ttSegments);
56        if (FcsCgnPhon == null) {
57            System.err.println("*** ERROR *** failed to find TranslationTable \"FCSaggregator/Phon - CGN/Phon\"");
58            return false;
59        }
60        System.err.println("INFO found TranslationTable \"FCSaggregator/Phon - CGN/Phon\"");
61       
62        CgnFcsPhon = at.findTranslationTable("CGN", "phonetic", "FCSaggregator", "phonetic", ttSegments);
63        if (CgnFcsPhon == null) {
64            System.err.println("*** ERROR *** failed to find TranslationTable \"CGN/Phon - FCSaggregator/Phon\"");
65            return false;
66        }
67        System.err.println("INFO found TranslationTable \"CGN/Phon - FCSaggregator/Phon\"");
68        return true;
69    }
70   
71    void testPoSTranslations(AnnotationTranslator at) {
72        System.out.println("========== FCS aggregator -> CGN ==========");
73        FcsCgnPos.translate("NOUN").display();
74        FcsCgnPos.translate("Abu Dabhi").display();
75        FcsCgnPos.translate("").display();
76        FcsCgnPos.translate("ADJ").display();
77        System.out.println("========== CGN -> FCS aggregator ==========");
78        CgnFcsPos.translate("N").display();
79        CgnFcsPos.translate("ADJ").display();
80        System.out.println("========== FCS aggregator -> CGN -> FCS aggregator ==========");
81        TranslationResult tr1 = FcsCgnPos.translate("NOUN");
82        tr1.display();
83        for (String s: tr1.getOutText()) {
84            TranslationResult tr2 = CgnFcsPos.translate(s);
85            tr2.display();
86        }
87        System.out.println("---------- FCS aggregator -> CGN -> FCS aggregator (cont.)");
88        tr1 = FcsCgnPos.translate("ADV");
89        tr1.display();
90        for (String s: tr1.getOutText()) {
91            TranslationResult tr2 = CgnFcsPos.translate(s);
92            tr2.display();
93        }
94        System.out.println("========== CGN -> FCS aggregator -> CGN ==========");
95        TranslationResult tr3 = CgnFcsPos.translate("VNW");
96        tr3.display();
97        for (String s: tr3.getOutText()) {
98            TranslationResult tr4 = FcsCgnPos.translate(s);
99            tr4.display();
100        }
101    }
102   
103    void testPhonTranslations(AnnotationTranslator at) {
104        System.out.println("========== FCS aggregator -> CGN ==========");
105        FcsCgnPhon.translate("A:").display();
106        FcsCgnPhon.translate("A:bu Dabhi").display();
107        FcsCgnPhon.translate("A:A:").display();
108        FcsCgnPhon.translate("XA:YA:Z").display();
109    }
110   
111    void testTrellis() {
112        Trellis tr = new Trellis();
113        tr.addTranslationPair("bb", "BB");    // insert first node
114        tr.addTranslationPair("cc", "CC");    // insert before first
115        tr.addTranslationPair("ab", "AB1");   // append
116        tr.addTranslationPair("aa", "AA1");   // append
117        tr.addTranslationPair("ac", "AC1");   // append
118        tr.addTranslationPair("ac", "AC2");   // append
119        tr.addTranslationPair("d", "Drietand");
120        tr.addTranslationPair("d", "Viertand");
121        tr.addTranslationPair("a", "Avondrood");
122        tr.addTranslationPair("", "leeg");
123        tr.addTranslationPair(null, "null");
124        tr.addTranslationPair("notarget", null);
125        tr.addTranslationPair("waterschade", "een");
126        tr.addTranslationPair("waterschadde", "ander");
127        tr.display();
128        for (String s: tr.translate("ac")) {
129            System.out.println("ac" + " -> " + s);
130        }
131        for (String s: tr.translate("acbb")) {
132            System.out.println("acbb" + " -> " + s);
133        }
134        for (String s: tr.translate("acddwaterschaddebb")) {
135            System.out.println("acddwaterschaddebb" + " -> " + s);
136        }
137        for (String s: tr.translate("acXbb")) {
138            System.out.println("acXbb" + " -> " + s);
139        }
140        for (String s: tr.translate("Xacbb")) {
141            System.out.println("Xacbb" + " -> " + s);
142        }
143        for (String s: tr.translate("acbbX")) {
144            System.out.println("acbbX" + " -> " + s);
145        }
146        for (String s: tr.translate("XacYbbZ")) {
147            System.out.println("XacYbbZ" + " -> " + s);
148        }
149    }
150   
151    void testTranslator(final String annotationTranslationFileName) {
152        //--- get translation information from XML file
153        AnnotationTranslator at = new AnnotationTranslator(annotationTranslationFileName);
154        if (at == null) {
155            System.err.println("*** ERROR *** failed to load AnnotationTranslator from file \"" + annotationTranslationFileName + "\"");
156            return;
157        }
158        if (getTranslationTypeData(at) && getTranslationTableData(at)) {
159            testPoSTranslations(at);
160            testPhonTranslations(at);       
161        } else {
162            for (TranslationTable ttable : at.getTranslationTables()) {
163                ttable.display();
164            }
165        }
166    }
167       
168    AnnotationTranslatorTestDriver(final String annotationTranslationFileName) {
169        //testTrellis();
170        testTranslator(annotationTranslationFileName);
171    }
172   
173    public static void main(String[] arguments) {
174        AnnotationTranslatorTestDriver attd;
175        if (arguments.length > 0) {
176            attd = new AnnotationTranslatorTestDriver(arguments[0]);
177        } else {
178            attd = new AnnotationTranslatorTestDriver(ANNOTATION_TRANSLATION_FILENAME);
179        }
180    }
181};
Note: See TracBrowser for help on using the repository browser.