Cleanup for version 0.2
Change-Id: I383ed12da8abc96b233c0694612f837b49731201
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 fc1b74d..114fc2c 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
@@ -1,4 +1,5 @@
package de.ids_mannheim.korap.query.serialize;
+
import static org.junit.Assert.*;
import java.io.IOException;
@@ -14,7 +15,8 @@
import de.ids_mannheim.korap.query.serialize.util.StatusCodes;
/**
- * Tests for JSON-LD serialization of ANNIS QL queries.
+ * Tests for JSON-LD serialization of ANNIS QL queries.
+ *
* @author Joachim Bingel (bingel@ids-mannheim.de)
* @version 1.0
*/
@@ -27,8 +29,9 @@
ObjectMapper mapper = new ObjectMapper();
JsonNode res;
+
@Test
- public void testContext() throws JsonProcessingException, IOException {
+ public void testContext () throws JsonProcessingException, IOException {
String contextUrl = "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld";
query = "foo";
qs.setQuery(query, "annis");
@@ -36,302 +39,379 @@
assertEquals(contextUrl, res.get("@context").asText());
}
+
@Test
- public void testSingleTokens() throws JsonProcessingException, IOException {
+ public void testSingleTokens () throws JsonProcessingException, IOException {
query = "\"Mann\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("Mann", res.at("/query/wrap/key").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("Mann", res.at("/query/wrap/key").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "tok!=\"Frau\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("Frau", res.at("/query/wrap/key").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("Frau", res.at("/query/wrap/key").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
query = "tok"; // special keyword for token
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
query = "Mann"; // no special keyword -> defaults to layer name
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("Mann", res.at("/query/layer").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("Mann", res.at("/query/layer").asText());
}
- @Test
- public void testSpans() throws JsonProcessingException, IOException {
+
+ @Test
+ public void testSpans () throws JsonProcessingException, IOException {
query = "node"; // special keyword for general span
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
query = "cat=\"np\""; // cat is special keyword for spans
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("np", res.at("/query/key").asText());
- assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("np", res.at("/query/key").asText());
+ assertEquals("c", res.at("/query/layer").asText());
- query = "cat=\"NP\"";
+ query = "cat=\"NP\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("NP", res.at("/query/key").asText());
- assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("NP", res.at("/query/key").asText());
+ assertEquals("c", res.at("/query/layer").asText());
}
- @Test
- public void testRegex() throws JsonProcessingException, IOException {
- query = "/Mann/";
- qs.setQuery(query, "annis");
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("type:regex", res.at("/query/wrap/type").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("Mann", res.at("/query/wrap/key").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
- query = "/.*?Mann.*?/";
+ @Test
+ public void testRegex () throws JsonProcessingException, IOException {
+ query = "/Mann/";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("type:regex", res.at("/query/wrap/type").asText());
- assertEquals(".*?Mann.*?", res.at("/query/wrap/key").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("type:regex", res.at("/query/wrap/type").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("Mann", res.at("/query/wrap/key").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
+
+ query = "/.*?Mann.*?/";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("type:regex", res.at("/query/wrap/type").asText());
+ assertEquals(".*?Mann.*?", res.at("/query/wrap/key").asText());
}
+
@Test
- public void testFoundriesLayers() throws JsonProcessingException, IOException {
- query = "c=\"np\"";
+ public void testFoundriesLayers () throws JsonProcessingException,
+ IOException {
+ query = "c=\"np\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("np", res.at("/query/key").asText());
- assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("np", res.at("/query/key").asText());
+ assertEquals("c", res.at("/query/layer").asText());
- query = "cnx/c=\"np\"";
+ query = "cnx/c=\"np\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("np", res.at("/query/key").asText());
- assertEquals("c", res.at("/query/layer").asText());
- assertEquals("cnx", res.at("/query/foundry").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("np", res.at("/query/key").asText());
+ assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("cnx", res.at("/query/foundry").asText());
- query = "tt/pos=\"np\"";
+ query = "tt/pos=\"np\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("np", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("tt", res.at("/query/wrap/foundry").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("np", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("tt", res.at("/query/wrap/foundry").asText());
}
+
@Test
- public void testDirectDeclarationRelations() throws JsonProcessingException, IOException {
- query = "node > node";
+ public void testDirectDeclarationRelations ()
+ throws JsonProcessingException, IOException {
+ query = "node > node";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
- query = "node > cnx/c=\"np\"";
+ query = "node > cnx/c=\"np\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("np", res.at("/query/operands/1/key").asText());
- assertEquals("c", res.at("/query/operands/1/layer").asText());
- assertEquals("cnx", res.at("/query/operands/1/foundry").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("np", res.at("/query/operands/1/key").asText());
+ assertEquals("c", res.at("/query/operands/1/layer").asText());
+ assertEquals("cnx", res.at("/query/operands/1/foundry").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
- query = "cnx/c=\"np\" > node";
+ query = "cnx/c=\"np\" > node";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/operands/1/key").isMissingNode());
- assertEquals("np", res.at("/query/operands/0/key").asText());
+ assertEquals(true, res.at("/query/operands/1/key").isMissingNode());
+ assertEquals("np", res.at("/query/operands/0/key").asText());
query = "cat=/NP/ & cat=/PP/ > #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("PP", res.at("/query/operands/0/key").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("NP", res.at("/query/operands/1/key").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("PP", res.at("/query/operands/0/key").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("NP", res.at("/query/operands/1/key").asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
}
+
@Test
- public void testDefPredicationInversion() throws JsonProcessingException, IOException {
- query = "#1 > #2 & cnx/cat=\"vp\" & cnx/cat=\"np\"";
+ public void testDefPredicationInversion () throws JsonProcessingException,
+ IOException {
+ query = "#1 > #2 & cnx/cat=\"vp\" & cnx/cat=\"np\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("vp", res.at("/query/operands/0/key").asText());
- assertEquals("c", res.at("/query/operands/0/layer").asText());
- assertEquals("cnx", res.at("/query/operands/0/foundry").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("np", res.at("/query/operands/1/key").asText());
- assertEquals("c", res.at("/query/operands/1/layer").asText());
- assertEquals("cnx", res.at("/query/operands/1/foundry").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("vp", res.at("/query/operands/0/key").asText());
+ assertEquals("c", res.at("/query/operands/0/layer").asText());
+ assertEquals("cnx", res.at("/query/operands/0/foundry").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("np", res.at("/query/operands/1/key").asText());
+ assertEquals("c", res.at("/query/operands/1/layer").asText());
+ assertEquals("cnx", res.at("/query/operands/1/foundry").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
}
- @Test
- public void testSimpleDominance() throws JsonProcessingException, IOException {
- query = "node & node & #2 > #1";
- qs.setQuery(query, "annis");
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
- query = "\"Mann\" & node & #2 > #1";
+ @Test
+ public void testSimpleDominance () throws JsonProcessingException,
+ IOException {
+ query = "node & node & #2 > #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+
+ query = "\"Mann\" & node & #2 > #1";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
query = "\"Mann\" & node & #2 >[func=\"SB\"] #1"; //coordinates the func=SB term and requires a "c"-layer term (consituency relation/dominance)
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:termGroup", res.at("/query/relation/wrap/@type").asText());
- assertEquals("relation:and", res.at("/query/relation/wrap/relation").asText());
- assertEquals("c", res.at("/query/relation/wrap/operands/1/layer").asText());
- assertEquals("func", res.at("/query/relation/wrap/operands/0/layer").asText());
- assertEquals("SB", res.at("/query/relation/wrap/operands/0/key").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:termGroup", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/relation/wrap/relation")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/operands/1/layer")
+ .asText());
+ assertEquals("func", res.at("/query/relation/wrap/operands/0/layer")
+ .asText());
+ assertEquals("SB", res.at("/query/relation/wrap/operands/0/key")
+ .asText());
query = "cat=\"S\" & node & #1 >[func=\"SB\" func=\"MO\"] #2"; // quite meaningless (function is subject and modifier), but this is allowed by Annis, however its backend only regards the 1st option
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("koral:termGroup", res.at("/query/relation/wrap/@type").asText());
- assertEquals("relation:and", res.at("/query/relation/wrap/relation").asText());
- assertEquals("func", res.at("/query/relation/wrap/operands/0/layer").asText());
- assertEquals("SB", res.at("/query/relation/wrap/operands/0/key").asText());
- assertEquals("func", res.at("/query/relation/wrap/operands/1/layer").asText());
- assertEquals("MO" , res.at("/query/relation/wrap/operands/1/key").asText());
- assertEquals("c", res.at("/query/relation/wrap/operands/2/layer").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("koral:termGroup", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/relation/wrap/relation")
+ .asText());
+ assertEquals("func", res.at("/query/relation/wrap/operands/0/layer")
+ .asText());
+ assertEquals("SB", res.at("/query/relation/wrap/operands/0/key")
+ .asText());
+ assertEquals("func", res.at("/query/relation/wrap/operands/1/layer")
+ .asText());
+ assertEquals("MO", res.at("/query/relation/wrap/operands/1/key")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/operands/2/layer")
+ .asText());
query = "cat=\"S\" & cat=\"NP\" & #1 >@l #2"; // all sentences starting with NP -> wrap relation in startswith and retrieve 2nd operand with focus
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals("koral: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("koral:reference", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("operation:relation", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:class",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals(130, res.at("/query/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals("koral: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("koral:reference", res.at("/query/operands/1/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
- query = "cat=\"S\" & cat=\"NP\" & #1 >@r #2";
+ query = "cat=\"S\" & cat=\"NP\" & #1 >@r #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operation").asText());
- assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals("koral: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("koral:reference", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
- }
-
- @Test
- public void testIndirectDominance() throws JsonProcessingException, IOException {
- query = "node & node & #1 >2,4 #2";
- qs.setQuery(query, "annis");
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals(2, res.at("/query/relation/boundary/min").asInt());
- assertEquals(4, res.at("/query/relation/boundary/max").asInt());
- assertEquals("koral:term", res.at("/query/relation/wrap/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
-
- query = "node & node & #1 >* #2";
- qs.setQuery(query, "annis");
- res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/relation/boundary/min").asInt());
- assertEquals(true, res.at("/query/relation/boundary/max").isMissingNode());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("operation:relation", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("S", res.at("/query/operands/0/operands/0/key").asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:class",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals(130, res.at("/query/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals("koral: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("koral:reference", res.at("/query/operands/1/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
}
@Test
- public void testMultipleDominance() throws JsonProcessingException, IOException {
- query = "cat=\"CP\" & cat=\"VP\" & cat=\"NP\" & #1 > #2 > #3";
+ public void testIndirectDominance () throws JsonProcessingException,
+ IOException {
+ query = "node & node & #1 >2,4 #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral:relation", res.at("/query/operands/0/operands/0/relation/@type").asText());
- assertEquals("c", res.at("/query/operands/0/operands/0/relation/wrap/layer").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("c", res.at("/query/operands/0/operands/0/operands/0/layer").asText());
- assertEquals("CP", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral: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("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals(2, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(4, res.at("/query/relation/boundary/max").asInt());
+ assertEquals("koral:term", res.at("/query/relation/wrap/@type")
+ .asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+
+ query = "node & node & #1 >* #2";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals(0, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(true, res.at("/query/relation/boundary/max")
+ .isMissingNode());
}
+
+
+ @Test
+ public void testMultipleDominance () throws JsonProcessingException,
+ IOException {
+ query = "cat=\"CP\" & cat=\"VP\" & cat=\"NP\" & #1 > #2 > #3";
+ qs.setQuery(query, "annis");
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral:relation",
+ res.at("/query/operands/0/operands/0/relation/@type").asText());
+ assertEquals("c",
+ res.at("/query/operands/0/operands/0/relation/wrap/layer")
+ .asText());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("c",
+ res.at("/query/operands/0/operands/0/operands/0/layer")
+ .asText());
+ assertEquals("CP", res
+ .at("/query/operands/0/operands/0/operands/0/key").asText());
+ assertEquals("koral: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(
+ "VP",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ }
+
+
// query = "cat=\"CP\" & cat=\"VP\" & cat=\"NP\" & #1 > #2 > #3";
// String dom1 =
// "{@type=koral:group, operation=operation:relation, operands=[" +
@@ -402,100 +482,114 @@
// }
@Test
- public void testSequence() throws Exception {
+ public void testSequence () throws Exception {
query = "tok=\"der\" & tok=\"die\" & #1 . #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("koral: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("koral: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("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("koral:boundary", res.at("/query/distances/0/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(2, res.at("/query/distances/0/boundary/max").asInt());
-
+ assertEquals("koral: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("koral:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("koral:boundary",
+ res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(2, res.at("/query/distances/0/boundary/max").asInt());
+
query = "tok=\"der\" & tok=\"die\" & #1 .2 #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("koral:boundary", res.at("/query/distances/0/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(true, res.at("/query/distances/0/boundary/max").isMissingNode());
+ assertEquals("koral: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("koral:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("koral:boundary",
+ res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(true, res.at("/query/distances/0/boundary/max")
+ .isMissingNode());
query = "tok=\"der\" & tok=\"die\" & #1 .* #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("koral: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 {
+ public void testNear () throws Exception {
query = "tok=\"der\" & tok=\"die\" & #1 ^ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("koral: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("koral: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("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("koral:boundary", res.at("/query/distances/0/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(2, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("koral: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("koral:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("koral:boundary",
+ res.at("/query/distances/0/boundary/@type").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(2, 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("koral: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());
+ assertEquals("koral: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 {
+ public void testMultipleSequence () throws Exception {
query = "tok=\"a\" & tok=\"b\" & tok=\"c\" & #1 . #2 & #2 . #3";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/@type").asText());
- assertEquals(129, 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());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:reference", res.at("/query/operands/0/@type")
+ .asText());
+ assertEquals(129, 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());
}
@@ -550,442 +644,731 @@
// }
//
/**
- * Tests the (rather difficult) serialization of queries where two subsequent relations
- * do not share any common operand. Makes it impossible to wrap 2nd relation around 1st.
- * Must therefore re-order relations (or postpone processing of 2nd).
+ * Tests the (rather difficult) serialization of queries where two
+ * subsequent relations
+ * do not share any common operand. Makes it impossible to wrap
+ * 2nd relation around 1st.
+ * Must therefore re-order relations (or postpone processing of
+ * 2nd).
+ *
* @throws JsonProcessingException
* @throws IOException
*/
@Test
- public void testNoSharedOperand() throws JsonProcessingException, IOException {
- query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & #1 . #2 & #3 . #4 & #1 > #3";
+ public void testNoSharedOperand () throws JsonProcessingException,
+ IOException {
+ query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & #1 . #2 & #3 . #4 & #1 > #3";
// the resulting query should be equivalent to PQ+: focus(2:dominates(focus(1:{1:<A>}<B>),{2:<C>}))<D>
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", 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("A", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/key").asText());
- assertEquals("B", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/key").asText());
- assertEquals("C", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
- assertEquals("D", res.at("/query/operands/1/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:reference", res.at("/query/operands/0/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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(
+ "koral:group",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "operation:sequence",
+ 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(
+ "A",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals(
+ "B",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/key")
+ .asText());
+ assertEquals(
+ "C",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("D", res.at("/query/operands/1/key").asText());
- query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & cat=\"E\" & cat=\"F\" & #1 . #2 & #3 . #4 & #5 . #6 & #1 > #3 & #3 > #5";
+ query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & cat=\"E\" & cat=\"F\" & #1 . #2 & #3 . #4 & #5 . #6 & #1 > #3 & #3 > #5";
// the resulting query should be equivalent to PQ+: focus(3:dominates(focus(2:dominates(focus(1:{1:<A>}<B>),{2:<C>}))<D>,{3:<E>}))<F>
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", 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/operands/0/operands/0/operands/0/operands/0/operation").asText());
- assertEquals("A", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/key").asText());
- assertEquals("B", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/1/key").asText());
- assertEquals("C", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/1/operands/0/key").asText());
- assertEquals("D", res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/key").asText());
- assertEquals("E", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
- assertEquals("F", res.at("/query/operands/1/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:reference", res.at("/query/operands/0/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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(
+ "koral:group",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "operation:sequence",
+ 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/operands/0/operands/0/operands/0/operands/0/operation")
+ .asText());
+ assertEquals(
+ "A",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals(
+ "B",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/1/key")
+ .asText());
+ assertEquals(
+ "C",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals(
+ "D",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/1/key")
+ .asText());
+ assertEquals(
+ "E",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("F", res.at("/query/operands/1/key").asText());
- query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & #1 . #2 & #3 . #4";
+ query = "cat=\"A\" & cat=\"B\" & cat=\"C\" & cat=\"D\" & #1 . #2 & #3 . #4";
// the resulting query should be equivalent to PQ+: focus(2:dominates(focus(1:{1:<A>}<B>),{2:<C>}))<D>
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/@type").isMissingNode());
- assertEquals(StatusCodes.UNBOUND_ANNIS_RELATION, res.at("/errors/0/0").asInt());
+ assertEquals(true, res.at("/query/@type").isMissingNode());
+ assertEquals(StatusCodes.UNBOUND_ANNIS_RELATION, res.at("/errors/0/0")
+ .asInt());
}
+
@Test
- public void testMultipleMixedOperators() throws Exception {
+ public void testMultipleMixedOperators () throws Exception {
query = "tok=\"Sonne\" & tok=\"Mond\" & tok=\"Sterne\" & #1 > #2 .1,4 #3";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral: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("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());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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("koral: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(
+ "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());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
query = "tok=\"Sonne\" & tok=\"Mond\" & #1 > #2 .1,4 tok=\"Sterne\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral: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("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());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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("koral: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(
+ "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());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(3, res.at("/query/distances/0/boundary/max").asInt());
query = "cat=\"NP\" & cat=\"VP\" & cat=\"PP\" & #1 $ #2 > #3";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(130, res.at("/query/operands/0/classRef/0").asInt());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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(129, res.at("/query/operands/0/operands/0/operands/0/classRef/0").asInt());
- assertEquals("koral: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(129, res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals("koral: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("koral: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("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
- assertEquals("PP", res.at("/query/operands/1/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:reference", res.at("/query/operands/0/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(130, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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(129,
+ res.at("/query/operands/0/operands/0/operands/0/classRef/0")
+ .asInt());
+ assertEquals(
+ "koral: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(
+ 129,
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "koral: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("koral: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(
+ "VP",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("PP", res.at("/query/operands/1/key").asText());
}
+
+
@Test
- public void testMultipleOperatorsWithSameOperands() throws Exception {
+ public void testMultipleOperatorsWithSameOperands () throws Exception {
query = "cat=\"NP\" > cat=\"VP\" & #1 _l_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
- assertEquals("koral: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("koral: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(129, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals("koral: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(130, 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("koral:reference", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
+ assertEquals("koral: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("koral: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(129,
+ res.at("/query/operands/0/operands/0/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "koral: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(130,
+ 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("koral:reference", res.at("/query/operands/1/@type")
+ .asText());
+ assertEquals("operation:focus", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(130, res.at("/query/operands/1/classRef/0").asInt());
}
+
+
@Test
- public void testPositions() throws Exception {
+ public void testPositions () throws Exception {
query = "node & node & #1 _=_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:matches", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:matches", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
query = "node & node & #1 _i_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
query = "node & node & #1 _l_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
- assertEquals("frames:matches", res.at("/query/frames/1").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
+ assertEquals("frames:matches", res.at("/query/frames/1").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
query = "node & node & #1 _r_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
- assertEquals("frames:matches", res.at("/query/frames/1").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
+ assertEquals("frames:matches", res.at("/query/frames/1").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
query = "node & \"Mann\" & #1 _r_ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
query = "node & \"Mann\" & #2 _r_ #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("frames:endsWith", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
query = "node & cat=\"VP\" & cat=\"NP\" & #1 _r_ #2 & #2 _l_ #3";
qs.setQuery(query, "annis");
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(129, res.at("/query/operands/0/classRef/0").asInt());
- assertEquals("frames:endsWith", res.at("/query/operands/0/operands/0/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("koral: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("VP", res.at("/query/operands/0/operands/0/operands/1/operands/0/key").asText());
- assertEquals("NP", res.at("/query/operands/1/key").asText());
+ assertEquals("frames:startsWith", res.at("/query/frames/0").asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classRef/0").asInt());
+ assertEquals("frames:endsWith",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("koral: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(
+ "VP",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("NP", res.at("/query/operands/1/key").asText());
query = "node & \"Mann\" & #2 _o_ #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:overlapsLeft", res.at("/query/frames/0").asText());
- assertEquals("frames:overlapsRight", res.at("/query/frames/1").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("frames:overlapsLeft", res.at("/query/frames/0").asText());
+ assertEquals("frames:overlapsRight", res.at("/query/frames/1").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
query = "node & \"Mann\" & #2 _ol_ #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:overlapsLeft", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("frames:overlapsLeft", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
query = "node & \"Mann\" & #2 _or_ #1";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:overlapsRight", res.at("/query/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("frames:overlapsRight", res.at("/query/frames/0").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
}
- @Test
- public void testMultiplePredications() throws Exception {
- // a noun before a verb before a preposition
- query = "pos=\"N\" & pos=\"V\" & pos=\"P\" & #1 . #2 & #2 . #3";
- qs.setQuery(query, "annis");
- 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("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral: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("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());
- query = "pos=\"N\" & pos=\"V\" & #1 . #2 & #2 . pos=\"P\"";
+ @Test
+ public void testMultiplePredications () throws Exception {
+ // a noun before a verb before a preposition
+ query = "pos=\"N\" & pos=\"V\" & pos=\"P\" & #1 . #2 & #2 . #3";
qs.setQuery(query, "annis");
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("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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("koral: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("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());
+ 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("operation:sequence",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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("koral: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(
+ "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());
+
+ query = "pos=\"N\" & pos=\"V\" & #1 . #2 & #2 . pos=\"P\"";
+ qs.setQuery(query, "annis");
+ 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("operation:sequence",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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("koral: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(
+ "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());
query = "pos=\"N\" & pos=\"V\" & pos=\"P\" & #1 > #2 & #1 > #3";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:relation", 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("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(129, 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());
+ assertEquals("operation:relation", 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("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(129,
+ 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());
query = "cat=\"NP\" & pos=\"V\" & pos=\"P\" & #1 > #2 & #1 > #3 & #2 . #3";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operation").asText());
- assertEquals(130, 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(129, 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(129, 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(130, 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(131, 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(131, res.at("/query/operands/1/classRef/0").asInt());
- assertEquals(true, res.at("/query/operands/1/operands").isMissingNode());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("operation:focus", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(130, 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(129,
+ 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(
+ 129,
+ 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(
+ 130,
+ 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(131,
+ 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(131, res.at("/query/operands/1/classRef/0").asInt());
+ assertEquals(true, res.at("/query/operands/1/operands").isMissingNode());
}
+
@Test
- public void testUnaryRelations() throws JsonProcessingException, IOException {
+ public void testUnaryRelations () throws JsonProcessingException,
+ IOException {
query = "node & #1:tokenarity=2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/attr/@type").asText());
- assertEquals("koral: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());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/attr/@type").asText());
+ assertEquals("koral: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());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("cnx", res.at("/query/foundry").asText());
- assertEquals("c", res.at("/query/layer").asText());
- assertEquals("NP", res.at("/query/key").asText());
- assertEquals("koral:term", res.at("/query/attr/@type").asText());
- assertEquals("koral: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());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("cnx", res.at("/query/foundry").asText());
+ assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("NP", res.at("/query/key").asText());
+ assertEquals("koral:term", res.at("/query/attr/@type").asText());
+ assertEquals("koral: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());
+ 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());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("cnx", res.at("/query/foundry").asText());
- assertEquals("c", res.at("/query/layer").asText());
- assertEquals("NP", res.at("/query/key").asText());
- assertEquals("match:eq", res.at("/query/match").asText());
- assertEquals("koral:term", res.at("/query/attr/@type").asText());
- assertEquals(true, res.at("/query/attr/root").asBoolean());
-
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("cnx", res.at("/query/foundry").asText());
+ assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("NP", res.at("/query/key").asText());
+ assertEquals("match:eq", res.at("/query/match").asText());
+ assertEquals("koral:term", res.at("/query/attr/@type").asText());
+ assertEquals(true, res.at("/query/attr/root").asBoolean());
+
query = "cnx/cat=\"NP\" & #1:root & #1:arity=2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("cnx", res.at("/query/foundry").asText());
- assertEquals("c", res.at("/query/layer").asText());
- assertEquals("NP", res.at("/query/key").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("cnx", res.at("/query/foundry").asText());
+ assertEquals("c", res.at("/query/layer").asText());
+ assertEquals("NP", res.at("/query/key").asText());
assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
- assertEquals("koral:term", res.at("/query/attr/operands/0/@type").asText());
- assertEquals(true, res.at("/query/attr/operands/0/root").asBoolean());
- assertEquals("koral:term", res.at("/query/attr/operands/1/@type").asText());
- assertEquals("koral:boundary", res.at("/query/attr/operands/1/arity/@type").asText());
- assertEquals(2, res.at("/query/attr/operands/1/arity/min").asInt());
- assertEquals(2, res.at("/query/attr/operands/1/arity/max").asInt());
-
+ assertEquals("koral:term", res.at("/query/attr/operands/0/@type")
+ .asText());
+ assertEquals(true, res.at("/query/attr/operands/0/root").asBoolean());
+ assertEquals("koral:term", res.at("/query/attr/operands/1/@type")
+ .asText());
+ assertEquals("koral:boundary",
+ res.at("/query/attr/operands/1/arity/@type").asText());
+ assertEquals(2, res.at("/query/attr/operands/1/arity/min").asInt());
+ assertEquals(2, res.at("/query/attr/operands/1/arity/max").asInt());
+
query = "cnx/cat=\"NP\" & node & #1>#2 & #1:tokenarity=2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("cnx", res.at("/query/operands/0/foundry").asText());
- assertEquals("c", res.at("/query/operands/0/layer").asText());
- assertEquals("NP", res.at("/query/operands/0/key").asText());
- assertEquals("koral:term", res.at("/query/operands/0/attr/@type").asText());
- assertEquals("koral:boundary", res.at("/query/operands/0/attr/tokenarity/@type").asText());
- assertEquals(2, res.at("/query/operands/0/attr/tokenarity/min").asInt());
- assertEquals(2, res.at("/query/operands/0/attr/tokenarity/max").asInt());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("cnx", res.at("/query/operands/0/foundry").asText());
+ assertEquals("c", res.at("/query/operands/0/layer").asText());
+ assertEquals("NP", res.at("/query/operands/0/key").asText());
+ assertEquals("koral:term", res.at("/query/operands/0/attr/@type")
+ .asText());
+ assertEquals("koral:boundary",
+ res.at("/query/operands/0/attr/tokenarity/@type").asText());
+ assertEquals(2, res.at("/query/operands/0/attr/tokenarity/min").asInt());
+ assertEquals(2, res.at("/query/operands/0/attr/tokenarity/max").asInt());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
}
+
@Test
- public void testCommonParent() throws Exception {
+ public void testCommonParent () throws Exception {
query = "cat=\"NP\" & cat=\"VP\" & #1 $ #2";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral: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(129, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals("koral: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("koral: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("koral: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());
-
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral: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(129,
+ res.at("/query/operands/0/operands/0/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "koral: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("koral: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("koral: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("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:relation", res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:relation",
+ res.at("/query/operands/0/operands/0/operation").asText());
}
-
+
+
@Test
- public void testDisjunction() throws Exception {
+ public void testDisjunction () throws Exception {
query = "cat=\"NP\" | cat=\"VP\"";
qs.setQuery(query, "annis");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("NP", res.at("/query/operands/0/key").asText());
- assertEquals("c", res.at("/query/operands/0/layer").asText());
- assertEquals("koral: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());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("NP", res.at("/query/operands/0/key").asText());
+ assertEquals("c", res.at("/query/operands/0/layer").asText());
+ assertEquals("koral: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";
// String cp2 =
@@ -1060,16 +1443,15 @@
// }
/*
- @Test
- public void testEqualNotequalValue() throws Exception {
- query = "cat=\"NP\" & cat=\"VP\" & #1 == #2";
- String eq1 =
- "{}"; // ???
- aqlt = new AqlTree(query);
- map = aqlt.getRequestMap().get("query").toString();
- assertEquals(eq1.replaceAll(" ", ""), map.replaceAll(" ", ""));
- }
+ @Test
+ public void testEqualNotequalValue() throws Exception {
+ query = "cat=\"NP\" & cat=\"VP\" & #1 == #2";
+ String eq1 =
+ "{}"; // ???
+ aqlt = new AqlTree(query);
+ map = aqlt.getRequestMap().get("query").toString();
+ assertEquals(eq1.replaceAll(" ", ""), map.replaceAll(" ", ""));
+ }
*/
}
-
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessorTest.java
index a8b9b6e..62e6d1f 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/CollectionQueryProcessorTest.java
@@ -1,4 +1,5 @@
package de.ids_mannheim.korap.query.serialize;
+
import static org.junit.Assert.*;
import java.io.IOException;
@@ -14,366 +15,487 @@
public class CollectionQueryProcessorTest {
- String query = "foo";
- String ql = "poliqarpplus";
- String collection;
- ArrayList<JsonNode> operands;
+ String query = "foo";
+ String ql = "poliqarpplus";
+ String collection;
+ ArrayList<JsonNode> operands;
- QuerySerializer qs = new QuerySerializer();
- ObjectMapper mapper = new ObjectMapper();
- JsonNode res;
-
- @Test
- public void testContext() throws JsonProcessingException, IOException {
- collection = "textClass=politik";
- String contextString = "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals(contextString, res.get("@context").asText());
- }
-
- @Test
- public void testSimple() throws JsonProcessingException, IOException {
- collection = "textClass=politik";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("textClass", res.at("/collection/key").asText());
- assertEquals("politik", res.at("/collection/value").asText());
- assertEquals("match:eq", res.at("/collection/match").asText());
-
- collection = "textClass!=politik";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("textClass", res.at("/collection/key").asText());
- assertEquals("politik", res.at("/collection/value").asText());
- assertEquals("match:ne", res.at("/collection/match").asText());
- }
-
- @Test
- public void testContains() throws JsonProcessingException, IOException {
- collection = "title~Mannheim";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("title", res.at("/collection/key").asText());
- assertEquals("Mannheim", res.at("/collection/value").asText());
- assertEquals("match:contains", res.at("/collection/match").asText());
-
- collection = "title~\"IDS Mannheim\"";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("title", res.at("/collection/key").asText());
- assertEquals("IDS Mannheim", res.at("/collection/value").asText());
- assertEquals("match:contains", res.at("/collection/match").asText());
- }
-
- @Test
- public void testTwoConjuncts() throws JsonProcessingException, IOException {
- collection = "textClass=Sport & pubDate in 2014";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/match").asText());
-
- collection = "textClass=Sport & pubDate=2014";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/value").asText());
- assertEquals(true, res.at("/collection/operands/1/type").isMissingNode());
- assertEquals("match:eq", res.at("/collection/operands/1/match").asText());
- assertTrue(res.at("/warnings/0/0").asText().startsWith("The collection query contains a value that looks like a date"));
- }
+ QuerySerializer qs = new QuerySerializer();
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode res;
- @Test
- public void testThreeConjuncts() throws JsonProcessingException, IOException {
- collection = "textClass=Sport & pubDate in 2014 & corpusId=WPD";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/operands/0/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("corpusId", res.at("/collection/operands/1/operands/1/key").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/1/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/1/match").asText());
- }
- @Test
- public void testTwoDisjuncts() throws JsonProcessingException, IOException {
- collection = "textClass=Sport | pubDate in 2014";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/match").asText());
- }
-
- @Test
- public void testThreeDisjuncts() throws JsonProcessingException, IOException {
- collection = "textClass=Sport | pubDate in 2014 | corpusId=WPD";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:or", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/operands/0/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("corpusId", res.at("/collection/operands/1/operands/1/key").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/1/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/1/match").asText());
- }
-
- @Test
- public void testMixed() throws JsonProcessingException, IOException {
- collection = "textClass=Sport | (pubDate in 2014 & corpusId=WPD)";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/operands/0/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("corpusId", res.at("/collection/operands/1/operands/1/key").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/1/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/1/match").asText());
-
- collection = "textClass=Sport | pubDate in 2014 & corpusId=WPD";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/@type").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/0/match").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key").asText());
- assertEquals("2014", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("type:date", res.at("/collection/operands/1/operands/0/type").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/0/match").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("corpusId", res.at("/collection/operands/1/operands/1/key").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/1/value").asText());
- assertEquals("match:eq", res.at("/collection/operands/1/operands/1/match").asText());
-
- collection = "(textClass=Sport | pubDate in 2014) & corpusId=WPD";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/0/@type").asText());
- assertEquals("operation:or", res.at("/collection/operands/0/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/0/@type").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/1/@type").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/@type").asText());
-
- collection = "(textClass=Sport & pubDate in 2014) & corpusId=WPD";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/0/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/0/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/0/@type").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/1/@type").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/@type").asText());
-
- collection = "(textClass=Sport & textClass=ausland) | (corpusID=WPD & author=White)";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/0/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/0/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/0/@type").asText());
- assertEquals("Sport", res.at("/collection/operands/0/operands/0/value").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/1/@type").asText());
- assertEquals("ausland", res.at("/collection/operands/0/operands/1/value").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("White", res.at("/collection/operands/1/operands/1/value").asText());
-
- collection = "(textClass=Sport & textClass=ausland) | (corpusID=WPD & author=White & pubDate in 2000)";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:or", res.at("/collection/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/0/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/0/operation").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operation").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/0/@type").asText());
- assertEquals("Sport", res.at("/collection/operands/0/operands/0/value").asText());
- assertEquals("koral:doc", res.at("/collection/operands/0/operands/1/@type").asText());
- assertEquals("ausland", res.at("/collection/operands/0/operands/1/value").asText());
- assertEquals("koral:doc", res.at("/collection/operands/1/operands/0/@type").asText());
- assertEquals("WPD", res.at("/collection/operands/1/operands/0/value").asText());
- assertEquals("koral:docGroup", res.at("/collection/operands/1/operands/1/@type").asText());
- assertEquals("operation:and", res.at("/collection/operands/1/operands/1/operation").asText());
- assertEquals("White", res.at("/collection/operands/1/operands/1/operands/0/value").asText());
- assertEquals("2000", res.at("/collection/operands/1/operands/1/operands/1/value").asText());
- }
- @Test
- public void testDateYear() throws JsonProcessingException, IOException {
- collection = "pubDate in 2000";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:eq", res.at("/collection/match").asText());
-
- collection = "pubDate = 2000";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000", res.at("/collection/value").asText());
- assertEquals(true, res.at("/collection/type").isMissingNode());
- assertEquals("match:eq", res.at("/collection/match").asText());
-
- collection = "pubDate since 2000";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:geq", res.at("/collection/match").asText());
-
- collection = "pubDate until 2000";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:leq", res.at("/collection/match").asText());
- }
-
- @Test
- public void testDateMonthDay() throws JsonProcessingException, IOException {
- collection = "pubDate in 2000-02";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000-02", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:eq", res.at("/collection/match").asText());
-
- collection = "pubDate = 2000-12";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000-12", res.at("/collection/value").asText());
- assertEquals(true, res.at("/collection/type").isMissingNode());
- assertEquals("match:eq", res.at("/collection/match").asText());
-
- collection = "pubDate since 2000-02-01";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000-02-01", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:geq", res.at("/collection/match").asText());
-
- collection = "pubDate until 2000-01-01";
- qs.setQuery(query,ql);
- qs.setCollection(collection);
- res = mapper.readTree(qs.toJSON());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("pubDate", res.at("/collection/key").asText());
- assertEquals("2000-01-01", res.at("/collection/value").asText());
- assertEquals("type:date", res.at("/collection/type").asText());
- assertEquals("match:leq", res.at("/collection/match").asText());
- }
+ @Test
+ public void testContext () throws JsonProcessingException, IOException {
+ collection = "textClass=politik";
+ String contextString = "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals(contextString, res.get("@context").asText());
+ }
+
+
+ @Test
+ public void testSimple () throws JsonProcessingException, IOException {
+ collection = "textClass=politik";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("textClass", res.at("/collection/key").asText());
+ assertEquals("politik", res.at("/collection/value").asText());
+ assertEquals("match:eq", res.at("/collection/match").asText());
+
+ collection = "textClass!=politik";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("textClass", res.at("/collection/key").asText());
+ assertEquals("politik", res.at("/collection/value").asText());
+ assertEquals("match:ne", res.at("/collection/match").asText());
+ }
+
+
+ @Test
+ public void testContains () throws JsonProcessingException, IOException {
+ collection = "title~Mannheim";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("title", res.at("/collection/key").asText());
+ assertEquals("Mannheim", res.at("/collection/value").asText());
+ assertEquals("match:contains", res.at("/collection/match").asText());
+
+ collection = "title~\"IDS Mannheim\"";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("title", res.at("/collection/key").asText());
+ assertEquals("IDS Mannheim", res.at("/collection/value").asText());
+ assertEquals("match:contains", res.at("/collection/match").asText());
+ }
+
+
+ @Test
+ public void testTwoConjuncts () throws JsonProcessingException, IOException {
+ collection = "textClass=Sport & pubDate in 2014";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:doc", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
+ assertEquals("2014", res.at("/collection/operands/1/value").asText());
+ assertEquals("type:date", res.at("/collection/operands/1/type")
+ .asText());
+ assertEquals("match:eq", res.at("/collection/operands/1/match")
+ .asText());
+
+ collection = "textClass=Sport & pubDate=2014";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:doc", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
+ assertEquals("2014", res.at("/collection/operands/1/value").asText());
+ assertEquals(true, res.at("/collection/operands/1/type")
+ .isMissingNode());
+ assertEquals("match:eq", res.at("/collection/operands/1/match")
+ .asText());
+ assertTrue(res
+ .at("/warnings/0/0")
+ .asText()
+ .startsWith(
+ "The collection query contains a value that looks like a date"));
+ }
+
+
+ @Test
+ public void testThreeConjuncts () throws JsonProcessingException,
+ IOException {
+ collection = "textClass=Sport & pubDate in 2014 & corpusId=WPD";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/1/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key")
+ .asText());
+ assertEquals("2014", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("type:date",
+ res.at("/collection/operands/1/operands/0/type").asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/0/match").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("corpusId", res
+ .at("/collection/operands/1/operands/1/key").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/1/value")
+ .asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/1/match").asText());
+ }
+
+
+ @Test
+ public void testTwoDisjuncts () throws JsonProcessingException, IOException {
+ collection = "textClass=Sport | pubDate in 2014";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:doc", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/key").asText());
+ assertEquals("2014", res.at("/collection/operands/1/value").asText());
+ assertEquals("type:date", res.at("/collection/operands/1/type")
+ .asText());
+ assertEquals("match:eq", res.at("/collection/operands/1/match")
+ .asText());
+ }
+
+
+ @Test
+ public void testThreeDisjuncts () throws JsonProcessingException,
+ IOException {
+ collection = "textClass=Sport | pubDate in 2014 | corpusId=WPD";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:or", res.at("/collection/operands/1/operation")
+ .asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key")
+ .asText());
+ assertEquals("2014", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("type:date",
+ res.at("/collection/operands/1/operands/0/type").asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/0/match").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("corpusId", res
+ .at("/collection/operands/1/operands/1/key").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/1/value")
+ .asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/1/match").asText());
+ }
+
+
+ @Test
+ public void testMixed () throws JsonProcessingException, IOException {
+ collection = "textClass=Sport | (pubDate in 2014 & corpusId=WPD)";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/1/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key")
+ .asText());
+ assertEquals("2014", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("type:date",
+ res.at("/collection/operands/1/operands/0/type").asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/0/match").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("corpusId", res
+ .at("/collection/operands/1/operands/1/key").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/1/value")
+ .asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/1/match").asText());
+
+ collection = "textClass=Sport | pubDate in 2014 & corpusId=WPD";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("match:eq", res.at("/collection/operands/0/match")
+ .asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/1/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("pubDate", res.at("/collection/operands/1/operands/0/key")
+ .asText());
+ assertEquals("2014", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("type:date",
+ res.at("/collection/operands/1/operands/0/type").asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/0/match").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("corpusId", res
+ .at("/collection/operands/1/operands/1/key").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/1/value")
+ .asText());
+ assertEquals("match:eq",
+ res.at("/collection/operands/1/operands/1/match").asText());
+
+ collection = "(textClass=Sport | pubDate in 2014) & corpusId=WPD";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("operation:or", res.at("/collection/operands/0/operation")
+ .asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/0/@type").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/1/@type").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/1/@type")
+ .asText());
+
+ collection = "(textClass=Sport & pubDate in 2014) & corpusId=WPD";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/0/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/0/@type").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/1/@type").asText());
+ assertEquals("koral:doc", res.at("/collection/operands/1/@type")
+ .asText());
+
+ collection = "(textClass=Sport & textClass=ausland) | (corpusID=WPD & author=White)";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/0/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/1/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/0/@type").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/operands/0/value")
+ .asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/1/@type").asText());
+ assertEquals("ausland",
+ res.at("/collection/operands/0/operands/1/value").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("White", res.at("/collection/operands/1/operands/1/value")
+ .asText());
+
+ collection = "(textClass=Sport & textClass=ausland) | (corpusID=WPD & author=White & pubDate in 2000)";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:or", res.at("/collection/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/0/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/0/operation").asText());
+ assertEquals("koral:docGroup", res.at("/collection/operands/1/@type")
+ .asText());
+ assertEquals("operation:and", res
+ .at("/collection/operands/1/operation").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/0/@type").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/operands/0/value")
+ .asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/0/operands/1/@type").asText());
+ assertEquals("ausland",
+ res.at("/collection/operands/0/operands/1/value").asText());
+ assertEquals("koral:doc",
+ res.at("/collection/operands/1/operands/0/@type").asText());
+ assertEquals("WPD", res.at("/collection/operands/1/operands/0/value")
+ .asText());
+ assertEquals("koral:docGroup",
+ res.at("/collection/operands/1/operands/1/@type").asText());
+ assertEquals("operation:and",
+ res.at("/collection/operands/1/operands/1/operation").asText());
+ assertEquals("White",
+ res.at("/collection/operands/1/operands/1/operands/0/value")
+ .asText());
+ assertEquals("2000",
+ res.at("/collection/operands/1/operands/1/operands/1/value")
+ .asText());
+ }
+
+
+ @Test
+ public void testDateYear () throws JsonProcessingException, IOException {
+ collection = "pubDate in 2000";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:eq", res.at("/collection/match").asText());
+
+ collection = "pubDate = 2000";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000", res.at("/collection/value").asText());
+ assertEquals(true, res.at("/collection/type").isMissingNode());
+ assertEquals("match:eq", res.at("/collection/match").asText());
+
+ collection = "pubDate since 2000";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:geq", res.at("/collection/match").asText());
+
+ collection = "pubDate until 2000";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:leq", res.at("/collection/match").asText());
+ }
+
+
+ @Test
+ public void testDateMonthDay () throws JsonProcessingException, IOException {
+ collection = "pubDate in 2000-02";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000-02", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:eq", res.at("/collection/match").asText());
+
+ collection = "pubDate = 2000-12";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000-12", res.at("/collection/value").asText());
+ assertEquals(true, res.at("/collection/type").isMissingNode());
+ assertEquals("match:eq", res.at("/collection/match").asText());
+
+ collection = "pubDate since 2000-02-01";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000-02-01", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:geq", res.at("/collection/match").asText());
+
+ collection = "pubDate until 2000-01-01";
+ qs.setQuery(query, ql);
+ qs.setCollection(collection);
+ res = mapper.readTree(qs.toJSON());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("pubDate", res.at("/collection/key").asText());
+ assertEquals("2000-01-01", res.at("/collection/value").asText());
+ assertEquals("type:date", res.at("/collection/type").asText());
+ assertEquals("match:leq", res.at("/collection/match").asText());
+ }
}
-
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 a21ff8c..fa3adc8 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
@@ -1,4 +1,5 @@
package de.ids_mannheim.korap.query.serialize;
+
import static org.junit.Assert.*;
import java.io.IOException;
@@ -14,7 +15,8 @@
import com.fasterxml.jackson.databind.ObjectMapper;
/**
- * Tests for JSON-LD serialization of Cosmas II queries.
+ * Tests for JSON-LD serialization of Cosmas II queries.
+ *
* @author Joachim Bingel (bingel@ids-mannheim.de)
* @version 1.0
*/
@@ -28,8 +30,9 @@
ObjectMapper mapper = new ObjectMapper();
JsonNode res;
+
@Test
- public void testContext() throws JsonProcessingException, IOException {
+ public void testContext () throws JsonProcessingException, IOException {
String contextString = "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld";
query = "foo";
qs.setQuery(query, "cosmas2");
@@ -39,1129 +42,1783 @@
@Test
- public void testSingleToken() throws JsonProcessingException, IOException {
+ public void testSingleToken () throws JsonProcessingException, IOException {
query = "der";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("der", res.at("/query/wrap/key").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("der", res.at("/query/wrap/key").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "&Mann";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("Mann", res.at("/query/wrap/key").asText());
- assertEquals("lemma", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("Mann", res.at("/query/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
}
@Test
- public void testWildcardToken() throws JsonProcessingException, IOException {
+ public void testWildcardToken () throws JsonProcessingException,
+ IOException {
query = "*der";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("type:wildcard", res.at("/query/wrap/type").asText());
- assertEquals("*der", res.at("/query/wrap/key").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("type:wildcard", res.at("/query/wrap/type").asText());
+ assertEquals("*der", res.at("/query/wrap/key").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "*de*?r";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("*de*?r", res.at("/query/wrap/key").asText());
+ assertEquals("*de*?r", res.at("/query/wrap/key").asText());
}
+
+
//
@Test
- public void testCaseSensitivityFlag() throws JsonProcessingException, IOException {
+ public void testCaseSensitivityFlag () throws JsonProcessingException,
+ IOException {
query = "$deutscher";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("deutscher", res.at("/query/wrap/key").asText());
- assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("deutscher", res.at("/query/wrap/key").asText());
+ assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0")
+ .asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "$deutscher Bundestag";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:term", res.at("/query/operands/0/wrap/@type").asText());
- assertEquals("deutscher", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("flags:caseInsensitive", res.at("/query/operands/0/wrap/flags/0").asText());
- assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/operands/0/wrap/match").asText());
- assertEquals("Bundestag", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:term", res.at("/query/operands/0/wrap/@type")
+ .asText());
+ assertEquals("deutscher", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("flags:caseInsensitive",
+ res.at("/query/operands/0/wrap/flags/0").asText());
+ assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/operands/0/wrap/match")
+ .asText());
+ assertEquals("Bundestag", res.at("/query/operands/1/wrap/key").asText());
}
+
@Test
- public void testMORPH() throws JsonProcessingException, IOException {
+ public void testMORPH () throws JsonProcessingException, IOException {
query = "MORPH(p=V)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("V", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("V", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "MORPH(V)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("V", res.at("/query/wrap/key").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("V", res.at("/query/wrap/key").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "MORPH(tt/p=V)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("V", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("tt", res.at("/query/wrap/foundry").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("V", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("tt", res.at("/query/wrap/foundry").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "MORPH(tt/p=\"V.*\")";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("type:regex", res.at("/query/wrap/type").asText());
- assertEquals("V.*", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("tt", res.at("/query/wrap/foundry").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("type:regex", res.at("/query/wrap/type").asText());
+ assertEquals("V.*", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("tt", res.at("/query/wrap/foundry").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "MORPH(mate/m=temp:pres)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("temp", res.at("/query/wrap/key").asText());
- assertEquals("pres", res.at("/query/wrap/value").asText());
- assertEquals("m", res.at("/query/wrap/layer").asText());
- assertEquals("mate", res.at("/query/wrap/foundry").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("temp", res.at("/query/wrap/key").asText());
+ assertEquals("pres", res.at("/query/wrap/value").asText());
+ assertEquals("m", res.at("/query/wrap/layer").asText());
+ assertEquals("mate", res.at("/query/wrap/foundry").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "MORPH(tt/p=V & mate/m!=temp:pres)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:termGroup", res.at("/query/wrap/@type").asText());
- assertEquals("V", res.at("/query/wrap/operands/0/key").asText());
- assertEquals("p", res.at("/query/wrap/operands/0/layer").asText());
- assertEquals("tt", res.at("/query/wrap/operands/0/foundry").asText());
- assertEquals("match:eq", res.at("/query/wrap/operands/0/match").asText());
- assertEquals("temp", res.at("/query/wrap/operands/1/key").asText());
- assertEquals("pres", res.at("/query/wrap/operands/1/value").asText());
- assertEquals("m", res.at("/query/wrap/operands/1/layer").asText());
- assertEquals("mate", res.at("/query/wrap/operands/1/foundry").asText());
- assertEquals("match:ne", res.at("/query/wrap/operands/1/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:termGroup", res.at("/query/wrap/@type").asText());
+ assertEquals("V", res.at("/query/wrap/operands/0/key").asText());
+ assertEquals("p", res.at("/query/wrap/operands/0/layer").asText());
+ assertEquals("tt", res.at("/query/wrap/operands/0/foundry").asText());
+ assertEquals("match:eq", res.at("/query/wrap/operands/0/match")
+ .asText());
+ assertEquals("temp", res.at("/query/wrap/operands/1/key").asText());
+ assertEquals("pres", res.at("/query/wrap/operands/1/value").asText());
+ assertEquals("m", res.at("/query/wrap/operands/1/layer").asText());
+ assertEquals("mate", res.at("/query/wrap/operands/1/foundry").asText());
+ assertEquals("match:ne", res.at("/query/wrap/operands/1/match")
+ .asText());
}
+
@Test
- public void testSequence() throws JsonProcessingException, IOException {
+ public void testSequence () throws JsonProcessingException, IOException {
query = "der Mann";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
query = "der Mann schläft";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("schläft", res.at("/query/operands/2/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/3").isMissingNode());
+ assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("schläft", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/3").isMissingNode());
query = "der Mann schläft lang";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("schläft", res.at("/query/operands/2/wrap/key").asText());
- assertEquals("lang", res.at("/query/operands/3/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/4").isMissingNode());
+ assertEquals("koral: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("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("schläft", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("lang", res.at("/query/operands/3/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/4").isMissingNode());
query = "der #ELEM(W)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("w", res.at("/query/operands/1/key").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral: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("w", res.at("/query/operands/1/key").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
query = "der #ELEM(W) Mann";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("w", res.at("/query/operands/1/key").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/3").isMissingNode());
+ assertEquals("koral: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("w", res.at("/query/operands/1/key").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/3").isMissingNode());
query = "der MORPH(p=ADJA) Mann";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral: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("ADJA", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("p", res.at("/query/operands/1/wrap/layer").asText());
- assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/3").isMissingNode());
+ assertEquals("koral: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("ADJA", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("p", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/3").isMissingNode());
}
+
@Test
- public void testOPOR() throws JsonProcessingException, IOException {
+ public void testOPOR () throws JsonProcessingException, IOException {
query = "Sonne oder Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
query = "(Sonne scheint) oder Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("scheint", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("scheint", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
query = "(Sonne scheint) oder (Mond scheint)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("scheint", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("scheint", res.at("/query/operands/1/operands/1/wrap/key").asText());
- assertEquals(true, res.at("/query/operands/2").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("scheint", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("scheint", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
+ assertEquals(true, res.at("/query/operands/2").isMissingNode());
}
+
@Test
- public void testOPORAND() throws JsonProcessingException, IOException {
+ public void testOPORAND () throws JsonProcessingException, IOException {
query = "(Sonne oder Mond) und scheint";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/0/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("scheint", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/0/operation").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("scheint", res.at("/query/operands/1/wrap/key").asText());
query = "scheint und (Sonne oder Mond)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("scheint", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("scheint", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operation").asText());
+ assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "Regen und scheint und (Sonne oder Mond)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Regen", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/operands/1/distances/0/@type").asText());
- assertEquals("t", res.at("/query/operands/1/distances/0/key").asText());
- assertEquals(0, res.at("/query/operands/1/distances/0/min").asInt());
- assertEquals(0, res.at("/query/operands/1/distances/0/max").asInt());
- assertEquals("scheint", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/operands/1/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operands/1/operation").asText());
- assertEquals("Sonne", res.at("/query/operands/1/operands/1/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Regen", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/1/distances/0/@type").asText());
+ assertEquals("t", res.at("/query/operands/1/distances/0/key").asText());
+ assertEquals(0, res.at("/query/operands/1/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/operands/1/distances/0/max").asInt());
+ assertEquals("scheint", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/1/operands/1/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operands/1/operation").asText());
+ assertEquals("Sonne",
+ res.at("/query/operands/1/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond",
+ res.at("/query/operands/1/operands/1/operands/1/wrap/key")
+ .asText());
}
+
@Test
- public void testOPNOT() throws JsonProcessingException, IOException {
+ public void testOPNOT () throws JsonProcessingException, IOException {
query = "Sonne nicht Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("Mond", res.at("/query/operands/1/wrap/key").asText());
query = "Sonne nicht Mond nicht Sterne";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/operands/1/distances/0/@type").asText());
- assertEquals("t", res.at("/query/operands/1/distances/0/key").asText());
- assertEquals(0, res.at("/query/operands/1/distances/0/min").asInt());
- assertEquals(0, res.at("/query/operands/1/distances/0/max").asInt());
- assertEquals(true, res.at("/query/operands/1/distances/0/exclude").asBoolean());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("Sterne", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/1/distances/0/@type").asText());
+ assertEquals("t", res.at("/query/operands/1/distances/0/key").asText());
+ assertEquals(0, res.at("/query/operands/1/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/operands/1/distances/0/max").asInt());
+ assertEquals(true, res.at("/query/operands/1/distances/0/exclude")
+ .asBoolean());
+ assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("Sterne", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "(Sonne nicht Mond) nicht Sterne";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("t", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/min").asInt());
- assertEquals(0, res.at("/query/distances/0/max").asInt());
- assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("cosmas:distance", res.at("/query/operands/0/distances/0/@type").asText());
- assertEquals("t", res.at("/query/operands/0/distances/0/key").asText());
- assertEquals(0, res.at("/query/operands/0/distances/0/min").asInt());
- assertEquals(0, res.at("/query/operands/0/distances/0/max").asInt());
- assertEquals(true, res.at("/query/operands/0/distances/0/exclude").asBoolean());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("Sterne", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("t", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/distances/0/max").asInt());
+ assertEquals(true, res.at("/query/distances/0/exclude").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/0/distances/0/@type").asText());
+ assertEquals("t", res.at("/query/operands/0/distances/0/key").asText());
+ assertEquals(0, res.at("/query/operands/0/distances/0/min").asInt());
+ assertEquals(0, res.at("/query/operands/0/distances/0/max").asInt());
+ assertEquals(true, res.at("/query/operands/0/distances/0/exclude")
+ .asBoolean());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("Sterne", res.at("/query/operands/1/wrap/key").asText());
}
+
@Test
- public void testOPPROX() throws JsonProcessingException, IOException {
+ public void testOPPROX () throws JsonProcessingException, IOException {
query = "Sonne /+w1:4 Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
query = "Sonne /+w1:4,s0,p1:3 Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals("s", res.at("/query/distances/1/key").asText());
- assertEquals(0, res.at("/query/distances/1/boundary/min").asInt());
- assertEquals("p", res.at("/query/distances/2/key").asText());
- assertEquals(1, res.at("/query/distances/2/boundary/min").asInt());
- assertEquals(3, res.at("/query/distances/2/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("s", res.at("/query/distances/1/key").asText());
+ assertEquals(0, res.at("/query/distances/1/boundary/min").asInt());
+ assertEquals("p", res.at("/query/distances/2/key").asText());
+ assertEquals(1, res.at("/query/distances/2/boundary/min").asInt());
+ assertEquals(3, res.at("/query/distances/2/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
query = "Sonne /+w4 Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
query = "Sonne /-w4 Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals("Mond", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("Mond", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
query = "Sonne /w4 Mond";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals(false, res.at("/query/inOrder").asBoolean());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mond", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals(false, res.at("/query/inOrder").asBoolean());
}
+
@Test
- public void testOPPROXNested() throws JsonProcessingException, IOException {
+ public void testOPPROXNested () throws JsonProcessingException, IOException {
query = "Sonne /+w1:4 Mond /+w1:7 Sterne";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("operation:sequence", res.at("/query/operands/1/operands/0/operation").asText());
- assertEquals("w", res.at("/query/operands/1/operands/0/distances/0/key").asText());
- assertEquals(1, res.at("/query/operands/1/operands/0/distances/0/boundary/min").asInt());
- assertEquals(7, res.at("/query/operands/1/operands/0/distances/0/boundary/max").asInt());
- assertEquals(130, res.at("/query/operands/1/operands/0/operands/0/classOut").asInt());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(130, res.at("/query/operands/1/operands/0/operands/1/classOut").asInt());
- assertEquals("Sterne", res.at("/query/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/1/operands/0/operation").asText());
+ assertEquals("w", res
+ .at("/query/operands/1/operands/0/distances/0/key").asText());
+ assertEquals(1,
+ res.at("/query/operands/1/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(7,
+ res.at("/query/operands/1/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(130,
+ res.at("/query/operands/1/operands/0/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "Mond",
+ res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(130,
+ res.at("/query/operands/1/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals(
+ "Sterne",
+ res.at("/query/operands/1/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
query = "Sonne /+w1:4 Mond /-w1:7 Sterne";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Sterne", res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mond", res.at("/query/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
+ assertEquals("Sonne", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "Sterne",
+ res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "Mond",
+ res.at("/query/operands/1/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
query = "Sonne /-w4 Mond /+w2 Sterne";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("w", res.at("/query/operands/0/operands/0/distances/0/key").asText());
- assertEquals(0, res.at("/query/operands/0/operands/0/distances/0/boundary/min").asInt());
- assertEquals(2, res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
- assertEquals("Mond", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(130, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
- assertEquals("Sterne", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(4, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("Sonne", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("w", res
+ .at("/query/operands/0/operands/0/distances/0/key").asText());
+ assertEquals(0,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(2,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(130,
+ res.at("/query/operands/0/operands/0/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "Mond",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(130,
+ res.at("/query/operands/0/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals(
+ "Sterne",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
}
+
@Test
- public void testOPIN() throws JsonProcessingException, IOException {
+ public void testOPIN () throws JsonProcessingException, IOException {
query = "wegen #IN <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(130, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral: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("koral: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("koral: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("koral: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("koral: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());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(130, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral: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("koral: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(
+ "koral: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("koral: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(
+ "koral: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());
query = "wegen #IN(L) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(130, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("frames:matches", res.at("/query/operands/0/frames/1").asText());
- assertEquals(true, res.at("/query/operands/0/frames/2").isMissingNode());
- assertEquals("koral:group", res.at("/query/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("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(130, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
- assertEquals("wegen", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(130, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("frames:matches", res.at("/query/operands/0/frames/1")
+ .asText());
+ assertEquals(true, res.at("/query/operands/0/frames/2").isMissingNode());
+ assertEquals("koral:group", res.at("/query/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("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:class",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals(130, res.at("/query/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals("koral:token",
+ res.at("/query/operands/0/operands/1/operands/0/@type")
+ .asText());
+ assertEquals("wegen",
+ res.at("/query/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
query = "wegen #IN(F) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/operands/0/classRefCheck").isMissingNode());
- assertEquals("frames:matches", res.at("/query/operands/0/frames/0").asText());
- assertEquals(true, res.at("/query/operands/0/frames/1").isMissingNode());
+ assertEquals(true, res.at("/query/operands/0/classRefCheck")
+ .isMissingNode());
+ assertEquals("frames:matches", res.at("/query/operands/0/frames/0")
+ .asText());
+ assertEquals(true, res.at("/query/operands/0/frames/1").isMissingNode());
query = "wegen #IN(FI) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("classRefCheck:unequals", 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/frames/1").isMissingNode());
+ assertEquals("classRefCheck:unequals",
+ 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/frames/1")
+ .isMissingNode());
query = "wegen #IN(FE) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- 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/frames/1").isMissingNode());
+ 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/frames/1")
+ .isMissingNode());
query = "wegen #IN(%, L) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("frames:startsWith", res.at("/query/operands/0/frames/0").asText());
- assertEquals("frames:matches", res.at("/query/operands/0/frames/1").asText());
+ assertEquals("frames:startsWith", res.at("/query/operands/0/frames/0")
+ .asText());
+ assertEquals("frames:matches", res.at("/query/operands/0/frames/1")
+ .asText());
// assertEquals(true, res.at("/query/operands/0/operands/0/exclude").isMissingNode());
query = "wegen #IN(FE,%,MIN) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- 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("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").isMissingNode());
query = "wegen #IN(FE,ALL,%,MIN) <s>";
qs.setQuery(query, "cosmas2");
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("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());
+ 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("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());
query = "wegen #IN(FE,ALL,%,MAX) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- 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("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());
+ 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("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());
}
+
@Test
- public void testOPOV() throws JsonProcessingException, IOException {
+ public void testOPOV () throws JsonProcessingException, IOException {
query = "wegen #OV <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(130, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(130, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral: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("koral: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("koral: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("koral: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("koral: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());
+ 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("koral: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("koral: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(
+ "koral: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("koral: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(
+ "koral: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());
query = "wegen #OV(L) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("classRefCheck:intersects", res.at("/query/operands/0/classRefCheck/0").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/0/frames/0").asText());
- assertEquals("frames:overlapsLeft", res.at("/query/operands/0/operands/0/frames/1").asText());
- assertEquals("frames:matches", res.at("/query/operands/0/operands/0/frames/2").asText());
+ assertEquals("classRefCheck:intersects",
+ res.at("/query/operands/0/classRefCheck/0").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("frames:overlapsLeft",
+ res.at("/query/operands/0/operands/0/frames/1").asText());
+ assertEquals("frames:matches",
+ res.at("/query/operands/0/operands/0/frames/2").asText());
query = "wegen #OV(F) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("classRefCheck:intersects", 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/frames/1").isMissingNode());
+ assertEquals("classRefCheck:intersects",
+ 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/frames/1")
+ .isMissingNode());
query = "wegen #OV(FI) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("classRefCheck:unequals", res.at("/query/operands/0/classRefCheck/0").asText());
- assertEquals("frames:matches", res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("classRefCheck:unequals",
+ res.at("/query/operands/0/classRefCheck/0").asText());
+ assertEquals("frames:matches",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
query = "wegen #OV(FE) <s>";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- 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("classRefCheck:equals",
+ res.at("/query/operands/0/classRefCheck/0").asText());
+ assertEquals("frames:matches",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
}
@Test
- public void testBEG_END() throws JsonProcessingException, IOException {
+ public void testBEG_END () throws JsonProcessingException, IOException {
query = "#BEG(der /w3:5 Mann)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(0, res.at("/query/spanRef/0").asInt());
- assertEquals(1, res.at("/query/spanRef/1").asInt());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/0/distances/0/key").asText());
- assertEquals(3, res.at("/query/operands/0/distances/0/boundary/min").asInt());
- assertEquals(5, res.at("/query/operands/0/distances/0/boundary/max").asInt());
- assertEquals(false, res.at("/query/operands/0/inOrder").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mann", res.at("/query/operands/0/operands/1/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(0, res.at("/query/spanRef/0").asInt());
+ assertEquals(1, res.at("/query/spanRef/1").asInt());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/0/distances/0/@type").asText());
+ assertEquals("w", res.at("/query/operands/0/distances/0/key").asText());
+ assertEquals(3, res.at("/query/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(5, res.at("/query/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(false, res.at("/query/operands/0/inOrder").asBoolean());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mann", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
query = "#BEG(der /w3:5 Mann) /+w10 kommt";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals("koral:reference", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(0, res.at("/query/operands/0/operands/0/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/0/spanRef/1").asInt());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/0/operands/0/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/0/operands/0/operands/0/distances/0/key").asText());
- assertEquals(3, res.at("/query/operands/0/operands/0/operands/0/distances/0/boundary/min").asInt());
- assertEquals(5, res.at("/query/operands/0/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals(false, res.at("/query/operands/0/operands/0/operands/0/inOrder").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mann", res.at("/query/operands/0/operands/0/operands/0/operands/1/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("koral:token", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals("kommt", res.at("/query/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("koral:reference",
+ res.at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:focus",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals(0, res.at("/query/operands/0/operands/0/spanRef/0")
+ .asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/spanRef/1")
+ .asInt());
+ assertEquals("koral:group",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/0/operands/0/operation")
+ .asText());
+ assertEquals(
+ "cosmas:distance",
+ res.at("/query/operands/0/operands/0/operands/0/distances/0/@type")
+ .asText());
+ assertEquals(
+ "w",
+ res.at("/query/operands/0/operands/0/operands/0/distances/0/key")
+ .asText());
+ assertEquals(
+ 3,
+ res.at("/query/operands/0/operands/0/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(
+ 5,
+ res.at("/query/operands/0/operands/0/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(false,
+ res.at("/query/operands/0/operands/0/operands/0/inOrder")
+ .asBoolean());
+ assertEquals(
+ "koral:token",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "der",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "Mann",
+ res.at("/query/operands/0/operands/0/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/0/@type").asText());
+ assertEquals("kommt", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
query = "kommt /+w10 #BEG(der /w3:5 Mann)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals(true, res.at("/query/inOrder").asBoolean());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(129, res.at("/query/operands/1/classOut").asInt());
- assertEquals("koral:reference", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/1/operands/0/operation").asText());
- assertEquals(0, res.at("/query/operands/1/operands/0/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/1/operands/0/spanRef/1").asInt());
- assertEquals("koral:group", res.at("/query/operands/1/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operands/0/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/1/operands/0/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/1/operands/0/operands/0/distances/0/key").asText());
- assertEquals(3, res.at("/query/operands/1/operands/0/operands/0/distances/0/boundary/min").asInt());
- assertEquals(5, res.at("/query/operands/1/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals(false, res.at("/query/operands/1/operands/0/operands/0/inOrder").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/1/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mann", res.at("/query/operands/1/operands/0/operands/0/operands/1/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(129, res.at("/query/operands/0/classOut").asInt());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("kommt", res.at("/query/operands/0/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(0, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals(true, res.at("/query/inOrder").asBoolean());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("koral:reference",
+ res.at("/query/operands/1/operands/0/@type").asText());
+ assertEquals("operation:focus",
+ res.at("/query/operands/1/operands/0/operation").asText());
+ assertEquals(0, res.at("/query/operands/1/operands/0/spanRef/0")
+ .asInt());
+ assertEquals(1, res.at("/query/operands/1/operands/0/spanRef/1")
+ .asInt());
+ assertEquals("koral:group",
+ res.at("/query/operands/1/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/1/operands/0/operands/0/operation")
+ .asText());
+ assertEquals(
+ "cosmas:distance",
+ res.at("/query/operands/1/operands/0/operands/0/distances/0/@type")
+ .asText());
+ assertEquals(
+ "w",
+ res.at("/query/operands/1/operands/0/operands/0/distances/0/key")
+ .asText());
+ assertEquals(
+ 3,
+ res.at("/query/operands/1/operands/0/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(
+ 5,
+ res.at("/query/operands/1/operands/0/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(false,
+ res.at("/query/operands/1/operands/0/operands/0/inOrder")
+ .asBoolean());
+ assertEquals(
+ "koral:token",
+ res.at("/query/operands/1/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "der",
+ res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "Mann",
+ res.at("/query/operands/1/operands/0/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(129, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("kommt", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
query = "#END(der /w3:5 Mann)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(-1, res.at("/query/spanRef/0").asInt());
- assertEquals(1, res.at("/query/spanRef/1").asInt());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/0/distances/0/key").asText());
- assertEquals(3, res.at("/query/operands/0/distances/0/boundary/min").asInt());
- assertEquals(5, res.at("/query/operands/0/distances/0/boundary/max").asInt());
- assertEquals(false, res.at("/query/operands/0/inOrder").asBoolean());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Mann", res.at("/query/operands/0/operands/1/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(-1, res.at("/query/spanRef/0").asInt());
+ assertEquals(1, res.at("/query/spanRef/1").asInt());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/0/distances/0/@type").asText());
+ assertEquals("w", res.at("/query/operands/0/distances/0/key").asText());
+ assertEquals(3, res.at("/query/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(5, res.at("/query/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals(false, res.at("/query/operands/0/inOrder").asBoolean());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mann", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
}
+
@Test
- public void testELEM() throws JsonProcessingException, IOException {
+ public void testELEM () throws JsonProcessingException, IOException {
query = "#ELEM(S)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("s", res.at("/query/key").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("s", res.at("/query/key").asText());
query = "#ELEM(W ANA=N)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("w", res.at("/query/key").asText());
- assertEquals("koral:term", res.at("/query/attr/@type").asText());
- assertEquals("N", res.at("/query/attr/key").asText());
- assertEquals("p", res.at("/query/attr/layer").asText());
- assertEquals("match:eq", res.at("/query/attr/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("w", res.at("/query/key").asText());
+ assertEquals("koral:term", res.at("/query/attr/@type").asText());
+ assertEquals("N", res.at("/query/attr/key").asText());
+ assertEquals("p", res.at("/query/attr/layer").asText());
+ assertEquals("match:eq", res.at("/query/attr/match").asText());
query = "#ELEM(W ANA != 'N V')";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("w", res.at("/query/key").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/relation").asText());
- assertEquals("koral:term", res.at("/query/attr/operands/0/@type").asText());
- assertEquals("N", res.at("/query/attr/operands/0/key").asText());
- assertEquals("p", res.at("/query/attr/operands/0/layer").asText());
- assertEquals("match:ne", res.at("/query/attr/operands/0/match").asText());
- assertEquals("koral:term", res.at("/query/attr/operands/1/@type").asText());
- assertEquals("V", res.at("/query/attr/operands/1/key").asText());
- assertEquals("p", res.at("/query/attr/operands/1/layer").asText());
- assertEquals("match:ne", res.at("/query/attr/operands/1/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("w", res.at("/query/key").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
+ assertEquals("relation:and", res.at("/query/attr/relation").asText());
+ assertEquals("koral:term", res.at("/query/attr/operands/0/@type")
+ .asText());
+ assertEquals("N", res.at("/query/attr/operands/0/key").asText());
+ assertEquals("p", res.at("/query/attr/operands/0/layer").asText());
+ assertEquals("match:ne", res.at("/query/attr/operands/0/match")
+ .asText());
+ assertEquals("koral:term", res.at("/query/attr/operands/1/@type")
+ .asText());
+ assertEquals("V", res.at("/query/attr/operands/1/key").asText());
+ assertEquals("p", res.at("/query/attr/operands/1/layer").asText());
+ assertEquals("match:ne", res.at("/query/attr/operands/1/match")
+ .asText());
query = "#ELEM(W ANA != 'N A V' Genre = Sport)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("w", res.at("/query/key").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/relation").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/operands/0/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/operands/0/relation").asText());
- assertEquals("N", res.at("/query/attr/operands/0/operands/0/key").asText());
- assertEquals("A", res.at("/query/attr/operands/0/operands/1/key").asText());
- assertEquals("V", res.at("/query/attr/operands/0/operands/2/key").asText());
- assertEquals("Genre", res.at("/query/attr/operands/1/layer").asText());
- assertEquals("Sport", res.at("/query/attr/operands/1/key").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("w", res.at("/query/key").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
+ assertEquals("relation:and", res.at("/query/attr/relation").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/operands/0/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/attr/operands/0/relation")
+ .asText());
+ assertEquals("N", res.at("/query/attr/operands/0/operands/0/key")
+ .asText());
+ assertEquals("A", res.at("/query/attr/operands/0/operands/1/key")
+ .asText());
+ assertEquals("V", res.at("/query/attr/operands/0/operands/2/key")
+ .asText());
+ assertEquals("Genre", res.at("/query/attr/operands/1/layer").asText());
+ assertEquals("Sport", res.at("/query/attr/operands/1/key").asText());
query = "#ELEM(W ANA != 'N A V' Genre != 'Sport Politik')";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("w", res.at("/query/key").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/relation").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/operands/0/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/operands/0/relation").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/operands/1/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/operands/1/relation").asText());
- assertEquals("N", res.at("/query/attr/operands/0/operands/0/key").asText());
- assertEquals("A", res.at("/query/attr/operands/0/operands/1/key").asText());
- assertEquals("V", res.at("/query/attr/operands/0/operands/2/key").asText());
- assertEquals("match:ne", res.at("/query/attr/operands/0/operands/2/match").asText());
- assertEquals("Genre", res.at("/query/attr/operands/1/operands/0/layer").asText());
- assertEquals("Sport", res.at("/query/attr/operands/1/operands/0/key").asText());
- assertEquals("Genre", res.at("/query/attr/operands/1/operands/1/layer").asText());
- assertEquals("Politik", res.at("/query/attr/operands/1/operands/1/key").asText());
- assertEquals("match:ne", res.at("/query/attr/operands/1/operands/1/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("w", res.at("/query/key").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
+ assertEquals("relation:and", res.at("/query/attr/relation").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/operands/0/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/attr/operands/0/relation")
+ .asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/operands/1/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/attr/operands/1/relation")
+ .asText());
+ assertEquals("N", res.at("/query/attr/operands/0/operands/0/key")
+ .asText());
+ assertEquals("A", res.at("/query/attr/operands/0/operands/1/key")
+ .asText());
+ assertEquals("V", res.at("/query/attr/operands/0/operands/2/key")
+ .asText());
+ assertEquals("match:ne",
+ res.at("/query/attr/operands/0/operands/2/match").asText());
+ assertEquals("Genre", res.at("/query/attr/operands/1/operands/0/layer")
+ .asText());
+ assertEquals("Sport", res.at("/query/attr/operands/1/operands/0/key")
+ .asText());
+ assertEquals("Genre", res.at("/query/attr/operands/1/operands/1/layer")
+ .asText());
+ assertEquals("Politik", res.at("/query/attr/operands/1/operands/1/key")
+ .asText());
+ assertEquals("match:ne",
+ res.at("/query/attr/operands/1/operands/1/match").asText());
}
+
+
@Test
- public void testOPALL() throws JsonProcessingException, IOException {
+ public void testOPALL () throws JsonProcessingException, IOException {
query = "#ALL(gehen /w1:10 voran)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("gehen", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("voran", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("gehen", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("voran", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
query = "#ALL(gehen /w1:10 (voran /w1:4 schnell))";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:distance", res.at("/query/distances/0/@type").asText());
- assertEquals("w", res.at("/query/distances/0/key").asText());
- assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
- assertEquals("gehen", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/1/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/1/distances/0/key").asText());
- assertEquals(1, res.at("/query/operands/1/distances/0/boundary/min").asInt());
- assertEquals(4, res.at("/query/operands/1/distances/0/boundary/max").asInt());
- assertEquals("voran", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("schnell", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("cosmas:distance", res.at("/query/distances/0/@type")
+ .asText());
+ assertEquals("w", res.at("/query/distances/0/key").asText());
+ assertEquals(1, res.at("/query/distances/0/boundary/min").asInt());
+ assertEquals(10, res.at("/query/distances/0/boundary/max").asInt());
+ assertEquals("gehen", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/1/distances/0/@type").asText());
+ assertEquals("w", res.at("/query/operands/1/distances/0/key").asText());
+ assertEquals(1, res.at("/query/operands/1/distances/0/boundary/min")
+ .asInt());
+ assertEquals(4, res.at("/query/operands/1/distances/0/boundary/max")
+ .asInt());
+ assertEquals("voran", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("schnell", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
}
+
@Test
- public void testOPNHIT() throws JsonProcessingException, IOException {
+ public void testOPNHIT () throws JsonProcessingException, IOException {
query = "#NHIT(gehen /w1:10 voran)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/0/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/0/operands/0/distances/0/key").asText());
- assertEquals(1, res.at("/query/operands/0/operands/0/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals("koral: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("koral: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());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/0/operands/0/distances/0/@type")
+ .asText());
+ assertEquals("w", res
+ .at("/query/operands/0/operands/0/distances/0/key").asText());
+ assertEquals(1,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(10,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals("koral: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(
+ "koral: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());
query = "#NHIT(gehen /w1:10 voran /w1:10 Beispiel)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("koral:distance", res.at("/query/operands/0/operands/0/distances/0/@type").asText());
- assertEquals("w", res.at("/query/operands/0/operands/0/distances/0/key").asText());
- assertEquals(1, res.at("/query/operands/0/operands/0/distances/0/boundary/min").asInt());
- assertEquals(10, res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
- assertEquals("koral: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("gehen", res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(131, res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("cosmas:distance",
+ res.at("/query/operands/0/operands/0/distances/0/@type")
+ .asText());
+ assertEquals("w", res
+ .at("/query/operands/0/operands/0/distances/0/key").asText());
+ assertEquals(1,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/min")
+ .asInt());
+ assertEquals(10,
+ res.at("/query/operands/0/operands/0/distances/0/boundary/max")
+ .asInt());
+ assertEquals("koral: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(
+ "gehen",
+ res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(131,
+ res.at("/query/operands/0/operands/0/operands/1/classOut")
+ .asInt());
// assertEquals("classRefOp:merge", res.at("/query/operands/0/operands/0/operands/1/classRefOp").asText());
- assertEquals("operation:sequence", 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/operands/0/classOut").asInt());
- assertEquals("voran", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(132, res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/classOut").asInt());
- assertEquals("Beispiel", res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
+ assertEquals(
+ "operation:sequence",
+ 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/operands/0/classOut")
+ .asInt());
+ assertEquals(
+ "voran",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ 132,
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals(
+ "Beispiel",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
}
+
@Test
- public void testOPBED() throws JsonProcessingException, IOException {
+ public void testOPBED () throws JsonProcessingException, IOException {
query = "#BED(der , sa)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral: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("koral: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("koral:span", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral: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("koral: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("koral:span", res.at("/query/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/key").asText());
query = "#BED(der Mann , +pe)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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());
- assertEquals("koral:reference", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals(-1, res.at("/query/operands/0/operands/0/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/0/spanRef/1").asInt());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("p", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(0, res.at("/query/operands/0/operands/1/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/1/spanRef/1").asInt());
- assertEquals("koral: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("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());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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());
+ assertEquals("koral:reference",
+ res.at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:focus",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals(-1, res.at("/query/operands/0/operands/0/spanRef/0")
+ .asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/spanRef/1")
+ .asInt());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("p", res.at("/query/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals("koral:reference",
+ res.at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:focus",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals(0, res.at("/query/operands/0/operands/1/spanRef/0")
+ .asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/spanRef/1")
+ .asInt());
+ assertEquals("koral: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(
+ "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());
query = "#BED(der Mann , sa,-pa)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/0/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral: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("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());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:position",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals("koral: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(
+ "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());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/1/frames/0").asText());
- assertEquals(true, res.at("/query/operands/0/operands/1/exclude").asBoolean());
- assertEquals("koral:span", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
- assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key").asText());
- assertEquals("koral: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("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());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:position",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/1/frames/0").asText());
+ assertEquals(true, res.at("/query/operands/0/operands/1/exclude")
+ .asBoolean());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/1/operands/0/@type")
+ .asText());
+ assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("koral: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(
+ "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());
}
+
@Test
- public void testColonSeparatedConditions() throws JsonProcessingException, IOException {
+ public void testColonSeparatedConditions () throws JsonProcessingException,
+ IOException {
query = "der:sa";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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("koral: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("koral: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("koral:span", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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("koral: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("koral: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("koral:span", res.at("/query/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/key").asText());
query = "der:sa,-pa";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/0/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral: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("der", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/1/frames/0").asText());
- assertEquals(true, res.at("/query/operands/0/operands/1/exclude").asBoolean());
- assertEquals("koral:span", res.at("/query/operands/0/operands/1/operands/0/@type").asText());
- assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key").asText());
- assertEquals("koral: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("der", res.at("/query/operands/0/operands/1/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:position",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals("koral: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(
+ "der",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/1/@type").asText());
+ assertEquals("operation:position",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/1/frames/0").asText());
+ assertEquals(true, res.at("/query/operands/0/operands/1/exclude")
+ .asBoolean());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/1/operands/0/@type")
+ .asText());
+ assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/key")
+ .asText());
+ assertEquals("koral: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(
+ "der",
+ res.at("/query/operands/0/operands/1/operands/1/operands/0/wrap/key")
+ .asText());
query = "der:sa,-pa,+te";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(129, res.at("/query/classRef/0").asInt());
- assertEquals("koral: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());
- assertEquals("koral:group", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/0/frames/0").asText());
- assertEquals("koral:span", res.at("/query/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral: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("der", res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral: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("koral: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());
- assertEquals("koral:group", res.at("/query/operands/0/operands/1/operands/0/operands/0/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operands/1/operands/0/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/operands/1/operands/0/operands/0/frames/0").asText());
- assertEquals(true, res.at("/query/operands/0/operands/1/operands/0/operands/0/exclude").asBoolean());
- assertEquals("koral:span", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/@type").asText());
- assertEquals("p", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/key").asText());
- assertEquals("koral: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("der", res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral: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());
- assertEquals("frames:matches", res.at("/query/operands/0/operands/1/operands/0/operands/1/frames/0").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operation").asText());
- assertEquals(-1, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/spanRef/1").asInt());
- assertEquals("koral:span", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/0/@type").asText());
- assertEquals("t", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/0/key").asText());
- assertEquals("koral:reference", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/@type").asText());
- assertEquals("operation:focus", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operation").asText());
- assertEquals(0, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/1").asInt());
- assertEquals("koral: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("der", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(129, res.at("/query/classRef/0").asInt());
+ assertEquals("koral: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());
+ assertEquals("koral:group", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("operation:position",
+ res.at("/query/operands/0/operands/0/operation").asText());
+ assertEquals("frames:startsWith",
+ res.at("/query/operands/0/operands/0/frames/0").asText());
+ assertEquals("koral:span",
+ res.at("/query/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals("koral: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(
+ "der",
+ res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("koral: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("koral: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());
+ assertEquals(
+ "koral:group",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "operation:position",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/operation")
+ .asText());
+ assertEquals(
+ "frames:startsWith",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/frames/0")
+ .asText());
+ assertEquals(
+ true,
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/exclude")
+ .asBoolean());
+ assertEquals(
+ "koral:span",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "p",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/key")
+ .asText());
+ assertEquals(
+ "koral: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(
+ "der",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "koral: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());
+ assertEquals(
+ "frames:matches",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/frames/0")
+ .asText());
+ assertEquals(
+ "koral:reference",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/@type")
+ .asText());
+ assertEquals(
+ "operation:focus",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operation")
+ .asText());
+ assertEquals(
+ -1,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/spanRef/0")
+ .asInt());
+ assertEquals(
+ 1,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/spanRef/1")
+ .asInt());
+ assertEquals(
+ "koral:span",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(
+ "t",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/0/key")
+ .asText());
+ assertEquals(
+ "koral:reference",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/@type")
+ .asText());
+ assertEquals(
+ "operation:focus",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operation")
+ .asText());
+ assertEquals(
+ 0,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/0")
+ .asInt());
+ assertEquals(
+ 1,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/1")
+ .asInt());
+ assertEquals(
+ "koral: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(
+ "der",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key")
+ .asText());
}
+
@Test
- public void testErrors() throws JsonProcessingException, IOException {
+ public void testErrors () throws JsonProcessingException, IOException {
query = "MORPH(tt/p=\"\")";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/@type").isMissingNode());
- assertEquals(StatusCodes.INCOMPATIBLE_OPERATOR_AND_OPERAND, res.at("/errors/0/0").asInt());
- assertTrue(res.at("/errors/0/1").asText().startsWith("Something went wrong parsing the argument in MORPH()"));
+ assertEquals(true, res.at("/query/@type").isMissingNode());
+ assertEquals(StatusCodes.INCOMPATIBLE_OPERATOR_AND_OPERAND,
+ res.at("/errors/0/0").asInt());
+ assertTrue(res
+ .at("/errors/0/1")
+ .asText()
+ .startsWith(
+ "Something went wrong parsing the argument in MORPH()"));
query = "MORPH(tt/p=\"foo)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/@type").isMissingNode());
- assertEquals(StatusCodes.MALFORMED_QUERY, res.at("/errors/0/0").asInt());
- assertTrue(res.at("/errors/0/1").asText().startsWith("Early closing parenthesis"));
+ assertEquals(true, res.at("/query/@type").isMissingNode());
+ assertEquals(StatusCodes.MALFORMED_QUERY, res.at("/errors/0/0").asInt());
+ assertTrue(res.at("/errors/0/1").asText()
+ .startsWith("Early closing parenthesis"));
query = "MORPH(tt/p=)";
qs.setQuery(query, "cosmas2");
res = mapper.readTree(qs.toJSON());
- assertEquals(true, res.at("/query/@type").isMissingNode());
- assertEquals(StatusCodes.MALFORMED_QUERY, res.at("/errors/0/0").asInt());
- assertTrue(res.at("/errors/0/1").asText().startsWith("Early closing parenthesis"));
+ assertEquals(true, res.at("/query/@type").isMissingNode());
+ assertEquals(StatusCodes.MALFORMED_QUERY, res.at("/errors/0/0").asInt());
+ assertTrue(res.at("/errors/0/1").asText()
+ .startsWith("Early closing parenthesis"));
}
}
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/CqlQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/CqlQueryProcessorTest.java
index 92cf788..6f2bdd9 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/CqlQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/CqlQueryProcessorTest.java
@@ -1,4 +1,5 @@
package de.ids_mannheim.korap.query.serialize;
+
import static org.junit.Assert.assertEquals;
import java.io.IOException;
@@ -14,187 +15,206 @@
public class CqlQueryProcessorTest {
-
- String query;
- String version ="1.2";
- ObjectMapper mapper = new ObjectMapper();
-
- @Test
- public void testExceptions() throws CQLParseException, IOException {
- query = "(Kuh) prox (Germ) ";
- try {
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- } catch (Exception e) {
- int errorCode = Integer.parseInt(e.getMessage().split(":")[0].replace("SRU diagnostic ", ""));
- assertEquals(48,errorCode);
- }
-
- query = "(Kuh) or/rel.combine=sum (Germ) ";
- try {
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- }catch (Exception e) {
- int errorCode = Integer.parseInt(e.getMessage().split(":")[0].replace("SRU diagnostic ", ""));
- assertEquals(20,errorCode);
- }
-
- query = "dc.title any Germ ";
- try {
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- } catch (Exception e) {
- int errorCode = Integer.parseInt(e.getMessage().split(":")[0].replace("SRU diagnostic ", ""));
- assertEquals(16,errorCode);
- }
-
- query = "cql.serverChoice any Germ ";
- try {
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- } catch (Exception e) {
- int errorCode = Integer.parseInt(e.getMessage().split(":")[0].replace("SRU diagnostic ", ""));
- assertEquals(19,errorCode);
- }
-
- query = "";
- try {
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- } catch (Exception e) {
- int errorCode = Integer.parseInt(e.getMessage().split(":")[0].replace("SRU diagnostic ", ""));
- assertEquals(27,errorCode);
- }
- }
-
- @Test
- public void testAndQuery() throws CQLParseException, IOException, Exception{
- query="(Sonne) and (scheint)";
- String jsonLd =
- "{@type : koral:group, operation : operation:sequence, inOrder : false," +
- "distances:[ "+
- "{@type : koral:distance, key : s, min : 0, max : 0 } ],"+
- "operands : ["+
- "{@type : koral:token, wrap : {@type : koral:term,key : Sonne, layer : orth, match : match:eq}}," +
- "{@type : koral:token,wrap : {@type : koral:term,key : scheint,layer : orth,match : match:eq}" +
- "}]}";
-
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- String serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-// /System.out.println(serializedQuery);
- //CosmasTree ct = new CosmasTree("Sonne und scheint");
- //serializedQuery = mapper.writeValueAsString(ct.getRequestMap().get("query"));
- //assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
- }
-
- @Test
- public void testBooleanQuery() throws CQLParseException, IOException, Exception{
- query="((Sonne) or (Mond)) and (scheint)";
- String jsonLd =
- "{@type:koral:group, operation:operation:sequence, inOrder : false, distances:[" +
- "{@type:koral:distance, key:s, min:0, max:0}" +
- "], operands:[" +
- "{@type:koral:group, operation:operation:or, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}" +
- "]}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}" +
- "]}";
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- String serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-
-
- query="(scheint) and ((Sonne) or (Mond))";
- jsonLd =
- "{@type:koral:group, operation:operation:sequence, inOrder : false, distances:[" +
- "{@type:koral:distance, key:s, min:0, max:0}" +
- "], operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}," +
- "{@type:koral:group, operation:operation:or, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}" +
- "]}" +
- "]}";
- cqlTree = new CqlQueryProcessor(query, version);
- serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-
- }
-
- @Test
- public void testOrQuery() throws CQLParseException, IOException, Exception{
- query = "(Sonne) or (Mond)";
- String jsonLd =
- "{@type:koral:group, operation:operation:or, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}" +
- "]}";
-
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- String serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-
- query="(\"Sonne scheint\") or (Mond)";
- jsonLd =
- "{@type:koral:group, operation:operation:or, operands:[" +
- "{@type:koral:group, operation:operation:sequence, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}" +
- "]}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}" +
- "]}";
-
- cqlTree = new CqlQueryProcessor(query, version);
- serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-
- query="(\"Sonne scheint\") or (\"Mond scheint\")";
- jsonLd =
- "{@type:koral:group, operation:operation:or, operands:[" +
- "{@type:koral:group, operation:operation:sequence, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}" +
- "]}," +
- "{@type:koral:group, operation:operation:sequence, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}" +
- "]}" +
- "]}";
- cqlTree = new CqlQueryProcessor(query, version);
- serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
- }
-
- @Test
- public void testTermQuery() throws CQLParseException, IOException, Exception{
- query = "Sonne";
- String jsonLd = "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}";
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- String serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
- }
-
- @Test
- public void testPhraseQuery() throws CQLParseException, IOException, Exception{
- query="\"der Mann\"";
- String jsonLd =
- "{@type:koral:group, operation:operation:sequence, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:der, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mann, layer:orth, match:match:eq}}" +
- "]}";
-
- CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
- String serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
-
-
- query="der Mann schläft";
- jsonLd =
- "{@type:koral:group, operation:operation:sequence, operands:[" +
- "{@type:koral:token, wrap:{@type:koral:term, key:der, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:Mann, layer:orth, match:match:eq}}," +
- "{@type:koral:token, wrap:{@type:koral:term, key:schläft, layer:orth, match:match:eq}}" +
- "]}";
-
- cqlTree = new CqlQueryProcessor(query, version);
- serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap().get("query"));
- assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
- }
+
+ String query;
+ String version = "1.2";
+ ObjectMapper mapper = new ObjectMapper();
+
+
+ @Test
+ public void testExceptions () throws CQLParseException, IOException {
+ query = "(Kuh) prox (Germ) ";
+ try {
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ }
+ catch (Exception e) {
+ int errorCode = Integer.parseInt(e.getMessage().split(":")[0]
+ .replace("SRU diagnostic ", ""));
+ assertEquals(48, errorCode);
+ }
+
+ query = "(Kuh) or/rel.combine=sum (Germ) ";
+ try {
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ }
+ catch (Exception e) {
+ int errorCode = Integer.parseInt(e.getMessage().split(":")[0]
+ .replace("SRU diagnostic ", ""));
+ assertEquals(20, errorCode);
+ }
+
+ query = "dc.title any Germ ";
+ try {
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ }
+ catch (Exception e) {
+ int errorCode = Integer.parseInt(e.getMessage().split(":")[0]
+ .replace("SRU diagnostic ", ""));
+ assertEquals(16, errorCode);
+ }
+
+ query = "cql.serverChoice any Germ ";
+ try {
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ }
+ catch (Exception e) {
+ int errorCode = Integer.parseInt(e.getMessage().split(":")[0]
+ .replace("SRU diagnostic ", ""));
+ assertEquals(19, errorCode);
+ }
+
+ query = "";
+ try {
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ }
+ catch (Exception e) {
+ int errorCode = Integer.parseInt(e.getMessage().split(":")[0]
+ .replace("SRU diagnostic ", ""));
+ assertEquals(27, errorCode);
+ }
+ }
+
+
+ @Test
+ public void testAndQuery () throws CQLParseException, IOException,
+ Exception {
+ query = "(Sonne) and (scheint)";
+ String jsonLd = "{@type : koral:group, operation : operation:sequence, inOrder : false,"
+ + "distances:[ "
+ + "{@type : koral:distance, key : s, min : 0, max : 0 } ],"
+ + "operands : ["
+ + "{@type : koral:token, wrap : {@type : koral:term,key : Sonne, layer : orth, match : match:eq}},"
+ + "{@type : koral:token,wrap : {@type : koral:term,key : scheint,layer : orth,match : match:eq}"
+ + "}]}";
+
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ String serializedQuery = mapper.writeValueAsString(cqlTree
+ .getRequestMap().get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+ // /System.out.println(serializedQuery);
+ //CosmasTree ct = new CosmasTree("Sonne und scheint");
+ //serializedQuery = mapper.writeValueAsString(ct.getRequestMap().get("query"));
+ //assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+ }
+
+
+ @Test
+ public void testBooleanQuery () throws CQLParseException, IOException,
+ Exception {
+ query = "((Sonne) or (Mond)) and (scheint)";
+ String jsonLd = "{@type:koral:group, operation:operation:sequence, inOrder : false, distances:["
+ + "{@type:koral:distance, key:s, min:0, max:0}"
+ + "], operands:["
+ + "{@type:koral:group, operation:operation:or, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}"
+ + "]},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}"
+ + "]}";
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ String serializedQuery = mapper.writeValueAsString(cqlTree
+ .getRequestMap().get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+
+
+ query = "(scheint) and ((Sonne) or (Mond))";
+ jsonLd = "{@type:koral:group, operation:operation:sequence, inOrder : false, distances:["
+ + "{@type:koral:distance, key:s, min:0, max:0}"
+ + "], operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}},"
+ + "{@type:koral:group, operation:operation:or, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}"
+ + "]}" + "]}";
+ cqlTree = new CqlQueryProcessor(query, version);
+ serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap()
+ .get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+
+ }
+
+
+ @Test
+ public void testOrQuery () throws CQLParseException, IOException, Exception {
+ query = "(Sonne) or (Mond)";
+ String jsonLd = "{@type:koral:group, operation:operation:or, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}"
+ + "]}";
+
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ String serializedQuery = mapper.writeValueAsString(cqlTree
+ .getRequestMap().get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+
+ query = "(\"Sonne scheint\") or (Mond)";
+ jsonLd = "{@type:koral:group, operation:operation:or, operands:["
+ + "{@type:koral:group, operation:operation:sequence, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}"
+ + "]},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}}"
+ + "]}";
+
+ cqlTree = new CqlQueryProcessor(query, version);
+ serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap()
+ .get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+
+ query = "(\"Sonne scheint\") or (\"Mond scheint\")";
+ jsonLd = "{@type:koral:group, operation:operation:or, operands:["
+ + "{@type:koral:group, operation:operation:sequence, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}"
+ + "]},"
+ + "{@type:koral:group, operation:operation:sequence, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mond, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:scheint, layer:orth, match:match:eq}}"
+ + "]}" + "]}";
+ cqlTree = new CqlQueryProcessor(query, version);
+ serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap()
+ .get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+ }
+
+
+ @Test
+ public void testTermQuery () throws CQLParseException, IOException,
+ Exception {
+ query = "Sonne";
+ String jsonLd = "{@type:koral:token, wrap:{@type:koral:term, key:Sonne, layer:orth, match:match:eq}}";
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ String serializedQuery = mapper.writeValueAsString(cqlTree
+ .getRequestMap().get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+ }
+
+
+ @Test
+ public void testPhraseQuery () throws CQLParseException, IOException,
+ Exception {
+ query = "\"der Mann\"";
+ String jsonLd = "{@type:koral:group, operation:operation:sequence, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:der, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mann, layer:orth, match:match:eq}}"
+ + "]}";
+
+ CqlQueryProcessor cqlTree = new CqlQueryProcessor(query, version);
+ String serializedQuery = mapper.writeValueAsString(cqlTree
+ .getRequestMap().get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+
+
+ query = "der Mann schläft";
+ jsonLd = "{@type:koral:group, operation:operation:sequence, operands:["
+ + "{@type:koral:token, wrap:{@type:koral:term, key:der, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:Mann, layer:orth, match:match:eq}},"
+ + "{@type:koral:token, wrap:{@type:koral:term, key:schläft, layer:orth, match:match:eq}}"
+ + "]}";
+
+ cqlTree = new CqlQueryProcessor(query, version);
+ serializedQuery = mapper.writeValueAsString(cqlTree.getRequestMap()
+ .get("query"));
+ assertEquals(jsonLd.replace(" ", ""), serializedQuery.replace("\"", ""));
+ }
}
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 b7858af..344e78c 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
@@ -1,4 +1,5 @@
package de.ids_mannheim.korap.query.serialize;
+
import static org.junit.Assert.*;
import java.io.IOException;
@@ -11,11 +12,11 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Lists;
-
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
/**
- * Tests for JSON-LD serialization of PoliqarpPlus queries.
+ * Tests for JSON-LD serialization of PoliqarpPlus queries.
+ *
* @author Joachim Bingel (bingel@ids-mannheim.de)
* @version 1.0
*/
@@ -28,8 +29,9 @@
ObjectMapper mapper = new ObjectMapper();
JsonNode res;
+
@Test
- public void testContext() throws JsonProcessingException, IOException {
+ public void testContext () throws JsonProcessingException, IOException {
query = "foo";
String contextString = "http://korap.ids-mannheim.de/ns/koral/0.3/context.jsonld";
qs.setQuery(query, "poliqarpplus");
@@ -37,1383 +39,1679 @@
assertEquals(contextString, res.get("@context").asText());
}
+
@Test
- public void testSingleTokens() throws JsonProcessingException, IOException {
+ public void testSingleTokens () throws JsonProcessingException, IOException {
query = "[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("Mann", res.at("/query/wrap/key").asText());
- assertEquals("lemma", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("Mann", res.at("/query/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "[orth!=Frau]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("Frau", res.at("/query/wrap/key").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("Frau", res.at("/query/wrap/key").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
query = "[p!=NN]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("NN", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("NN", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
query = "[!p!=NN]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("NN", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("NN", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "[base=schland/x]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals(".*?schland.*?", res.at("/query/wrap/key").asText());
- assertEquals("lemma", res.at("/query/wrap/layer").asText());
- assertEquals("type:regex", res.at("/query/wrap/type").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals(".*?schland.*?", res.at("/query/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/wrap/layer").asText());
+ assertEquals("type:regex", res.at("/query/wrap/type").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
}
+
@Test
- public void testNegatedTokens() throws JsonProcessingException, IOException {
+ public void testNegatedTokens () throws JsonProcessingException,
+ IOException {
query = "![p!=NN]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("NN", res.at("/query/wrap/key").asText());
- assertEquals("p", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("NN", res.at("/query/wrap/key").asText());
+ assertEquals("p", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
}
-
+
+
@Test
- public void testValue() throws JsonProcessingException, IOException {
+ public void testValue () throws JsonProcessingException, IOException {
query = "[mate/m=temp:pres]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("temp", res.at("/query/wrap/key").asText());
- assertEquals("pres", res.at("/query/wrap/value").asText());
- assertEquals("m", res.at("/query/wrap/layer").asText());
- assertEquals("mate", res.at("/query/wrap/foundry").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("temp", res.at("/query/wrap/key").asText());
+ assertEquals("pres", res.at("/query/wrap/value").asText());
+ assertEquals("m", res.at("/query/wrap/layer").asText());
+ assertEquals("mate", res.at("/query/wrap/foundry").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
}
+
@Test
- public void testRegex() throws JsonProcessingException, IOException {
+ public void testRegex () throws JsonProcessingException, IOException {
query = "[orth=\"M(a|ä)nn(er)?\"]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("M(a|ä)nn(er)?", res.at("/query/wrap/key").asText());
- 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());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("M(a|ä)nn(er)?", res.at("/query/wrap/key").asText());
+ 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());
query = "[orth=\"M(a|ä)nn(er)?\"/x]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals(".*?M(a|ä)nn(er)?.*?", res.at("/query/wrap/key").asText());
- 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());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals(".*?M(a|ä)nn(er)?.*?", res.at("/query/wrap/key").asText());
+ 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());
query = "\".*?Mann.*?\"";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals(".*?Mann.*?", res.at("/query/wrap/key").asText());
- 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());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals(".*?Mann.*?", res.at("/query/wrap/key").asText());
+ 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());
query = "z.B./x";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals(".*?z\\.B\\..*?", res.at("/query/wrap/key").asText());
- 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());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals(".*?z\\.B\\..*?", res.at("/query/wrap/key").asText());
+ 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 {
+ public void testPunct () throws JsonProcessingException, IOException {
query = "[punct=.]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral: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());
-
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral: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());
+
query = "[punct=\".\"]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral: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());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral: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 {
+ public void testCaseSensitivityFlag () throws JsonProcessingException,
+ IOException {
query = "[orth=deutscher/i]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("deutscher", res.at("/query/wrap/key").asText());
- assertEquals(true, res.at("/query/wrap/flags:caseInsensitive").isMissingNode());
- assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("deutscher", res.at("/query/wrap/key").asText());
+ assertEquals(true, res.at("/query/wrap/flags:caseInsensitive")
+ .isMissingNode());
+ assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0")
+ .asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "deutscher/i";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("deutscher", res.at("/query/wrap/key").asText());
- assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("deutscher", res.at("/query/wrap/key").asText());
+ assertEquals("flags:caseInsensitive", res.at("/query/wrap/flags/0")
+ .asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "deutscher/I";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("deutscher", res.at("/query/wrap/key").asText());
- assertEquals(true, res.at("/query/wrap/flags/0").isMissingNode());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("deutscher", res.at("/query/wrap/key").asText());
+ assertEquals(true, res.at("/query/wrap/flags/0").isMissingNode());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "[orth=deutscher/i][orth=Bundestag]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("deutscher", operands.get(0).at("/wrap/key").asText());
- assertEquals("orth", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("flags:caseInsensitive", operands.get(0).at("/wrap/flags/0").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Bundestag", operands.get(1).at("/wrap/key").asText());
- assertEquals("orth", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
- assertEquals(true, operands.get(1).at("/wrap/flags/0").isMissingNode());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("deutscher", operands.get(0).at("/wrap/key").asText());
+ assertEquals("orth", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("flags:caseInsensitive",
+ operands.get(0).at("/wrap/flags/0").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Bundestag", operands.get(1).at("/wrap/key").asText());
+ assertEquals("orth", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals(true, operands.get(1).at("/wrap/flags/0").isMissingNode());
query = "deutscher/i Bundestag";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("deutscher", operands.get(0).at("/wrap/key").asText());
- assertEquals("orth", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("flags:caseInsensitive", operands.get(0).at("/wrap/flags/0").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Bundestag", operands.get(1).at("/wrap/key").asText());
- assertEquals("orth", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
- assertEquals(true, operands.get(1).at("/wrap/flags:caseInsensitive").isMissingNode());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("deutscher", operands.get(0).at("/wrap/key").asText());
+ assertEquals("orth", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("flags:caseInsensitive",
+ operands.get(0).at("/wrap/flags/0").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Bundestag", operands.get(1).at("/wrap/key").asText());
+ assertEquals("orth", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals(true, operands.get(1).at("/wrap/flags:caseInsensitive")
+ .isMissingNode());
}
+
@Test
- public void testSpans() throws JsonProcessingException, IOException {
+ public void testSpans () throws JsonProcessingException, IOException {
query = "<s>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("s", res.at("/query/wrap/key").asText());
-
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("s", res.at("/query/wrap/key").asText());
+
query = "<\".*\">";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals(".*", res.at("/query/wrap/key").asText());
- assertEquals("type:regex", res.at("/query/wrap/type").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals(".*", res.at("/query/wrap/key").asText());
+ assertEquals("type:regex", res.at("/query/wrap/type").asText());
query = "<vp>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
query = "<cnx/c=vp>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
- assertEquals("cnx", res.at("/query/wrap/foundry").asText());
- assertEquals("c", res.at("/query/wrap/layer").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("cnx", res.at("/query/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/wrap/layer").asText());
query = "<cnx/c!=vp>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
- assertEquals("cnx", res.at("/query/wrap/foundry").asText());
- assertEquals("c", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("cnx", res.at("/query/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
query = "<cnx/c!=vp class!=header>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
- assertEquals("cnx", res.at("/query/wrap/foundry").asText());
- assertEquals("c", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
- assertEquals("class", res.at("/query/attr/key").asText());
- assertEquals("header", res.at("/query/attr/value").asText());
- assertEquals("match:ne", res.at("/query/attr/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("cnx", res.at("/query/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("class", res.at("/query/attr/key").asText());
+ assertEquals("header", res.at("/query/attr/value").asText());
+ assertEquals("match:ne", res.at("/query/attr/match").asText());
query = "<cnx/c!=vp !(class!=header)>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
- assertEquals("cnx", res.at("/query/wrap/foundry").asText());
- assertEquals("c", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
- assertEquals("class", res.at("/query/attr/key").asText());
- assertEquals("header", res.at("/query/attr/value").asText());
- assertEquals("match:eq", res.at("/query/attr/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("cnx", res.at("/query/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("class", res.at("/query/attr/key").asText());
+ assertEquals("header", res.at("/query/attr/value").asText());
+ assertEquals("match:eq", res.at("/query/attr/match").asText());
query = "<cnx/c!=vp !(class=header & id=7)>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/@type").asText());
- assertEquals("vp", res.at("/query/wrap/key").asText());
- assertEquals("cnx", res.at("/query/wrap/foundry").asText());
- assertEquals("c", res.at("/query/wrap/layer").asText());
- assertEquals("match:ne", res.at("/query/wrap/match").asText());
- assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
- assertEquals("relation:and", res.at("/query/attr/relation").asText());
- operands = Lists.newArrayList( res.at("/query/attr/operands").elements());
- assertEquals("koral:term", operands.get(0).at("/@type").asText());
- assertEquals("class", operands.get(0).at("/key").asText());
- assertEquals("header", operands.get(0).at("/value").asText());
- assertEquals("match:ne", operands.get(0).at("/match").asText());
- assertEquals("koral:term", operands.get(1).at("/@type").asText());
- assertEquals("id", operands.get(1).at("/key").asText());
- assertEquals(7, operands.get(1).at("/value").asInt());
- assertEquals("match:ne", operands.get(1).at("/match").asText());
+ assertEquals("koral:span", res.at("/query/@type").asText());
+ assertEquals("vp", res.at("/query/wrap/key").asText());
+ assertEquals("cnx", res.at("/query/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/wrap/layer").asText());
+ assertEquals("match:ne", res.at("/query/wrap/match").asText());
+ assertEquals("koral:termGroup", res.at("/query/attr/@type").asText());
+ assertEquals("relation:and", res.at("/query/attr/relation").asText());
+ operands = Lists
+ .newArrayList(res.at("/query/attr/operands").elements());
+ assertEquals("koral:term", operands.get(0).at("/@type").asText());
+ assertEquals("class", operands.get(0).at("/key").asText());
+ assertEquals("header", operands.get(0).at("/value").asText());
+ assertEquals("match:ne", operands.get(0).at("/match").asText());
+ assertEquals("koral:term", operands.get(1).at("/@type").asText());
+ assertEquals("id", operands.get(1).at("/key").asText());
+ assertEquals(7, operands.get(1).at("/value").asInt());
+ assertEquals("match:ne", operands.get(1).at("/match").asText());
}
+
@Test
- public void testDistances() throws JsonProcessingException, IOException {
+ public void testDistances () throws JsonProcessingException, IOException {
query = "[base=der][][base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(1, res.at("/query/distances").elements().next().at("/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(1,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(1,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").asInt());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
query = "[base=der][][][base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(2, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(2, res.at("/query/distances").elements().next().at("/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(2,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(2,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").asInt());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
query = "[base=der][][]?[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(2, res.at("/query/distances").elements().next().at("/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(1,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(2,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").asInt());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
query = "[base=der][]+[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(1, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(true, res.at("/query/distances").elements().next().at("/boundary/max").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(1,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(true,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").isMissingNode());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:token", operands.get(1).at("/@type").asText());
- assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(1).at("/@type").asText());
+ assertEquals("Mann", operands.get(1).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
query = "[base=der][]*[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(0, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(true, res.at("/query/distances").elements().next().at("/boundary/max").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(0,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(true,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").isMissingNode());
query = "[base=der][]{2,5}[base=Mann][]?[][base=Frau]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("true", res.at("/query/inOrder").asText());
- assertEquals("koral:distance", res.at("/query/distances").elements().next().at("/@type").asText());
- assertEquals("w", res.at("/query/distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", res.at("/query/distances").elements().next().at("/boundary/@type").asText());
- assertEquals(2, res.at("/query/distances").elements().next().at("/boundary/min").asInt());
- assertEquals(5, res.at("/query/distances").elements().next().at("/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("true", res.at("/query/inOrder").asText());
+ assertEquals("koral:distance", res.at("/query/distances").elements()
+ .next().at("/@type").asText());
+ assertEquals("w",
+ res.at("/query/distances").elements().next().at("/key")
+ .asText());
+ assertEquals("koral:boundary", res.at("/query/distances").elements()
+ .next().at("/boundary/@type").asText());
+ assertEquals(2,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(5,
+ res.at("/query/distances").elements().next()
+ .at("/boundary/max").asInt());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:group", operands.get(1).at("/@type").asText());
- assertEquals("operation:sequence", operands.get(1).at("/operation").asText());
- assertEquals("koral:distance", operands.get(1).get("distances").elements().next().at("/@type").asText());
- assertEquals("w", operands.get(1).get("distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", operands.get(1).get("distances").elements().next().at("/boundary/@type").asText());
- assertEquals(1, operands.get(1).get("distances").elements().next().at("/boundary/min").asInt());
- assertEquals(2, operands.get(1).get("distances").elements().next().at("/boundary/max").asInt());
- operands = Lists.newArrayList(operands.get(1).get("operands").elements());
- assertEquals("Mann", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("Frau", operands.get(1).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:group", operands.get(1).at("/@type").asText());
+ assertEquals("operation:sequence", operands.get(1).at("/operation")
+ .asText());
+ assertEquals("koral:distance", operands.get(1).get("distances")
+ .elements().next().at("/@type").asText());
+ assertEquals("w", operands.get(1).get("distances").elements().next()
+ .at("/key").asText());
+ assertEquals("koral:boundary", operands.get(1).get("distances")
+ .elements().next().at("/boundary/@type").asText());
+ assertEquals(
+ 1,
+ operands.get(1).get("distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(
+ 2,
+ operands.get(1).get("distances").elements().next()
+ .at("/boundary/max").asInt());
+ operands = Lists.newArrayList(operands.get(1).get("operands")
+ .elements());
+ assertEquals("Mann", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("Frau", operands.get(1).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(1).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(1).at("/wrap/match").asText());
query = "[base=geht][base=der][]*contains(<s>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals(true, res.at("/query/inOrder").isMissingNode());
- assertEquals(true, res.at("/query/distances").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals(true, res.at("/query/inOrder").isMissingNode());
+ assertEquals(true, res.at("/query/distances").isMissingNode());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals("geht", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:group", operands.get(1).at("/@type").asText());
- assertEquals("operation:sequence", operands.get(1).at("/operation").asText());
- assertEquals("koral:distance", operands.get(1).get("distances").elements().next().at("/@type").asText());
- assertEquals("w", operands.get(1).get("distances").elements().next().at("/key").asText());
- assertEquals("koral:boundary", operands.get(1).get("distances").elements().next().at("/boundary/@type").asText());
- assertEquals(0, operands.get(1).get("distances").elements().next().at("/boundary/min").asInt());
- assertEquals(true, operands.get(1).get("distances").elements().next().at("/boundary/max").isMissingNode());
- operands = Lists.newArrayList(operands.get(1).get("operands").elements());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
- assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
- assertEquals("koral:group", operands.get(1).at("/@type").asText());
- assertEquals("operation:position", operands.get(1).at("/operation").asText());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals("geht", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:group", operands.get(1).at("/@type").asText());
+ assertEquals("operation:sequence", operands.get(1).at("/operation")
+ .asText());
+ assertEquals("koral:distance", operands.get(1).get("distances")
+ .elements().next().at("/@type").asText());
+ assertEquals("w", operands.get(1).get("distances").elements().next()
+ .at("/key").asText());
+ assertEquals("koral:boundary", operands.get(1).get("distances")
+ .elements().next().at("/boundary/@type").asText());
+ assertEquals(
+ 0,
+ operands.get(1).get("distances").elements().next()
+ .at("/boundary/min").asInt());
+ assertEquals(true, operands.get(1).get("distances").elements().next()
+ .at("/boundary/max").isMissingNode());
+ operands = Lists.newArrayList(operands.get(1).get("operands")
+ .elements());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("lemma", operands.get(0).at("/wrap/layer").asText());
+ assertEquals("match:eq", operands.get(0).at("/wrap/match").asText());
+ assertEquals("koral:group", operands.get(1).at("/@type").asText());
+ assertEquals("operation:position", operands.get(1).at("/operation")
+ .asText());
}
+
@Test
- public void testDistancesWithClass() throws JsonProcessingException, IOException {
+ public void testDistancesWithClass () throws JsonProcessingException,
+ IOException {
query = "[base=der]{[]}[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals(true, res.at("/query/inOrder").isMissingNode());
- assertEquals(true, res.at("/query/distances").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals(true, res.at("/query/inOrder").isMissingNode());
+ assertEquals(true, res.at("/query/distances").isMissingNode());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("der", operands.get(0).at("/wrap/key").asText());
- assertEquals("Mann", operands.get(2).at("/wrap/key").asText());
- assertEquals("koral:group", operands.get(1).at("/@type").asText());
- assertEquals("operation:class", operands.get(1).at("/operation").asText());
- assertEquals(1, operands.get(1).at("/classOut").asInt());
- operands = Lists.newArrayList(operands.get(1).at("/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals(true, operands.get(0).at("/wrap").isMissingNode());
- assertEquals(1, res.at("/meta/highlight/0").asInt());
+ assertEquals("der", operands.get(0).at("/wrap/key").asText());
+ assertEquals("Mann", operands.get(2).at("/wrap/key").asText());
+ assertEquals("koral:group", operands.get(1).at("/@type").asText());
+ assertEquals("operation:class", operands.get(1).at("/operation")
+ .asText());
+ assertEquals(1, operands.get(1).at("/classOut").asInt());
+ operands = Lists.newArrayList(operands.get(1).at("/operands")
+ .elements());
+ assertEquals("koral: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());
+ 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 = "[base=der]{3:{2:[]}}";
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(3, operands.get(1).at("/classOut").asInt());
- assertEquals(3, res.at("/meta/highlight/0").asInt());
- assertEquals("operation:class", operands.get(1).at("/operands/0/operation").asText());
- assertEquals(2, operands.get(1).at("/operands/0/classOut").asInt());
- assertEquals(3, res.at("/meta/highlight/0").asInt());
- assertEquals(2, res.at("/meta/highlight/1").asInt());
+ assertEquals("operation:class", operands.get(1).at("/operation")
+ .asText());
+ assertEquals(3, operands.get(1).at("/classOut").asInt());
+ assertEquals(3, res.at("/meta/highlight/0").asInt());
+ assertEquals("operation:class",
+ operands.get(1).at("/operands/0/operation").asText());
+ assertEquals(2, operands.get(1).at("/operands/0/classOut").asInt());
+ assertEquals(3, res.at("/meta/highlight/0").asInt());
+ assertEquals(2, res.at("/meta/highlight/1").asInt());
query = "{1:[]}[base=der][base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
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());
+ 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");
res = mapper.readTree(qs.toJSON());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- 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());
+ 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
- public void testEmptyTokens() throws JsonProcessingException, IOException {
+ public void testEmptyTokens () throws JsonProcessingException, IOException {
query = "[]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals(true, res.at("/query/key").isMissingNode());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals(true, res.at("/query/key").isMissingNode());
query = "contains(<s>, [])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals(true, res.at("/query/frames/1").isMissingNode());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals(true, res.at("/query/operands/1/key").isMissingNode());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals(true, res.at("/query/frames/1").isMissingNode());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals(true, res.at("/query/operands/1/key").isMissingNode());
query = "contains(<s>, []{3})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:repetition",res.at("/query/operands/1/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals(true, res.at("/query/operands/1/operands/0/key").isMissingNode());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:repetition",
+ res.at("/query/operands/1/operation").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/0/@type").asText());
+ assertEquals(true, res.at("/query/operands/1/operands/0/key")
+ .isMissingNode());
query = "contains(<s>, {1:[]{3}})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals("operation:repetition",res.at("/query/operands/1/operands/0/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/0/operands/0/@type").asText());
- assertEquals(true, res.at("/query/operands/1/operands/0/operands/0/key").isMissingNode());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals("operation:repetition",
+ res.at("/query/operands/1/operands/0/operation").asText());
+ assertEquals("koral:token",
+ res.at("/query/operands/1/operands/0/operands/0/@type")
+ .asText());
+ assertEquals(true, res
+ .at("/query/operands/1/operands/0/operands/0/key")
+ .isMissingNode());
}
+
@Test
- public void testLeadingTrailingEmptyTokens() throws JsonProcessingException, IOException {
+ public void testLeadingTrailingEmptyTokens ()
+ throws JsonProcessingException, IOException {
query = "[][base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals(true, operands.get(0).at("/key").isMissingNode());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals(true, operands.get(0).at("/key").isMissingNode());
query = "[][][base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
operands = Lists.newArrayList(res.at("/query/operands").elements());
- assertEquals("koral:group", operands.get(0).at("/@type").asText());
- assertEquals("operation:repetition",operands.get(0).at("/operation").asText());
- assertEquals(2, operands.get(0).at("/boundary/min").asInt());
- assertEquals(2, operands.get(0).at("/boundary/max").asInt());
- operands = Lists.newArrayList(operands.get(0).at("/operands").elements());
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals(true, operands.get(0).at("/key").isMissingNode());
+ assertEquals("koral:group", operands.get(0).at("/@type").asText());
+ assertEquals("operation:repetition", operands.get(0).at("/operation")
+ .asText());
+ assertEquals(2, operands.get(0).at("/boundary/min").asInt());
+ assertEquals(2, operands.get(0).at("/boundary/max").asInt());
+ operands = Lists.newArrayList(operands.get(0).at("/operands")
+ .elements());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals(true, operands.get(0).at("/key").isMissingNode());
query = "startswith(<s>, [][base=Mann])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
operands = Lists.newArrayList(res.at("/query/operands"));
operands = Lists.newArrayList(operands.get(1).at("/operands"));
- assertEquals("koral:token", operands.get(0).at("/@type").asText());
- assertEquals(true, operands.get(0).at("/key").isMissingNode());
+ assertEquals("koral:token", operands.get(0).at("/@type").asText());
+ assertEquals(true, operands.get(0).at("/key").isMissingNode());
}
+
@Test
- public void testRepetition() throws JsonProcessingException, IOException {
+ public void testRepetition () throws JsonProcessingException, IOException {
query = "der{3}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:repetition", res.at("/query/operation").asText());
- assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals(3, res.at("/query/boundary/min").asInt());
- assertEquals(3, res.at("/query/boundary/max").asInt());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:repetition", res.at("/query/operation")
+ .asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals(3, res.at("/query/boundary/min").asInt());
+ assertEquals(3, res.at("/query/boundary/max").asInt());
query = "der{,3}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/boundary/min").asInt());
- assertEquals(3, res.at("/query/boundary/max").asInt());
+ assertEquals(0, res.at("/query/boundary/min").asInt());
+ assertEquals(3, res.at("/query/boundary/max").asInt());
query = "der{3,}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/boundary/min").asInt());
- assertEquals(true, res.at("/query/boundary/max").isMissingNode());
+ assertEquals(3, res.at("/query/boundary/min").asInt());
+ assertEquals(true, res.at("/query/boundary/max").isMissingNode());
query = "der{3,7}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/boundary/min").asInt());
- assertEquals(7, res.at("/query/boundary/max").asInt());
+ assertEquals(3, res.at("/query/boundary/min").asInt());
+ assertEquals(7, res.at("/query/boundary/max").asInt());
query = "der*";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/boundary/min").asInt());
- assertEquals(true, res.at("/query/boundary/max").isMissingNode());
+ assertEquals(0, res.at("/query/boundary/min").asInt());
+ assertEquals(true, res.at("/query/boundary/max").isMissingNode());
query = "der+";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(1, res.at("/query/boundary/min").asInt());
- assertEquals(true, res.at("/query/boundary/max").isMissingNode());
+ assertEquals(1, res.at("/query/boundary/min").asInt());
+ assertEquals(true, res.at("/query/boundary/max").isMissingNode());
};
+
@Test
- public void testGroupRepetition() throws JsonProcessingException, IOException {
+ public void testGroupRepetition () throws JsonProcessingException,
+ IOException {
query = "contains(<s>, (der){3})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:repetition",res.at("/query/operands/1/operation").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:repetition",
+ res.at("/query/operands/1/operation").asText());
query = "contains(<s>, (der){3,})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/operands/1/boundary/min").asInt());
- assertEquals(true, res.at("/query/operands/1/boundary/max").isMissingNode());
+ assertEquals(3, res.at("/query/operands/1/boundary/min").asInt());
+ assertEquals(true, res.at("/query/operands/1/boundary/max")
+ .isMissingNode());
query = "contains(<s>, (der){,3})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/operands/1/boundary/min").asInt());
- assertEquals(3, res.at("/query/operands/1/boundary/max").asInt());
+ assertEquals(0, res.at("/query/operands/1/boundary/min").asInt());
+ assertEquals(3, res.at("/query/operands/1/boundary/max").asInt());
query = "contains(<s>, (der){3,7})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/operands/1/boundary/min").asInt());
- assertEquals(7, res.at("/query/operands/1/boundary/max").asInt());
+ assertEquals(3, res.at("/query/operands/1/boundary/min").asInt());
+ assertEquals(7, res.at("/query/operands/1/boundary/max").asInt());
query = "contains(<s>, (der)*)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/operands/1/boundary/min").asInt());
- assertEquals(true, res.at("/query/operands/1/boundary/max").isMissingNode());
+ assertEquals(0, res.at("/query/operands/1/boundary/min").asInt());
+ assertEquals(true, res.at("/query/operands/1/boundary/max")
+ .isMissingNode());
};
+
@Test
- public void testPositions() throws JsonProcessingException, IOException {
+ public void testPositions () throws JsonProcessingException, IOException {
query = "contains(<s>, der)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals(true, res.at("/query/frames/1").isMissingNode());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals(true, res.at("/query/frames/1").isMissingNode());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
query = "contains(<s>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
query = "contains(<s>,[orth=der][orth=Mann])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
- assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("Mann", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("Mann", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "contains(<s>,[orth=der][orth=Mann]*)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
- assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("operation:repetition", res.at("/query/operands/1/operands/1/operation").asText());
- assertEquals(0, res.at("/query/operands/1/operands/1/boundary/min").asInt());
- assertEquals(true, res.at("/query/operands/1/operands/1/boundary/max").isMissingNode());
- assertEquals("Mann", res.at("/query/operands/1/operands/1/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("operation:repetition",
+ res.at("/query/operands/1/operands/1/operation").asText());
+ assertEquals(0, res.at("/query/operands/1/operands/1/boundary/min")
+ .asInt());
+ assertEquals(true, res.at("/query/operands/1/operands/1/boundary/max")
+ .isMissingNode());
+ assertEquals("Mann",
+ res.at("/query/operands/1/operands/1/operands/0/wrap/key")
+ .asText());
query = "contains(<s>,startswith(<np>,<pp>))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/1/frames/0").asText());
- assertEquals("operation:position", res.at("/query/operands/1/operation").asText());
- assertEquals("np", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("pp", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("frames:startsWith", res.at("/query/operands/1/frames/0")
+ .asText());
+ assertEquals("operation:position", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("np", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("pp", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "[base=Auto]overlaps(<s>, der)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/1/operation").asText());
- assertEquals("frames:overlapsLeft", res.at("/query/operands/1/frames/0").asText());
- assertEquals("frames:overlapsRight", res.at("/query/operands/1/frames/1").asText());
- assertEquals("koral:span", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/1/@type").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:position", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("frames:overlapsLeft", res
+ .at("/query/operands/1/frames/0").asText());
+ assertEquals("frames:overlapsRight",
+ res.at("/query/operands/1/frames/1").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/1/@type").asText());
query = "[base=Auto] overlaps(<s>, der)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:position", res.at("/query/operands/1/operation").asText());
- assertEquals("frames:overlapsLeft", res.at("/query/operands/1/frames/0").asText());
- assertEquals("frames:overlapsRight", res.at("/query/operands/1/frames/1").asText());
- assertEquals("koral:span", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals("s", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/1/@type").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:position", res
+ .at("/query/operands/1/operation").asText());
+ assertEquals("frames:overlapsLeft", res
+ .at("/query/operands/1/frames/0").asText());
+ assertEquals("frames:overlapsRight",
+ res.at("/query/operands/1/frames/1").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/operands/0/@type")
+ .asText());
+ assertEquals("s", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/1/@type").asText());
};
+
@Test
- public void testCoordinatedFields() throws JsonProcessingException, IOException {
+ public void testCoordinatedFields () throws JsonProcessingException,
+ IOException {
query = "[base=Mann&(cas=N|cas=A)]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("relation:and", res.at("/query/wrap/relation").asText());
- assertEquals("Mann", res.at("/query/wrap/operands/0/key").asText());
- assertEquals("lemma", res.at("/query/wrap/operands/0/layer").asText());
- assertEquals("koral:termGroup", res.at("/query/wrap/operands/1/@type").asText());
- assertEquals("relation:or", res.at("/query/wrap/operands/1/relation").asText());
- assertEquals("N", res.at("/query/wrap/operands/1/operands/0/key").asText());
- assertEquals("cas", res.at("/query/wrap/operands/1/operands/0/layer").asText());
- assertEquals("A", res.at("/query/wrap/operands/1/operands/1/key").asText());
- assertEquals("cas", res.at("/query/wrap/operands/1/operands/1/layer").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("relation:and", res.at("/query/wrap/relation").asText());
+ assertEquals("Mann", res.at("/query/wrap/operands/0/key").asText());
+ assertEquals("lemma", res.at("/query/wrap/operands/0/layer").asText());
+ assertEquals("koral:termGroup", res.at("/query/wrap/operands/1/@type")
+ .asText());
+ assertEquals("relation:or", res.at("/query/wrap/operands/1/relation")
+ .asText());
+ assertEquals("N", res.at("/query/wrap/operands/1/operands/0/key")
+ .asText());
+ assertEquals("cas", res.at("/query/wrap/operands/1/operands/0/layer")
+ .asText());
+ assertEquals("A", res.at("/query/wrap/operands/1/operands/1/key")
+ .asText());
+ assertEquals("cas", res.at("/query/wrap/operands/1/operands/1/layer")
+ .asText());
query = "[base=Mann&cas=N&gen=m]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("relation:and", res.at("/query/wrap/relation").asText());
- assertEquals("Mann", res.at("/query/wrap/operands/0/key").asText());
- assertEquals("lemma", res.at("/query/wrap/operands/0/layer").asText());
- assertEquals("koral:termGroup", res.at("/query/wrap/operands/1/@type").asText());
- assertEquals("relation:and", res.at("/query/wrap/operands/1/relation").asText());
- assertEquals("N", res.at("/query/wrap/operands/1/operands/0/key").asText());
- assertEquals("cas", res.at("/query/wrap/operands/1/operands/0/layer").asText());
- assertEquals("m", res.at("/query/wrap/operands/1/operands/1/key").asText());
- assertEquals("gen", res.at("/query/wrap/operands/1/operands/1/layer").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("relation:and", res.at("/query/wrap/relation").asText());
+ assertEquals("Mann", res.at("/query/wrap/operands/0/key").asText());
+ assertEquals("lemma", res.at("/query/wrap/operands/0/layer").asText());
+ assertEquals("koral:termGroup", res.at("/query/wrap/operands/1/@type")
+ .asText());
+ assertEquals("relation:and", res.at("/query/wrap/operands/1/relation")
+ .asText());
+ assertEquals("N", res.at("/query/wrap/operands/1/operands/0/key")
+ .asText());
+ assertEquals("cas", res.at("/query/wrap/operands/1/operands/0/layer")
+ .asText());
+ assertEquals("m", res.at("/query/wrap/operands/1/operands/1/key")
+ .asText());
+ assertEquals("gen", res.at("/query/wrap/operands/1/operands/1/layer")
+ .asText());
}
+
@Test
- public void testTokenSequence() throws JsonProcessingException, IOException {
+ public void testTokenSequence () throws JsonProcessingException,
+ IOException {
query = "[base=Mann][orth=Frau]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("lemma", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("Frau", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("orth", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("Frau", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("orth", res.at("/query/operands/1/wrap/layer").asText());
query = "[base=Mann][orth=Frau][p=NN]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("NN", res.at("/query/operands/2/wrap/key").asText());
- assertEquals("p", res.at("/query/operands/2/wrap/layer").asText());
+ assertEquals("NN", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("p", res.at("/query/operands/2/wrap/layer").asText());
query = "[base=Mann][orth=Frau][p=NN][foo=bar]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("bar", res.at("/query/operands/3/wrap/key").asText());
- assertEquals("foo", res.at("/query/operands/3/wrap/layer").asText());
+ assertEquals("bar", res.at("/query/operands/3/wrap/key").asText());
+ assertEquals("foo", res.at("/query/operands/3/wrap/layer").asText());
}
+
@Test
- public void testDisjSegments() throws JsonProcessingException, IOException {
+ public void testDisjSegments () throws JsonProcessingException, IOException {
query = "[base=der]|[base=das]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("lemma", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("das", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("lemma", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("das", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/operands/1/wrap/layer").asText());
query = "([base=der]|[base=das])[base=Schild]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("Schild", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/0/operation").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("Schild", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/0/operation").asText());
query = "[base=Schild]([base=der]|[base=das])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Schild", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operation").asText());
+ assertEquals("Schild", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operation").asText());
query = "([orth=der][base=katze])|([orth=eine][base=baum])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("katze", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("eine", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("baum", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("katze", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("eine", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("baum", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "[orth=der][base=katze]|[orth=eine][base=baum]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("katze", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("eine", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("baum", res.at("/query/operands/1/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/0/operands/0/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("katze", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("eine", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("baum", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
query = "[orth=der]([base=katze]|[orth=eine])[base=baum]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/2/@type").asText());
- assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("katze", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("eine", res.at("/query/operands/1/operands/1/wrap/key").asText());
- assertEquals("baum", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operation").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:token", res.at("/query/operands/2/@type").asText());
+ assertEquals("der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("katze", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("eine", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
+ assertEquals("baum", res.at("/query/operands/2/wrap/key").asText());
query = "[orth=der][base=katze]|[orth=der][base=hund]|[orth=der][base=baum]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("der", res.at("/query/operands/2/operands/0/wrap/key").asText());
- assertEquals("baum", res.at("/query/operands/2/operands/1/wrap/key").asText());
+ assertEquals("der", res.at("/query/operands/2/operands/0/wrap/key")
+ .asText());
+ assertEquals("baum", res.at("/query/operands/2/operands/1/wrap/key")
+ .asText());
query = "[orth=der]([base=katze]|[base=hund]|[base=baum])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/0/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/1/@type").asText());
- assertEquals("koral:token", res.at("/query/operands/1/operands/2/@type").asText());
- assertEquals("katze", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("hund", res.at("/query/operands/1/operands/1/wrap/key").asText());
- assertEquals("baum", res.at("/query/operands/1/operands/2/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operation").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/0/@type").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/1/@type").asText());
+ assertEquals("koral:token", res
+ .at("/query/operands/1/operands/2/@type").asText());
+ assertEquals("katze", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("hund", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
+ assertEquals("baum", res.at("/query/operands/1/operands/2/wrap/key")
+ .asText());
}
+
@Test
- public void testTokenSpanSequence() throws JsonProcessingException, IOException {
+ public void testTokenSpanSequence () throws JsonProcessingException,
+ IOException {
query = "[base=Mann]<vp>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
- assertEquals("vp", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
+ assertEquals("vp", res.at("/query/operands/1/wrap/key").asText());
query = "<vp>[base=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
- assertEquals("vp", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
- assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:span", res.at("/query/operands/0/@type").asText());
+ assertEquals("vp", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:token", res.at("/query/operands/1/@type").asText());
+ assertEquals("Mann", res.at("/query/operands/1/wrap/key").asText());
query = "<vp>[base=Mann]<pp>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:span", res.at("/query/operands/2/@type").asText());
- assertEquals("pp", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("koral:span", res.at("/query/operands/2/@type").asText());
+ assertEquals("pp", res.at("/query/operands/2/wrap/key").asText());
query = "<vp>[base=Mann]<pp><np>";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("pp", res.at("/query/operands/2/wrap/key").asText());
- assertEquals("np", res.at("/query/operands/3/wrap/key").asText());
+ assertEquals("pp", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("np", res.at("/query/operands/3/wrap/key").asText());
}
- @Test
- public void testClasses() throws JsonProcessingException, IOException {
+
+ @Test
+ public void testClasses () throws JsonProcessingException, IOException {
query = "{[base=Mann]}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:class", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/classOut").asInt());
- assertEquals(true, res.at("/query/classIn").isMissingNode());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:class", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/classOut").asInt());
+ assertEquals(true, res.at("/query/classIn").isMissingNode());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
query = "{[base=Mann][orth=Frau]}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:class", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/classOut").asInt());
- assertEquals(true, res.at("/query/classIn").isMissingNode());
- assertEquals("Mann", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Frau", res.at("/query/operands/0/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:class", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/classOut").asInt());
+ assertEquals(true, res.at("/query/classIn").isMissingNode());
+ assertEquals("Mann", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Frau", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
query = "{[base=Mann]}{[orth=Frau]}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(1, res.at("/query/operands/0/classOut").asInt());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(1, res.at("/query/operands/1/classOut").asInt());
- assertEquals(true, res.at("/query/classIn").isMissingNode());
- assertEquals("Mann", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Frau", res.at("/query/operands/1/operands/0/wrap/key").asText());
-
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(1, res.at("/query/operands/1/classOut").asInt());
+ assertEquals(true, res.at("/query/classIn").isMissingNode());
+ assertEquals("Mann", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Frau", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+
query = "[p=NN]{[base=Mann][orth=Frau]}";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(1, res.at("/query/operands/1/classOut").asInt());
- assertEquals(true, res.at("/query/operands/1/classIn").isMissingNode());
- assertEquals("Mann", res.at("/query/operands/1/operands/0/operands/0/wrap/key").asText());
- assertEquals("Frau", res.at("/query/operands/1/operands/0/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/1/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(1, res.at("/query/operands/1/classOut").asInt());
+ assertEquals(true, res.at("/query/operands/1/classIn").isMissingNode());
+ assertEquals("Mann",
+ res.at("/query/operands/1/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Frau",
+ res.at("/query/operands/1/operands/0/operands/1/wrap/key")
+ .asText());
query = "{[base=Mann][orth=Frau]}[p=NN]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
- assertEquals(1, res.at("/query/operands/0/classOut").asInt());
- 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());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:group", res.at("/query/operands/0/@type").asText());
+ assertEquals("operation:class", res.at("/query/operands/0/operation")
+ .asText());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
+ 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());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:class", res.at("/query/operation").asText());
- 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());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:class", res.at("/query/operation").asText());
+ 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
- public void testFocusSplit() throws JsonProcessingException, IOException {
+ public void testFocusSplit () throws JsonProcessingException, IOException {
query = "focus([orth=Der]{[orth=Mann]})";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/classRef/0").asInt());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- 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());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ 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());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
- assertEquals("Mann", res.at("/query/operands/0/operands/1/operands/0/operands/0/wrap/key").asText());
- assertEquals("geht", res.at("/query/operands/0/operands/1/operands/0/operands/1/wrap/key").asText());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/1/operands/0/operation")
+ .asText());
+ assertEquals(
+ "Mann",
+ res.at("/query/operands/0/operands/1/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(
+ "geht",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/wrap/key")
+ .asText());
query = "focus(2:[orth=Der]{2:[orth=Mann][orth=geht]})";
qs.setQuery(query, "poliqarpplus");
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());
+ 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());
- assertEquals(3, res.at("/query/classRef/0").asInt());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
- 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());
+ assertEquals(3, res.at("/query/classRef/0").asInt());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals("operation:position", res
+ .at("/query/operands/0/operation").asText());
+ 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(1000, res.at("/query/classRef/0").asInt());
- assertEquals(1000, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals(1000, res.at("/meta/highlight/0").asInt());
+ assertEquals(1000, res.at("/query/classRef/0").asInt());
+ assertEquals(1000, res.at("/query/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals(1000, 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");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/classRef/0").asInt());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals("operation:position", res.at("/query/operands/0/operation").asText());
- assertEquals("frames:startsWith", res.at("/query/operands/0/frames/0").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals(3, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/0/operation").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/0/operands/1/operation").asText());
- assertEquals(1, res.at("/query/operands/0/operands/1/operands/0/operands/1/classOut").asInt());
- assertEquals("operation:sequence", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operation").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/1/operation").asText());
- assertEquals(2, res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/1/classOut").asInt());
+ assertEquals(3, res.at("/query/classRef/0").asInt());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals("operation:position", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("frames:startsWith", res.at("/query/operands/0/frames/0")
+ .asText());
+ assertEquals("operation:class",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals(3, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals("operation:sequence",
+ res.at("/query/operands/0/operands/1/operands/0/operation")
+ .asText());
+ assertEquals(
+ "operation:class",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operation")
+ .asText());
+ assertEquals(
+ 1,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/classOut")
+ .asInt());
+ assertEquals(
+ "operation:sequence",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operation")
+ .asText());
+ assertEquals(
+ "operation:class",
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/1/operation")
+ .asText());
+ assertEquals(
+ 2,
+ res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/0/operands/1/classOut")
+ .asInt());
query = "split(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(3, res.at("/query/classRef/0").asInt());
- assertEquals(true, res.at("/query/classRef/1").isMissingNode());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:split", res.at("/query/operation").asText());
+ assertEquals(3, res.at("/query/classRef/0").asInt());
+ assertEquals(true, res.at("/query/classRef/1").isMissingNode());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:split", res.at("/query/operation").asText());
query = "split(2|3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(2, res.at("/query/classRef/0").asInt());
- assertEquals(3, res.at("/query/classRef/1").asInt());
- assertEquals("classRefOp:intersection", res.at("/query/classRefOp").asText());
- assertEquals("koral: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());
+ assertEquals(2, res.at("/query/classRef/0").asInt());
+ assertEquals(3, res.at("/query/classRef/1").asInt());
+ assertEquals("classRefOp:intersection", res.at("/query/classRefOp")
+ .asText());
+ assertEquals("koral: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");
res = mapper.readTree(qs.toJSON());
- assertEquals(1, res.at("/query/classRef/0").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
- assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/query/classRef/0").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(1, res.at("/query/operands/0/operands/1/classOut").asInt());
}
+
@Test
- public void testSubmatch() throws JsonProcessingException, IOException {
+ public void testSubmatch () throws JsonProcessingException, IOException {
query = "submatch(1:<s>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/spanRef/0").asInt());
- assertEquals(true, res.at("/query/spanRef/1").isMissingNode());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/spanRef/0").asInt());
+ assertEquals(true, res.at("/query/spanRef/1").isMissingNode());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
query = "submatch(1,4:<s>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/spanRef/0").asInt());
- assertEquals(4, res.at("/query/spanRef/1").asInt());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/spanRef/0").asInt());
+ assertEquals(4, res.at("/query/spanRef/1").asInt());
query = "submatch(1,4:contains(<s>,[base=Haus]))";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:reference", res.at("/query/@type").asText());
- assertEquals("operation:focus", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/spanRef/0").asInt());
- assertEquals(4, res.at("/query/spanRef/1").asInt());
- assertEquals("frames:isAround", res.at("/query/operands/0/frames/0").asText());
- assertEquals("s", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("Haus", res.at("/query/operands/0/operands/1/wrap/key").asText());
+ assertEquals("koral:reference", res.at("/query/@type").asText());
+ assertEquals("operation:focus", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/spanRef/0").asInt());
+ assertEquals(4, res.at("/query/spanRef/1").asInt());
+ assertEquals("frames:isAround", res.at("/query/operands/0/frames/0")
+ .asText());
+ assertEquals("s", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("Haus", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
}
+
+
@Test
- public void testRelations() throws JsonProcessingException, IOException {
+ public void testRelations () throws JsonProcessingException, IOException {
query = "dominates(<s>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
- assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("s", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
query = "relatesTo([base=Baum],<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:relation", res.at("/query/operation").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:relation", res.at("/query/operation").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("np", res.at("/query/operands/1/wrap/key").asText());
query = "relatesTo(Baum,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
query = "relatesTo(mate/d=HEAD:<np>,[base=Baum])";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("lemma", res.at("/query/operands/1/wrap/layer").asText());
- assertEquals("Baum", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("mate", res.at("/query/relation/wrap/foundry").asText());
- assertEquals("d", res.at("/query/relation/wrap/layer").asText());
- assertEquals("HEAD", res.at("/query/relation/wrap/key").asText());
+ assertEquals("lemma", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("Baum", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("mate", res.at("/query/relation/wrap/foundry").asText());
+ 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("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("d", res.at("/query/relation/wrap/layer").asText());
+ 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("koral: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());
- assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("koral:relation", res.at("/query/relation/@type").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("Baum", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("koral:relation", res.at("/query/relation/@type").asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
query = "dominates(cnx/c:<vp>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("cnx", res.at("/query/relation/wrap/foundry").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals("cnx", res.at("/query/relation/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
query = "dominates(cnx/c*:<vp>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("cnx", res.at("/query/relation/wrap/foundry").asText());
- assertEquals("c", res.at("/query/relation/wrap/layer").asText());
- assertEquals(0, res.at("/query/relation/boundary/min").asInt());
- assertEquals(true, res.at("/query/relation/boundary/max").isMissingNode());
+ assertEquals("cnx", res.at("/query/relation/wrap/foundry").asText());
+ assertEquals("c", res.at("/query/relation/wrap/layer").asText());
+ assertEquals(0, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(true, res.at("/query/relation/boundary/max")
+ .isMissingNode());
query = "dominates(cnx/c{1,5}:<vp>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(1, res.at("/query/relation/boundary/min").asInt());
- assertEquals(5, res.at("/query/relation/boundary/max").asInt());
+ assertEquals(1, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(5, res.at("/query/relation/boundary/max").asInt());
query = "dominates(cnx/c{,5}:<vp>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(0, res.at("/query/relation/boundary/min").asInt());
- assertEquals(5, res.at("/query/relation/boundary/max").asInt());
+ assertEquals(0, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(5, res.at("/query/relation/boundary/max").asInt());
query = "dominates(cnx/c{5}:<vp>,<np>)";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals(5, res.at("/query/relation/boundary/min").asInt());
- assertEquals(5, res.at("/query/relation/boundary/max").asInt());
+ assertEquals(5, res.at("/query/relation/boundary/min").asInt());
+ assertEquals(5, res.at("/query/relation/boundary/max").asInt());
}
+
@Test
- public void testAlign() throws JsonProcessingException, IOException {
+ public void testAlign () throws JsonProcessingException, IOException {
query = "[orth=der]^[orth=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals(1, res.at("/query/operands/0/classOut").asInt());
- assertEquals("Mann", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(2, res.at("/query/operands/1/classOut").asInt());
- assertEquals(1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(2, res.at("/meta/alignment/0/1").asInt());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("Mann", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(2, res.at("/query/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(2, res.at("/meta/alignment/0/1").asInt());
query = "[orth=der]^[orth=große][orth=Mann]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals(1, res.at("/query/operands/0/classOut").asInt());
- assertEquals("große", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operands/1/operation").asText());
- assertEquals(2, res.at("/query/operands/1/classOut").asInt());
- assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
- assertEquals(1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(2, res.at("/meta/alignment/0/1").asInt());
-
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(1, res.at("/query/operands/0/classOut").asInt());
+ assertEquals("große", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("operation:class", res.at("/query/operands/1/operation")
+ .asText());
+ assertEquals(2, res.at("/query/operands/1/classOut").asInt());
+ assertEquals("Mann", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals(1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(2, res.at("/meta/alignment/0/1").asInt());
+
query = "([base=a]^[base=b])|[base=c]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("operation:sequence", res.at("/query/operands/0/operation").asText());
- assertEquals("operation:class", res.at("/query/operands/0/operands/1/operation").asText());
- assertEquals("a", res.at("/query/operands/0/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(1, res.at("/query/operands/0/operands/0/classOut").asInt());
- assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals(1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(2, res.at("/meta/alignment/0/1").asInt());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("operation:sequence", res
+ .at("/query/operands/0/operation").asText());
+ assertEquals("operation:class",
+ res.at("/query/operands/0/operands/1/operation").asText());
+ assertEquals("a",
+ res.at("/query/operands/0/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(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(2, res.at("/meta/alignment/0/1").asInt());
query = "([base=a]^[base=b][base=c])|[base=d]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("a", res.at("/query/operands/0/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/0/operands/2/wrap/key").asText());
- assertEquals("d", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("a",
+ res.at("/query/operands/0/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/0/operands/2/wrap/key")
+ .asText());
+ assertEquals("d", res.at("/query/operands/1/wrap/key").asText());
query = "([base=a]^[base=b]^[base=c])|[base=d]";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("a", res.at("/query/operands/0/operands/0/operands/0/wrap/key").asText());
- assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
- assertEquals("b", res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
- assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
- assertEquals("c", res.at("/query/operands/0/operands/2/operands/0/wrap/key").asText());
- assertEquals(3, res.at("/query/operands/0/operands/2/classOut").asInt());
- assertEquals("d", res.at("/query/operands/1/wrap/key").asText());
- assertEquals(1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(2, res.at("/meta/alignment/0/1").asInt());
- assertEquals(2, res.at("/meta/alignment/1/0").asInt());
- assertEquals(3, res.at("/meta/alignment/1/1").asInt());
-
+ assertEquals("a",
+ res.at("/query/operands/0/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals(1, res.at("/query/operands/0/operands/0/classOut").asInt());
+ assertEquals("b",
+ res.at("/query/operands/0/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals(2, res.at("/query/operands/0/operands/1/classOut").asInt());
+ assertEquals("c",
+ res.at("/query/operands/0/operands/2/operands/0/wrap/key")
+ .asText());
+ assertEquals(3, res.at("/query/operands/0/operands/2/classOut").asInt());
+ assertEquals("d", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals(1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(2, res.at("/meta/alignment/0/1").asInt());
+ assertEquals(2, res.at("/meta/alignment/1/0").asInt());
+ assertEquals(3, res.at("/meta/alignment/1/1").asInt());
+
query = "^ Mann";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/classOut").asInt());
- assertEquals(-1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(1, res.at("/meta/alignment/0/1").asInt());
-
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("operation:class", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/classOut").asInt());
+ assertEquals(-1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(1, res.at("/meta/alignment/0/1").asInt());
+
query = "Mann ^";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("operation:class", res.at("/query/operation").asText());
- assertEquals(1, res.at("/query/classOut").asInt());
- assertEquals(1, res.at("/meta/alignment/0/0").asInt());
- assertEquals(-1, res.at("/meta/alignment/0/1").asInt());
+ assertEquals("Mann", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("operation:class", res.at("/query/operation").asText());
+ assertEquals(1, res.at("/query/classOut").asInt());
+ assertEquals(1, res.at("/meta/alignment/0/0").asInt());
+ assertEquals(-1, res.at("/meta/alignment/0/1").asInt());
}
+
@Test
- public void testSimpleQueries() throws JsonProcessingException, IOException {
+ public void testSimpleQueries () throws JsonProcessingException,
+ IOException {
query = "Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:token", res.at("/query/@type").asText());
- assertEquals("koral:term", res.at("/query/wrap/@type").asText());
- assertEquals("Baum", res.at("/query/wrap/key").asText());
- assertEquals("orth", res.at("/query/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/wrap/match").asText());
+ assertEquals("koral:token", res.at("/query/@type").asText());
+ assertEquals("koral:term", res.at("/query/wrap/@type").asText());
+ assertEquals("Baum", res.at("/query/wrap/key").asText());
+ assertEquals("orth", res.at("/query/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/wrap/match").asText());
query = "Der Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("koral:group", res.at("/query/@type").asText());
- assertEquals("operation:sequence", res.at("/query/operation").asText());
- assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
- assertEquals("koral:term", res.at("/query/operands/0/wrap/@type").asText());
- assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("Baum", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/operands/0/wrap/match").asText());
- assertEquals("orth", res.at("/query/operands/1/wrap/layer").asText());
- assertEquals("match:eq", res.at("/query/operands/1/wrap/match").asText());
+ assertEquals("koral:group", res.at("/query/@type").asText());
+ assertEquals("operation:sequence", res.at("/query/operation").asText());
+ assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+ assertEquals("koral:term", res.at("/query/operands/0/wrap/@type")
+ .asText());
+ assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("Baum", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("orth", res.at("/query/operands/0/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/operands/0/wrap/match")
+ .asText());
+ assertEquals("orth", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("match:eq", res.at("/query/operands/1/wrap/match")
+ .asText());
query = "Der große Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("große", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("große", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
query = "Der (große|kleine) Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("operation:disjunction", res.at("/query/operands/1/operation").asText());
- assertEquals("große", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("kleine", res.at("/query/operands/1/operands/1/wrap/key").asText());
- assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("operation:disjunction",
+ res.at("/query/operands/1/operation").asText());
+ assertEquals("große", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("kleine", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
+ assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
query = "der große Baum | der kleine Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:disjunction", res.at("/query/operation").asText());
- assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key").asText());
- assertEquals("große", res.at("/query/operands/0/operands/1/wrap/key").asText());
- assertEquals("Baum", res.at("/query/operands/0/operands/2/wrap/key").asText());
- assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key").asText());
- assertEquals("kleine", res.at("/query/operands/1/operands/1/wrap/key").asText());
- assertEquals("Baum", res.at("/query/operands/1/operands/2/wrap/key").asText());
+ assertEquals("operation:disjunction", res.at("/query/operation")
+ .asText());
+ assertEquals("der", res.at("/query/operands/0/operands/0/wrap/key")
+ .asText());
+ assertEquals("große", res.at("/query/operands/0/operands/1/wrap/key")
+ .asText());
+ assertEquals("Baum", res.at("/query/operands/0/operands/2/wrap/key")
+ .asText());
+ assertEquals("der", res.at("/query/operands/1/operands/0/wrap/key")
+ .asText());
+ assertEquals("kleine", res.at("/query/operands/1/operands/1/wrap/key")
+ .asText());
+ assertEquals("Baum", res.at("/query/operands/1/operands/2/wrap/key")
+ .asText());
query = "Der [p=ADJA] Baum";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
- assertEquals("ADJA", res.at("/query/operands/1/wrap/key").asText());
- assertEquals("p", res.at("/query/operands/1/wrap/layer").asText());
- assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
+ assertEquals("Der", res.at("/query/operands/0/wrap/key").asText());
+ assertEquals("ADJA", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("p", res.at("/query/operands/1/wrap/layer").asText());
+ assertEquals("Baum", res.at("/query/operands/2/wrap/key").asText());
}
+
@Test
- public void testWithin() throws JsonProcessingException, IOException {
+ public void testWithin () throws JsonProcessingException, IOException {
query = "[p=VVFIN] within s";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("operation:position", res.at("/query/operation").asText());
- assertEquals("frames:isAround", res.at("/query/frames/0").asText());
- assertEquals("s", res.at("/query/operands/0/key").asText());
- assertEquals("VVFIN", res.at("/query/operands/1/wrap/key").asText());
+ assertEquals("operation:position", res.at("/query/operation").asText());
+ assertEquals("frames:isAround", res.at("/query/frames/0").asText());
+ assertEquals("s", res.at("/query/operands/0/key").asText());
+ assertEquals("VVFIN", res.at("/query/operands/1/wrap/key").asText());
}
+
@Test
- public void testMeta() throws JsonProcessingException, IOException {
+ public void testMeta () throws JsonProcessingException, IOException {
query = "x meta textClass=Sport";
qs.setQuery(query, "poliqarpplus");
res = mapper.readTree(qs.toJSON());
- assertEquals("x", res.at("/query/wrap/key").asText());
- assertEquals("koral:doc", res.at("/collection/@type").asText());
- assertEquals("textClass", res.at("/collection/key").asText());
- assertEquals("Sport", res.at("/collection/value").asText());
+ assertEquals("x", res.at("/query/wrap/key").asText());
+ assertEquals("koral:doc", res.at("/collection/@type").asText());
+ assertEquals("textClass", res.at("/collection/key").asText());
+ assertEquals("Sport", res.at("/collection/value").asText());
query = "x meta textClass=Sport";
qs.setQuery(query, "poliqarpplus");
qs.setCollection("author=Smith");
res = mapper.readTree(qs.toJSON());
- assertEquals("x", res.at("/query/wrap/key").asText());
- assertEquals("koral:docGroup", res.at("/collection/@type").asText());
- assertEquals("operation:and", res.at("/collection/operation").asText());
- assertEquals("textClass", res.at("/collection/operands/0/key").asText());
- assertEquals("Sport", res.at("/collection/operands/0/value").asText());
- assertEquals("author", res.at("/collection/operands/1/key").asText());
- assertEquals("Smith", res.at("/collection/operands/1/value").asText());
+ assertEquals("x", res.at("/query/wrap/key").asText());
+ assertEquals("koral:docGroup", res.at("/collection/@type").asText());
+ assertEquals("operation:and", res.at("/collection/operation").asText());
+ assertEquals("textClass", res.at("/collection/operands/0/key").asText());
+ assertEquals("Sport", res.at("/collection/operands/0/value").asText());
+ assertEquals("author", res.at("/collection/operands/1/key").asText());
+ assertEquals("Smith", res.at("/collection/operands/1/value").asText());
// TODO more tests
}