diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
index 5d5c4dc..7f6f394 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanAlterQueryWrapper.java
@@ -18,6 +18,7 @@
     private List<SpanQuery> alternatives;
     private boolean isNull = true;
     private boolean isOptional = false;
+    private boolean isNegative = false;
 
     public SpanAlterQueryWrapper (String field) {
 	this.field = field;
@@ -53,6 +54,9 @@
 	if (term.isNull())
 	    return this;
 
+	if (term.isNegative())
+	    this.isNegative = true;
+
 	// If one operand is optional, the whole group can be optional
 	// a | b* | c
 	if (term.isOptional())
@@ -98,4 +102,8 @@
     public boolean isNull () {
 	return this.isNull;
     };
+
+    public boolean isNegative () {
+	return this.isNegative;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
index 50671f6..bb43edc 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanClassQueryWrapper.java
@@ -49,4 +49,8 @@
     public boolean isNull () {
 	return this.subquery.isNull();
     };
+
+    public boolean isNegative () {
+	return this.subquery.isNegative();
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanElementQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanElementQueryWrapper.java
index c5da7fc..4add693 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanElementQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanElementQueryWrapper.java
@@ -25,4 +25,8 @@
     public boolean isNull () {
 	return false;
     };
+
+    public boolean isNegative () {
+	return false;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanMatchModifyQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanMatchModifyQueryWrapper.java
index 4476f76..252ee0a 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanMatchModifyQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanMatchModifyQueryWrapper.java
@@ -45,4 +45,8 @@
     public boolean isNull () {
 	return this.subquery.isNull();
     };
+
+    public boolean isNegative () {
+	return this.subquery.isNegative();
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQuantifierQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQuantifierQueryWrapper.java
index 4a29118..f6d3718 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQuantifierQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQuantifierQueryWrapper.java
@@ -29,6 +29,10 @@
 	return false;
     };
 
+    public boolean isNegative () {
+	return false;
+    };
+
 
     /*
 
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapperInterface.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapperInterface.java
index b88af57..eeaa04c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapperInterface.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanQueryWrapperInterface.java
@@ -9,4 +9,5 @@
     public SpanQuery toQuery ();
     public boolean isOptional ();
     public boolean isNull ();
+    public boolean isNegative ();
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRegexQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRegexQueryWrapper.java
index cf788dc..8be32cc 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRegexQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRegexQueryWrapper.java
@@ -50,4 +50,8 @@
     public boolean isNull () {
 	return false;
     };
+
+    public boolean isNegative () {
+	return false;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
index d4b8c54..3ad592d 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanRepetitionQueryWrapper.java
@@ -59,4 +59,8 @@
     public boolean isNull () {
 	return this.isNull;
     };
+
+    public boolean isNegative () {
+	return this.subquery.isNegative();
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
index 1d007c3..91dbcc4 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSegmentQueryWrapper.java
@@ -26,6 +26,7 @@
     public ArrayList<SpanQuery> exclusive;
     private String field;
     private boolean isNull = true;
+    private boolean isNegative = false;
 
     /**
      * Constructor.
@@ -61,6 +62,8 @@
     public SpanSegmentQueryWrapper (String field, SpanAlterQueryWrapper alter) {
 	this(field);
 	if (!alter.isNull()) {
+	    if (alter.isNegative())
+		this.isNegative = true;
 	    this.inclusive.add((SpanQuery) alter.toQuery());
 	    this.isNull = false;
 	};
@@ -103,6 +106,8 @@
 
     public SpanSegmentQueryWrapper with (SpanAlterQueryWrapper alter) {
 	if (!alter.isNull()) {
+	    if (alter.isNegative())
+		this.isNegative = true;
 	    this.inclusive.add((SpanQuery) alter.toQuery());
 	    this.isNull = false;
 	};
@@ -143,7 +148,12 @@
 
     public SpanSegmentQueryWrapper without (SpanAlterQueryWrapper alter) {
 	if (!alter.isNull()) {
-	    this.exclusive.add((SpanQuery) alter.toQuery());
+	    if (alter.isNegative()) {
+		this.inclusive.add((SpanQuery) alter.toQuery());
+	    }
+	    else {
+		this.exclusive.add((SpanQuery) alter.toQuery());
+	    };
 	    this.isNull = false;
 	};
 	return this;
@@ -152,6 +162,7 @@
     // Identical to with
     public SpanSegmentQueryWrapper without (SpanSegmentQueryWrapper seg) {
 	if (!seg.isNull()) {
+	    // TODO!!!
 	    this.with(seg);
 	    this.isNull = false;
 	};
@@ -222,5 +233,12 @@
     public boolean isNull () {
 	return this.isNull;
     };
+
+    public boolean isNegative () {
+	if (this.inclusive.size() == 0 && this.exclusive.size() >= 1) {
+	    return true;
+	};
+	return false;
+    };
 };
 
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
index 9b695d8..b316fdf 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanSequenceQueryWrapper.java
@@ -20,6 +20,11 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+/*
+TODO: Make isNegative work!
+*/
+
+
 /**
  * @author Nils Diewald
  */
@@ -39,7 +44,8 @@
 	isNull = true,
 	isOptional = true,
 	lastIsOptional = false,
-	firstIsOptional = false;
+	firstIsOptional = false,
+	isNegative = false;
 
     public SpanSequenceQueryWrapper (String field) {
 	this.field = field;
@@ -66,7 +72,12 @@
 
     public SpanSequenceQueryWrapper (String field, SpanQueryWrapperInterface sswq) {
 	this(field);
+
 	if (!sswq.isNull()) {
+
+	    if (sswq.isNegative())
+		this.isNegative = true;
+	    
 	    this.segments.add((SpanQuery) sswq.toQuery());
 	    this.isNull = false;
 	    if (sswq.isOptional()) {
@@ -155,6 +166,10 @@
 
     public SpanSequenceQueryWrapper append (SpanQueryWrapperInterface ssq) {
 	if (!ssq.isNull()) {
+
+	    if (ssq.isNegative())
+		this.isNegative = true;
+	    
 	    SpanQuery appendQuery = ssq.toQuery();
 	    if (!ssq.isOptional()) {
 		if (DEBUG)
@@ -252,6 +267,10 @@
 
     public SpanSequenceQueryWrapper prepend (SpanQueryWrapperInterface ssq) {
 	if (!ssq.isNull()) {
+
+	    if (ssq.isNegative())
+		this.isNegative = true;
+	    
 	    SpanQuery prependQuery = ssq.toQuery();
 	    if (!ssq.isOptional()) {
 		return this.prepend(prependQuery);
@@ -425,4 +444,8 @@
     public boolean isNull () {
 	return this.isNull;
     };
+
+    public boolean isNegative () {
+	return this.isNegative;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWildcardQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWildcardQueryWrapper.java
index 94179f3..38d60ce 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWildcardQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWildcardQueryWrapper.java
@@ -36,4 +36,8 @@
     public boolean isNull () {
 	return false;
     };
+
+    public boolean isNegative () {
+	return false;
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
index 68b07fd..47face4 100644
--- a/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
+++ b/src/main/java/de/ids_mannheim/korap/query/wrap/SpanWithinQueryWrapper.java
@@ -55,4 +55,11 @@
     public boolean isNull () {
 	return this.isNull;
     };
+
+    public boolean isNegative () {
+	if (this.element.isNegative() || this.wrap.isNegative()) {
+	    return true;
+	};
+	return false;
+    };
 };
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
index 6eaf44c..fabbff0 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestFieldDocument.java
@@ -222,12 +222,11 @@
 
 	// assertEquals("... e des [{1:lateinischen {2:Alphabets}}] und ein Vokal. Der Buchstabe A ...", ks.run(ki).getMatch(0).getSnippetBrackets());
 
+	
 	/*
+
 	kr = ki.search(query, 0, (short) 1, true, (short) 2, false, (short) 5);
 	assertEquals("... Buchstabe des [{1:{2:lateinischen} Alphabets}] und  ...", kr.match(0).getSnippetBrackets());
-	*/
-
-	/*
 
 	SpanQuery query;
 
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
index 874695e..7dc69d3 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestIndex.java
@@ -631,9 +631,10 @@
 
 
 	// [][][p:VAFIN] in s
-	//([e:s:<][]*[T] | [T & e:s:<]) [T] ([p:VAFIN & e:s:>] | [T][]*[e:s:>]
+	// ([e:s:<][]*[T] | [T & e:s:<]) [T] ([p:VAFIN & e:s:>] | [T][]*[e:s:>]
 
 	/*
+
 	SpanSegmentWithinQuery ssequery = new SpanSegmentWithinQuery(
 	    "text","s", new SpanSegmentSequenceQuery("text", "T", "T", "p:VAFIN")
         );
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSegmentIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSegmentIndex.java
index 2b52d9d..adc550b 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestSegmentIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSegmentIndex.java
@@ -18,6 +18,8 @@
 import de.ids_mannheim.korap.query.SpanElementQuery;
 import de.ids_mannheim.korap.query.SpanNextQuery;
 import de.ids_mannheim.korap.query.SpanSegmentQuery;
+import de.ids_mannheim.korap.query.wrap.SpanSegmentQueryWrapper;
+import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
 
 
 @RunWith(JUnit4.class)
@@ -50,7 +52,7 @@
 		kr = ki.search(sq, (short) 10);
 		ki.close();
 		
-		assertEquals("totalResults", 2, kr.totalResults());
+		assertEquals("totalResults", 3, kr.totalResults());
 		assertEquals("StartPos (0)", 1, kr.match(0).startPos);
 		assertEquals("EndPos (0)", 2, kr.match(0).endPos);
 		assertEquals("StartPos (1)", 4, kr.match(1).startPos);
@@ -182,7 +184,8 @@
 		assertEquals("StartPos (0)", 0, kr.match(1).startPos);
 		assertEquals("EndPos (0)", 2, kr.match(1).endPos);
 	}
-	
+
+    
 	private FieldDocument createFieldDoc0(){
 		fd = new FieldDocument();
 		fd.addString("ID", "doc-0");
@@ -202,7 +205,7 @@
 		fd.addString("ID", "doc-1");
 		fd.addTV("base",
 			 "babaa",			 
-			 "[(0-1)s:b|i:b|s:c_1#0-1]" +
+			 "[(0-1)s:b|i:b|s:c|_1#0-1]" +
 			 "[(1-2)s:a|i:a|s:b|_2#1-2|<>:e#1-3$<i>3]" +			 
 			 "[(2-3)s:b|i:b|s:a|_3#2-3]" +
 			 "[(3-4)s:a|i:a|_4#3-4]" +
@@ -223,7 +226,7 @@
 	
 	private FieldDocument createFieldDoc4(){
 		fd = new FieldDocument();
-		fd.addString("ID", "doc-3");
+		fd.addString("ID", "doc-4");
 		fd.addTV("base",
 			 "bdb",			 
 			 "[(0-1)s:b|i:b|s:c|_1#0-1]" +
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java
new file mode 100644
index 0000000..b2f1cd8
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/index/TestSegmentNegationIndex.java
@@ -0,0 +1,128 @@
+package de.ids_mannheim.korap.index;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.lucene.index.Term;
+import org.apache.lucene.search.spans.SpanQuery;
+import org.apache.lucene.search.spans.SpanTermQuery;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import de.ids_mannheim.korap.KorapIndex;
+import de.ids_mannheim.korap.KorapResult;
+import de.ids_mannheim.korap.query.SpanElementQuery;
+import de.ids_mannheim.korap.query.SpanNextQuery;
+import de.ids_mannheim.korap.query.SpanSegmentQuery;
+import de.ids_mannheim.korap.query.wrap.SpanSegmentQueryWrapper;
+import de.ids_mannheim.korap.query.wrap.SpanSequenceQueryWrapper;
+
+@RunWith(JUnit4.class)
+public class TestSegmentNegationIndex {
+    private SpanQuery sq;
+    private KorapIndex ki;
+    private KorapResult kr;
+    private FieldDocument fd;
+    private Logger log;	
+	
+    @Test
+    public void testcaseNegation() throws IOException{
+	ki = new KorapIndex();
+	ki.addDoc(createFieldDoc0());
+	ki.addDoc(createFieldDoc1());
+	ki.addDoc(createFieldDoc2());
+	ki.addDoc(createFieldDoc3());
+	ki.commit();
+	SpanSegmentQueryWrapper ssqw = new SpanSegmentQueryWrapper("base","s:b");
+	ssqw.with("s:c");
+	SpanSequenceQueryWrapper sqw = new SpanSequenceQueryWrapper("base", ssqw).append("s:d");
+
+	kr = ki.search(sqw.toQuery(), (short) 10);
+		
+	assertEquals("totalResults", 2, kr.totalResults());				
+	// Match #0
+	assertEquals("doc-number", 0, kr.match(0).getLocalDocID());
+	assertEquals("StartPos (0)", 4, kr.match(0).startPos);
+	assertEquals("EndPos (0)", 6, kr.match(0).endPos);
+
+	// Match #1 in the other atomic index
+	assertEquals("doc-number", 3, kr.match(1).getLocalDocID());
+	assertEquals("StartPos (0)", 0, kr.match(1).startPos);
+	assertEquals("EndPos (0)", 2, kr.match(1).endPos);
+		
+	ssqw = new SpanSegmentQueryWrapper("base","s:b");
+	ssqw.without("s:c");
+	sqw = new SpanSequenceQueryWrapper("base", ssqw).append("s:a");
+
+	kr = ki.search(sqw.toQuery(), (short) 10);
+
+	assertEquals("doc-number", 0, kr.match(0).getLocalDocID());
+	assertEquals("StartPos (0)", 2, kr.match(0).startPos);
+	assertEquals("EndPos (0)", 4, kr.match(0).endPos);
+
+	assertEquals("doc-number", 1, kr.match(1).getLocalDocID());
+	assertEquals("StartPos (1)", 1, kr.match(1).startPos);
+	assertEquals("EndPos (1)", 3, kr.match(1).endPos);
+
+	assertEquals("doc-number", 1, kr.match(2).getLocalDocID());
+	assertEquals("StartPos (2)", 2, kr.match(2).startPos);
+	assertEquals("EndPos (2)", 4, kr.match(2).endPos);
+
+	assertEquals("doc-number", 2, kr.match(3).getLocalDocID());
+	assertEquals("StartPos (3)", 1, kr.match(3).startPos);
+	assertEquals("EndPos (3)", 3, kr.match(3).endPos);
+    }
+    
+    private FieldDocument createFieldDoc0(){
+	fd = new FieldDocument();
+	fd.addString("ID", "doc-0");
+	fd.addTV("base",
+		 "bcbabd",			 
+		 "[(0-1)s:b|i:b|_1#0-1]" +
+		 "[(1-2)s:c|i:c|s:b|_2#1-2]" +			 
+		 "[(2-3)s:b|i:b|_3#2-3|<>:e#2-4$<i>4]" +
+		 "[(3-4)s:a|i:a|_4#3-4|<>:e#3-5$<i>5|<>:e2#3-5$<i>5]" + 
+		 "[(4-5)s:b|i:b|s:c|_5#4-5]" +			 
+		 "[(5-6)s:d|i:d|_6#5-6|<>:e2#5-6$<i>6]");
+	return fd;
+    }
+	
+    private FieldDocument createFieldDoc1(){
+	fd = new FieldDocument();
+	fd.addString("ID", "doc-1");
+	fd.addTV("base",
+		 "babaa",			 
+		 "[(0-1)s:b|i:b|s:c|_1#0-1]" +
+		 "[(1-2)s:a|i:a|s:b|_2#1-2|<>:e#1-3$<i>3]" +			 
+		 "[(2-3)s:b|i:b|s:a|_3#2-3]" +
+		 "[(3-4)s:a|i:a|_4#3-4]" +
+		 "[(4-5)s:a|i:a|_5#4-5]");
+	return fd;
+    } 
+    
+    private FieldDocument createFieldDoc2(){
+	fd = new FieldDocument();
+	fd.addString("ID", "doc-2");
+	fd.addTV("base",
+		 "bdb",			 
+		 "[(0-1)s:b|i:b|_1#0-1]" +
+		 "[(1-2)s:d|i:d|s:b|_2#1-2]"+
+		 "[(2-3)s:b|i:b|s:a|_3#2-3]");			 	
+	return fd;
+    }
+	
+    private FieldDocument createFieldDoc3(){
+	fd = new FieldDocument();
+	fd.addString("ID", "doc-3");
+	fd.addTV("base",
+		 "bdb",			 
+		 "[(0-1)s:b|i:b|s:c|_1#0-1]" +
+		 "[(1-2)s:d|_2#1-2]"+
+		 "[(2-3)s:d|i:d|_3#2-3]");			 	
+	return fd;
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java b/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
index ae5365d..04cdb97 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestKorapQueryJSON.java
@@ -81,7 +81,8 @@
 	SpanQueryWrapperInterface sqwi = jsonQuery(getClass().getResource("/queries/bsp7.jsonld").getFile());
 
 	// [!base=Katze]
-	assertEquals(sqwi.toQuery().toString(), "");
+	assertEquals("tokens:mate/l:Katze", sqwi.toQuery().toString());
+	assertTrue(sqwi.isNegative());
     };
 
     @Ignore
diff --git a/src/test/resources/wiki/00005.json b/src/test/resources/wiki/00005.json
index 1e05424..5ca116d 100644
--- a/src/test/resources/wiki/00005.json
+++ b/src/test/resources/wiki/00005.json
@@ -1 +1 @@
-{"ID":"WPD_AAA.00005","textClass":"freizeit-unterhaltung reisen schrott tabellen","pubDate":"20050328","author":"AHZ,Andreas Fischnaller,0","fields":[{"primaryData":"Å ist der Name mehrerer Orte in Norwegen: Å i Andøy Å i Lofoten Å i Meldal Å i Åfjord"},{"data":[["s:Å","i:å","_0#0-1","-:tokens$<i>20","-:sentences$<i>4","-:paragraphs$<i>4"],["s:ist","i:ist","_1#2-5","opennlp/p:VAFIN","cnx/l:sein","cnx/p:V","cnx/m:IND","cnx/m:PRES","cnx/syn:@MAIN","tt/l:sein","tt/p:VAFIN","mate/l:sein","mate/p:VAFIN","mate/m:number:sg","mate/m:person:3","mate/m:tense:pres","mate/m:mood:ind","<:mate/d:SB$<i>3","<:mate/d:PD$<i>5","xip/p:VERB","xip/l:sein","<>:xip/c:VERB#2-5$<i>2","xip/d:VMAIN","<:xip/d:SUBJ$<i>3"],["s:der","i:der","_2#6-9","opennlp/p:ART","cnx/l:der","cnx/p:DET","cnx/syn:@PREMOD","tt/l:die","tt/p:ART","mate/l:der","mate/p:ART","mate/m:case:nom","mate/m:number:sg","mate/m:gender:masc",">:mate/d:NK$<i>3","xip/p:DET","xip/l:der","<>:xip/c:DET#6-9$<i>3","<>:xip/c:NP#6-14$<i>4",">:xip/d:DETERM$<i>3"],["s:Name","i:name","_3#10-14","opennlp/p:NN","cnx/l:name","cnx/p:N","cnx/syn:@NH","<>:cnx/c:np#10-14$<i>4","tt/l:Name","tt/p:NN","mate/l:name","mate/p:NN","mate/m:case:nom","mate/m:number:sg","mate/m:gender:masc","<:mate/d:NK$<i>2",">:mate/d:SB$<i>1","xip/p:NOUN","xip/l:Name","<>:xip/c:NOUN#10-14$<i>4","<>:xip/c:NPA#10-14$<i>4<b>1","<:xip/d:DETERM$<i>2",">:xip/d:SUBJ$<i>1","<:xip/d:NMOD$<i>5"],["s:mehrerer","i:mehrerer","_4#15-23","opennlp/p:PIAT","cnx/l:mehrere","cnx/p:PRON","cnx/syn:@PREMOD","tt/l:mehrere","tt/p:PIS","mate/l:mehrere","mate/p:PIAT","mate/m:case:gen","mate/m:number:pl","mate/m:gender:masc",">:mate/d:NK$<i>5","xip/p:ADJ","xip/l:mehrere","<>:xip/c:ADJ#15-23$<i>5","<>:xip/c:NP#15-28$<i>6","<>:xip/c:NPA#15-28$<i>6<b>1","<>:xip/c:AP#15-23$<i>5<b>2",">:xip/d:NMOD$<i>5"],["s:Orte","i:orte","_5#24-28","opennlp/p:NN","cnx/l:ort","cnx/p:N","cnx/m:PL","cnx/syn:@NH","<>:cnx/c:np#24-40$<i>8","tt/l:Ort","tt/p:NN","mate/l:ort","mate/p:NN","mate/m:case:gen","mate/m:number:pl","mate/m:gender:masc","<:mate/d:NK$<i>4",">:mate/d:PD$<i>1","<:mate/d:MNR$<i>6","xip/p:NOUN","xip/l:Ort","<>:xip/c:NOUN#24-28$<i>6","<:xip/d:NMOD$<i>4",">:xip/d:NMOD$<i>3"],["s:in","i:in","_6#29-31","opennlp/p:APPR","cnx/l:in","cnx/p:PREP","cnx/syn:@POSTMOD","tt/l:in","tt/p:APPR","mate/l:in","mate/p:APPR",">:mate/d:MNR$<i>5","<:mate/d:NK$<i>7","xip/p:PREP","xip/l:in","<>:xip/c:PREP#29-31$<i>7","<>:xip/c:PP#29-40$<i>8"],["s:Norwegen","i:norwegen","_7#32-40","opennlp/p:NE","corenlp/ne_dewac_175m_600:I-LOC","corenlp/ne_hgc_175m_600:I-LOC","cnx/l:Norwegen","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/l:Norwegen","tt/p:NE","mate/l:norwegen","mate/p:NE","mate/m:case:dat","mate/m:number:sg","mate/m:gender:neut",">:mate/d:NK$<i>6","xip/p:NOUN","xip/l:Norwegen","<>:xip/c:NOUN#32-40$<i>8","<>:xip/c:NP#32-40$<i>8<b>1","<>:xip/c:NPA#32-40$<i>8<b>2","xip/d:LOC"],["s:Å","i:å","_8#42-43","<>:s#42-51$<i>11","<>:p#42-51$<i>11","opennlp/p:VVFIN","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#42-51$<i>11","tt/p:NE","mate/l:å","mate/p:XY","xip/p:ADV","xip/l:å","<>:xip/c:TOP#42-85$<i>20","<>:xip/c:ADV#42-43$<i>9"],["s:i","i:i","_9#44-45","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#44-45$<i>10","<>:xip/c:NP#44-45$<i>10<b>1","<>:xip/c:NPA#44-45$<i>10<b>2","<>:xip/c:NOUN#44-45$<i>10<b>3"],["s:Andøy","i:andøy","_10#46-51","opennlp/p:NE","cnx/l:Andøy","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","mate/l:andøy","mate/p:NE","xip/p:NOUN","xip/l:Andøy","<>:xip/c:NP#46-51$<i>11<b>1","<>:xip/c:NPA#46-51$<i>11<b>2","<>:xip/c:NOUN#46-51$<i>11"],["s:Å","i:å","_11#52-53","<>:s#52-63$<i>14","<>:p#52-63$<i>14","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#52-63$<i>14","tt/p:NE","mate/l:å","mate/p:XY",">:mate/d:PNC$<i>12","xip/p:ADV","xip/l:å","<>:xip/c:ADV#52-53$<i>12"],["s:i","i:i","_12#54-55","opennlp/p:VAFIN","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","<:mate/d:PNC$<i>11","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#54-55$<i>13","<>:xip/c:NP#54-55$<i>13<b>1","<>:xip/c:NPA#54-55$<i>13<b>2","<>:xip/c:NOUN#54-55$<i>13<b>3","<:xip/d:NMOD$<i>13"],["s:Lofoten","i:lofoten","_13#56-63","opennlp/p:NN","cnx/l:Lofoten","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","mate/l:lofote","mate/p:NN","mate/m:case:dat","mate/m:number:pl","mate/m:gender:neut","xip/p:NOUN","xip/l:Lofoten","<>:xip/c:NOUN#56-63$<i>14","<>:xip/c:NP#56-63$<i>14<b>1","<>:xip/c:NPA#56-63$<i>14<b>2",">:xip/d:NMOD$<i>12"],["s:Å","i:å","_14#64-65","<>:s#64-74$<i>17","<>:p#64-74$<i>17","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#64-85$<i>20","tt/p:NE","mate/l:å","mate/p:XY",">:mate/d:PNC$<i>15","xip/p:ADV","xip/l:å","<>:xip/c:ADV#64-65$<i>15"],["s:i","i:i","_15#66-67","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","tt/p:FM","mate/l:I","mate/p:XY","<:mate/d:PNC$<i>14","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#66-67$<i>16","<>:xip/c:NP#66-67$<i>16<b>1","<>:xip/c:NPA#66-67$<i>16<b>2","<>:xip/c:NOUN#66-67$<i>16<b>3","<:xip/d:NMOD$<i>16"],["s:Meldal","i:meldal","_16#68-74","opennlp/p:NE","cnx/l:meldal","cnx/p:N","cnx/syn:@NH","tt/p:NN","tt/p:NE","mate/l:meldal","mate/p:NN","xip/p:NOUN","xip/l:Meldal","<>:xip/c:NP#68-74$<i>17<b>1","<>:xip/c:NPA#68-74$<i>17<b>2","<>:xip/c:NOUN#68-74$<i>17",">:xip/d:NMOD$<i>15"],["s:Å","i:å","_17#75-76","<>:s#75-85$<i>20","<>:p#75-85$<i>20","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","tt/p:NE","mate/l:å","mate/p:XY","xip/p:ADV","xip/l:å","<>:xip/c:ADV#75-76$<i>18"],["s:i","i:i","_18#77-78","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#77-78$<i>19","<>:xip/c:NP#77-78$<i>19<b>1","<>:xip/c:NPA#77-78$<i>19<b>2","<>:xip/c:NOUN#77-78$<i>19<b>3","<:xip/d:NMOD$<i>19"],["s:Åfjord","i:åfjord","_19#79-85","opennlp/p:NE","cnx/l:Åfjord","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","tt/p:NN","mate/l:åfjord","mate/p:NE","xip/p:NOUN","xip/l:Åfjord","<>:xip/c:NOUN#79-85$<i>20","<>:xip/c:NP#79-85$<i>20<b>1","<>:xip/c:NPA#79-85$<i>20<b>2",">:xip/d:NMOD$<i>18"]],"layerInfo":"opennlp/p=pos cnx/l=lemma cnx/p=pos cnx/m=msd cnx/c=const tt/p=pos tt/l=lemma mate/l=lemma mate/p=pos mate/m=msd mate/d=dep xip/l=lemma xip/p=pos xip/c=const xip/d=dep","name":"tokens","tokenization":"opennlp#tokens","foundries":"corenlp corenlp/namedentities corenlp/namedentities/ne_dewac_175m_600 corenlp/namedentities corenlp/namedentities/ne_hgc_175m_600 base base/sentences base/paragraphs mate mate/morpho mate/dependency opennlp opennlp/morpho connexor connexor/morpho connexor/syntax connexor/phrase treetagger treetagger/morpho xip xip/morpho xip/constituency xip/dependency"}],"title":"Å (Orte in Norwegen)","corpusID":"WPD"}
\ No newline at end of file
+{"ID":"WPD_AAA.00005","textClass":"freizeit-unterhaltung reisen schrott tabellen","pubDate":"20050328","author":"AHZ,Andreas Fischnaller,0","fields":[{"primaryData":"Å ist der Name mehrerer Orte in Norwegen: Å i Andøy Å i Lofoten Å i Meldal Å i Åfjord"},{"data":[["s:Å","i:å","_0#0-1","-:tokens$<i>20","-:sentences$<i>4","-:paragraphs$<i>4"],["s:ist","i:ist","_1#2-5","opennlp/p:VAFIN","cnx/l:sein","cnx/p:V","cnx/m:IND","cnx/m:PRES","cnx/syn:@MAIN","tt/l:sein","tt/p:VAFIN","mate/l:sein","mate/p:VAFIN","mate/m:number:sg","mate/m:person:3","mate/m:tense:pres","mate/m:mood:ind","<:mate/d:SB$<i>3","<:mate/d:PD$<i>5","xip/p:VERB","xip/l:sein","<>:xip/c:VERB#2-5$<i>2","xip/d:VMAIN","<:xip/d:SUBJ$<i>3"],["s:der","i:der","_2#6-9","opennlp/p:ART","cnx/l:der","cnx/p:DET","cnx/syn:@PREMOD","tt/l:die","tt/p:ART","mate/l:der","mate/p:ART","mate/m:case:nom","mate/m:number:sg","mate/m:gender:masc",">:mate/d:NK$<i>3","xip/p:DET","xip/l:der","<>:xip/c:DET#6-9$<i>3","<>:xip/c:NP#6-14$<i>4",">:xip/d:DETERM$<i>3"],["s:Name","i:name","_3#10-14","opennlp/p:NN","cnx/l:name","cnx/p:N","cnx/syn:@NH","<>:cnx/c:np#10-14$<i>4","tt/l:Name","tt/p:NN","mate/l:name","mate/p:NN","mate/m:case:nom","mate/m:number:sg","mate/m:gender:masc","<:mate/d:NK$<i>2",">:mate/d:SB$<i>1","xip/p:NOUN","xip/l:Name","<>:xip/c:NOUN#10-14$<i>4","<>:xip/c:NPA#10-14$<i>4<b>1","<:xip/d:DETERM$<i>2",">:xip/d:SUBJ$<i>1","<:xip/d:NMOD$<i>5"],["s:mehrerer","i:mehrerer","_4#15-23","opennlp/p:PIAT","cnx/l:mehrere","cnx/p:PRON","cnx/syn:@PREMOD","tt/l:mehrere","tt/p:PIS","mate/l:mehrere","mate/p:PIAT","mate/m:case:gen","mate/m:number:pl","mate/m:gender:masc",">:mate/d:NK$<i>5","xip/p:ADJ","xip/l:mehrere","<>:xip/c:ADJ#15-23$<i>5","<>:xip/c:NP#15-28$<i>6","<>:xip/c:NPA#15-28$<i>6<b>1","<>:xip/c:AP#15-23$<i>5<b>2",">:xip/d:NMOD$<i>5"],["s:Orte","i:orte","_5#24-28","opennlp/p:NN","cnx/l:ort","cnx/p:N","cnx/m:PL","cnx/syn:@NH","<>:cnx/c:np#24-40$<i>8","tt/l:Ort","tt/p:NN","mate/l:ort","mate/p:NN","mate/m:case:gen","mate/m:number:pl","mate/m:gender:masc","<:mate/d:NK$<i>4",">:mate/d:PD$<i>1","<:mate/d:MNR$<i>6","xip/p:NOUN","xip/l:Ort","<>:xip/c:NOUN#24-28$<i>6","<:xip/d:NMOD$<i>4",">:xip/d:NMOD$<i>3"],["s:in","i:in","_6#29-31","opennlp/p:APPR","cnx/l:in","cnx/p:PREP","cnx/syn:@POSTMOD","tt/l:in","tt/p:APPR","mate/l:in","mate/p:APPR",">:mate/d:MNR$<i>5","<:mate/d:NK$<i>7","xip/p:PREP","xip/l:in","<>:xip/c:PREP#29-31$<i>7","<>:xip/c:PP#29-40$<i>8"],["s:Norwegen","i:norwegen","_7#32-40","opennlp/p:NE","corenlp/ne_dewac_175m_600:I-LOC","corenlp/ne_hgc_175m_600:I-LOC","cnx/l:Norwegen","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/l:Norwegen","tt/p:NE","mate/l:norwegen","mate/p:NE","mate/m:case:dat","mate/m:number:sg","mate/m:gender:neut",">:mate/d:NK$<i>6","xip/p:NOUN","xip/l:Norwegen","<>:xip/c:NOUN#32-40$<i>8","<>:xip/c:NP#32-40$<i>8<b>1","<>:xip/c:NPA#32-40$<i>8<b>2","xip/d:LOC"],["s:Å","i:å","_8#42-43","<>:s#42-51$<i>11","<>:p#42-51$<i>11","opennlp/p:VVFIN","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#42-51$<i>11","tt/p:NE","mate/l:å","mate/p:XY","xip/p:ADV","xip/l:å","<>:xip/c:TOP#42-85$<i>20","<>:xip/c:ADV#42-43$<i>9"],["s:i","i:i","_9#44-45","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#44-45$<i>10","<>:xip/c:NP#44-45$<i>10<b>1","<>:xip/c:NPA#44-45$<i>10<b>2","<>:xip/c:NOUN#44-45$<i>10<b>3"],["s:Andøy","i:andøy","_10#46-51","opennlp/p:NE","cnx/l:Andøy","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","mate/l:andøy","mate/p:NE","xip/p:NOUN","xip/l:Andøy","<>:xip/c:NP#46-51$<i>11<b>1","<>:xip/c:NPA#46-51$<i>11<b>2","<>:xip/c:NOUN#46-51$<i>11"],["s:Å","i:å","_11#52-53","<>:s#52-63$<i>14","<>:p#52-63$<i>14","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#52-63$<i>14","tt/p:NE","mate/l:å","mate/p:XY",">:mate/d:PNC$<i>12","xip/p:ADV","xip/l:å","<>:xip/c:ADV#52-53$<i>12"],["s:i","i:i","_12#54-55","opennlp/p:VAFIN","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","<:mate/d:PNC$<i>11","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#54-55$<i>13","<>:xip/c:NP#54-55$<i>13<b>1","<>:xip/c:NPA#54-55$<i>13<b>2","<>:xip/c:NOUN#54-55$<i>13<b>3","<:xip/d:NMOD$<i>13"],["s:Lofoten","i:lofoten","_13#56-63","opennlp/p:NN","cnx/l:Lofoten","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","mate/l:lofote","mate/p:NN","mate/m:case:dat","mate/m:number:pl","mate/m:gender:neut","xip/p:NOUN","xip/l:Lofoten","<>:xip/c:NOUN#56-63$<i>14","<>:xip/c:NP#56-63$<i>14<b>1","<>:xip/c:NPA#56-63$<i>14<b>2",">:xip/d:NMOD$<i>12"],["s:Å","i:å","_14#64-65","<>:s#64-74$<i>17","<>:p#64-74$<i>17","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","<>:cnx/c:np#64-85$<i>20","tt/p:NE","mate/l:å","mate/p:XY",">:mate/d:PNC$<i>15","xip/p:ADV","xip/l:å","<>:xip/c:ADV#64-65$<i>15"],["s:i","i:i","_15#66-67","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","tt/p:FM","mate/l:I","mate/p:XY","<:mate/d:PNC$<i>14","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#66-67$<i>16","<>:xip/c:NP#66-67$<i>16<b>1","<>:xip/c:NPA#66-67$<i>16<b>2","<>:xip/c:NOUN#66-67$<i>16<b>3","<:xip/d:NMOD$<i>16"],["s:Meldal","i:meldal","_16#68-74","opennlp/p:NE","cnx/l:meldal","cnx/p:N","cnx/syn:@NH","tt/p:NN","tt/p:NE","mate/l:meldal","mate/p:NN","xip/p:NOUN","xip/l:Meldal","<>:xip/c:NP#68-74$<i>17<b>1","<>:xip/c:NPA#68-74$<i>17<b>2","<>:xip/c:NOUN#68-74$<i>17",">:xip/d:NMOD$<i>15"],["s:Å","i:å","_17#75-76","<>:s#75-85$<i>20","<>:p#75-85$<i>20","opennlp/p:NE","cnx/l:Å","cnx/p:N","cnx/syn:@PREMOD","tt/p:NE","mate/l:å","mate/p:XY","xip/p:ADV","xip/l:å","<>:xip/c:ADV#75-76$<i>18"],["s:i","i:i","_18#77-78","opennlp/p:APPR","cnx/l:i","cnx/p:N","cnx/syn:@PREMOD","tt/l:i","tt/p:NE","mate/l:I","mate/p:XY","xip/p:SYMBOL","xip/l:i","<>:xip/c:SYMBOL#77-78$<i>19","<>:xip/c:NP#77-78$<i>19<b>1","<>:xip/c:NPA#77-78$<i>19<b>2","<>:xip/c:NOUN#77-78$<i>19<b>3","<:xip/d:NMOD$<i>19"],["s:Åfjord","i:åfjord","_19#79-85","opennlp/p:NE","cnx/l:Åfjord","cnx/p:N","cnx/m:Prop","cnx/syn:@NH","tt/p:NE","tt/p:NN","mate/l:åfjord","mate/p:NE","xip/p:NOUN","xip/l:Åfjord","<>:xip/c:NOUN#79-85$<i>20","<>:xip/c:NP#79-85$<i>20<b>1","<>:xip/c:NPA#79-85$<i>20<b>2",">:xip/d:NMOD$<i>18"]],"layerInfo":"opennlp/p=pos cnx/l=lemma cnx/p=pos cnx/m=msd cnx/c=const tt/p=pos tt/l=lemma mate/l=lemma mate/p=pos mate/m=msd mate/d=dep xip/l=lemma xip/p=pos xip/c=const xip/d=dep","name":"tokens","tokenization":"opennlp#tokens","foundries":"corenlp corenlp/namedentities corenlp/namedentities/ne_dewac_175m_600 corenlp/namedentities corenlp/namedentities/ne_hgc_175m_600 base base/sentences base/paragraphs mate mate/morpho mate/dependency opennlp opennlp/morpho connexor connexor/morpho connexor/syntax connexor/phrase treetagger treetagger/morpho xip xip/morpho xip/constituency xip/dependency"}],"title":"Å (Orte in Norwegen)","corpusID":"WPD"}
