diff --git a/Changes b/Changes
index 9063748..f39c756 100644
--- a/Changes
+++ b/Changes
@@ -1,9 +1,11 @@
-0.55.9 2017-11-15
+0.55.9 2017-11-16
         - [bugfix] Serialize token identifier correctly for
           new corpora with text siglen (diewald)
         - [bugfix] Extend bytebuffer for relation payloads (diewald)
         - [bugfix] Wrong char offsets in snippet generation, where
           repositioning can result in exceeding the string (diewald)
+        - [bugfix] Set correct start position of token-token-relations
+          in snippet generation (diewald)
 
 0.55.8 2017-09-05
         - [feature] Retrieve and display pagebreaks (diewald)
diff --git a/misc/payloads.md b/misc/payloads.md
index 9fb1109..5162126 100644
--- a/misc/payloads.md
+++ b/misc/payloads.md
@@ -98,7 +98,7 @@
 are also stored in integer.
 
 Left-part TUI reference, right-part TUI reference, and relation TUI can
-e optionally stored in
+be optionally stored in
 payloads. A TUI is only necessary when an attribute refers to it, for example
 to match a relation span with a specific attribute.
 
diff --git a/src/main/java/de/ids_mannheim/korap/KrillIndex.java b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
index 4420b5f..07bb3ae 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillIndex.java
@@ -1175,8 +1175,11 @@
                                 && pos < match.getEndPos()) {
 
                             if (DEBUG)
-                                log.trace(">> {}: {}-{}-{}", termString,
-                                        docs.freq(), pos, docs.getPayload());
+                                log.trace(">> {}: freq:{}, pos:{}, payload:{}",
+										  termString,
+										  docs.freq(),
+										  pos,
+										  docs.getPayload());
 
                             BytesRef payload = docs.getPayload();
 
@@ -1201,10 +1204,11 @@
                 // Add annotations based on the retrieved infos
                 for (TermInfo t : termList.getTerms()) {
                     if (DEBUG)
-                        log.trace("Add term {}/{}:{} to {}({})-{}({})",
-                                t.getFoundry(), t.getLayer(), t.getValue(),
-                                t.getStartChar(), t.getStartPos(),
-                                t.getEndChar(), t.getEndPos());
+                        log.trace(
+							"Add term {}/{}:{} with char:{}(pos:{})-char:{}(pos:{})",
+							t.getFoundry(), t.getLayer(), t.getValue(),
+							t.getStartChar(), t.getStartPos(),
+							t.getEndChar(), t.getEndPos());
 
                     if (t.getType() == "term" || t.getType() == "span") {
                         match.addAnnotation(t.getStartPos(), t.getEndPos(),
diff --git a/src/main/java/de/ids_mannheim/korap/index/TermInfo.java b/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
index eb8472e..bf84cc9 100644
--- a/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
+++ b/src/main/java/de/ids_mannheim/korap/index/TermInfo.java
@@ -162,7 +162,7 @@
 				 * 1 short for right-part TUI and 
 				 * 1 short for the relation TUI. 
 				 */
-				this.targetStartPos = this.payload.getInt() -1;
+				this.targetStartPos = this.payload.getInt();
 			}
 
 			// Token-to-span relation
diff --git a/src/main/java/de/ids_mannheim/korap/response/Match.java b/src/main/java/de/ids_mannheim/korap/response/Match.java
index 39c18cb..ef4bf06 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Match.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Match.java
@@ -297,7 +297,7 @@
                             && end <= this.getEndPos()) {
 
                         if (DEBUG) {
-                            log.trace("Add highlight of class {}!",
+                            log.trace("Add highlight with class/relationnr {}!",
                                     unsignedByte(number));
                         };
 
@@ -433,23 +433,27 @@
 							 String annotation) {
 
 		if (DEBUG)
-			log.trace("Add relation {}: {}-{}>>{}-{}",
+			log.trace("Add relation '{}': source={}-{} >> target={}-{}",
 					  annotation, srcStart, srcEnd, targetStart, targetEnd);
 
 		// Add source token
-		if (srcEnd == -1) {
-			this.addHighlight(new Highlight(srcStart, srcStart, annotation, targetStart, targetEnd));
+		if (srcEnd == -1) { // || srcStart == srcEnd) {
+			this.addHighlight(
+				new Highlight(srcStart, srcStart, annotation, targetStart, targetEnd)
+				);
 		}
 		// Add source span
 		else {
-			this.addHighlight(new Highlight(srcStart, srcEnd, annotation, targetStart, targetEnd));
+			this.addHighlight(
+				new Highlight(srcStart, srcEnd, annotation, targetStart, targetEnd)
+				);
 		};
 
         int id = identifierNumberCounter--;
         identifierNumber.put(id, targetStart);
 
 		// Add target token
-		if (targetEnd == -1) {
+		if (targetEnd == -1) { // || targetStart == targetEnd) {
 			this.addHighlight(new Highlight(targetStart, targetStart, id));
 		}
 
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
index 518b1af..44cc689 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestMatchIdentifier.java
@@ -291,14 +291,7 @@
         assertEquals("tokens", res.at("/field").asText());
         assertEquals("GOE_AGX.00002", res.at("/textSigle").asText());
         assertEquals("Goethe, Johann Wolfgang von", res.at("/author").asText());
-
-        /*
-        km = ki.getMatchInfo(
-        	"match-GOE!GOE_AGX.00002-p10-20",
-        					 "tokens", true, (String) null, (String) null, true, true, false);	
-        assertEquals("", km.toJsonString());
-        */
-    };
+	};
 
 
     @Test
@@ -377,10 +370,11 @@
                 "x", null, true, false);
 
         assertEquals("SnippetBrackets (1)",
-                "[[{x/o:erstens:{x/rel:a>3:a}}{x/o:zweitens:b}{x/o:drittens:c}{#3:{x/o:viertens:a}}{x/o:fünftens:b}]] ...",
+					 "[[{x/o:erstens:{x/rel:a>3:a}}{x/o:zweitens:b}{x/o:drittens:c}{#3:{x/o:viertens:a}}{x/o:fünftens:b}]] ...",
                 km.getSnippetBrackets());
 
-		assertEquals("SnippetHTML (1)", "<span class=\"context-left\">"
+		assertEquals("SnippetHTML (1)",
+					 "<span class=\"context-left\">"
 					 + "</span>" + "<span class=\"match\">"
 					 + "<mark>"
 					 + "<span title=\"x/o:erstens\">"
@@ -400,7 +394,7 @@
 					 + "<span class=\"more\">"
 					 + "</span>"
 					 + "</span>",
-                km.getSnippetHTML());
+					 km.getSnippetHTML());
 
         km = ki.getMatchInfo("match-c1!d1-p0-5(7)2-3(4)8-8(2)7-8", "tokens",
                 "x", null, true, true);
@@ -501,30 +495,49 @@
         Match km = ki.getMatchInfo("match-c1!d1-p0-4", "tokens", null, null,
 								   true, true);
 
-        assertEquals("SnippetHTML (2)", "<span class=\"context-left\">"
-					 + "</span>" + "<span class=\"match\">" + "<mark>"
-					 + "<span title=\"f/m:eins\">" + "<span title=\"f/y:one\">"
-					 + "<span title=\"it/is:1\">"
-					 + "<span title=\"x/o:erstens\">"
-					 + "<span xlink:title=\"x/rel:a\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">"
-					 + "a</span>" + "</span>" + "</span>"
-					 + "</span>" + "</span>"
-					 + "<span title=\"f/m:zwei\">" + "<span title=\"f/y:two\">"
-					 + "<span title=\"it/is:2\">"
-					 + "<span title=\"x/o:zweitens\">"
-					 + "<span xlink:title=\"x/rel:b\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">"
-					 + "b</span>" + "</span>"
-					 + "</span>" + "</span>" + "</span>"
-					 + "<span title=\"f/m:drei\">" + "<span title=\"f/y:three\">"
-					 + "<span title=\"it/is:3\">"
-					 + "<span title=\"x/o:drittens\">c</span>" + "</span>"
-					 + "</span>" + "</span>" + "<span xml:id=\"token-c1!d1-p3\">"
-					 + "<span title=\"f/m:vier\">" + "<span title=\"f/y:four\">"
-					 + "<span title=\"it/is:4\">"
-					 + "<span title=\"x/o:viertens\">a</span>" + "</span>"
-					 + "</span>" + "</span>" + "</span>" + "</mark>" + "</span>"
-					 + "<span class=\"context-right\">" + "<span class=\"more\">"
-					 + "</span>" + "</span>", km.getSnippetHTML());
+        assertEquals("SnippetHTML (2)",
+					 "<span class=\"context-left\">"+
+					 "</span>"+
+					 "<span class=\"match\">"+
+					 "<mark><span title=\"f/m:eins\">"+
+					 "<span title=\"f/y:one\">"+
+					 "<span title=\"it/is:1\">"+
+					 "<span title=\"x/o:erstens\">"+
+					 "<span xlink:title=\"x/rel:a\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">a</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "<span title=\"f/m:zwei\">"+
+					 "<span title=\"f/y:two\">"+
+					 "<span title=\"it/is:2\">"+
+					 "<span title=\"x/o:zweitens\">"+
+					 "<span xlink:title=\"x/rel:b\" xlink:type=\"simple\" xlink:href=\"#token-c1!d1-p3\">b</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "<span title=\"f/m:drei\">"+
+					 "<span title=\"f/y:three\">"+
+					 "<span title=\"it/is:3\">"+
+					 "<span title=\"x/o:drittens\">c</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "<span xml:id=\"token-c1!d1-p3\">" +
+					 "<span title=\"f/m:vier\"><span title=\"f/y:four\">"+
+					 "<span title=\"it/is:4\">"+
+					 "<span title=\"x/o:viertens\">a</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</span>"+
+					 "</mark>"+
+					 "</span>"+
+					 "<span class=\"context-right\">"+
+					 "<span class=\"more\"></span>"+
+					 "</span>",
+					 km.getSnippetHTML());
     };
 
 
@@ -656,7 +669,9 @@
 	public void indexMultipleSpanStarts () throws IOException, QueryException {
         KrillIndex ki = new KrillIndex();
         ki.addDoc(createSimpleFieldDoc5());
-        FieldDocument fd = ki.addDoc(2, getClass().getResourceAsStream("/goe/AGA-03828-new.json.gz"), true);
+        FieldDocument fd = ki.addDoc(
+			2,
+			getClass().getResourceAsStream("/goe/AGA-03828-new.json.gz"), true);
 		
         ki.commit();
 
@@ -683,19 +698,63 @@
 							 true, false);
 		
 		assertEquals("SnippetBrackets (with Spans)",
-					 "[[{malt/d:ATTR>1:Autobiographische} "+
-					 "{#1:{malt/d:ATTR>1:einzelheiten}} "+
-					 "{malt/d:ROOT>0-21:Selbstschilderung} "+
-					 "({malt/d:APP>1:1}) "+
-					 "{#4:{malt/d:ADV>4:immer}} "+
-					 "{#5:{malt/d:ATTR>1:tätiger}}, "+
-					 "{#6:{malt/d:PP>12:nach}} "+
-					 "{malt/d:PN>5:innen} "+
-					 "{malt/d:KON>6:und} "+
-					 "{malt/d:ADV>10:außen}]] ...",
+					 "[[{malt/d:ATTR>2:Autobiographische} "+
+					 "{malt/d:ATTR>2:einzelheiten} "+
+					 "{#2:{malt/d:ROOT>0-21:Selbstschilderung}} "+
+					 "({malt/d:APP>2:1}) "+
+					 "{malt/d:ADV>5:immer} "+
+					 "{#5:{malt/d:ATTR>2:tätiger}}, "+
+					 "{#6:{malt/d:PP>13:nach}} "+
+					 "{#7:{malt/d:PN>6:innen}} "+
+					 "{malt/d:KON>7:und} "+
+					 "{malt/d:ADV>11:außen}]] "+
+					 "...",
 					 km.getSnippetBrackets());
 	};
 
+	@Test
+	public void indexDependencyAnnotations () throws IOException, QueryException {
+        KrillIndex ki = new KrillIndex();
+        FieldDocument fd =
+			ki.addDoc(
+				2,
+				getClass().getResourceAsStream("/goe/Corpus-Doc-0002.json"), false);
+		
+        ki.commit();
+
+		Match km;
+
+		km = ki.getMatchInfo(
+        	"match-Corpus/Doc/0002-p0-6",
+        					 "tokens", "malt", null, true, false);
+
+		        assertEquals("SnippetHTML (1)",
+					 "<span class=\"context-left\"></span>"+
+							 "<span class=\"match\">"+
+							 "<mark>"+
+							 "<span xml:id=\"token-Corpus/Doc/0002-p0\">"+
+							 "<span xlink:title=\"malt/d:ROOT\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p0-6\">Maximen</span>"+
+							 "</span> "+
+							 "<span xml:id=\"token-Corpus/Doc/0002-p1\">"+
+							 "<span xlink:title=\"malt/d:KON\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p0\">und</span>"+
+							 "</span> "+
+							 "<span xlink:title=\"malt/d:CJ\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p1\">Reflexionen</span> "+
+							 "<span xml:id=\"token-Corpus/Doc/0002-p3\">" +
+							 "<span xlink:title=\"malt/d:KON\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p0\">Religion</span>"+
+							 "</span> "+
+							 "<span xml:id=\"token-Corpus/Doc/0002-p4\">"+
+							 "<span xlink:title=\"malt/d:KON\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p3\">und</span>"+
+							 "</span> "+
+							 "<span xlink:title=\"malt/d:CJ\" xlink:type=\"simple\" xlink:href=\"#token-Corpus/Doc/0002-p4\">Christentum</span>"+
+							 "</mark>"+
+							 "</span>"+
+							 "<span class=\"context-right\">"+
+							 "<span class=\"more\">"+
+							 "</span>"+
+							 "</span>",
+							 km.getSnippetHTML());
+	};
+
 
 	
     @Test
@@ -747,10 +806,10 @@
         fd.addString("ID", "d1");
         fd.addString("availability", "CC-BY-SA");
         fd.addTV("tokens", "abcabcabac",
-                "[(0-1)s:a|i:a|f/m:eins|f/y:one|x/o:erstens|it/is:1|>:x/rel:a$<b>32<i>4<s>0<s>0<s>0|_0$<i>0<i>1|-:t$<i>10]"
+                "[(0-1)s:a|i:a|f/m:eins|f/y:one|x/o:erstens|it/is:1|>:x/rel:a$<b>32<i>3<s>0<s>0<s>0|_0$<i>0<i>1|-:t$<i>10]"
                         + "[(1-2)s:b|i:b|f/m:zwei|f/y:two|x/o:zweitens|it/is:2|_1$<i>1<i>2]"
                         + "[(2-3)s:c|i:c|f/m:drei|f/y:three|x/o:drittens|it/is:3|_2$<i>2<i>3|<>:base/s:s$<b>64<i>2<i>5<i>5]"
-                        + "[(3-4)s:a|i:a|f/m:vier|f/y:four|x/o:viertens|it/is:4|<:x/rel:b$<b>40<i>1<s>0<s>0<s>0|_3$<i>3<i>4]"
+                        + "[(3-4)s:a|i:a|f/m:vier|f/y:four|x/o:viertens|it/is:4|<:x/rel:b$<b>32<i>0<s>0<s>0<s>0|_3$<i>3<i>4]"
                         + "[(4-5)s:b|i:b|f/m:fuenf|f/y:five|x/o:fünftens|it/is:5|_4$<i>4<i>5]"
                         + "[(5-6)s:c|i:c|f/m:sechs|f/y:six|x/o:sechstens|it/is:6|_5$<i>5<i>6]"
                         + "[(6-7)s:a|i:a|f/m:sieben|f/y:seven|x/o:siebtens|it/is:7|_6$<i>6<i>7]"
@@ -766,16 +825,16 @@
         fd.addString("corpusID", "c1");
         fd.addString("ID", "d1");
         fd.addTV("tokens", "abcabcabac",
-                "[(0-1)s:a|i:a|f/m:eins|f/y:one|x/o:erstens|it/is:1|>:x/rel:a$<b>32<i>4<s>0<s>0<s>0|_0$<i>0<i>1|-:t$<i>10]"
-                        + "[(1-2)s:b|i:b|f/m:zwei|f/y:two|x/o:zweitens|it/is:2|>:x/rel:b$<b>32<i>4<s>0<s>0<s>0|_1$<i>1<i>2]"
-                        + "[(2-3)s:c|i:c|f/m:drei|f/y:three|x/o:drittens|it/is:3|_2$<i>2<i>3|<>:base/s:s$<b>64<i>2<i>5<i>5]"
-                        + "[(3-4)s:a|i:a|f/m:vier|f/y:four|x/o:viertens|it/is:4|<:x/rel:b$<b>40<i>1<s>0<s>0<s>0|_3$<i>3<i>4]"
-                        + "[(4-5)s:b|i:b|f/m:fuenf|f/y:five|x/o:fünftens|it/is:5|_4$<i>4<i>5]"
-                        + "[(5-6)s:c|i:c|f/m:sechs|f/y:six|x/o:sechstens|it/is:6|_5$<i>5<i>6]"
-                        + "[(6-7)s:a|i:a|f/m:sieben|f/y:seven|x/o:siebtens|it/is:7|_6$<i>6<i>7]"
-                        + "[(7-8)s:b|i:b|f/m:acht|f/y:eight|x/o:achtens|it/is:8|<>:x/tag$<b>64<i>7<i>10<i>10|_7$<i>7<i>8]"
-                        + "[(8-9)s:a|i:a|f/m:neun|f/y:nine|x/o:neuntens|it/is:9|_8$<i>8<i>9]"
-                        + "[(9-10)s:c|i:c|f/m:zehn|f/y:ten|x/o:zehntens|it/is:10|_9$<i>9<i>10]");
+                "[(0-1)s:a|i:a|f/m:eins|f/y:one|x/o:erstens|it/is:1|>:x/rel:a$<b>32<i>3<s>0<s>0<s>0|_0$<i>0<i>1|-:t$<i>10]"
+				 + "[(1-2)s:b|i:b|f/m:zwei|f/y:two|x/o:zweitens|it/is:2|>:x/rel:b$<b>32<i>3<s>0<s>0<s>0|_1$<i>1<i>2]"
+				 + "[(2-3)s:c|i:c|f/m:drei|f/y:three|x/o:drittens|it/is:3|_2$<i>2<i>3|<>:base/s:s$<b>64<i>2<i>5<i>5]"
+				 + "[(3-4)s:a|i:a|f/m:vier|f/y:four|x/o:viertens|it/is:4|<:x/rel:b$<b>32<i>0<s>0<s>0<s>0|_3$<i>3<i>4]"
+				 + "[(4-5)s:b|i:b|f/m:fuenf|f/y:five|x/o:fünftens|it/is:5|_4$<i>4<i>5]"
+				 + "[(5-6)s:c|i:c|f/m:sechs|f/y:six|x/o:sechstens|it/is:6|_5$<i>5<i>6]"
+				 + "[(6-7)s:a|i:a|f/m:sieben|f/y:seven|x/o:siebtens|it/is:7|_6$<i>6<i>7]"
+				 + "[(7-8)s:b|i:b|f/m:acht|f/y:eight|x/o:achtens|it/is:8|<>:x/tag$<b>64<i>7<i>10<i>10|_7$<i>7<i>8]"
+				 + "[(8-9)s:a|i:a|f/m:neun|f/y:nine|x/o:neuntens|it/is:9|_8$<i>8<i>9]"
+				 + "[(9-10)s:c|i:c|f/m:zehn|f/y:ten|x/o:zehntens|it/is:10|_9$<i>9<i>10]");
         return fd;
     };
 
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestTermInfo.java b/src/test/java/de/ids_mannheim/korap/index/TestTermInfo.java
index 766c714..1458000 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestTermInfo.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestTermInfo.java
@@ -61,7 +61,7 @@
         assertEquals("foundry", term.getFoundry(), "xip");
         assertEquals("layer", term.getLayer(), "p");
         assertEquals("startPos", term.getStartPos(), 11);
-        assertEquals("targetStartPos", term.getTargetStartPos(), 16);
+        assertEquals("targetStartPos", term.getTargetStartPos(), 17);
         assertEquals("startChar", term.getStartChar(), -1);
         assertEquals("endChar", term.getEndChar(), -1);
         assertEquals("depth", term.getDepth(), 0);
diff --git a/src/test/resources/goe/Corpus-Doc-0002.json b/src/test/resources/goe/Corpus-Doc-0002.json
new file mode 100644
index 0000000..54ade91
--- /dev/null
+++ b/src/test/resources/goe/Corpus-Doc-0002.json
@@ -0,0 +1 @@
+{"version":"0.03","subTitle":"Religion und Christentum","language":"de","docSigle":"Corpus/Doc","corpusAuthor":"Mustermann, Max","pubDate":"19820000","data":{"stream":[["-:base/paragraphs$<i>0","-:base/sentences$<i>5","-:tokens$<i>31","-:tt/sentences$<i>4","<:malt/d:KON$<b>32<i>1","<:malt/d:KON$<b>32<i>3","<>:dereko/s:front$<b>65<i>0<i>0","<>:dereko/s:pb$<b>65<i>0<i>0<i>0<b>0<s>1","<>:dereko/s:head$<b>64<i>0<i>23<i>3<b>0<s>2","<>:dereko/s:s$<b>64<i>0<i>23<i>3","<>:base/s:s$<b>64<i>0<i>23<i>3<b>2","<>:tt/s:s$<b>64<i>0<i>49<i>6<b>0","<>:base/s:t$<b>64<i>0<i>238<i>30<b>0",">:malt/d:ROOT$<b>33<i>0<i>49<i>0<i>6","<:malt/d:ROOT$<b>34<i>0<i>49<i>6<i>0","@:dereko/s:TEIform:pb$<b>17<s>1","@:dereko/s:n:372$<b>17<s>1","@:dereko/s:id:agx.00002-372-pb372$<b>17<s>1","@:dereko/s:type:main$<b>17<s>2<i>3","_0$<i>0<i>7","i:maximen","s:Maximen","tt/l:Maxime$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:KON$<b>32<i>0","<:malt/d:CJ$<b>32<i>2","_1$<i>8<i>11","i:und","s:und","tt/l:und$<b>129<b>255","tt/p:KON$<b>129<b>255"],[">:malt/d:CJ$<b>32<i>1","_2$<i>12<i>23","i:reflexionen","s:Reflexionen","tt/l:Reflexion$<b>129<b>255","tt/p:NN$<b>129<b>255"],["<>:dereko/s:head$<b>64<i>24<i>49<i>6<b>0<s>1","<>:dereko/s:s$<b>64<i>24<i>49<i>6<b>0<s>2","<>:base/s:s$<b>64<i>24<i>49<i>6<b>2",">:malt/d:KON$<b>32<i>0","<:malt/d:KON$<b>32<i>4","@:dereko/s:type:cross$<b>17<s>1<i>6","@:dereko/s:type:manual$<b>17<s>2<i>6","_3$<i>24<i>32","i:religion","s:Religion","tt/l:Religion$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:KON$<b>32<i>3","<:malt/d:CJ$<b>32<i>5","_4$<i>33<i>36","i:und","s:und","tt/l:und$<b>129<b>255","tt/p:KON$<b>129<b>255"],[">:malt/d:CJ$<b>32<i>4","_5$<i>37<i>48","i:christentum","s:Christentum","tt/l:Christentum$<b>129<b>255","tt/p:NN$<b>129<b>255"],["<:malt/d:ROOT$<b>34<i>51<i>133<i>14<i>7","<>:dereko/s:label$<b>65<i>51<i>51<i>6","<>:dereko/s:s$<b>65<i>51<i>51<i>6<b>0<s>1","<>:base/s:s$<b>64<i>51<i>51<i>6<b>2","<>:dereko/s:item$<b>64<i>51<i>133<i>14","<>:dereko/s:s$<b>64<i>51<i>133<i>14<b>0<s>2","<>:tt/s:s$<b>64<i>51<i>133<i>14<b>0","<>:base/s:s$<b>64<i>51<i>133<i>14<b>2",">:malt/d:SUBJ$<b>32<i>7","@:dereko/s:type:manual$<b>17<s>1","@:dereko/s:type:manual$<b>17<s>2<i>14","_6$<i>51<i>54","i:wir","s:wir","tt/l:wir$<b>129<b>255","tt/p:PPER$<b>129<b>255"],["<:malt/d:SUBJ$<b>32<i>6",">:malt/d:ROOT$<b>33<i>51<i>133<i>6<i>14","<:malt/d:ADV$<b>32<i>8","<:malt/d:PRED$<b>32<i>9","<:malt/d:ADV$<b>32<i>12","<:malt/d:PRED$<b>32<i>13","_7$<i>55<i>59","i:sind","s:sind","tt/l:sein$<b>129<b>255","tt/p:VAFIN$<b>129<b>255"],[">:malt/d:ADV$<b>32<i>7","_8$<i>60<i>74","i:naturforschend","s:naturforschend","tt/p:ADJD$<b>129<b>252"],[">:malt/d:PRED$<b>32<i>7","<:malt/d:KON$<b>32<i>11","_9$<i>75<i>86","i:pantheisten","s:Pantheisten","tt/l:Pantheist$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:ATTR$<b>32<i>11","_10$<i>88<i>96","i:dichtend","s:dichtend","tt/l:dichtend$<b>129<b>255","tt/p:ADJD$<b>129<b>255"],[">:malt/d:KON$<b>32<i>9","<:malt/d:ATTR$<b>32<i>10","_11$<i>97<i>109","i:polytheisten","s:Polytheisten","tt/l:Polytheist$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:ADV$<b>32<i>7","_12$<i>111<i>119","i:sittlich","s:sittlich","tt/l:sittlich$<b>129<b>255","tt/p:ADJD$<b>129<b>255"],[">:malt/d:PRED$<b>32<i>7","_13$<i>120<i>132","i:monotheisten","s:Monotheisten","tt/l:Monotheist$<b>129<b>255","tt/p:NN$<b>129<b>255"],["<>:dereko/s:label$<b>65<i>134<i>134<i>14","<>:tt/s:s$<b>64<i>134<i>172<i>21<b>0","<>:dereko/s:item$<b>64<i>134<i>238<i>30","<>:dereko/s:s$<b>64<i>134<i>238<i>30<b>0<s>1","<>:base/s:s$<b>64<i>134<i>238<i>30<b>2",">:malt/d:ROOT$<b>33<i>134<i>172<i>14<i>21","<:malt/d:OBJC$<b>32<i>18","<:malt/d:ROOT$<b>34<i>134<i>172<i>21<i>14","<:malt/d:ROOT$<b>34<i>134<i>172<i>21<i>19","@:dereko/s:type:manual$<b>17<s>1<i>30","_14$<i>134<i>138","i:gott","s:Gott","tt/l:Gott$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:KONJ$<b>32<i>18","_15$<i>140<i>144","i:wenn","s:wenn","tt/l:wenn$<b>129<b>255","tt/p:KOUS$<b>129<b>255"],[">:malt/d:SUBJ$<b>32<i>18","_16$<i>145<i>148","i:wir","s:wir","tt/l:wir$<b>129<b>255","tt/p:PPER$<b>129<b>255"],[">:malt/d:ADV$<b>32<i>18","_17$<i>149<i>153","i:hoch","s:hoch","tt/l:hoch$<b>129<b>239","tt/p:ADJD$<b>129<b>239"],[">:malt/d:OBJC$<b>32<i>14","<:malt/d:KONJ$<b>32<i>15","<:malt/d:SUBJ$<b>32<i>16","<:malt/d:ADV$<b>32<i>17","_18$<i>154<i>160","i:stehen","s:stehen","tt/l:stehen$<b>129<b>144","tt/l:stehen$<b>129<b>110","tt/p:VVFIN$<b>129<b>144","tt/p:VVINF$<b>129<b>110"],[">:malt/d:ROOT$<b>33<i>134<i>172<i>14<i>21","<:malt/d:SUBJ$<b>32<i>20","_19$<i>162<i>165","i:ist","s:ist","tt/l:sein$<b>129<b>255","tt/p:VAFIN$<b>129<b>255"],[">:malt/d:SUBJ$<b>32<i>19","_20$<i>166<i>171","i:alles","s:alles","tt/l:alle$<b>129<b>254","tt/p:PIS$<b>129<b>254"],[">:malt/d:ROOT$<b>33<i>173<i>238<i>21<i>30","<:malt/d:SUBJ$<b>32<i>22","<:malt/d:ADV$<b>32<i>23","<:malt/d:KON$<b>32<i>25","<:malt/d:ROOT$<b>34<i>173<i>238<i>30<i>21","<>:tt/s:s$<b>64<i>173<i>238<i>30<b>0","_21$<i>173<i>179","i:stehen","s:stehen","tt/l:stehen$<b>129<b>254","tt/p:VVFIN$<b>129<b>254"],[">:malt/d:SUBJ$<b>32<i>21","_22$<i>180<i>183","i:wir","s:wir","tt/l:wir$<b>129<b>255","tt/p:PPER$<b>129<b>255"],[">:malt/d:ADV$<b>32<i>21","_23$<i>184<i>191","i:niedrig","s:niedrig","tt/l:niedrig$<b>129<b>255","tt/p:ADJD$<b>129<b>255"],[">:malt/d:ADV$<b>32<i>25","_24$<i>193<i>195","i:so","s:so","tt/l:so$<b>129<b>254","tt/p:ADV$<b>129<b>254"],[">:malt/d:KON$<b>32<i>21","<:malt/d:ADV$<b>32<i>24","<:malt/d:SUBJ$<b>32<i>26","<:malt/d:PRED$<b>32<i>28","_25$<i>196<i>199","i:ist","s:ist","tt/l:sein$<b>129<b>255","tt/p:VAFIN$<b>129<b>255"],[">:malt/d:SUBJ$<b>32<i>25","_26$<i>200<i>202","i:er","s:er","tt/l:er$<b>129<b>255","tt/p:PPER$<b>129<b>255"],[">:malt/d:DET$<b>32<i>28","_27$<i>203<i>206","i:ein","s:ein","tt/l:eine$<b>129<b>252","tt/p:ART$<b>129<b>252"],[">:malt/d:PRED$<b>32<i>25","<:malt/d:DET$<b>32<i>27","<:malt/d:GMOD$<b>32<i>30","_28$<i>207<i>217","i:supplement","s:Supplement","tt/l:Supplement$<b>129<b>255","tt/p:NN$<b>129<b>255"],[">:malt/d:DET$<b>32<i>30","_29$<i>218<i>224","i:unsrer","s:unsrer","tt/l:unser$<b>129<b>254","tt/p:PPOSAT$<b>129<b>254"],["<>:dereko/s:label$<b>65<i>239<i>239<i>30",">:malt/d:GMOD$<b>32<i>28","<:malt/d:DET$<b>32<i>29","_30$<i>225<i>237","i:armseligkeit","s:Armseligkeit","tt/l:Armseligkeit$<b>129<b>255","tt/p:NN$<b>129<b>255"]],"text":"Maximen und Reflexionen Religion und Christentum.  wir sind naturforschend Pantheisten, dichtend Polytheisten, sittlich Monotheisten. Gott, wenn wir hoch stehen, ist alles; stehen wir niedrig, so ist er ein Supplement unsrer Armseligkeit.","tokenSource":"base#tokens_aggr","foundries":"base base/paragraphs base/sentences dereko dereko/structure malt malt/dependency treetagger treetagger/morpho treetagger/sentences","layerInfos":"base/s=spans dereko/s=spans malt/d=rels tt/l=tokens tt/p=tokens tt/s=spans","name":"tokens"},"textSigle":"Corpus/Doc/0002","corpusEditor":"Mustermann, Monika","srcPages":"372-377","textTypeRef":"Aphorismen","corpusTitle":"Werke von Beispiel","publisher":"Verlag C. H. Beck","author":"Goethe, Johann Wolfgang von","availability":"QAO-NC","reference":"Goethe, Johann Wolfgang von: Maximen und Reflexionen. Religion und Christentum, [Aphorismen], (Erstveröffentlichung: Stuttgart ; Tübingen, 1827-1842), In: Goethe, Johann Wolfgang von: Goethes Werke, Bd. 12, Schriften zur Kunst. Schriften zur Literatur. Maximen und Reflexionen, Hrsg.: Trunz, Erich. München: Verlag C. H. Beck, 1982, S. 372-377","corpusSigle":"Corpus","docTitle":"Beispiel Dokument","title":"Maximen und Reflexionen","creationDate":"18270000","pubPlace":"München","textType":"Aphorismus","pubPlaceKey":"DE"}
