- highlighted classes explicit in meta
- PQ+: 'dependency(X,Y)' as shortcut for 'relatesTo(d:X,Y)'
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/AnnisQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/AnnisQueryProcessorTest.java
index b3afe99..f01a38a 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/AnnisQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/AnnisQueryProcessorTest.java
@@ -262,12 +262,12 @@
assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("NP", res.at("/query/operands/0/operands/1/operands/0/key").asText());
assertEquals("korap:reference", res.at("/query/operands/1/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/1/classRef/0").asInt());
query = "cat=\"S\" & cat=\"NP\" & #1 >@r #2";
qs.setQuery(query, "annis");
@@ -279,12 +279,12 @@
assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("NP", res.at("/query/operands/0/operands/1/operands/0/key").asText());
assertEquals("korap:reference", res.at("/query/operands/1/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/1/classRef/0").asInt());
}
@Test
@@ -319,7 +319,7 @@
assertEquals("operation:relation", res.at("/query/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:relation", res.at("/query/operands/0/operands/0/relation/@type").asText());
@@ -329,7 +329,7 @@
assertEquals("CP", res.at("/query/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
}
// query = "cat=\"CP\" & cat=\"VP\" & cat=\"NP\" & #1 > #2 > #3";
@@ -338,7 +338,7 @@
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:relation, operands=[" +
// "{@type=korap:span, layer=cat, key=CP, match=match:eq}," +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span, layer=cat, key=VP, match=match:eq}" +
// "]}" +
// "], relation={@type=korap:relation, wrap={@type=korap:term, layer=c}}}" +
@@ -358,12 +358,12 @@
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:relation, operands=[" +
// "{@type=korap:span, layer=cat, key=CP, match=match:eq}," +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span, layer=cat, key=VP, match=match:eq}" +
// "]}" +
// "], relation={@type=korap:relation, wrap={@type=korap:term, layer=c}}}" +
// "]}," +
- // "{@type=korap:group, operation=operation:class, class=129, classOut=129, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=2, classOut=2, operands=[" +
// "{@type=korap:span, layer=cat, key=NP, match=match:eq}" +
// "]}" +
// "], relation={@type=korap:relation, wrap={@type=korap:term, layer=c}}}" +
@@ -400,76 +400,86 @@
// map = aqlt.getRequestMap().get("query").toString();
// assertEquals(dom2.replaceAll(" ", ""), map.replaceAll(" ", ""));
// }
- //
- // @Test
- // public void testSequence() throws Exception {
- // query = "node & node & #1 . #2";
- // String seq1 =
- // "{@type=korap:group, operation=operation:sequence, " +
- // "operands=[" +
- // "{@type=korap:span}," +
- // "{@type=korap:span}" +
- // "], inOrder=true" +
- // "}";
- // aqlt = new AqlTree(query);
- // map = aqlt.getRequestMap().get("query").toString();
- // assertEquals(seq1.replaceAll(" ", ""), map.replaceAll(" ", ""));
- //
- // query = "node & node & #1 .* #2";
- // String seq2 =
- // "{@type=korap:group, operation=operation:sequence, operands=[" +
- // "{@type=korap:span}," +
- // "{@type=korap:span}" +
- // "], distances=[" +
- // "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0}, min=0}" +
- // "], inOrder=true" +
- // "}";
- // aqlt = new AqlTree(query);
- // map = aqlt.getRequestMap().get("query").toString();
- // assertEquals(seq2.replaceAll(" ", ""), map.replaceAll(" ", ""));
- //
- // query = "node & node & #1 .2,3 #2";
- // String seq3 =
- // "{@type=korap:group, operation=operation:sequence, operands=[" +
- // "{@type=korap:span}," +
- // "{@type=korap:span}" +
- // "], distances=[" +
- // "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=2, max=3}, min=2, max=3}" +
- // "], inOrder=true" +
- // "}";
- // aqlt = new AqlTree(query);
- // map = aqlt.getRequestMap().get("query").toString();
- // assertEquals(seq3.replaceAll(" ", ""), map.replaceAll(" ", ""));
- //
- // }
- //
+
+ @Test
+ public void testSequence() throws Exception {
+ query = "tok=\"der\" & tok=\"die\" & #1 . #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("die", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
+
+ query = "tok=\"der\" & tok=\"die\" & #1 .2,3 #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("die", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("korap:distance", res.at("/query/distances/0/@type").asText());
+ assertEquals("korap:boundary", res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(2, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
+
+ query = "tok=\"der\" & tok=\"die\" & #1 .* #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:boundary", res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(true, res.at("/query/distances/0/boundary/max").isMissingNode());
+ }
+
+ @Test
+ public void testNear() throws Exception {
+ query = "tok=\"der\" & tok=\"die\" & #1 ^ #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("die", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(false, res.at("/query/inOrder").asBoolean());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
+
+ query = "tok=\"der\" & tok=\"die\" & #1 ^2,3 #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("die", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(false, res.at("/query/inOrder").asBoolean());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("korap:distance", res.at("/query/distances/0/@type").asText());
+ assertEquals("korap:boundary", res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(2, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
+
+ query = "tok=\"der\" & tok=\"die\" & #1 ^* #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:boundary", res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(true, res.at("/query/distances/0/boundary/max").isMissingNode());
+ assertEquals(false, res.at("/query/inOrder").asBoolean());
+ }
+
+
@Test
public void testMultipleSequence() throws Exception {
query = "tok=\"a\" & tok=\"b\" & tok=\"c\" & #1 . #2 & #2 . #3";
- String seq4 =
- "{@type=korap:group, operation=operation:sequence," +
- "operands=[" +
- "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
- "{@type=korap:group, operation=operation:sequence, operands=[" +
- "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Sonne, match=match:eq}}," +
- "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
- "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Mond, match=match:eq}}" +
- "]}" +
- "], distances=[" +
- "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0, max=2}, min=0, max=2}" +
- "], inOrder=true}" +
- "]}," +
- "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Sterne, match=match:eq}}" +
- "],distances=[" +
- "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0, max=4}, min=0, max=4}" +
- "], inOrder=true" +
- "}";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
assertEquals("korap:group", res.at("/query/@type").asText());
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals(res.at("/query/operands/0/classRef/0").asInt(),
res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
}
@@ -482,7 +492,7 @@
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:sequence, operands=[" +
// "{@type=korap:span}," +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span}" +
// "]} "+
// "], inOrder=true}" +
@@ -504,14 +514,14 @@
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:sequence, operands=[" +
// "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Sonne, match=match:eq}}," +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Mond, match=match:eq}}" +
// "]}" +
// "], distances=[" +
// "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0, max=2}, min=0, max=2}" +
// "], inOrder=true}" +
// "]}," +
- // "{@type=korap:group, operation=operation:class, class=129, classOut=129, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=2, classOut=2, operands=[" +
// "{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Sterne, match=match:eq}}" +
// "]}" +
// "],distances=[" +
@@ -593,14 +603,14 @@
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("Sonne", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("Mond", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("Sterne", res.at("/query/operands/1/wrap/key").asText());
assertEquals("w", res.at("/query/distances/0/key").asText());
@@ -614,14 +624,14 @@
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("Sonne", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("Mond", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("Sterne", res.at("/query/operands/1/wrap/key").asText());
assertEquals("w", res.at("/query/distances/0/key").asText());
@@ -635,21 +645,21 @@
assertEquals("operation:relation", res.at("/query/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:reference", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operands/0/operands/0/operation").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("NP", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
assertEquals("PP", res.at("/query/operands/1/key").asText());
@@ -662,21 +672,21 @@
assertEquals("korap:group", res.at("/query/@type").asText());
assertEquals("operation:position", res.at("/query/operation").asText());
assertEquals("frames:startswith", res.at("/query/frames/0").asText());
- assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("NP", res.at("/query/operands/0/operands/0/operands/0/operands/0/key").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
assertEquals("korap:reference", res.at("/query/operands/1/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/1/classRef/0").asInt());
}
@Test
@@ -732,12 +742,12 @@
res = mapper.readTree(qs.toJSON());
assertEquals("frames:startswith", res.at("/query/frames/0").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("frames:endswith", res.at("/query/operands/0/operands/0/frames/0").asText());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
assertEquals("NP", res.at("/query/operands/1/key").asText());
@@ -775,14 +785,14 @@
res = mapper.readTree(qs.toJSON());
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("p", res.at("/query/operands/0/operands/0/operands/0/wrap/layer").asText());
assertEquals("N", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("V", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("P", res.at("/query/operands/1/wrap/key").asText());
@@ -791,14 +801,14 @@
res = mapper.readTree(qs.toJSON());
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("p", res.at("/query/operands/0/operands/0/operands/0/wrap/layer").asText());
assertEquals("N", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("V", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("P", res.at("/query/operands/1/wrap/key").asText());
@@ -807,10 +817,10 @@
res = mapper.readTree(qs.toJSON());
assertEquals("operation:relation", res.at("/query/operation").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("N", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("V", res.at("/query/operands/0/operands/0/operands/1/wrap/key").asText());
assertEquals("P", res.at("/query/operands/1/wrap/key").asText());
@@ -820,20 +830,20 @@
res = mapper.readTree(qs.toJSON());
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/classRef/0").asInt());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operands/0/operands/0/operation").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(128, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("NP", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/key").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("V", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(3, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("P", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals(3, res.at("/query/operands/1/classRef/0").asInt());
assertEquals(true, res.at("/query/operands/1/operands").isMissingNode());
}
@@ -847,7 +857,7 @@
assertEquals("korap:boundary", res.at("/query/attr/tokenarity/@type").asText());
assertEquals(2, res.at("/query/attr/tokenarity/min").asInt());
assertEquals(2, res.at("/query/attr/tokenarity/max").asInt());
-
+
query = "cnx/cat=\"NP\" & #1:tokenarity=2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
@@ -859,13 +869,13 @@
assertEquals("korap:boundary", res.at("/query/attr/tokenarity/@type").asText());
assertEquals(2, res.at("/query/attr/tokenarity/min").asInt());
assertEquals(2, res.at("/query/attr/tokenarity/max").asInt());
-
+
query = "cnx/cat=\"NP\" & #1:tokenarity=2,5";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
assertEquals(2, res.at("/query/attr/tokenarity/min").asInt());
assertEquals(5, res.at("/query/attr/tokenarity/max").asInt());
-
+
query = "cnx/cat=\"NP\" & #1:root";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
@@ -875,7 +885,7 @@
assertEquals("NP", res.at("/query/key").asText());
assertEquals("korap:term", res.at("/query/attr/@type").asText());
assertEquals(true, res.at("/query/attr/root").asBoolean());
-
+
query = "cnx/cat=\"NP\" & node & #1>#2 & #1:tokenarity=2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
@@ -890,28 +900,44 @@
assertEquals(2, res.at("/query/operands/0/attr/tokenarity/min").asInt());
assertEquals(2, res.at("/query/operands/0/attr/tokenarity/max").asInt());
assertEquals("korap:span", res.at("/query/operands/1/@type").asText());
-
+
}
- // @Test
- // public void testCommonParent() throws Exception {
- // query = "cat=\"NP\" & cat=\"VP\" & #1 $ #2";
- // String cp1 =
- // "{@type=korap:group, operation=operation:relation, operands=[" +
- // "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
- // "{@type=korap:group, operation=operation:relation, operands=[" +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
- // "{@type=korap:span}" +
- // "]}," +
- // "{@type=korap:span, layer=cat, key=NP, match=match:eq}" +
- // "], relation={@type=korap:relation, wrap={@type=korap:term, layer=c}}}" +
- // "]}," +
- // "{@type=korap:span, layer=cat, key=VP, match=match:eq}" +
- // "], relation={@type=korap:relation, wrap={@type=korap:term, layer=c}}}" +
- // "";
- // aqlt = new AqlTree(query);
- // map = aqlt.getRequestMap().get("query").toString();
- // assertEquals(cp1.replaceAll(" ", ""), map.replaceAll(" ", ""));
+ @Test
+ public void testCommonParent() throws Exception {
+ query = "cat=\"NP\" & cat=\"VP\" & #1 $ #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
+ assertEquals(true, res.at("/query/operands/0/operands/0/operands/0/operands/0/key").isMissingNode());
+ assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
+ assertEquals("NP", res.at("/query/operands/0/operands/0/operands/1/key").asText());
+ assertEquals("c", res.at("/query/operands/0/operands/0/operands/1/layer").asText());
+ assertEquals("korap:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("VP", res.at("/query/operands/1/key").asText());
+ assertEquals("c", res.at("/query/operands/1/layer").asText());
+
+ query = "cat=\"NP\" & cat=\"VP\" & cat=\"PP\" & #1 $ #2 $ #3";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("korap:reference", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
+ assertEquals(1, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
+ }
//
// query = "cat=\"NP\" & cat=\"VP\" & cat=\"PP\" & #1 $ #2 $ #3";
// String cp2 =
@@ -920,7 +946,7 @@
// "{@type=korap:group, operation=operation:relation, operands=[" +
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:relation, operands=[" +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span}" +
// "]}," +
// "{@type=korap:span, layer=cat, key=NP, match=match:eq}" +
@@ -946,7 +972,7 @@
// "{@type=korap:group, operation=operation:relation, operands=[" +
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:relation, operands=[" +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span}" +
// "]}," +
// "{@type=korap:span, layer=cat, key=NP, match=match:eq}" +
@@ -971,7 +997,7 @@
// "{@type=korap:group, operation=operation:relation, operands=[" +
// "{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
// "{@type=korap:group, operation=operation:relation, operands=[" +
- // "{@type=korap:group, operation=operation:class, class=128, classOut=128, operands=[" +
+ // "{@type=korap:group, operation=operation:class, class=1, classOut=1, operands=[" +
// "{@type=korap:span}" +
// "]}," +
// "{@type=korap:span, layer=cat, key=NP, match=match:eq}" +
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
index df30e6d..92f6a16 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
@@ -400,7 +400,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -410,8 +410,8 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("Sonne", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Mond", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -421,7 +421,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -436,8 +436,8 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("Sonne", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Mond", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -479,7 +479,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -489,19 +489,19 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
assertEquals("Sonne", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:reference", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/0/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/0/classRef/0").asInt());
assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/0/operands/0/operation").asText());
assertEquals("w", res.at("/query/operands/0/operands/1/operands/0/operands/0/distances/0/key").asText());
assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/operands/0/distances/0/boundary/min").asInt());
assertEquals(7, res.at("/query/operands/0/operands/1/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("Mond", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("Sterne", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
query = "Sonne /+w1:4 Mond /-w1:7 Sterne";
@@ -516,7 +516,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -526,19 +526,19 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("Sonne", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
assertEquals("korap:reference", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operands/0/operands/0/operation").asText());
assertEquals("w", res.at("/query/operands/0/operands/0/operands/0/operands/0/distances/0/key").asText());
assertEquals(0, res.at("/query/operands/0/operands/0/operands/0/operands/0/distances/0/boundary/min").asInt());
assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("Mond", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("Sterne", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
}
@@ -550,24 +550,24 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(131, res.at("/query/classRef/0").asInt());
+ assertEquals(3, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
assertEquals("classRefCheck:includes", res.at("/query/operands/0/classRefCheck/0").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals(true, res.at("/query/operands/0/operands/0/frames/0").isMissingNode());
- assertEquals(129, res.at("/query/operands/0/classIn/0").asInt());
- assertEquals(130, res.at("/query/operands/0/classIn/1").asInt());
- assertEquals(131, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/classIn/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/classIn/1").asInt());
+ assertEquals(3, res.at("/query/operands/0/classOut").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/1/operands/0/@type").asText());
assertEquals("wegen", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -620,7 +620,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("operation:class", res.at("/query/operation").asText());
assertEquals("classRefOp:delete", res.at("/query/classRefOp").asText());
- assertEquals(131, res.at("/query/classIn/0").asInt());
+ assertEquals(3, res.at("/query/classIn/0").asInt());
assertEquals("classRefCheck:equals", res.at("/query/operands/0/classRefCheck/0").asText());
assertEquals("frames:matches", res.at("/query/operands/0/operands/0/frames/0").asText());
assertEquals(true, res.at("/query/operands/0/operands/0/exclude").asBoolean());
@@ -631,7 +631,7 @@
assertEquals("operation:merge", res.at("/query/operation").asText());
assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
assertEquals("classRefOp:delete", res.at("/query/operands/0/classRefOp").asText());
- assertEquals(131, res.at("/query/operands/0/classIn/0").asInt());
+ assertEquals(3, res.at("/query/operands/0/classIn/0").asInt());
assertEquals("classRefCheck:equals", res.at("/query/operands/0/operands/0/classRefCheck/0").asText());
assertEquals("frames:matches", res.at("/query/operands/0/operands/0/operands/0/frames/0").asText());
assertEquals(true, res.at("/query/operands/0/operands/0/operands/0/exclude").asBoolean());
@@ -644,25 +644,25 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(131, res.at("/query/classRef/0").asInt());
+ assertEquals(3, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
assertEquals("classRefCheck:intersects", res.at("/query/operands/0/classRefCheck/0").asText());
// assertEquals("classRefOp:merge", res.at("/query/operands/0/classRefOp").asText());
- assertEquals(131, res.at("/query/operands/0/classOut").asInt());
- assertEquals(129, res.at("/query/operands/0/classIn/0").asInt());
- assertEquals(130, res.at("/query/operands/0/classIn/1").asInt());
+ assertEquals(3, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/classIn/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/classIn/1").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals(true, res.at("/query/operands/0/operands/0/frames/0").isMissingNode());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/1/operands/0/@type").asText());
assertEquals("wegen", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -719,7 +719,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -729,7 +729,7 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
assertEquals("korap:reference", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
assertEquals(0, res.at("/query/operands/0/operands/0/operands/0/spanRef/0").asInt());
@@ -745,7 +745,7 @@
assertEquals("der", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/wrap/key").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("kommt", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -754,7 +754,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/distances/0/@type").asText());
@@ -764,7 +764,7 @@
assertEquals(true, res.at("/query/operands/0/inOrder").asBoolean());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:reference", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
assertEquals(0, res.at("/query/operands/0/operands/1/operands/0/spanRef/0").asInt());
@@ -780,7 +780,7 @@
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/wrap/key").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("kommt", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
@@ -916,13 +916,13 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
assertEquals("classRefOp:inversion",res.at("/query/operands/0/classRefOp").asText());
- assertEquals(130, res.at("/query/operands/0/classIn/0").asInt());
- assertEquals(131, res.at("/query/operands/0/classIn/1").asInt());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/classIn/0").asInt());
+ assertEquals(3, res.at("/query/operands/0/classIn/1").asInt());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/operands/0/distances/0/@type").asText());
@@ -931,8 +931,8 @@
assertEquals(10, res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals(131, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(3, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
assertEquals("gehen", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("voran", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -942,13 +942,13 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
assertEquals("classRefOp:inversion",res.at("/query/operands/0/classRefOp").asText());
- assertEquals(130, res.at("/query/operands/0/classIn/0").asInt());
- assertEquals(131, res.at("/query/operands/0/classIn/1").asInt());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/classIn/0").asInt());
+ assertEquals(3, res.at("/query/operands/0/classIn/1").asInt());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/@type").asText());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
assertEquals("korap:distance", res.at("/query/operands/0/operands/0/distances/0/@type").asText());
@@ -957,15 +957,15 @@
assertEquals(10, res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals(131, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(3, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("gehen", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operands/1/operands/0/operation").asText());
- assertEquals(132, res.at("/query/operands/0/operands/0/operands/1/operands/0/classRef/0").asInt());
+ assertEquals(4, res.at("/query/operands/0/operands/0/operands/1/operands/0/classRef/0").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operation").asText());
- assertEquals(132, res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/classOut").asInt());
+ assertEquals(4, res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/classOut").asInt());
assertEquals("voran", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(132, res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(4, res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("Beispiel", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
}
@@ -977,13 +977,13 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:startswith", res.at("/query/operands/0/frames/0").asText());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/@type").asText());
@@ -994,7 +994,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:matches", res.at("/query/operands/0/frames/0").asText());
@@ -1010,7 +1010,7 @@
assertEquals(1, res.at("/query/operands/0/operands/1/spanRef/1").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/classOut").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/0/operands/0/operation").asText());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/wrap/key").asText());
@@ -1020,7 +1020,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:matches", res.at("/query/operands/0/frames/0").asText());
@@ -1032,7 +1032,7 @@
assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operands/1/operands/0/operation").asText());
assertEquals("der", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/key").asText());
@@ -1045,7 +1045,7 @@
assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/1/operands/0/operation").asText());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/0/operands/1/operands/1/operands/0/operands/1/wrap/key").asText());
@@ -1059,13 +1059,13 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:startswith", res.at("/query/operands/0/frames/0").asText());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("korap:token", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("korap:span", res.at("/query/operands/0/operands/0/@type").asText());
@@ -1076,7 +1076,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:matches", res.at("/query/operands/0/frames/0").asText());
@@ -1087,7 +1087,7 @@
assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("der", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operands/1/operation").asText());
@@ -1097,7 +1097,7 @@
assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/1/operands/0/wrap/key").asText());
query = "der:sa,-pa,+te";
@@ -1105,7 +1105,7 @@
res = mapper.readTree(qs.toJSON());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
assertEquals("frames:matches", res.at("/query/operands/0/frames/0").asText());
@@ -1116,11 +1116,11 @@
assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("der", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("korap:reference", res.at("/query/operands/0/operands/1/@type").asText());
assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/classRef/0").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/classRef/0").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
assertEquals("frames:matches", res.at("/query/operands/0/operands/1/operands/0/frames/0").asText());
@@ -1132,7 +1132,7 @@
assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/0/operands/1/@type").asText());
assertEquals("operation:position", res.at("/query/operands/0/operands/1/operands/0/operands/1/operation").asText());
@@ -1149,7 +1149,7 @@
assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/1").asInt());
assertEquals("korap:group", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/@type").asText());
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operation").asText());
- assertEquals(131, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/classOut").asInt());
+ assertEquals(3, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/classOut").asInt());
assertEquals("der", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key").asText());
}
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
index 44519ec..c0b91f7 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
@@ -136,10 +136,22 @@
assertEquals("type:regex", res.at("/query/wrap/type").asText());
assertEquals("orth", res.at("/query/wrap/layer").asText());
assertEquals("match:eq", res.at("/query/wrap/match").asText());
-
}
@Test
+ public void testPunct() throws JsonProcessingException, IOException {
+ query = "[punct=.]";
+ qs.setQuery(query, "poliqarpplus");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("korap:token", res.at("/query/@type").asText());
+ assertEquals("korap:term", res.at("/query/wrap/@type").asText());
+ assertEquals(".", res.at("/query/wrap/key").asText());
+ assertEquals("type:punct", res.at("/query/wrap/type").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ }
+
+ @Test
public void testCaseSensitivityFlag() throws JsonProcessingException, IOException {
query = "[orth=deutscher/i]";
qs.setQuery(query, "poliqarpplus");
@@ -456,13 +468,15 @@
operands = Lists.newArrayList(operands.get(1).at("/operands").elements());
assertEquals("korap:token", operands.get(0).at("/@type").asText());
assertEquals(true, operands.get(0).at("/wrap").isMissingNode());
-
+ assertEquals(1, res.at("/meta/highlight/0").asInt());
+
query = "[base=der]{2:[]}[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
operands = Lists.newArrayList(res.at("/query/operands").elements());
assertEquals("operation:class", operands.get(1).at("/operation").asText());
assertEquals(2, operands.get(1).at("/classOut").asInt());
+ assertEquals(2, res.at("/meta/highlight/0").asInt());
query = "{1:[]}[base=der][base=Mann]";
qs.setQuery(query, "poliqarpplus");
@@ -470,6 +484,7 @@
operands = Lists.newArrayList(res.at("/query/operands").elements());
assertEquals("operation:class", operands.get(0).at("/operation").asText());
assertEquals(1, operands.get(0).at("/classOut").asInt());
+ assertEquals(1, res.at("/meta/highlight/0").asInt());
query = "{1:{2:der} {3:[]} Mann}";
qs.setQuery(query, "poliqarpplus");
@@ -478,7 +493,9 @@
assertEquals(1, operands.size()); // class operation may only have one operand (the sequence)
operands = Lists.newArrayList(operands.get(0).at("/operands").elements());
assertEquals(3, operands.size()); // the sequence has three operands ("der", "[]" and "Mann")
-
+ assertEquals(1, res.at("/meta/highlight/0").asInt());
+ assertEquals(2, res.at("/meta/highlight/1").asInt());
+ assertEquals(3, res.at("/meta/highlight/2").asInt());
}
@Test
@@ -900,7 +917,8 @@
assertEquals(true, res.at("/query/operands/0/classIn").isMissingNode());
assertEquals("Mann", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
assertEquals("Frau", res.at("/query/operands/0/operands/0/operands/1/wrap/key").asText());
-
+ assertEquals(1, res.at("/meta/highlight/0").asInt());
+
query = "{2:{1:[tt/p=ADJA]}[mate/p=NN]}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
@@ -909,6 +927,8 @@
assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
assertEquals(2, res.at("/query/classOut").asInt());
assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/meta/highlight/0").asInt());
+ assertEquals(1, res.at("/meta/highlight/1").asInt());
}
@Test
@@ -923,7 +943,8 @@
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("Mann", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
-
+ assertEquals(1, res.at("/meta/highlight/0").asInt());
+
query = "focus([orth=Der]{[orth=Mann][orth=geht]})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
@@ -936,7 +957,8 @@
res = mapper.readTree(qs.toJSON());
assertEquals(2, res.at("/query/classRef/0").asInt());
assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
-
+ assertEquals(2, res.at("/meta/highlight/0").asInt());
+
query = "focus(3:startswith(<s>,{3:<np>}))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
@@ -947,12 +969,14 @@
assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
assertEquals(3, res.at("/query/operands/0/operands/1/classOut").asInt());
assertEquals("frames:startswith", res.at("/query/operands/0/frames/0").asText());
-
+ assertEquals(3, res.at("/meta/highlight/0").asInt());
+
query = "focus(1000:startswith(<s>,{1000:<np>}))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(127, res.at("/query/classRef/0").asInt());
- assertEquals(127, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(128, res.at("/query/classRef/0").asInt());
+ assertEquals(128, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(128, res.at("/meta/highlight/0").asInt());
query = "focus(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))";
qs.setQuery(query, "poliqarpplus");
@@ -987,6 +1011,9 @@
assertEquals("classRefOp:intersection", res.at("/query/classRefOp").asText());
assertEquals("korap:reference", res.at("/query/@type").asText());
assertEquals("operation:split", res.at("/query/operation").asText());
+ assertEquals(3, res.at("/meta/highlight/0").asInt());
+ assertEquals(1, res.at("/meta/highlight/1").asInt());
+ assertEquals(2, res.at("/meta/highlight/2").asInt());
query = "focus(1:{[base=der]}{1:[pos=ADJA]})";
qs.setQuery(query, "poliqarpplus");
@@ -1063,6 +1090,16 @@
assertEquals("d", res.at("/query/relation/wrap/layer").asText());
assertEquals("HEAD", res.at("/query/relation/wrap/key").asText());
+ query = "dependency([base=fällen],[base=Baum])";
+ qs.setQuery(query, "poliqarpplus");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("lemma", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("fällen", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("Baum", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("korap:relation", res.at("/query/relation/@type").asText());
+ assertEquals("d", res.at("/query/relation/wrap/layer").asText());
+
query = "dominates(Baum,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
@@ -1112,8 +1149,8 @@
assertEquals("operation:sequence", res.at("/query/operation").asText());
assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals(129, res.at("/meta/alignment").asInt());
+ assertEquals(1, res.at("/query/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment").asInt());
query = "[orth=der]^[orth=große][orth=Mann]";
qs.setQuery(query, "poliqarpplus");
@@ -1123,8 +1160,8 @@
assertEquals("operation:sequence", res.at("/query/operands/1/operands/0/operation").asText());
assertEquals("große", res.at("/query/operands/1/operands/0/operands/0/wrap/key").asText());
assertEquals("Mann", res.at("/query/operands/1/operands/0/operands/1/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals(129, res.at("/meta/alignment").asInt());
+ assertEquals(1, res.at("/query/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment").asInt());
query = "([base=a]^[base=b])|[base=c]";
qs.setQuery(query, "poliqarpplus");
@@ -1135,8 +1172,8 @@
assertEquals("a", res.at("/query/operands/0/operands/0/wrap/key").asText());
assertEquals("b", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("c", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals(129, res.at("/meta/alignment").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment").asInt());
query = "([base=a]^[base=b][base=c])|[base=d]";
qs.setQuery(query, "poliqarpplus");
@@ -1153,8 +1190,8 @@
assertEquals("b", res.at("/query/operands/0/operands/1/operands/0/operands/0/wrap/key").asText());
assertEquals("c", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
assertEquals("d", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(129, res.at("/meta/alignment/0").asInt());
- assertEquals(130, res.at("/meta/alignment/1").asInt());
+ assertEquals(1, res.at("/meta/alignment/0").asInt());
+ assertEquals(2, res.at("/meta/alignment/1").asInt());
}
@Test