} else {
child = phraseStructure.getNonTerminalNode(childid-START_ID_OF_NONTERMINALS+1);
}
Edge e = phraseStructure.addPhraseStructureEdge(parent, child);
SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureEdgeLabelSymbolTables();
for (String name : inputTables.keySet()) {
e.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
}
} else if (reader.getLocalName().equals("edgelabel")) { // edgelabel
// domain = Domain.EL;
}
} else if (reader.getLocalName().charAt(0) == 'n') {
// n -> nt, nonterminals, name
if (reader.getLocalName().length() == 2) { // nt
final String id = reader.getAttributeValue(null, "id");
if (graphRootID.length() == id.length() && graphRootID.toString().equals(id)) {
parent = phraseStructure.getPhraseStructureRoot();
} else {
int index = id.indexOf('_');
if (index != -1) {
parent = phraseStructure.addNonTerminalNode(Integer.parseInt(id.substring(index+1))-START_ID_OF_NONTERMINALS+1);
}
}
SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureNodeLabelSymbolTables();
for (String name : inputTables.keySet()) {
parent.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
}
} else if (reader.getLocalName().equals("name")) { // name
// elementContent.setLength(0);
// collectChar = true;
}
} else if (reader.getLocalName().charAt(0) == 't') {
// t -> t, terminals
if (reader.getLocalName().length() == 1) { // t
SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getInputSymbolTables();
child = syntaxGraph.addTokenNode();
for (String name : inputTables.keySet()) {
child.addLabel(inputTables.get(name), reader.getAttributeValue(null, name.toLowerCase()));
}
}
} else if (reader.getLocalName().charAt(0) == 's') {
// s -> subcorpus, secedge, s, secedgelabel
if (reader.getLocalName().length() == 1) { // s
String id = reader.getAttributeValue(null, "id");
boolean indexable = false;
int index = -1;
if (id != null && id.length() > 0) {
for (int i = 0, n = id.length(); i < n; i++) {
if (Character.isDigit(id.charAt(i))) {
if (index == -1) {
index = i;
}
indexable = true;
}
}
}
if (indexable) {
phraseStructure.setSentenceID(Integer.parseInt(id.substring(index)));
} else {
phraseStructure.setSentenceID(sentenceCount+1);
}
}
} else if (reader.getLocalName().charAt(0) == 'v') {
// v -> variable, value
// if (reader.getLocalName().equals("value")) {
// valueName.setLength(0);
// valueName.append(reader.getAttributeValue(null, "name"));
// elementContent.setLength(0);
// collectChar = true;
// }
} else {
// a -> annotation, author
// b -> body
// c -> corpus
// d -> date, description,
// f -> feature, format
// g -> graph
// h -> head, history
// m -> matches, match
if (reader.getLocalName().equals("graph")) {
graphRootID.setLength(0);
graphRootID.append(reader.getAttributeValue(null, "root"));
} else if (reader.getLocalName().equals("corpus")) {
// header.setCorpusID(reader.getAttributeValue(null, "id"));
// header.setCorpusID(reader.getAttributeValue(null, "version"));
} else if (reader.getLocalName().equals("feature")) {
// if (header != null) {
// currentFeatureName.setLength(0);
// currentFeatureName.append(reader.getAttributeValue(null, "name"));
// header.addFeature(reader.getAttributeValue(null, "name"), reader.getAttributeValue(null, "domain"));
// }
// domain = Domain.valueOf(reader.getAttributeValue(null, "domain"));
} else if (reader.getLocalName().equals("secedgelabel")) {
// domain = Domain.SEL;
} else if (reader.getLocalName().equals("author")) {
// elementContent.setLength(0);
// collectChar = true;
} else if (reader.getLocalName().equals("date")) {
// elementContent.setLength(0);
// collectChar = true;
} else if (reader.getLocalName().equals("description")) {
// elementContent.setLength(0);
// collectChar = true;
} else if (reader.getLocalName().equals("format")) {
// elementContent.setLength(0);
// collectChar = true;
} else if (reader.getLocalName().equals("history")) {
// elementContent.setLength(0);
// collectChar = true;
}
}
} else if (event == XMLStreamConstants.END_ELEMENT) {
if (reader.getLocalName().length() == 0) {
continue;
}
if (reader.getLocalName().charAt(0) == 'e') {
// e -> edge, edgelabel
} else if (reader.getLocalName().charAt(0) == 'n') {
// n -> nt, nonterminals, name
if (reader.getLocalName().equals("nt")) {
ntid.setLength(0);
}
else if (reader.getLocalName().equals("nonterminals")) {
if (phraseStructure.nTokenNode() == 1 && phraseStructure.nNonTerminals() == 0 &&((NonTerminalNode)phraseStructure.getPhraseStructureRoot()).nChildren() == 0) {
Edge e = phraseStructure.addPhraseStructureEdge(phraseStructure.getPhraseStructureRoot(), phraseStructure.getTokenNode(1));
SortedMap<String, SymbolTable> inputTables = dataFormatInstance.getPhraseStructureEdgeLabelSymbolTables();
for (String name : inputTables.keySet()) {
e.addLabel(inputTables.get(name), "--");
}
}
}
// else if (reader.getLocalName().equals("name")) {
// if (header != null) {