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

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

Summary: Adding option to supply named annotation translation configuration file in TestDriver?. This will make it easier for others to more easily test their own configurations.

File size: 7.3 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)) {
159            return;
160        }
161        if (!getTranslationTableData(at)) {
162            return;
163        }
164        testPoSTranslations(at);
165        testPhonTranslations(at);       
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.