positions always realised with attributes 'frames' and 'sharedClasses'
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
index 96dfead..0a940de 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AqlTree.java
@@ -550,6 +550,7 @@
return relation;
}
+ @SuppressWarnings("unchecked")
private LinkedHashMap<String,Object> parseEdgeSpec(ParseTree edgeSpec) {
List<ParseTree> annos = getChildrenWithCat(edgeSpec, "edgeAnno");
if (annos.size() == 1) return parseEdgeAnno(annos.get(0));
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
index 1a239da..2e8c44d 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
@@ -409,8 +409,6 @@
boolean putIntoOverlapDisjunction = false;
- ArrayList<Object> sequenceOperands = (ArrayList<Object>) group.get("operands");
-
// possibly several distance constraints
for (int i = 0; i < dist_list.getChildCount(); i++) {
String direction = dist_list.getChild(i).getChild(0).getChild(0).toStringTree().toLowerCase();
@@ -461,7 +459,8 @@
sequence = embeddedSequence;
group = makeGroup("or");
ArrayList<Object> disjOperands = (ArrayList<Object>) group.get("operands");
- LinkedHashMap<String,Object> overlapsGroup = makePosition("overlaps");
+ String[] sharedClasses = new String[]{"intersects"};
+ LinkedHashMap<String,Object> overlapsGroup = makePosition(new String[0], sharedClasses);
ArrayList<Object> overlapsOperands = (ArrayList<Object>) overlapsGroup.get("operands");
// this ensures identity of the operands lists and thereby a distribution of the operands for both created objects
@@ -577,7 +576,10 @@
CosmasCondition c = new CosmasCondition(conditions.getChild(0));
// create the group expressing the position constraint
- LinkedHashMap<String, Object> posgroup = makePosition(c.position);
+ String[] frames = new String[]{c.position};
+ String[] sharedClasses = new String[]{"includes"}; // OPBED only defines #IN-corresponding positions
+ LinkedHashMap<String,Object> posgroup = makePosition(frames, sharedClasses);
+// LinkedHashMap<String, Object> posgroup = makePosition(c.position);
ArrayList<Object> operands = (ArrayList<Object>) posgroup.get("operands");
if (c.negated) posgroup.put("exclude", true);
@@ -612,7 +614,9 @@
// for each condition, create a position group containing a class group.
// make position group
CosmasCondition c = new CosmasCondition(conditions.getChild(i));
- LinkedHashMap<String, Object> posGroup = makePosition(c.position);
+ String[] frames = new String[]{c.position};
+ String[] sharedClasses = new String[]{"includes"}; // OPBED only defines #IN-corresponding positions
+ LinkedHashMap<String,Object> posGroup = makePosition(frames, sharedClasses);
operands.add(posGroup);
if (c.negated) posGroup.put("exclude", "true");
ArrayList<Object> posOperands = new ArrayList<Object>();
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
index 08b269f..c29a69d 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusTree.java
@@ -228,7 +228,7 @@
}
if (nodeCat.equals("position")) {
- LinkedHashMap<String,Object> position = makePosition(parseFrame(node.getChild(0)));
+ LinkedHashMap<String,Object> position = parseFrame(node.getChild(0));
putIntoSuperObject(position);
objectStack.push(position);
stackedObjects++;
@@ -425,8 +425,29 @@
return new Integer[]{min,max};
}
- private String parseFrame(ParseTree node) {
- return node.toStringTree(parser);
+ private LinkedHashMap<String,Object> parseFrame(ParseTree node) {
+ String operator = node.toStringTree(parser);
+ String[] frames = new String[]{""};
+ String[] sharedClasses = new String[]{"includes"};
+ switch (operator) {
+ case "contains":
+ frames = new String[]{};
+ break;
+ case "matches":
+ frames = new String[]{"matches"};
+ break;
+ case "startswith":
+ frames = new String[]{"startswith"};
+ break;
+ case "endswith":
+ frames = new String[]{"endswith"};
+ break;
+ case "overlaps":
+ frames = new String[]{"overlapsLeft","overlapsRight"};
+ sharedClasses = new String[]{"intersects"};
+ break;
+ }
+ return makePosition(frames,sharedClasses);
}
@@ -668,12 +689,13 @@
// "[base=geht][base=der][]*[base=Mann]",
// "<cnx/c=vp (class=header&id=7)>",
// "<cnx/c=vp class=header&id=a>",
- "[][]*[base=Mann]",
- "focus(2&3|4:contains({2:<s>},[base=mann]))",
- "relatesTo(cnx/c:<s>,<np>)",
- "dominates(cnx/c*:<np>,[base=Baum])",
- "submatch(2:<np>{2:<s>})",
- "focus(3:{1:[orth=der]}{3:[]}{2:[orth=Mann]})"
+// "[][]*[base=Mann]",
+// "focus(2&3|4:contains({2:<s>},[base=mann]))",
+// "relatesTo(cnx/c:<s>,<np>)",
+// "dominates(cnx/c*:<np>,[base=Baum])",
+// "submatch(2:<np>{2:<s>})",
+// "focus(3:{1:[orth=der]}{3:[]}{2:[orth=Mann]})",
+ "[base=geht][base=der][]*contains(<s>,<np>)"
};
// PoliqarpPlusTree.verbose=true;
for (String q : queries) {
diff --git a/src/test/java/CosmasTreeTest.java b/src/test/java/CosmasTreeTest.java
index c35a4f5..eb6e2b8 100644
--- a/src/test/java/CosmasTreeTest.java
+++ b/src/test/java/CosmasTreeTest.java
@@ -278,7 +278,7 @@
query="Sonne /+w4 Mond";
String prox4 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
"]}," +
@@ -309,7 +309,7 @@
query="Sonne /-w4 Mond";
String prox5 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
"]}," +
@@ -340,7 +340,7 @@
query="Sonne /w4 Mond";
String prox6 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
"]}," +
@@ -409,9 +409,9 @@
query="Sonne /-w4 Mond /+w2 Sterne";
- String mondsterne =
- "{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}," +
- "{@type=korap:token, wrap={@type=korap:term, key=Sterne, layer=orth, match=match:eq}}" ;
+// String mondsterne =
+// "{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}," +
+// "{@type=korap:token, wrap={@type=korap:term, key=Sterne, layer=orth, match=match:eq}}" ;
String mondsterneClasses =
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
@@ -420,12 +420,12 @@
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Sterne, layer=orth, match=match:eq}}" +
"]}";
- String mondsterneSeq =
- "{@type=korap:group, operation=operation:sequence, operands=[" +
- mondsterne +
- "], inOrder=true, distances=[" +
- "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=1, max=2}, min=1, max=2}" +
- "]}" ;
+// String mondsterneSeq =
+// "{@type=korap:group, operation=operation:sequence, operands=[" +
+// mondsterne +
+// "], inOrder=true, distances=[" +
+// "{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=1, max=2}, min=1, max=2}" +
+// "]}" ;
String mondsterneClassesSeq =
"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -434,18 +434,18 @@
"{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=1, max=2}, min=1, max=2}" +
"]}" +
"]}" ;
- String mondsterneOv =
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
- mondsterne +
- "]}";
+// String mondsterneOv =
+// "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+// mondsterne +
+// "]}";
String mondsterneClassesOv =
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
mondsterneClasses +
"]}";
- String mondsterneAll =
- "{@type=korap:group, operation=operation:or, operands=[" +
- mondsterneOv + "," + mondsterneClassesSeq +
- "]}";
+// String mondsterneAll =
+// "{@type=korap:group, operation=operation:or, operands=[" +
+// mondsterneOv + "," + mondsterneClassesSeq +
+// "]}";
String mondsterneAllClasses =
"{@type=korap:group, operation=operation:or, operands=[" +
mondsterneClassesOv + "," + mondsterneClassesSeq +
@@ -454,7 +454,7 @@
String prox6 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
mondsterneAllClasses +
"]}," +
@@ -727,7 +727,7 @@
query="#BEG(der /w3:5 Mann) /+w10 kommt"; // nesting #BEG() in a distance group
String beg2 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
beg1 +
"]}" + "," +
@@ -755,7 +755,7 @@
query="kommt /+w10 #BEG(der /w3:5 Mann)";
String beg3 =
"{@type=korap:group, operation=operation:or, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:overlaps, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
"{@type=korap:group, operation=operation:class, class=0, operands=[" +
kommt +
// "," +
@@ -1021,7 +1021,7 @@
query = "#BED(der , sa)";
String bed1 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands= [" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=der, layer=orth, match=match:eq}}" +
@@ -1035,7 +1035,7 @@
query = "#BED(der Mann , +pe)";
String bed2 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands= [" +
- "{@type=korap:group, operation=operation:position, frame=frame:endswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[endswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=p}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1053,7 +1053,7 @@
String bed3 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1062,7 +1062,7 @@
"]}" +
"]}" +
"]}," +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=p}," +
"{@type=korap:group, operation=operation:class, class=2, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1086,7 +1086,7 @@
query = "Der:sa";
String col1 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}" +
@@ -1101,19 +1101,19 @@
String col2 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
"]}" +
"]}," +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=p}," +
"{@type=korap:group, operation=operation:class, class=2, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
"]}" +
"], exclude=true}," +
- "{@type=korap:group, operation=operation:position, frame=frame:endswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[endswith], sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=t}," +
"{@type=korap:group, operation=operation:class, class=3, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
diff --git a/src/test/java/PoliqarpPlusTreeTest.java b/src/test/java/PoliqarpPlusTreeTest.java
index 046c374..6cbd2a2 100644
--- a/src/test/java/PoliqarpPlusTreeTest.java
+++ b/src/test/java/PoliqarpPlusTreeTest.java
@@ -386,7 +386,7 @@
"{@type=korap:group, operation=operation:sequence, " +
"operands=[" +
"{@type=korap:token, wrap={@type=korap:term, layer=lemma, key=der, match=match:eq}}," +
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:span, key=np}" +
"]}" +
@@ -403,7 +403,7 @@
public void testLeadingTrailingEmptyTokens() throws QueryException {
// startswith(<s>, [][base=Mann]
String et1 =
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:sequence, operands=[" +
"{@type=korap:token}," +
@@ -469,7 +469,7 @@
"{@type=korap:group, operation=operation:repetition, operands=[" +
"{@type=korap:token}" +
"], boundary={@type=korap:boundary, min=1}, min=1}," +
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:span, key=np}" +
"]}," +
@@ -909,21 +909,21 @@
@Test
public void testPositions() throws QueryException {
// contains(<s>,<np>)
- String pos1 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ String pos1 = "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:span, key=np}" +
"]}";
assertTrue(equalsQueryContent(pos1, "contains(<s>,<np>)"));
// contains(<s>,[base=Mann])
- String pos2 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ String pos2 = "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:token, wrap= {@type=korap:term, layer=lemma, key=Mann, match=match:eq}}" +
"]}";
assertTrue(equalsQueryContent(pos2, "contains(<s>,[base=Mann])"));
// contains(<s>,[orth=der][orth=Mann])
- String pos3 = "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ String pos3 = "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:sequence, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, layer=orth, key=der, match=match:eq}}," +
@@ -938,7 +938,7 @@
String pos4 =
"{@type=korap:group, operation=operation:sequence, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, layer=lemma, key=Auto, match=match:eq}}," +
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:token, wrap={@type=korap:term, layer=lemma, key=Mann, match=match:eq}}" +
"]}" +
@@ -949,7 +949,7 @@
// contains(<s>,[pos=N]*)
String pos5 =
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:repetition, " +
"operands=[{@type=korap:token, wrap={@type=korap:term, layer=pos, key=N, match=match:eq}}" +
@@ -964,7 +964,7 @@
String pos6 =
"{@type=korap:group, operation=operation:sequence, operands=[" +
"{@type=korap:token, wrap={@type=korap:term, layer=lemma, key=Auto, match=match:eq}}," +
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:repetition, " +
"operands=[{@type=korap:token, wrap={@type=korap:term, layer=pos, key=N, match=match:eq}}" +
@@ -981,9 +981,9 @@
public void testNestedPositions() throws QueryException {
// contains(<s>,startswith(<np>,[orth=Der]))
String npos1 =
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=np}," +
"{@type=korap:token, wrap={@type=korap:term, layer=orth, key=Der, match=match:eq}}" +
"]}" +
@@ -1046,7 +1046,7 @@
// focus(1:startswith(<s>,{1:<np>}))
String shr4 =
"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=1, operands=[" +
"{@type=korap:span, key=np}" +
@@ -1060,7 +1060,7 @@
// focus(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
String shr5 =
"{@type=korap:reference, operation=operation:focus, classRef=[3], operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=3, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1084,7 +1084,7 @@
// split(3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
String shr6 =
"{@type=korap:reference, operation=operation:split, classRef=[3], operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=3, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1108,7 +1108,7 @@
// split(2|3: startswith(<s>, {3:[base=der]{1:[mate/p=ADJA]{2:[tt/p=NN]}}}))
String shr7 =
"{@type=korap:reference, operation=operation:split, classRef=[2, 3], classRefOp=classRefOp:intersection, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:startswith, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[startswith],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:group, operation=operation:class, class=3, operands=[" +
"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1172,7 +1172,7 @@
query = "submatch(1,4:contains(<s>,[base=Haus]))";
expected =
"{@type=korap:reference, operation=operation:focus, operands=[" +
- "{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+ "{@type=korap:group, operation=operation:position, frames=[],sharedClasses=[includes], operands=[" +
"{@type=korap:span, key=s}," +
"{@type=korap:token, wrap= {@type=korap:term, layer=lemma, key=Haus, match=match:eq}}" +
"]}" +