blob: fa003d4b0988a7d8c5179857f77884a8932ec758 [file] [log] [blame]
package de.ids_mannheim.korap.annotation;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import de.ids_mannheim.korap.constant.AnnotationType;
import de.ids_mannheim.korap.entity.Annotation;
/**
* Helper class to parse annotation scripts variables. It prints out
* corenlp constituency layer for each negranodes.
*
* @author margaretha
*
*/
@Deprecated
public class ArrayVariables {
public static HashMap<String, List<Annotation>> annotationMap =
new HashMap<>();
public static void main (String[] args) throws IOException {
ArrayVariables variables = new ArrayVariables();
variables.extractVariables();
List<Annotation> negranodes = annotationMap.get("negranodes");
for (Annotation n : negranodes) {
System.out.println("ah[\"corenlp/c=" + n.getCode() + "-\"] = [");
int i = 1;
List<Annotation> negraedges = annotationMap.get("negraedges");
for (Annotation edge : negraedges) {
System.out.print(
" [\"" + edge.getCode() + "\", \"" + edge.getText()
+ "\", \"" + edge.getDescription() + "\"]");
if (i < negraedges.size()) {
System.out.println(",");
}
else {
System.out.println();
}
i++;
}
System.out.println("];");
System.out.println();
}
}
public void extractVariables () throws IOException {
String dir = "annotation-scripts/variables";
if (dir.isEmpty()) return;
File d = new File(dir);
if (!d.isDirectory()) {
throw new IOException("Directory " + dir + " is not valid");
}
for (File file : d.listFiles()) {
if (!file.exists()) {
throw new IOException("File " + file + " is not found.");
}
readFile(file);
}
}
private void readFile (File file) throws IOException {
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream(file)));
String line;
ArrayList<String> values;
List<Annotation> annotations = new ArrayList<>();
while ((line = br.readLine()) != null) {
line = line.trim();
if (line.startsWith("[")) {
values = AnnotationParser.computeValues(line);
Annotation annotation = new Annotation(values.get(0),
AnnotationType.VALUE, values.get(1), values.get(2));
annotations.add(annotation);
}
}
br.close();
String filename = file.getName();
filename = filename.substring(0, filename.length() - 3);
annotationMap.put(filename, annotations);
}
}