- system-set classes start at 128
- positions debug
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
index 0a348fa..7510710 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
@@ -147,49 +147,48 @@
return group;
}
- protected LinkedHashMap<String, Object> makePosition(String[] allowedFrames, String[] sharedClasses) {
+ protected LinkedHashMap<String, Object> makePosition(String[] allowedFrames, String[] classRefCheck) {
LinkedHashMap<String, Object> group = new LinkedHashMap<String, Object>();
group.put("@type", "korap:group");
group.put("operation", "operation:position");
group.put("frames", Arrays.asList(allowedFrames));
-// group.put("sharedClasses", Arrays.asList(sharedClasses));
group.put("operands", new ArrayList<Object>());
// DEPRECATED 'frame'
- if (sharedClasses.length==0) sharedClasses = new String[]{"classRefCheck:includes"};
+ if (classRefCheck.length==0) classRefCheck = new String[]{"classRefCheck:includes"};
String frame = "";
- if (allowedFrames.length==0 && sharedClasses[0]=="classRefCheck:includes") {
+ if (allowedFrames.length==0 && classRefCheck[0]=="classRefCheck:includes") {
frame = "frame:contains";
- } else if (allowedFrames.length==0 && sharedClasses[0]=="classRefCheck:intersects") {
+ } else if (allowedFrames.length==0 && classRefCheck[0]=="classRefCheck:intersects") {
frame = "frame:overlaps";
- } else if (allowedFrames[0]=="frames:startswith" && sharedClasses[0]=="classRefCheck:includes") {
+ } else if (allowedFrames[0]=="frames:startswith" && classRefCheck[0]=="classRefCheck:includes") {
frame = "frame:startswith";
- } else if (allowedFrames[0]=="frames:endswith" && sharedClasses[0]=="classRefCheck:includes") {
+ } else if (allowedFrames[0]=="frames:endswith" && classRefCheck[0]=="classRefCheck:includes") {
frame = "frame:endswith";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:includes" && sharedClasses.length==1) {
- frame = "frame:endswith";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:includes" && sharedClasses[1]=="classRefCheck:unequals") {
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:includes" && classRefCheck.length==1) {
frame = "frame:matches";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:equals") {
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:includes" && classRefCheck[1]=="classRefCheck:unequals") {
+ frame = "frame:matches";
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:equals") {
frame = "frame:matches";
- } else if (allowedFrames[0]=="frames:contains" && sharedClasses[0]=="classRefCheck:includes") {
+ } else if (allowedFrames[0]=="frames:contains" && classRefCheck[0]=="classRefCheck:includes") {
frame = "frame:contains";
- } else if (allowedFrames[0]=="frames:startswith" && sharedClasses[0]=="classRefCheck:intersects") {
+ } else if (allowedFrames[0]=="frames:startswith" && classRefCheck[0]=="classRefCheck:intersects") {
frame = "frame:overlapsLeft";
- } else if (allowedFrames[0]=="frames:endswith" && sharedClasses[0]=="classRefCheck:intersects") {
+ } else if (allowedFrames[0]=="frames:endswith" && classRefCheck[0]=="classRefCheck:intersects") {
frame = "frame:overlapsRight";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:intersects") {
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:intersects") {
frame = "frame:matches";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:unequals") {
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:unequals") {
frame = "frame:matches";
- } else if (allowedFrames[0]=="frames:matches" && sharedClasses[0]=="classRefCheck:equals") {
+ } else if (allowedFrames[0]=="frames:matches" && classRefCheck[0]=="classRefCheck:equals") {
frame = "frame:matches";
- } else if (allowedFrames[0]=="frames:contains" && sharedClasses[0]=="classRefCheck:intersects") {
+ } else if (allowedFrames[0]=="frames:contains" && classRefCheck[0]=="classRefCheck:intersects") {
frame = "frame:contains";
}
group.put("frame", frame);
announcements.add("Deprecated 2014-09-22: 'frame' only to be supported until 3 months from deprecation date. " +
- "Position frames are now expressed through 'frames' and 'sharedClasses'.");
+ "Position frames are now expressed through 'frames'.");
return group;
}
@@ -202,10 +201,10 @@
group.put("@type", "korap:group");
group.put("operation", "operation:class");
if (setBySystem) {
- group.put("class", 1024+classCount);
- group.put("classOut", 1024+classCount);
+ group.put("class", 128+classCount);
+ group.put("classOut", 128+classCount);
announcements.add("A class has been introduced into the backend representation of " +
- "your query for later reference to a part of the query. The class id is "+(1024+classCount));
+ "your query for later reference to a part of the query. The class id is "+(128+classCount));
} else {
group.put("class", classCount);
group.put("classOut", classCount);
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
index 747b52f..ad2d5b7 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
@@ -520,36 +520,31 @@
// relation.put("groupType", "position");
String reltype = operatorNode.getChild(0).toStringTree(parser);
String[] frames = new String[]{};
- String[] sharedClasses = new String[]{"sharedClasses:includes"};
switch (reltype) {
case "_=_":
- frames = new String[]{"frame:matches"};
- sharedClasses = new String[]{"sharedClasses:equals"};
+ frames = new String[]{"frames:matches"};
break;
case "_l_":
- frames = new String[]{"frame:startswith"};
+ frames = new String[]{"frames:startswith"};
break;
case "_r_":
- frames = new String[]{"frame:endswith"};
+ frames = new String[]{"frames:endswith"};
break;
case "_i_":
- frames = new String[]{"frame:contains"};break;
+ frames = new String[]{"frames:contains"};break;
case "_o_":
- frames = new String[]{"frame:overlapsLeft", "frame:overlapsRight"};
- sharedClasses = new String[]{"sharedClasses:intersects"};
+ frames = new String[]{"frames:overlapsLeft", "frames:overlapsRight"};
break;
case "_ol_":
- frames = new String[]{"frame:overlapsLeft"};
- sharedClasses = new String[]{"sharedClasses:intersects"};
+ frames = new String[]{"frames:overlapsLeft"};
break;
case "_or_":
- frames = new String[]{"frame:overlapsRight"};
- sharedClasses = new String[]{"sharedClasses:intersects"};
+ frames = new String[]{"frames:overlapsRight"};
break;
}
// relation.put("frames", frames);
// relation.put("sharedClasses", sharedClasses);
- relation = makePosition(frames, sharedClasses);
+ relation = makePosition(frames, new String[]{});
relation.put("groupType", "position");
}
else if (operator.equals("identity")) {
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 f8a7f19..78cf472 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
@@ -225,6 +225,7 @@
LinkedHashMap<String, Object> token = new LinkedHashMap<String, Object>();
token.put("@type", "korap:token");
ArrayList<Object> terms = new ArrayList<Object>();
+ LinkedHashMap<String, Object> fieldMap = null;
for (String morphterm : morphterms) {
String[] attrval = morphterm.split("=");
if (attrval[0].endsWith("!")) {
@@ -232,7 +233,7 @@
attrval[0] = attrval[0].replace("!", "");
}
String[] foundrylayer = attrval[0].split("/");
- LinkedHashMap<String, Object> fieldMap = new LinkedHashMap<String, Object>();
+ fieldMap = new LinkedHashMap<String, Object>();
fieldMap.put("@type", "korap:term");
// fieldMap.put("key", "morph:"+node.getChild(0).toString().replace(" ", "_"));
fieldMap.put("key", attrval[1]);
@@ -253,7 +254,7 @@
terms.add(fieldMap);
}
if (morphterms.length == 1) {
- token.put("wrap", terms);
+ token.put("wrap", fieldMap);
} else {
LinkedHashMap<String, Object> termGroup = makeTermGroup("and");
termGroup.put("operands", terms);
@@ -450,7 +451,7 @@
if (! (openNodeCats.get(1).equals("OPBEG") || openNodeCats.get(1).equals("OPEND") || inOPALL || openNodeCats.get(1).equals("OPNHIT"))) {
wrapOperandInClass(node,1,classCounter);
wrapOperandInClass(node,2,classCounter);
- group = wrapInReference(group, 1024+classCounter++);
+ group = wrapInReference(group, 128+classCounter++);
} else if (openNodeCats.get(1).equals("OPNHIT")) {
LinkedHashMap<String,Object> repetition = makeRepetition(min, max);
((ArrayList<Object>) repetition.get("operands")).add(makeToken());
@@ -519,15 +520,15 @@
stackedObjects++;
// Step II: wrap in reference and decide where to put
ArrayList<String> check = (ArrayList<String>) positionOptions.get("classRefCheck");
- Integer[] classIn = new Integer[]{1024+classCounter-2,1024+classCounter-1};
- LinkedHashMap<String, Object> classRefCheck = makeClassRefCheck(check, classIn, 1024+classCounter);
+ Integer[] classIn = new Integer[]{128+classCounter-2,128+classCounter-1};
+ LinkedHashMap<String, Object> classRefCheck = makeClassRefCheck(check, classIn, 128+classCounter);
((ArrayList<Object>) classRefCheck.get("operands")).add(posgroup);
LinkedHashMap<String, Object> focusGroup = null;
if ((boolean) positionOptions.get("matchall") == true) {
focusGroup = makeResetReference();
((ArrayList<Object>) focusGroup.get("operands")).add(classRefCheck);
} else { // match only first argument
- focusGroup = wrapInReference(classRefCheck, 1024+classCounter-1);
+ focusGroup = wrapInReference(classRefCheck, 128+classCounter-1);
}
putIntoSuperObject(focusGroup, 1);
}
@@ -556,10 +557,10 @@
}
if (nodeCat.equals("OPNHIT")) {
- Integer[] classRef = new Integer[]{1024+classCounter+1, 1024+classCounter+2};
+ Integer[] classRef = new Integer[]{128+classCounter+1, 128+classCounter+2};
// classRef.add(classCounter + 1); // yes, do this twice (two classes)!
- LinkedHashMap<String, Object> group = makeReference(1024+classCounter);
- LinkedHashMap<String, Object> classRefCheck = makeClassRefOp("classRefOp:inversion", classRef, classCounter+1024);
+ LinkedHashMap<String, Object> group = makeReference(128+classCounter);
+ LinkedHashMap<String, Object> classRefCheck = makeClassRefOp("classRefOp:inversion", classRef, classCounter+128);
ArrayList<Object> operands = new ArrayList<Object>();
operands.add(classRefCheck);
group.put("operands", operands);
@@ -601,7 +602,7 @@
// create a containing group expressing the submatch constraint on the first argument
ArrayList<Integer> spanRef = new ArrayList<Integer>();
spanRef.add(1);
- LinkedHashMap<String, Object> submatchgroup = makeReference(1024+classCounter);
+ LinkedHashMap<String, Object> submatchgroup = makeReference(128+classCounter);
ArrayList<Object> submatchoperands = new ArrayList<Object>();
submatchgroup.put("operands", submatchoperands);
putIntoSuperObject(submatchgroup);
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
index bb78e03..5418c09 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
@@ -20,7 +20,7 @@
public class PoliqarpPlusTree extends Antlr4AbstractSyntaxTree {
private static Logger log = LoggerFactory.getLogger(PoliqarpPlusTree.class);
- private int classCounter = 1024;
+ private int classCounter = 128;
/**
* Most centrally, this class maintains a set of nested maps and lists which represent the JSON tree, which is built by the JSON serialiser