corpus-services  1.0
EXB2TEI.java
Go to the documentation of this file.
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  */
6 
7 package de.uni_hamburg.corpora.conversion;
8 
11 import java.util.logging.Level;
12 import java.util.logging.Logger;
13 import javax.xml.transform.TransformerConfigurationException;
14 import javax.xml.transform.TransformerException;
15 import org.exmaralda.partitureditor.jexmaralda.BasicTranscription;
16 import org.exmaralda.partitureditor.jexmaralda.ListTranscription;
17 import org.exmaralda.partitureditor.jexmaralda.SegmentedTranscription;
18 import org.exmaralda.partitureditor.jexmaralda.segment.SegmentedToListInfo;
19 
24 public class EXB2TEI {
25 
26  private String segmentationAlgorithm = "GENERIC";
27  private String language = "en";
28  private static final String STYLESHEET_PATH = "/org/exmaralda/partitureditor/jexmaralda/xsl/EXMARaLDA2TEI.xsl";
29 
31  public EXB2TEI() {
32 
33  }
34 
39  public String convert(String basicTranscription){
40  return convert(basicTranscription, segmentationAlgorithm);
41  }
42 
43  public String convert(String basicTranscription, String algorithmName){
44 
45  String result = null;
46 
47  switch (algorithmName) {
48  case "GENERIC":
49  result = BasicTranscriptionToGenericISOTEI(basicTranscription);
50  break;
51  case "HIAT":
52  result = BasicTranscriptionToGenericISOTEI(basicTranscription);
53  break;
54  default:
55  throw new IllegalArgumentException("Invalid segmentation algoritm: " + algorithmName);
56  }
57 
58  return result;
59  }
60 
61  public void setAlgorithm(String algorithmName){
62  segmentationAlgorithm = algorithmName;
63  }
64 
65  public String getAlgorithm(){
66  return segmentationAlgorithm;
67  }
68 
69  public void setLanguage(String lang){
70  language = lang;
71  }
72 
73  public String getLanguage(){
74  return language;
75  }
76 
77  private String BasicTranscriptionToGenericISOTEI(String btString) {
78 
79  String result = null;
80 
81  try{
82  BasicTranscription bt = TypeConverter.String2BasicTranscription(btString);
83 
84  SegmentedTranscription st = bt.toSegmentedTranscription();
85  ListTranscription lt = st.toListTranscription(new SegmentedToListInfo(st, SegmentedToListInfo.TURN_SEGMENTATION));
86 
87  lt.getBody().sort();
88  // read the XSL stylesheet into a String
89  String xsl = TypeConverter.InputStream2String(org.exmaralda.partitureditor.jexmaralda.convert.TEIConverter.class.getResourceAsStream(STYLESHEET_PATH));
90 
91  // perform XSLT transformation
92  XSLTransformer xt = new XSLTransformer();
93  result = xt.transform(lt.toXML(), xsl);
94 
95  } catch (TransformerConfigurationException ex) {
96  Logger.getLogger(EXB2TEI.class.getName()).log(Level.SEVERE, null, ex);
97  } catch (TransformerException ex) {
98  Logger.getLogger(EXB2TEI.class.getName()).log(Level.SEVERE, null, ex);
99  }
100 
101  return result;
102  }
103 
104 }
String convert(String basicTranscription, String algorithmName)
Definition: EXB2TEI.java:43
void setAlgorithm(String algorithmName)
Definition: EXB2TEI.java:61
static BasicTranscription String2BasicTranscription(String btAsString)
static String InputStream2String(InputStream is)
String convert(String basicTranscription)
Definition: EXB2TEI.java:39