deactivated treatment of zero-word distances as overlaps
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
index 702f007..0953e5c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
@@ -329,16 +329,12 @@
term.put("match", "match:" + match);
if (node.getChildCount() == elname + 1) {
termGroupOperands.add(term);
- System.err.println("taga");
} else {
subTermGroupOperands.add(term);
- System.err.println(layer);
}
}
if (node.getChildCount() > elname + 1) {
- System.err.println(termGroupOperands);
termGroupOperands.add(subTermGroup);
- System.err.println(termGroupOperands);
}
}
if (getNodeCat(attrNode).equals("NOTEQ")) negate = true;
@@ -425,10 +421,15 @@
int max = Integer.parseInt(maxStr);
// If zero word-distance, wrap this sequence in a disjunction along with an overlap position
// between the two operands
+ /*
+ XXX: This is currently deactivated. Uncomment to activate treatment of zero-word distances as overlap-alternatives
+ (see google doc on special distances serialization)
+
if (meas.equals("w") && min == 0) {
min = 1;
putIntoOverlapDisjunction = true;
}
+ */
if (!meas.equals("w") && min == 0 ) {
processSpanDistance(meas,min,max);
}
@@ -468,7 +469,9 @@
ArrayList<Object> overlapsOperands = (ArrayList<Object>) overlapsGroup.get("operands");
// this ensures identity of the operands lists and thereby a distribution of the operands for both created objects
sequence.put("operands", overlapsOperands);
- if (invertedOperands) invertedOperandsLists.push(overlapsOperands);
+ if (invertedOperands) {
+ invertedOperandsLists.push(overlapsOperands);
+ }
disjOperands.add(overlapsGroup);
disjOperands.add(wrapInReference(sequence, 0));
// Step II: decide where to put
@@ -476,6 +479,10 @@
objectStack.push(sequence);
}
else {
+ if (invertedOperands) {
+ ArrayList<Object> operands = (ArrayList<Object>) embeddedSequence.get("operands");
+ invertedOperandsLists.push(operands);
+ }
// Step II: decide where to put
putIntoSuperObject(group, 0);
objectStack.push(embeddedSequence);
@@ -508,7 +515,7 @@
// Wrap the argument of an #IN operator in a previously defined container
if (nodeCat.equals("ARG1") || nodeCat.equals("ARG2")) {
Tree parent = node.getParent();
- String child = getNodeCat(node.getChild(0));
+// String child = getNodeCat(node.getChild(0));
// if (child.equals("OPWF") | child.equals("OPLEM") | child.equals("OPELEM") | child.equals("OPMOPRH") | child.equals("OPLABEL")) {
if (operandWrap.containsRow(parent)) {
// Step I: create group
@@ -689,8 +696,7 @@
}
private void processSpanDistance(String meas, int min, int max) {
- // TODO Auto-generated method stub
-
+ // TODO Do stuff here in case we'll decide one day to treat span distances in a special way.
}
/**
@@ -978,6 +984,7 @@
ArrayList<Object> topObjectOperands = (ArrayList<Object>) objectStack.get(objStackPosition).get("operands");
if (!invertedOperandsLists.contains(topObjectOperands)) {
topObjectOperands.add(object);
+ System.out.println(objectStack.get(objStackPosition));
} else {
topObjectOperands.add(0, object);
}
@@ -1059,7 +1066,8 @@
// "#NHIT(gehen /w1:10 voran)"
// "MORPH(V PRES IND)",
// "wegen #OV(F) <s>"
- "Sonne /s0 Mond"
+// "Sonne /s0 Mond",
+ "Sonne /+w1:4 Mond /-w1:7 Sterne"
};
CosmasTree.verbose=true;
for (String q : queries) {