diff --git b/AbsSumAnnotator/example.txt a/AbsSumAnnotator/example.txt
new file mode 100644
index 0000000..ee958cb
--- /dev/null
+++ a/AbsSumAnnotator/example.txt
@@ -0,0 +1,57 @@
+Z warszawskiego parkietu odeszło dotychczas w różny sposób osiemnaście spółek
+
+Pożegnania
+
+Z tabeli notowań Warszawskiej Giełdy Papierów wartościowych zniknęło dotychczas  18 spółek. W dziesięciu przypadkach to zniknięcie było skutkiem fuzji z inną firmą z tej samej branży, w sześciu - całkowitego wycofania akcji spółki z obrotu publicznego. Jedną spółkę z giełdy usunięto za karę, jedna zaś zbankrutowała.
+
+Przy fuzjach akcjonariusze przejmowanej firmy dostali w zamian akcje spółki przejmującej i choć czasem mogli mieć zastrzeżenia co do parytetu wymiany, takie pożegnania nie budziły tylu emocji co ostateczne wycofanie akcji spółek z obrotu publicznego. Na całkowite odejście z parkietu decydują się coraz częściej inwestorzy strategiczni, którzy po przejęciu kontroli nad spółką nie chcą ponosić kosztów utrzymania jej na giełdzie ani ułatwiać konkurencji dostępu do informacji o firmie. Dotychczas w ten sposób z GPW pożegnało się 6 spółek. W tym roku ich liczba może się zwiększyć zważywszy, że już w prawie dwudziestu spółkach inwestorzy strategiczni kontrolują ponad 90 proc. głosów na WZA, a dzięki bessie pozostałe akcje będą mogli odkupić taniej. 
+
+- Bardzo szkoda, że spółka o tak dużej wartości rynkowej opuszcza rynek - komentowali analitycy w lutym 1998 r., gdy amerykański koncern PepsiCo kontrolujący 98,9 proc. akcji Wedla przegłosował na walnym zgromadzeniu akcjonariuszy wycofanie spółki z publicznego obrotu. O swych planach Amerykanie poinformowali co prawda kilka miesięcy wcześniej, ogłaszając w listopadzie 1997 r. publiczne wezwanie do sprzedaży akcji Wedla. 
+
+Nie obyło się przy tym bez skandalu, bo tuż przed ogłoszeniem wezwania z ceną znacznie wyższą od rynkowej, kurs akcji spółki gwałtownie wzrósł. Skłoniło to Komisję Papierów Wartościowych i Giełd (KPWiG), a potem prokuraturę do wszczęcia postępowania w sprawie wykorzystania poufnych informacji. Sprawa toczy się do dziś, ale na razie nikomu nie przedstawiono zarzutów. Mimo sprzeciwu kilku drobnych inwestorów, KPWiG w kwietniu zgodziła się na wycofanie akcji Wedla z obrotu. Na pożegnanie z giełdą spółka musiała jeszcze zapłacić 90 tys. zł kary za niedopełnienie obowiązków informacyjnych (przez kilka miesięcy zarząd z opóźnieniem przekazywał komentarze do raportów finansowych). 
+
+Gorycz rozstania  ze słodyczami
+
+W kwietniu 1998 r. akcje Wedla, które debiutowały w listopadzie 1991 r. (już z PepsiCo jako inwestorem strategicznym), były notowane po GPW po razy ostatni. Wycofanie Wedla z obrotu publicznego zrobiło duże wrażenie na rynku. Nie tylko dlatego, że była to jedna z nielicznych polskich firm z marką znaną także za granicą, a jednocześnie - jedno z pierwszych przedsiębiorstw państwowych wyznaczonych do prywatyzacji (w kwietniu 1990 r.). 
+
+Przede wszystkim było to pierwsze w historii GPW "prawdziwe" pożegnanie spółki z giełdą. Wprawdzie jesienią 1997 r. przestały być notowane akcje Banku Gdańskiego i Polifarbu Wrocław, a latem 1998 r. z tabeli zniknęły akcje Polskiego Banku Rozwoju (PBR), ale te firmy w wyniku przejęć stały się częścią innych giełdowych spółek z tej samej branży. Bank Gdański został przejęty przez BIG, Polifarb Wrocław połączył się z Polifarbem Cieszyn, a PBR został wchłonięty przez BRE Bank, który przedtem stoczył walkę o jego przejęcie. Przeszła ona do historii GPW jako pierwsza tak zacięta międzynarodowa rywalizacja i to o niewielki i nie mający nawet sieci oddziałów bank. Ofertami kupna przebijały się trzy duże instytucje finansowe: krajowy BRE Bank, szwedzki Skandinavska Enskilda Banken i niemiecki Bayerische Landesbank, tocząc wojnę podjazdową na wezwania do sprzedaży akcji PBR. 
+
+W 1998 r. przewidywano, że po wyciągnięciu Wedla z giełdy, PepsiCo będzie mógł bez rozgłosu wyprzedać po kawałku produkcję wedlowskich słodyczy - co zresztą koncern zrobił. Sprawdziły się też prognozy, że wycofanie Wedla z obrotu publicznego zachęci do podobnej taktyki inne spółki, zwłaszcza kontrolowane przez zagranicznych inwestorów, którzy nie potrzebowali pieniędzy z giełdy, a nie mieli ochoty na odkrywanie kart przed konkurencją. Na następne odejście nie trzeba było długo czekać. 
+
+Zakryć karty  przed konkurencją
+
+W 1999 r. z giełdy wycofano pierwszą "od zawsze" prywatną spółkę - słupski DomPlast. To największy w Polsce producent wyrobów z plastiku, którego emisja publiczna w 1994 r., niedługo przed pierwszym załamaniem na warszawskiej giełdzie, cieszyła się ogromnym powodzeniem. W 1995 r. spółka zyskała silnego strategicznego inwestora z zagranicy - był nim największy producent wyrobów plastikowych w USA - Rubbermaid. Już w listopadzie 1995 r. ogłosił on publiczne wezwanie do sprzedaży wszystkich akcji DomPlastu, nie kryjąc od początku, że planuje z czasem wycofać spółkę z giełdy. Wówczas w wezwaniu Rubbermaid kupił 89 proc. akcji DomPlastu. Kolejne 7 proc. odkupił w 1999 r. - i wtedy też zrealizował swój plan. 
+
+Trzecim zagranicznym inwestorem, który zdecydował się na takie postępowanie, był belgijski CBR, kontrolujący cementownię Górażdże. Uchwałę o wycofaniu akcji tej spółki z giełdy przegłosował na nadzwyczajnym walnym zgromadzeniu akcjonariuszy pod koniec września 1999 r. Nie było to zaskoczeniem - już rok wcześniej, ogłaszając pierwsze wezwanie do sprzedaży akcji Górażdży przedstawiciele CBR zapowiadali, że jeśli to będzie możliwe, wycofają spółkę z giełdy. Zarząd wyjaśniał tę decyzję "niedogodnościami wynikającymi z obowiązków informacyjnych, jakim podlegają spółki publiczne" zwłaszcza w sytuacji, gdy Górażdże jako jedyna cementownia na polskiej giełdzie nie mogły utrzymać w tajemnicy przed konkurencją planów strategicznych. 
+
+Dawid i Goliat
+
+Planami strategicznymi nie chciał się też dzielić Polifarb Dębica przejęty przez szwedzki koncern Alcro Beckers, który uznał, że dębicki producent farb nie ma żadnych korzyści ze statusu spółki publicznej. W tym przypadku jednak okazało się, że nie zawsze pożegnanie z giełdą przebiega w takt wyznaczony przez inwestora strategicznego. 
+
+Na przeszkodzie planom Alcro Beckers stanął Raimondo Eggink, doradca inwestycyjny z ABN Amro Asset Management. Występując jako osoba prywatna i drobny akcjonariusz (bo posiadacz zaledwie 165 akcji Polifarbu) sprzeciwił się podjętej w listopadzie 1999 r. decyzji NWZA dębickiej spółki, zaskarżając w sądzie uchwałę o wycofaniu spółki z obrotu publicznego. Eggink argumentował, że i on, i pozostali drobni akcjonariusze zostali pokrzywdzeni, gdyż w wezwaniu "ostatniej szansy" przed wycofaniem spółki z giełdy Alcro Beckers wyznaczył cenę akcji Polifarbu na 57 zł, a więc o 15 zł mniej niż płacił, kupując niedługo przedtem pakiety akcji spółki od skarbu państwa i NFI (po 72 zł). 
+
+Choć sąd oddalił pozew Egginka ze względów formalnych (Holender nie miał wymaganego do zaskarżenia uchwały 1 proc. głosów na WZA) to i tak Polifarb Dębica mogł przejść do historii giełdy jako pierwsza spółka, której akcjonariusz zaskarżył w sądzie uchwałę WZA o wycofaniu z obrotu publicznego i jako pierwsza firma, która pożegnała się z giełdą dopiero ponad 10 miesięcy po podjęciu takiej uchwały. 
+
+Polifarb Dębica zniknął z tabeli giełdowej we wrześniu 2000 roku, ale Raimondo Eggink nie daje za wygraną - odwołał się do Trybunału Konstytucyjnego i liczy, że ten unieważni uchwałę z listopada 1999 r. Natomiast bez większych problemów jesienią 2000 r. z obrotu publicznego zostały wycofane Koszalińskie Zakłady Piwowarskie Brok, przejęte przez niemiecki koncern piwowarski, Holsten, który od czasu wejścia do spółki systematycznie zwiększał nad nią kontrolę. 
+
+Pechowe inwestycje
+
+Drobni akcjonariusze, których często oburzają zaniżone ceny, jakie w wezwaniach do sprzedaży akcji oferują strategiczni inwestorzy, mogli się czuć pokrzywdzeni podczas sfinalizowanego wiosną 2000 r. wycofania z giełdy spółki Zasada. Jako powód tej decyzji podano wysokie koszty i brak korzyści z funkcjonowania Zasady jako spółki publicznej. Jej akcje, wiosną 1995 r. sprzedawane w ofercie publicznej po 10 zł, w ogłoszonej jesienią 1999 r. ofercie odsprzedaży założyciel spółki, Sobiesław Zasada skupował po 2,83 zł. 
+
+Na jeszcze skromniejsze kwoty mogli liczyć akcjonariusze dwóch spółek, które zniknęły z giełdy wbrew własnej woli - Universalu, który jako jedyny na razie wycofany został z publicznego obrotu przez KPWiG oraz jedynego jak dotąd giełdowego bankruta - Polisy, której akcje w ostatnim dniu notowań potaniały do 3 groszy. W jeszcze gorszej sytuacji znaleźli się ci inwestorzy, którzy przegapili szanse na sprzedaż Polisy; majątek zadłużonej spółki wystarczył tylko na pokrycie roszczeń głównych wierzycieli. 
+
+Niewiele zresztą brakowało, aby Universal, który zniknął z tabeli notowań w maju 1999 - z ceną 0,59 zł za akcję na ostatnim notowaniu - był pierwszym bankrutem na GPW. Uratowali go przed tym wierzyciele umarzając w grudniu 1998 r. 40 proc. długu firmy. Ostatecznie, ta ulubiona przez spekulantów spółka (jej akcje, które debiutowały w 1992 r. z ceną 1,05 zł, w szczytowym okresie hossy kosztowały nawet 67 zł) odeszła z giełdy po decyzji KPWiG. Komisja wycofała w 1999 r. Universal z publicznego obrotu karząc go w ten sposób za wielokrotne lekceważenie przepisów o obowiązkach informacyjnych spółek publicznych. 
+
+Lepiej w silnej grupie
+
+Od dwóch lat na warszawskiej giełdzie trwa też konsolidacja kilku branż, m. in. mięsnej i budowlanej, której liderzy po kolei połykali kolejnych konkurentów. 
+
+Wiosną 1999 r. odbyło się ostatnie notowanie akcji Zakładów Mięsnych Koło, które weszły do grupy budowanej przez swojego wiodącego udziałowca - Zakłady Mięsne w Sokołowie i zniknęły z tabeli w 15 miesięcy od debiutu, co na razie jest najkrótszym stażem wśród giełdowych spółek. Dzięki tej uchwalonej jeszcze w 1998 r. (i początkowo oprotestowanej przez skarb państwa) fuzji Sokołów stał się drugą po Animeksie grupą w branży mięsnej. Kilka miesięcy później, jesienią 1999 r. Sokołów zapowiedział dalszą rozbudowę grupy przez fuzje, a w zasadzie przejęcia kolejnych firm swej branży, w tym notowanych na giełdzie Jarosławia i Farmfoodu oraz Mięstaru, który nie był spółką publiczną. Fuzje sfinalizowane w 2000 r. utworzyły z Sokołowa największą grupę przemysłu mięsnego w kraju. 
+
+Podobnie było w branży budowlanej, gdzie całą serię przejęć przeprowadził w krótkim czasie Budimex. W 1999 r. przejął swoje trzy spółki zależne - nie notowany na giełdzie Budimex Warszawa oraz giełdowe Budimex Poznań i Unibud. Fuzje z Budimeksem Poznań i Warszawa udało się sfinalizować jeszcze w 1999 r., natomiast względy formalne opóźniły nieco zakończenie przejęcia Unibudu, którego akcje zniknęły z giełdy na początku 2000 r. Ostatnim z nabytków był przejęty jesienią 2000 r. giełdowy Mostostal Kraków, trzecia spółka, która zniknęła z giełdowej tabeli stając się częścią grupy Budimeksu. Konsolidacja nastąpiła też wśród Narodowych Funduszy Inwestycyjnych, gdzie XI NFI został przejęty przez III NFI (obecnie Jupiter). 
+
+Nie najlepsza koniunktura na GPW i spadek kursów akcji spółek może teraz zachęcać do kolejnych działań konsolidacyjnych. Może też skłaniać inwestorów strategicznych do tańszego skupienia akcji i wycofania kontrolowanych przez siebie spółek z obrotu publicznego, zwłaszcza w tych przypadkach, gdy posiadane przez nich pakiety akcji dają prawie całkowitą kontrolę nad spółką i niemal do zera ograniczają płynność jej obrotu. 
+
+Dla kilku firm wyjście z giełdy to kwestia dokończenia formalności. Takie decyzje podjęli już akcjonariusze WKSM, Bakomy i Nomi, której inwestor strategiczny - holenderska spółka Eijsvogel BV (należąca do brytyjskiej grupy handlowej Kingfisher) uważa, że wycofanie spółki z obrotu publicznego wzmocni jej zdolności konkurencyjne. Choć odejścia oznaczają dla GPW spadek kapitalizacji, to jak twierdzi Mirosław Kachniewski, rzecznik KPWiG, rynek publiczny jest nobilitacją spółek, a nie miejscem, gdzie przetrzymuje się je na siłę. 
+
+Anita Błaszczak
diff --git b/AbsSumAnnotator/pom.xml a/AbsSumAnnotator/pom.xml
new file mode 100644
index 0000000..1f52a23
--- /dev/null
+++ a/AbsSumAnnotator/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>ipipan.atlas</groupId>
+	<artifactId>abssumannotator</artifactId>
+	<version>0.1</version>
+	<name>AbsSumAnnotator</name>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifest>
+							<mainClass>ipipan.atlas.abssumannotator.main.AbsSumAnnotator</mainClass>
+						</manifest>
+					</archive>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.16</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.woodstox</groupId>
+			<artifactId>stax2-api</artifactId>
+			<version>3.1.1</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git b/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/basic/Text.java a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/basic/Text.java
new file mode 100644
index 0000000..50293f7
--- /dev/null
+++ a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/basic/Text.java
@@ -0,0 +1,46 @@
+package pl.waw.ipipan.zil.summarization.abssumannotator.basic;
+
+import java.util.List;
+
+public class Text {
+
+	private String text;
+
+	private List<String> summaries;
+
+	public void setText(String text) {
+		this.text = text;
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public int getTextWordsCount() {
+		return getStringWordCount(text);
+	}
+
+	public int getSummaryWordsCount(int number) {
+		return getStringWordCount(getSummary(number));
+	}
+
+	public static int getStringWordCount(String string) {
+		return string.split("[ ]+").length;
+	}
+
+	public void setSummaries(List<String> summaries) {
+		this.summaries = summaries;
+	}
+
+	public String getSummary(int number) {
+		return summaries.get(number);
+	}
+
+	public List<String> getSummaries() {
+		return summaries;
+	}
+
+	public void setSummary(int summNumber, String sum) {
+		summaries.set(summNumber, sum);
+	}
+}
diff --git b/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/io/SummaryFileIO.java a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/io/SummaryFileIO.java
new file mode 100644
index 0000000..234b4ee
--- /dev/null
+++ a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/io/SummaryFileIO.java
@@ -0,0 +1,137 @@
+package pl.waw.ipipan.zil.summarization.abssumannotator.io;
+
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.abssumannotator.basic.Text;
+import pl.waw.ipipan.zil.summarization.abssumannotator.main.AbsSumAnnotator;
+
+public class SummaryFileIO {
+
+	private static final String SUMMARIES = "#### SUMMARIES ####";
+	private static final String SUMMARY_START = "#### SUMMARY START ####";
+	private static final String SUMMARY_END = "#### SUMMARY END ####";
+
+	private static final Logger logger = Logger.getLogger(SummaryFileIO.class);
+
+	public static boolean saveSummary(File summaryFile, Text text) {
+		logger.info("Saving text with summaries in file: " + summaryFile);
+		BufferedWriter bw = null;
+
+		try {
+			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(summaryFile), "UTF-8"));
+
+			bw.append(text.getText() + "\n");
+			bw.append(SUMMARIES + "\n");
+
+			for (String summary : text.getSummaries())
+				writeSummary(bw, summary);
+
+		} catch (IOException e) {
+			logger.error("Error writing summary: " + e.getLocalizedMessage());
+			return false;
+		} finally {
+			if (bw != null)
+				try {
+					bw.close();
+				} catch (IOException e) {
+					logger.error("Error closing summary file: " + e.getLocalizedMessage());
+					return false;
+				}
+		}
+		return true;
+	}
+
+	private static void writeSummary(BufferedWriter bw, String summary) throws IOException {
+		bw.append(SUMMARY_START + "\n");
+		bw.append(summary + "\n");
+		bw.append(SUMMARY_END + "\n");
+	}
+
+	public static Text loadText(File input) {
+
+		logger.info("Loading text with summaries from file: " + input);
+		BufferedReader br = null;
+
+		Text t = new Text();
+
+		try {
+			br = new BufferedReader(new InputStreamReader(new FileInputStream(input), "UTF-8"));
+			String line = null;
+			StringBuffer fullText = new StringBuffer();
+			List<String> summaries = new ArrayList<String>();
+			while ((line = br.readLine()) != null) {
+				if (line.startsWith(SUMMARIES))
+					summaries = loadSummaries(br);
+				else
+					fullText.append(line + "\n");
+			}
+
+			while (summaries.size() < AbsSumAnnotator.SUMMARIES_COUNT) {
+				summaries.add("");
+			}
+
+			t.setSummaries(summaries);
+			t.setText(fullText.toString());
+
+		} catch (IOException e) {
+			logger.error("Error reading text: " + e.getLocalizedMessage());
+			return null;
+		} finally {
+			try {
+				if (br != null)
+					br.close();
+			} catch (IOException e) {
+				logger.error("Error closing text file: " + e.getLocalizedMessage());
+				return null;
+			}
+		}
+
+		return t;
+	}
+
+	private static List<String> loadSummaries(BufferedReader br) throws IOException {
+
+		List<String> summaries = new ArrayList<String>();
+
+		String summary = null;
+		while ((summary = loadSummary(br)) != null)
+			summaries.add(summary);
+
+		return summaries;
+	}
+
+	private static String loadSummary(BufferedReader br) throws IOException {
+		StringBuffer summary = new StringBuffer();
+
+		String line = null;
+		boolean inside = false;
+		while ((line = br.readLine()) != null) {
+			if (line.startsWith(SUMMARY_END))
+				break;
+
+			if (inside)
+				summary.append(line + "\n");
+
+			if (line.startsWith(SUMMARY_START))
+				inside = true;
+		}
+
+		if (summary.length() == 0 && !inside)
+			return null;
+
+		return summary.toString();
+	}
+
+}
diff --git b/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/AbsSumAnnotator.java a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/AbsSumAnnotator.java
new file mode 100644
index 0000000..a4eecba
--- /dev/null
+++ a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/AbsSumAnnotator.java
@@ -0,0 +1,365 @@
+package pl.waw.ipipan.zil.summarization.abssumannotator.main;
+
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Insets;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JEditorPane;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTabbedPane;
+import javax.swing.JTextArea;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.filechooser.FileFilter;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.abssumannotator.basic.Text;
+import pl.waw.ipipan.zil.summarization.abssumannotator.io.SummaryFileIO;
+
+public class AbsSumAnnotator extends JFrame implements Runnable {
+
+	public static final int SUMMARIES_COUNT = 3;
+
+	private static final String WINDOW_TITLE = "ASE v0.9";
+
+	private static final long serialVersionUID = -3830790411182131318L;
+
+	private static final Logger logger = Logger.getLogger(AbsSumAnnotator.class);
+
+	private static final int TEXT_HEIGTH = 400;
+	private static final int HEIGTH = 600;
+	private static final int WIDTH = 800;
+
+	private JMenuItem save;
+
+	private File currentFile = null;
+	private boolean unsavedChanges = false;
+
+	private JTabbedPane tabbedPane;
+	private JTextArea textPane;
+
+	private float displayFontSize;
+
+	private Text currentText;
+
+	public static void main(String[] args) {
+		if (args.length != 0 && args.length != 1) {
+			logger.error("Wrong usage! Should be: java -jar " + AbsSumAnnotator.class.getSimpleName() + " [input file]");
+			return;
+		}
+		final AbsSumAnnotator summanno = new AbsSumAnnotator();
+		try {
+			SwingUtilities.invokeAndWait(summanno);
+		} catch (Exception e) {
+			logger.error("Error starting application: " + e.getLocalizedMessage());
+			e.printStackTrace();
+			return;
+		}
+
+		if (args.length == 1) {
+			final File input = new File(args[0]);
+			if (input.exists()) {
+				SwingUtilities.invokeLater(new Runnable() {
+					@Override
+					public void run() {
+						summanno.loadFile(input);
+					}
+				});
+			} else {
+				logger.error("Input file: " + input + " doesn't exist!");
+			}
+		}
+	}
+
+	@Override
+	public void run() {
+		displayFontSize = loadDisplayFontSize();
+
+		textPane = new JTextArea();
+		textPane.setEditable(false);
+		textPane.setLineWrap(true);
+		textPane.setWrapStyleWord(true);
+		textPane.setMargin(new Insets(10, 10, 10, 10));
+
+		tabbedPane = new JTabbedPane();
+
+		JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
+		splitPane.setTopComponent(new JScrollPane(textPane, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
+		        JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));
+		splitPane.setBottomComponent(tabbedPane);
+		splitPane.setDividerLocation(TEXT_HEIGTH);
+		this.getContentPane().add(splitPane);
+
+		this.setTitle(WINDOW_TITLE);
+		this.createMenu();
+		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		this.addWindowListener(new MainWindowListener());
+		this.setSize(WIDTH, HEIGTH);
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		this.setLocation((screenSize.width - WIDTH) / 2, (screenSize.height - HEIGTH) / 2);
+		this.setVisible(true);
+	}
+
+	private float loadDisplayFontSize() {
+		float result = 12f;
+		logger.info("Using default font size.");
+		return result;
+	}
+
+	private void createMenu() {
+		JMenuBar menu = new JMenuBar();
+		this.setJMenuBar(menu);
+
+		JMenu file = new JMenu("File");
+		menu.add(file);
+
+		JMenuItem open = new JMenuItem("Open");
+		open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
+		open.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestOpenFile();
+			}
+		});
+		file.add(open);
+
+		save = new JMenuItem("Save");
+		save.setEnabled(false);
+		save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
+		save.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestSaveFile();
+			}
+		});
+		file.add(save);
+
+		JMenuItem exit = new JMenuItem("Exit");
+		exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
+		exit.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestExit();
+			}
+		});
+		file.add(exit);
+
+		JMenu other = new JMenu("Other");
+
+		ButtonGroup fontSizeButtonGroup = new ButtonGroup();
+		JMenu setFontSize = new JMenu("Change font size");
+		for (int z = 8; z < 25; z = z + 2) {
+
+			final int currentFontSize = z;
+
+			JRadioButtonMenuItem temp = new JRadioButtonMenuItem(z + "");
+			if (z == displayFontSize) {
+				temp.setSelected(true);
+			}
+			temp.addActionListener(new ActionListener() {
+				@Override
+				public void actionPerformed(ActionEvent ae) {
+					requestSetFontSize(currentFontSize);
+				}
+			});
+			fontSizeButtonGroup.add(temp);
+			setFontSize.add(temp);
+		}
+		other.add(setFontSize);
+
+		JMenuItem help = new JMenuItem("Help");
+		help.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestShowHelp();
+			}
+		});
+		other.add(help);
+
+		menu.add(other);
+	}
+
+	protected void requestSetFontSize(float currentFontSize) {
+		logger.info("Setting font size: " + currentFontSize);
+		displayFontSize = currentFontSize;
+
+		Enumeration<Object> enumer = UIManager.getDefaults().keys();
+		while (enumer.hasMoreElements()) {
+			Object key = enumer.nextElement();
+			Object value = UIManager.get(key);
+			if (value instanceof Font) {
+				UIManager.put(key, new javax.swing.plaf.FontUIResource(((Font) value).deriveFont(currentFontSize)));
+			}
+		}
+		SwingUtilities.updateComponentTreeUI(this);
+	}
+
+	private final void requestShowHelp() {
+		JFrame helpFrame = new JFrame("Help");
+		helpFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+		JEditorPane editorPane = new JEditorPane();
+		editorPane.setEditable(false);
+		URL helpURL = AbsSumAnnotator.class.getClassLoader().getResource("help.html");
+		if (helpURL != null) {
+			try {
+				editorPane.setPage(helpURL);
+			} catch (IOException e) {
+				logger.error("Attempted to read a bad URL: " + helpURL);
+			}
+		} else {
+			logger.error("Couldn't find file: help.html");
+		}
+
+		// Put the editor pane in a scroll pane.
+		JScrollPane editorScrollPane = new JScrollPane(editorPane);
+		editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setPreferredSize(new Dimension(800, 600));
+		editorScrollPane.setMinimumSize(new Dimension(30, 30));
+
+		helpFrame.getContentPane().add(editorScrollPane);
+		helpFrame.pack();
+		helpFrame.setVisible(true);
+	}
+
+	private void requestSaveFile() {
+		boolean success = SummaryFileIO.saveSummary(currentFile, currentText);
+
+		if (success) {
+			unsavedChanges = false;
+			setTitle(WINDOW_TITLE + " file: " + currentFile.getName());
+			save.setEnabled(false);
+		} else {
+			showError("Error saving file: " + currentFile);
+		}
+	}
+
+	private final void requestOpenFile() {
+		if (!askToSaveChanges())
+			return;
+
+		JFileChooser chooser;
+		if (currentFile == null)
+			chooser = new JFileChooser();
+		else
+			chooser = new JFileChooser(currentFile.getParentFile());
+
+		chooser.setFileFilter(new SummannotatorFileFilter());
+		int result = chooser.showOpenDialog(this);
+
+		if (result == JFileChooser.APPROVE_OPTION) {
+			this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+			this.loadFile(chooser.getSelectedFile());
+			this.setCursor(null);
+		}
+	}
+
+	private boolean askToSaveChanges() {
+		if (!unsavedChanges)
+			return true;
+
+		int result = JOptionPane.showOptionDialog(this, "Do you want to save changes?", "Unsaved changes",
+		        JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
+
+		if (result == JOptionPane.CANCEL_OPTION)
+			return false;
+
+		if (result == JOptionPane.YES_OPTION)
+			requestSaveFile();
+
+		return true;
+	}
+
+	private final void requestExit() {
+		if (!askToSaveChanges())
+			return;
+
+		logger.info("Exiting.");
+		System.exit(0);
+	}
+
+	private final void loadFile(File input) {
+		tabbedPane.removeAll();
+
+		if (!input.exists()) {
+			String err = "File " + input + " doesn't exist!";
+			logger.error(err);
+			showError(err);
+			return;
+		}
+
+		currentText = SummaryFileIO.loadText(input);
+		textPane.setText(currentText.getText());
+		textPane.setCaretPosition(0);
+
+		int allWords = currentText.getTextWordsCount();
+		double[] proportions = { 0.2, 0.1, 0.05 };
+		String[] labels = { "20%", "10%", "5%" };
+
+		for (int i = 0; i < 3; i++) {
+			int wordsInSumm = (int) (allWords * proportions[i]);
+			MyTab tab = new MyTab(this, currentText.getSummary(i), i, allWords, wordsInSumm);
+			tabbedPane.addTab(labels[i] + " summary", tab);
+		}
+
+		currentFile = input;
+		setTitle(WINDOW_TITLE + " file: " + currentFile.getName());
+	}
+
+	private void showError(String string) {
+		JOptionPane.showMessageDialog(this, string, "Error", JOptionPane.ERROR_MESSAGE);
+	}
+
+	private final class SummannotatorFileFilter extends FileFilter {
+		@Override
+		public String getDescription() {
+			return "TXT files";
+		}
+
+		@Override
+		public boolean accept(File f) {
+			return f.getName().endsWith(".txt") || f.isDirectory();
+		}
+	}
+
+	private class MainWindowListener extends WindowAdapter {
+
+		@Override
+		public void windowClosing(WindowEvent we) {
+			requestExit();
+		}
+	}
+
+	public void summaryChanged(int summNumber, String text) {
+		unsavedChanges = true;
+		save.setEnabled(true);
+		setTitle(WINDOW_TITLE + " file: " + currentFile.getName() + " " + "[unsaved changes]");
+		currentText.setSummary(summNumber, text);
+	}
+
+}
diff --git b/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/MyTab.java a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/MyTab.java
new file mode 100644
index 0000000..87e7a58
--- /dev/null
+++ a/AbsSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/abssumannotator/main/MyTab.java
@@ -0,0 +1,171 @@
+package pl.waw.ipipan.zil.summarization.abssumannotator.main;
+
+
+import java.awt.BorderLayout;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+
+import javax.swing.AbstractAction;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.KeyStroke;
+import javax.swing.event.UndoableEditEvent;
+import javax.swing.event.UndoableEditListener;
+import javax.swing.undo.CannotRedoException;
+import javax.swing.undo.UndoManager;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.abssumannotator.basic.Text;
+
+public class MyTab extends JPanel {
+
+	private static final long serialVersionUID = 3656861958564714263L;
+
+	private static final Logger logger = Logger.getLogger(MyTab.class);
+
+	private JTextArea textArea;
+	private JProgressBar pb;
+
+	private int targetSegmentCount;
+	private int allSegmentCount;
+
+	private AbsSumAnnotator sumanno;
+	private int summNumber;
+
+	private UndoManager undoManager;
+	private JButton undoButton;
+	private JButton redoButton;
+
+	public MyTab(AbsSumAnnotator absSumAnnotator, String summary, int summNumber, int allSegmentCount,
+			int targetSegmentCount) {
+
+		this.sumanno = absSumAnnotator;
+		this.summNumber = summNumber;
+
+		this.targetSegmentCount = targetSegmentCount;
+		this.allSegmentCount = allSegmentCount;
+
+		textArea = new JTextArea(summary);
+		textArea.setLineWrap(true);
+		textArea.setWrapStyleWord(true);
+		textArea.setMargin(new Insets(10, 10, 10, 10));
+
+		undoManager = new UndoManager();
+		UndoAction undoAction = new UndoAction();
+		RedoAction redoAction = new RedoAction();
+		undoButton = new JButton(undoAction);
+		redoButton = new JButton(redoAction);
+
+		textArea.getDocument().addUndoableEditListener(new UndoableEditListener() {
+			@Override
+			public void undoableEditHappened(UndoableEditEvent e) {
+				undoManager.addEdit(e.getEdit());
+				summaryChanged(false);
+				updateButtons();
+			}
+		});
+
+		this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
+				KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_MASK), "undo");
+		this.getActionMap().put("undo", undoAction);
+		this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
+				KeyStroke.getKeyStroke(KeyEvent.VK_Y, KeyEvent.CTRL_MASK), "redo");
+		this.getActionMap().put("redo", redoAction);
+
+		JScrollPane textAreaScrollPane = new JScrollPane(textArea);
+
+		pb = new JProgressBar(0, targetSegmentCount);
+		JLabel all = new JLabel("Words in text: " + allSegmentCount);
+		JLabel summ = new JLabel("Words in summary: " + targetSegmentCount);
+
+		JPanel bottomLeftPanel = new JPanel();
+		bottomLeftPanel.setLayout(new BoxLayout(bottomLeftPanel, BoxLayout.Y_AXIS));
+		bottomLeftPanel.add(pb);
+		bottomLeftPanel.add(all);
+		bottomLeftPanel.add(summ);
+		bottomLeftPanel.add(Box.createVerticalStrut(8));
+		bottomLeftPanel.add(undoButton);
+		bottomLeftPanel.add(Box.createVerticalStrut(3));
+		bottomLeftPanel.add(redoButton);
+
+		this.setLayout(new BorderLayout());
+		this.add(textAreaScrollPane, BorderLayout.CENTER);
+		this.add(bottomLeftPanel, BorderLayout.LINE_START);
+
+		summaryChanged(true);
+		updateButtons();
+	}
+
+	protected void updateButtons() {
+		undoButton.setText(undoManager.getUndoPresentationName() + " (CTRL+Z)");
+		redoButton.setText(undoManager.getRedoPresentationName() + " (CTRL+Y)");
+		undoButton.setEnabled(undoManager.canUndo());
+		redoButton.setEnabled(undoManager.canRedo());
+	}
+
+	private void summaryChanged(boolean quiet) {
+		int chosenWords = Text.getStringWordCount(textArea.getText());
+
+		pb.setValue(chosenWords);
+		pb.setStringPainted(true);
+		if (targetSegmentCount == 0)
+			pb.setString(chosenWords + "/0 = -- %");
+		else
+			pb.setString(chosenWords + "/" + targetSegmentCount + " = " + (100 * chosenWords / targetSegmentCount)
+					+ "%");
+
+		if (!quiet)
+			sumanno.summaryChanged(summNumber, textArea.getText());
+	}
+
+	public String getName() {
+		return (int) (targetSegmentCount * 100.0 / allSegmentCount) + "% summary";
+	}
+
+	private class UndoAction extends AbstractAction {
+
+		private static final long serialVersionUID = 640721327092571644L;
+
+		@Override
+		public void actionPerformed(ActionEvent e) {
+			if (undoManager.canUndo()) {
+				try {
+					undoManager.undo();
+					summaryChanged(false);
+				} catch (CannotRedoException cre) {
+					logger.error("Error when undoing:" + cre.getLocalizedMessage());
+				}
+				updateButtons();
+			}
+		}
+
+	}
+
+	private class RedoAction extends AbstractAction {
+
+		private static final long serialVersionUID = 640721327092571644L;
+
+		@Override
+		public void actionPerformed(ActionEvent e) {
+			if (undoManager.canRedo()) {
+				try {
+					undoManager.redo();
+					summaryChanged(false);
+				} catch (CannotRedoException cre) {
+					logger.error("Error when redoing:" + cre.getLocalizedMessage());
+				}
+				updateButtons();
+			}
+		}
+
+	}
+}
diff --git b/AbsSumAnnotator/src/main/resources/help.html a/AbsSumAnnotator/src/main/resources/help.html
new file mode 100644
index 0000000..5d33597
--- /dev/null
+++ a/AbsSumAnnotator/src/main/resources/help.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Abstract Summary Editor is a program for manual abstract summary creation and edition.</p>
+
+<p>When we open a file in it, int the top pane the original text to summarize is shown.
+In the bottom we can see 3 tabs, each corresponding to a different summary size: 20%, 10% and 5%.
+The summary of given size should be written in the right text area. The left side of the bottom
+pane presents current size of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that it contains all words from the original text).</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. Settings are reset to default after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in raw TXT format, with UTF-8 encoding.</p>
+
+<p>Summaries are appended to the end of text after saving (and separated by special lines). 
+It's better not to try to edit this file manually in normal text editor.</p>
+
+<p>Is the summaries were saved, they are loaded the next time we open the same file.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git b/AbsSumAnnotator/target/classes/help.html a/AbsSumAnnotator/target/classes/help.html
new file mode 100644
index 0000000..5d33597
--- /dev/null
+++ a/AbsSumAnnotator/target/classes/help.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Abstract Summary Editor is a program for manual abstract summary creation and edition.</p>
+
+<p>When we open a file in it, int the top pane the original text to summarize is shown.
+In the bottom we can see 3 tabs, each corresponding to a different summary size: 20%, 10% and 5%.
+The summary of given size should be written in the right text area. The left side of the bottom
+pane presents current size of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that it contains all words from the original text).</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. Settings are reset to default after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in raw TXT format, with UTF-8 encoding.</p>
+
+<p>Summaries are appended to the end of text after saving (and separated by special lines). 
+It's better not to try to edit this file manually in normal text editor.</p>
+
+<p>Is the summaries were saved, they are loaded the next time we open the same file.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git b/ClauseAnnotator/example.xml a/ClauseAnnotator/example.xml
new file mode 100644
index 0000000..01690bb
--- /dev/null
+++ a/ClauseAnnotator/example.xml
@@ -0,0 +1,1586 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DOCUMENT>
+  <S ID="S0">
+    <CLAUSE ID="CLAUSE0">
+      <W ID="W0" LEMMA="przed" POS="prep:inst:nwok">Przed</W>
+      <W ID="W1" LEMMA="rok" POS="subst:pl:inst:m3">laty</W>
+      <W ID="W2" LEMMA="żyć" POS="praet:pl:m1:imperf">żyli</W>
+      <W ID="W3" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W4" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W5" LEMMA="i" POS="conj">i</W>
+      <W ID="W6" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W7" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE1">
+      <W ID="W8" LEMMA="który" POS="adj:pl:nom:m1:pos">którzy</W>
+      <W ID="W9" LEMMA="powtarzać" POS="praet:pl:m1:imperf">powtarzali</W>
+      <W ID="W10" LEMMA="codziennie" POS="adv:pos">codziennie</W>
+      <W ID="W11" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE2">
+      <W ID="W12" LEMMA="-" POS="interp">-</W>
+      <W ID="W13" LEMMA="ach" POS="interj">Ach</W>
+      <W ID="W14" LEMMA="," POS="interp">,</W>
+      <W ID="W15" LEMMA="gdyby" POS="comp">gdyby</W>
+      <W ID="W16" LEMMA="być" POS="aglt:pl:pri:imperf:nwok">śmy</W>
+      <W ID="W17" LEMMA="mieć" POS="praet:pl:m1:imperf">mieli</W>
+      <W ID="W18" LEMMA="dziecko" POS="subst:sg:acc:n">dziecko</W>
+      <W ID="W19" LEMMA="!" POS="interp">!</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE3">
+      <W ID="W20" LEMMA="-" POS="interp">-</W>
+      <W ID="W21" LEMMA="a" POS="conj">a</W>
+      <W ID="W22" LEMMA="dziecko" POS="subst:sg:gen:n">dziecka</W>
+      <W ID="W23" LEMMA="wciąż" POS="adv">wciąż</W>
+      <W ID="W24" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W25" LEMMA="mieć" POS="praet:pl:m1:imperf">mieli</W>
+      <W ID="W26" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S1">
+    <CLAUSE ID="CLAUSE4">
+      <W ID="W27" LEMMA="zdarzyć" POS="praet:sg:n:perf">Zdarzyło</W>
+      <W ID="W28" LEMMA="się" POS="qub">się</W>
+      <W ID="W29" LEMMA="pewny" POS="adj:sg:gen:m3:pos">pewnego</W>
+      <W ID="W30" LEMMA="raz" POS="subst:sg:gen:m3">razu</W>
+      <W ID="W31" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE5">
+      <W ID="W32" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W33" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W34" LEMMA="zażywać" POS="praet:sg:f:imperf">zażywała</W>
+      <W ID="W35" LEMMA="kąpiel" POS="subst:sg:gen:f">kąpieli</W>
+      <W ID="W36" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE6">
+      <W ID="W37" LEMMA="że" POS="comp">że</W>
+      <W ID="W38" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W39" LEMMA="woda" POS="subst:sg:gen:f">wody</W>
+      <W ID="W40" LEMMA="wyskoczyć" POS="praet:sg:f:perf">wyskoczyła</W>
+      <W ID="W41" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W42" LEMMA="brzeg" POS="subst:sg:acc:m3">brzeg</W>
+      <W ID="W43" LEMMA="żaba" POS="subst:sg:nom:f">żaba</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE7">
+      <W ID="W44" LEMMA="i" POS="conj">i</W>
+      <W ID="W45" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W46" LEMMA="ten" POS="adj:pl:acc:n:pos">te</W>
+      <W ID="W47" LEMMA="słowo" POS="subst:pl:acc:n">słowa</W>
+      <W ID="W48" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W49" LEMMA="on" POS="ppron3:sg:gen:f:ter:akc:praep">niej</W>
+      <W ID="W50" LEMMA="przemówić" POS="praet:sg:f:perf">przemówiła</W>
+      <W ID="W51" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE8">
+      <W ID="W52" LEMMA="-" POS="interp">-</W>
+      <W ID="W53" LEMMA="twój" POS="adj:sg:nom:n:pos">Twoje</W>
+      <W ID="W54" LEMMA="pragnienie" POS="subst:sg:nom:n">pragnienie</W>
+      <W ID="W55" LEMMA="spełnić" POS="fin:sg:ter:perf">spełni</W>
+      <W ID="W56" LEMMA="się" POS="qub">się</W>
+      <W ID="W57" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE9">
+      <W ID="W58" LEMMA="nim" POS="comp">nim</W>
+      <W ID="W59" LEMMA="rok" POS="subst:sg:nom:m3">rok</W>
+      <W ID="W60" LEMMA="minąć" POS="fin:sg:ter:perf">minie</W>
+      <W ID="W61" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE10">
+      <W ID="W62" LEMMA="wydać" POS="fin:sg:sec:perf">wydasz</W>
+      <W ID="W63" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W64" LEMMA="świat" POS="subst:sg:acc:m3">świat</W>
+      <W ID="W65" LEMMA="córeczka" POS="subst:sg:acc:f">córeczkę</W>
+      <W ID="W66" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S2">
+    <CLAUSE ID="CLAUSE11">
+      <W ID="W67" LEMMA="i" POS="conj">I</W>
+      <W ID="W68" LEMMA="stać" POS="praet:sg:n:perf">stało</W>
+      <W ID="W69" LEMMA="się" POS="qub">się</W>
+      <W ID="W70" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE12">
+      <W ID="W71" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W72" LEMMA="przepowiedzieć" POS="praet:sg:f:perf">przepowiedziała</W>
+      <W ID="W73" LEMMA="żaba" POS="subst:sg:nom:f">żaba</W>
+      <W ID="W74" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE13">
+      <W ID="W75" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W76" LEMMA="urodzić" POS="praet:sg:f:perf">urodziła</W>
+      <W ID="W77" LEMMA="dziewczynka" POS="subst:sg:acc:f">dziewczynkę</W>
+      <W ID="W78" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W79" LEMMA="urodziwy" POS="adj:sg:acc:f:pos">urodziwą</W>
+      <W ID="W80" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE14">
+      <W ID="W81" LEMMA="że" POS="comp">że</W>
+      <W ID="W82" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W83" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W84" LEMMA="posiadać" POS="praet:sg:m1:imperf">posiadał</W>
+      <W ID="W85" LEMMA="się" POS="qub">się</W>
+      <W ID="W86" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W87" LEMMA="radość" POS="subst:sg:gen:f">radości</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE15">
+      <W ID="W88" LEMMA="i" POS="conj">i</W>
+      <W ID="W89" LEMMA="wydać" POS="praet:sg:m1:perf">wydał</W>
+      <W ID="W90" LEMMA="wspaniały" POS="adj:sg:acc:f:pos">wspaniałą</W>
+      <W ID="W91" LEMMA="uczta" POS="subst:sg:acc:f">ucztę</W>
+      <W ID="W92" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S3">
+    <CLAUSE ID="CLAUSE16">
+      <W ID="W93" LEMMA="zaprosić" POS="praet:sg:m1:perf">Zaprosił</W>
+      <W ID="W94" LEMMA="nie" POS="conj">nie</W>
+      <W ID="W95" LEMMA="tylko" POS="conj">tylko</W>
+      <W ID="W96" LEMMA="krewny" POS="subst:pl:gen:m1">krewnych</W>
+      <W ID="W97" LEMMA="," POS="interp">,</W>
+      <W ID="W98" LEMMA="przyjaciel" POS="subst:pl:gen:m1">przyjaciół</W>
+      <W ID="W99" LEMMA="i" POS="conj">i</W>
+      <W ID="W100" LEMMA="znajomy" POS="subst:pl:gen:m1">znajomych</W>
+      <W ID="W101" LEMMA="," POS="interp">,</W>
+      <W ID="W102" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W103" LEMMA="również" POS="qub">również</W>
+      <W ID="W104" LEMMA="wróżka" POS="subst:pl:nom:f">wróżki</W>
+      <W ID="W105" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE17">
+      <W ID="W106" LEMMA="aby" POS="comp">aby</W>
+      <W ID="W107" LEMMA="sprzyjać" POS="praet:pl:f:imperf">sprzyjały</W>
+      <W ID="W108" LEMMA="dziecki" POS="adjp">dziecku</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE18">
+      <W ID="W109" LEMMA="i" POS="conj">i</W>
+      <W ID="W110" LEMMA="otaczać" POS="praet:pl:m3:imperf">otaczały</W>
+      <W ID="W111" LEMMA="on" POS="ppron3:pl:acc:m3:ter:akc:npraep">je</W>
+      <W ID="W112" LEMMA="opieka" POS="subst:sg:inst:f">opieką</W>
+      <W ID="W113" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S4">
+    <CLAUSE ID="CLAUSE19">
+      <W ID="W114" LEMMA="być" POS="praet:sg:n:imperf">Było</W>
+      <W ID="W115" LEMMA="on" POS="ppron3:pl:gen:m2:ter:akc:npraep">ich</W>
+      <W ID="W116" LEMMA="trzynaście" POS="num:pl:nom:m3:rec">trzynaście</W>
+      <W ID="W117" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W118" LEMMA="cały" POS="adj:sg:loc:n:pos">całym</W>
+      <W ID="W119" LEMMA="królestwo" POS="subst:sg:loc:n">królestwie</W>
+      <W ID="W120" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE20">
+      <W ID="W121" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W122" LEMMA="że" POS="comp">że</W>
+      <W ID="W123" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W124" LEMMA="pałac" POS="subst:sg:loc:m3">pałacu</W>
+      <W ID="W125" LEMMA="posiadać" POS="imps:perf">posiadano</W>
+      <W ID="W126" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W127" LEMMA="dwanaście" POS="num:pl:acc:m3:rec">dwanaście</W>
+      <W ID="W128" LEMMA="złoty" POS="adj:pl:gen:m3:pos">złotych</W>
+      <W ID="W129" LEMMA="talerz" POS="subst:pl:gen:m3">talerzy</W>
+      <W ID="W130" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE21">
+      <W ID="W131" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W132" LEMMA="który" POS="adj:pl:loc:f:pos">których</W>
+      <W ID="W133" LEMMA="mieć" POS="praet:pl:f:imperf">miały</W>
+      <W ID="W134" LEMMA="jeść" POS="inf:imperf">jeść</W>
+      <W ID="W135" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE22" CONTINUE="CLAUSE20">
+      <W ID="W136" LEMMA="jeden" POS="adj:sg:nom:f:pos">jedna</W>
+      <W ID="W137" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W138" LEMMA="on" POS="ppron3:pl:gen:f:ter:akc:praep">nich</W>
+      <W ID="W139" LEMMA="musieć" POS="praet:sg:f:imperf">musiała</W>
+      <W ID="W140" LEMMA="zostać" POS="inf:perf">zostać</W>
+      <W ID="W141" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W142" LEMMA="dom" POS="subst:sg:loc:m3">domu</W>
+      <W ID="W143" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S5">
+    <CLAUSE ID="CLAUSE23">
+      <W ID="W144" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W145" LEMMA="niezwykle" POS="adv:pos">niezwykle</W>
+      <W ID="W146" LEMMA="wystawny" POS="adj:sg:loc:f:pos">wystawnej</W>
+      <W ID="W147" LEMMA="uczta" POS="subst:sg:loc:f">uczcie</W>
+      <W ID="W148" LEMMA="wróżka" POS="subst:sg:gen:f">wróżki</W>
+      <W ID="W149" LEMMA="począć" POS="praet:pl:m2:perf">poczęły</W>
+      <W ID="W150" LEMMA="składać" POS="inf:imperf">składać</W>
+      <W ID="W151" LEMMA="noworodek" POS="subst:sg:dat:m2">noworodkowi</W>
+      <W ID="W152" LEMMA="dar" POS="subst:pl:acc:m3">dary</W>
+      <W ID="W153" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE24">
+      <W ID="W154" LEMMA="jeden" POS="adj:sg:nom:f:pos">jedna</W>
+      <W ID="W155" LEMMA="obdarzyć" POS="praet:sg:f:perf">obdarzyła</W>
+      <W ID="W156" LEMMA="królewna" POS="subst:sg:acc:f">królewnę</W>
+      <W ID="W157" LEMMA="cnota" POS="subst:pl:inst:f">cnotami</W>
+      <W ID="W158" LEMMA="," POS="interp">,</W>
+      <W ID="W159" LEMMA="drugi" POS="adj:sg:nom:f:pos">druga</W>
+      <W ID="W160" LEMMA="uroda" POS="subst:sg:inst:f">urodą</W>
+      <W ID="W161" LEMMA="," POS="interp">,</W>
+      <W ID="W162" LEMMA="trzeci" POS="adj:sg:nom:f:pos">trzecia</W>
+      <W ID="W163" LEMMA="bogactwo" POS="subst:sg:inst:n">bogactwem</W>
+      <W ID="W164" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE25" CONTINUE="CLAUSE23">
+      <W ID="W165" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W166" LEMMA="że" POS="comp">że</W>
+      <W ID="W167" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W168" LEMMA="koniec" POS="subst:sg:loc:m3">końcu</W>
+      <W ID="W169" LEMMA="otrzymać" POS="praet:sg:f:perf">otrzymała</W>
+      <W ID="W170" LEMMA="on" POS="ppron3:sg:nom:f:ter:akc:npraep">ona</W>
+      <W ID="W171" LEMMA="wszystko" POS="subst:sg:acc:n">wszystko</W>
+      <W ID="W172" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE26">
+      <W ID="W173" LEMMA="co" POS="subst:sg:acc:n">co</W>
+      <W ID="W174" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W175" LEMMA="można" POS="pred">można</W>
+      <W ID="W176" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W177" LEMMA="wymarzyć" POS="inf:perf">wymarzyć</W>
+      <W ID="W178" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W179" LEMMA="ten" POS="adj:sg:loc:m3:pos">tym</W>
+      <W ID="W180" LEMMA="świat" POS="subst:sg:loc:m3">świecie</W>
+      <W ID="W181" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S6">
+    <CLAUSE ID="CLAUSE27">
+      <W ID="W182" LEMMA="kiedy" POS="adv">Kiedy</W>
+      <W ID="W183" LEMMA="jedenaście" POS="num:pl:nom:f:rec">jedenaście</W>
+      <W ID="W184" LEMMA="wróżka" POS="subst:pl:gen:f">wróżek</W>
+      <W ID="W185" LEMMA="poczynić" POS="praet:sg:n:perf">poczyniło</W>
+      <W ID="W186" LEMMA="już" POS="qub">już</W>
+      <W ID="W187" LEMMA="swój" POS="adj:pl:acc:n:pos">swoje</W>
+      <W ID="W188" LEMMA="zaklęcie" POS="subst:pl:acc:n">zaklęcia</W>
+      <W ID="W189" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE28">
+      <W ID="W190" LEMMA="wkroczyć" POS="praet:sg:f:perf">wkroczyła</W>
+      <W ID="W191" LEMMA="nagle" POS="adv:pos">nagle</W>
+      <W ID="W192" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W193" LEMMA="komnata" POS="subst:sg:gen:f">komnaty</W>
+      <W ID="W194" LEMMA="trzynasta" POS="subst:sg:nom:f">trzynasta</W>
+      <W ID="W195" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S7">
+    <CLAUSE ID="CLAUSE29">
+      <W ID="W196" LEMMA="chcieć" POS="praet:sg:f:imperf">Chciała</W>
+      <W ID="W197" LEMMA="się" POS="qub">się</W>
+      <W ID="W198" LEMMA="zemścić" POS="inf:perf">zemścić</W>
+      <W ID="W199" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W200" LEMMA="to" POS="subst:sg:acc:n">to</W>
+      <W ID="W201" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE30">
+      <W ID="W202" LEMMA="że" POS="comp">że</W>
+      <W ID="W203" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W204" LEMMA="zostać" POS="praet:sg:f:perf">została</W>
+      <W ID="W205" LEMMA="zaprosić" POS="ppas:sg:nom:f:perf:aff">zaproszona</W>
+      <W ID="W206" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE31">
+      <W ID="W207" LEMMA="i" POS="conj">i</W>
+      <W ID="W208" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W209" LEMMA="witać" POS="pcon:imperf">witając</W>
+      <W ID="W210" LEMMA="się" POS="qub">się</W>
+      <W ID="W211" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W212" LEMMA="nikt" POS="subst:sg:inst:m1">nikim</W>
+      <W ID="W213" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W214" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W215" LEMMA="nikt" POS="subst:sg:acc:m1">nikogo</W>
+      <W ID="W216" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W217" LEMMA="patrzyć" POS="pcon:imperf">patrząc</W>
+      <W ID="W218" LEMMA="," POS="interp">,</W>
+      <W ID="W219" LEMMA="zawołać" POS="praet:sg:f:perf">zawołała</W>
+      <W ID="W220" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W221" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W222" LEMMA="głos" POS="subst:sg:acc:m3">głos</W>
+      <W ID="W223" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE32">
+      <W ID="W224" LEMMA="-" POS="interp">-</W>
+      <W ID="W225" LEMMA="niechaj" POS="qub">Niechaj</W>
+      <W ID="W226" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W227" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W228" LEMMA="piętnasty" POS="adj:sg:loc:m3:pos">piętnastym</W>
+      <W ID="W229" LEMMA="rok" POS="subst:sg:loc:m3">roku</W>
+      <W ID="W230" LEMMA="życie" POS="subst:sg:gen:n">życia</W>
+      <W ID="W231" LEMMA="ukłuć" POS="fin:sg:ter:perf">ukłuje</W>
+      <W ID="W232" LEMMA="się" POS="qub">się</W>
+      <W ID="W233" LEMMA="wrzeciono" POS="subst:sg:inst:n">wrzecionem</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE33">
+      <W ID="W234" LEMMA="i" POS="conj">i</W>
+      <W ID="W235" LEMMA="umrzeć" POS="fin:sg:ter:perf">umrze</W>
+      <W ID="W236" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S8">
+    <CLAUSE ID="CLAUSE34">
+      <W ID="W237" LEMMA="powiedzieć" POS="pant:perf">Powiedziawszy</W>
+      <W ID="W238" LEMMA="to" POS="pred">to</W>
+      <W ID="W239" LEMMA="zawrócić" POS="praet:sg:f:perf">zawróciła</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE35">
+      <W ID="W240" LEMMA="i" POS="conj">i</W>
+      <W ID="W241" LEMMA="opuścić" POS="praet:sg:f:perf">opuściła</W>
+      <W ID="W242" LEMMA="sala" POS="subst:sg:acc:f">salę</W>
+      <W ID="W243" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S9">
+    <CLAUSE ID="CLAUSE36">
+      <W ID="W244" LEMMA="wszystek" POS="adj:pl:nom:m1:pos">Wszyscy</W>
+      <W ID="W245" LEMMA="obecny" POS="adj:pl:nom:m1:pos">obecni</W>
+      <W ID="W246" LEMMA="stać" POS="praet:pl:m1:imperf">stali</W>
+      <W ID="W247" LEMMA="przerażony" POS="adj:pl:nom:m1:pos">przerażeni</W>
+      <W ID="W248" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE37">
+      <W ID="W249" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W250" LEMMA="wystąpić" POS="praet:sg:f:perf">wystąpiła</W>
+      <W ID="W251" LEMMA="dwunasty" POS="adj:sg:nom:f:pos">dwunasta</W>
+      <W ID="W252" LEMMA="wróżka" POS="subst:sg:nom:f">wróżka</W>
+      <W ID="W253" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE38">
+      <W ID="W254" LEMMA="który" POS="adj:sg:nom:f:pos">która</W>
+      <W ID="W255" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W256" LEMMA="wymienić" POS="praet:sg:f:perf">wymieniła</W>
+      <W ID="W257" LEMMA="jeszcze" POS="qub">jeszcze</W>
+      <W ID="W258" LEMMA="swój" POS="adj:sg:gen:n:pos">swego</W>
+      <W ID="W259" LEMMA="życzenie" POS="subst:sg:gen:n">życzenia</W>
+      <W ID="W260" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE39">
+      <W ID="W261" LEMMA="a" POS="conj">a</W>
+      <W ID="W262" LEMMA="że" POS="comp">że</W>
+      <W ID="W263" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W264" LEMMA="móc" POS="praet:sg:f:imperf">mogła</W>
+      <W ID="W265" LEMMA="odwrócić" POS="inf:perf">odwrócić</W>
+      <W ID="W266" LEMMA="złowrogi" POS="adj:sg:gen:n:pos">złowrogiego</W>
+      <W ID="W267" LEMMA="zaklęcie" POS="subst:sg:gen:n">zaklęcia</W>
+      <W ID="W268" LEMMA="," POS="interp">,</W>
+      <W ID="W269" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W270" LEMMA="on" POS="ppron3:pl:acc:n:ter:akc:npraep">je</W>
+      <W ID="W271" LEMMA="złagodzić" POS="inf:perf">złagodzić</W>
+      <W ID="W272" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE40" CONTINUE="CLAUSE37">
+      <W ID="W273" LEMMA="rzec" POS="praet:sg:f:perf">rzekła</W>
+      <W ID="W274" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE41">
+      <W ID="W275" LEMMA="-" POS="interp">-</W>
+      <W ID="W276" LEMMA="niech" POS="qub">Niech</W>
+      <W ID="W277" LEMMA="to" POS="pred">to</W>
+      <W ID="W278" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W279" LEMMA="być" POS="bedzie:sg:ter:imperf">będzie</W>
+      <W ID="W280" LEMMA="śmierć" POS="subst:sg:nom:f">śmierć</W>
+      <W ID="W281" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE42">
+      <W ID="W282" LEMMA="lecz" POS="conj">lecz</W>
+      <W ID="W283" LEMMA="stuletni" POS="adj:sg:nom:m3:pos">stuletni</W>
+      <W ID="W284" LEMMA="głęboki" POS="adj:sg:nom:m3:pos">głęboki</W>
+      <W ID="W285" LEMMA="sen" POS="subst:sg:nom:m3">sen</W>
+      <W ID="W286" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE43">
+      <W ID="W287" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W288" LEMMA="jaki" POS="adj:sg:nom:m3:pos">jaki</W>
+      <W ID="W289" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W290" LEMMA="zapaść" POS="fin:sg:ter:perf">zapadnie</W>
+      <W ID="W291" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S10">
+    <CLAUSE ID="CLAUSE44">
+      <W ID="W292" LEMMA="król" POS="subst:sg:nom:m1">Król</W>
+      <W ID="W293" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE45">
+      <W ID="W294" LEMMA="który" POS="adj:sg:nom:m1:pos">który</W>
+      <W ID="W295" LEMMA="pragnąć" POS="praet:sg:m1:imperf">pragnął</W>
+      <W ID="W296" LEMMA="uchronić" POS="inf:perf">uchronić</W>
+      <W ID="W297" LEMMA="ukochany" POS="adj:sg:acc:n:pos">ukochane</W>
+      <W ID="W298" LEMMA="dziecko" POS="subst:sg:acc:n">dziecko</W>
+      <W ID="W299" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W300" LEMMA="nieszczęście" POS="subst:sg:inst:n">nieszczęściem</W>
+      <W ID="W301" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE46" CONTINUE="CLAUSE44">
+      <W ID="W302" LEMMA="wydać" POS="praet:sg:m1:perf">wydał</W>
+      <W ID="W303" LEMMA="rozkaz" POS="subst:sg:acc:m3">rozkaz</W>
+      <W ID="W304" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE47">
+      <W ID="W305" LEMMA="aby" POS="comp">aby</W>
+      <W ID="W306" LEMMA="wszystek" POS="adj:pl:nom:n:pos">wszystkie</W>
+      <W ID="W307" LEMMA="wrzeciono" POS="subst:pl:nom:n">wrzeciona</W>
+      <W ID="W308" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W309" LEMMA="cały" POS="adj:sg:loc:m3:pos">całym</W>
+      <W ID="W310" LEMMA="on" POS="ppron3:sg:gen:m1:ter:akc:npraep">jego</W>
+      <W ID="W311" LEMMA="państwo" POS="subst:sg:loc:n">państwie</W>
+      <W ID="W312" LEMMA="zostać" POS="praet:pl:m3:perf">zostały</W>
+      <W ID="W313" LEMMA="spalony" POS="subst:pl:acc:m3">spalone</W>
+      <W ID="W314" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S11">
+    <CLAUSE ID="CLAUSE48">
+      <W ID="W315" LEMMA="dar" POS="subst:pl:nom:m3">Dary</W>
+      <W ID="W316" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE49">
+      <W ID="W317" LEMMA="jaki" POS="adj:pl:inst:f:pos">jakimi</W>
+      <W ID="W318" LEMMA="wróżka" POS="subst:sg:gen:f">wróżki</W>
+      <W ID="W319" LEMMA="obsypać" POS="praet:pl:f:perf">obsypały</W>
+      <W ID="W320" LEMMA="dzieweczka" POS="subst:sg:acc:f">dzieweczkę</W>
+      <W ID="W321" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE50" CONTINUE="CLAUSE48">
+      <W ID="W322" LEMMA="spełnić" POS="praet:pl:f:perf">spełniły</W>
+      <W ID="W323" LEMMA="się" POS="qub">się</W>
+      <W ID="W324" LEMMA="co" POS="comp">co</W>
+      <W ID="W325" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W326" LEMMA="jota" POS="subst:sg:gen:f">joty</W>
+      <W ID="W327" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE51">
+      <W ID="W328" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W329" LEMMA="być" POS="praet:sg:f:imperf">była</W>
+      <W ID="W330" LEMMA="taki" POS="adj:sg:nom:f:pos">taka</W>
+      <W ID="W331" LEMMA="śliczny" POS="adj:sg:nom:f:pos">śliczna</W>
+      <W ID="W332" LEMMA="," POS="interp">,</W>
+      <W ID="W333" LEMMA="cnotliwy" POS="adj:sg:nom:f:pos">cnotliwa</W>
+      <W ID="W334" LEMMA="," POS="interp">,</W>
+      <W ID="W335" LEMMA="milutki" POS="adj:sg:nom:f:pos">milutka</W>
+      <W ID="W336" LEMMA="i" POS="conj">i</W>
+      <W ID="W337" LEMMA="roztropny" POS="adj:sg:nom:f:pos">roztropna</W>
+      <W ID="W338" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE52">
+      <W ID="W339" LEMMA="że" POS="comp">że</W>
+      <W ID="W340" LEMMA="wystarczyć" POS="praet:sg:n:perf">wystarczyło</W>
+      <W ID="W341" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W342" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:praep">nią</W>
+      <W ID="W343" LEMMA="spojrzeć" POS="inf:perf">spojrzeć</W>
+      <W ID="W344" LEMMA="," POS="interp">,</W>
+      <W ID="W345" LEMMA="by" POS="comp">by</W>
+      <W ID="W346" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W347" LEMMA="pokochać" POS="inf:perf">pokochać</W>
+      <W ID="W348" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S12">
+    <CLAUSE ID="CLAUSE53">
+      <W ID="W349" LEMMA="tak" POS="adv:pos">Tak</W>
+      <W ID="W350" LEMMA="się" POS="qub">się</W>
+      <W ID="W351" LEMMA="złożyć" POS="praet:sg:n:perf">złożyło</W>
+      <W ID="W352" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE54">
+      <W ID="W353" LEMMA="że" POS="comp">że</W>
+      <W ID="W354" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W355" LEMMA="dzień" POS="subst:sg:loc:m3">dniu</W>
+      <W ID="W356" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE55">
+      <W ID="W357" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W358" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W359" LEMMA="kończyć" POS="praet:sg:f:imperf">kończyła</W>
+      <W ID="W360" LEMMA="piętnaście" POS="num:pl:acc:m3:rec">piętnaście</W>
+      <W ID="W361" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+      <W ID="W362" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE56">
+      <W ID="W363" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W364" LEMMA="król" POS="subst:sg:gen:m1">króla</W>
+      <W ID="W365" LEMMA="," POS="interp">,</W>
+      <W ID="W366" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W367" LEMMA="królowa" POS="subst:sg:gen:f">królowej</W>
+      <W ID="W368" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W369" LEMMA="być" POS="praet:sg:n:imperf">było</W>
+      <W ID="W370" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W371" LEMMA="dom" POS="subst:sg:loc:m3">domu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE57">
+      <W ID="W372" LEMMA="i" POS="conj">i</W>
+      <W ID="W373" LEMMA="dziewczynka" POS="subst:sg:nom:f">dziewczynka</W>
+      <W ID="W374" LEMMA="zostać" POS="praet:sg:f:perf">została</W>
+      <W ID="W375" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W376" LEMMA="pałac" POS="subst:sg:loc:m3">pałacu</W>
+      <W ID="W377" LEMMA="zupełnie" POS="adv:pos">zupełnie</W>
+      <W ID="W378" LEMMA="sam" POS="adj:sg:nom:f:pos">sama</W>
+      <W ID="W379" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S13">
+    <CLAUSE ID="CLAUSE58">
+      <W ID="W380" LEMMA="chodzić" POS="praet:sg:f:imperf">Chodziła</W>
+      <W ID="W381" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W382" LEMMA="po" POS="prep:loc">po</W>
+      <W ID="W383" LEMMA="cały" POS="adj:sg:loc:m3:pos">całym</W>
+      <W ID="W384" LEMMA="gmach" POS="subst:sg:loc:m3">gmachu</W>
+      <W ID="W385" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE59">
+      <W ID="W386" LEMMA="zaglądać" POS="praet:sg:f:imperf">zaglądała</W>
+      <W ID="W387" LEMMA="swobodnie" POS="adv:pos">swobodnie</W>
+      <W ID="W388" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W389" LEMMA="wszystek" POS="adj:pl:gen:f:pos">wszystkich</W>
+      <W ID="W390" LEMMA="komnata" POS="subst:pl:gen:f">komnat</W>
+      <W ID="W391" LEMMA="i" POS="conj">i</W>
+      <W ID="W392" LEMMA="pokój" POS="subst:pl:gen:m3">pokoi</W>
+      <W ID="W393" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE60">
+      <W ID="W394" LEMMA="aż" POS="comp">aż</W>
+      <W ID="W395" LEMMA="stanąć" POS="praet:sg:f:perf">stanęła</W>
+      <W ID="W396" LEMMA="u" POS="prep:gen">u</W>
+      <W ID="W397" LEMMA="stopa" POS="subst:pl:gen:f">stóp</W>
+      <W ID="W398" LEMMA="stary" POS="adj:sg:gen:f:pos">starej</W>
+      <W ID="W399" LEMMA="wieża" POS="subst:sg:gen:f">wieży</W>
+      <W ID="W400" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S14">
+    <CLAUSE ID="CLAUSE61">
+      <W ID="W401" LEMMA="wspiąć" POS="praet:sg:f:perf">Wspięła</W>
+      <W ID="W402" LEMMA="się" POS="qub">się</W>
+      <W ID="W403" LEMMA="po" POS="prep:loc">po</W>
+      <W ID="W404" LEMMA="kręcić" POS="ppas:pl:loc:n:imperf:aff">kręconych</W>
+      <W ID="W405" LEMMA="schody" POS="subst:pl:loc:n">schodach</W>
+      <W ID="W406" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W407" LEMMA="góra" POS="subst:sg:acc:f">górę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE62">
+      <W ID="W408" LEMMA="i" POS="conj">i</W>
+      <W ID="W409" LEMMA="znaleźć" POS="praet:sg:f:perf">znalazła</W>
+      <W ID="W410" LEMMA="się" POS="qub">się</W>
+      <W ID="W411" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W412" LEMMA="maleńki" POS="adj:pl:inst:n:pos">maleńkimi</W>
+      <W ID="W413" LEMMA="drzwiczki" POS="subst:pl:inst:n">drzwiczkami</W>
+      <W ID="W414" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S15">
+    <CLAUSE ID="CLAUSE63">
+      <W ID="W415" LEMMA="w" POS="prep:loc:nwok">W</W>
+      <W ID="W416" LEMMA="zamek" POS="subst:sg:loc:m3">zamku</W>
+      <W ID="W417" LEMMA="tkwić" POS="praet:sg:m3:imperf">tkwił</W>
+      <W ID="W418" LEMMA="zardzewiały" POS="adj:sg:nom:m3:pos">zardzewiały</W>
+      <W ID="W419" LEMMA="klucz" POS="subst:sg:nom:m3">klucz</W>
+      <W ID="W420" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE64">
+      <W ID="W421" LEMMA="a" POS="conj">a</W>
+      <W ID="W422" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W423" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W424" LEMMA="on" POS="ppron3:sg:acc:m1:ter:nakc:npraep">go</W>
+      <W ID="W425" LEMMA="przekręcić" POS="praet:sg:f:perf">przekręciła</W>
+      <W ID="W426" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE65">
+      <W ID="W427" LEMMA="drzwi" POS="subst:pl:nom:n">drzwi</W>
+      <W ID="W428" LEMMA="otworzyć" POS="praet:pl:n:perf">otworzyły</W>
+      <W ID="W429" LEMMA="się" POS="qub">się</W>
+      <W ID="W430" LEMMA="gwałtownie" POS="adv:pos">gwałtownie</W>
+      <W ID="W431" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE66">
+      <W ID="W432" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W433" LEMMA="izdebka" POS="subst:sg:loc:f">izdebce</W>
+      <W ID="W434" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W435" LEMMA="siedzieć" POS="praet:sg:f:imperf">siedziała</W>
+      <W ID="W436" LEMMA="stary" POS="adj:sg:nom:f:pos">stara</W>
+      <W ID="W437" LEMMA="kobieta" POS="subst:sg:nom:f">kobieta</W>
+      <W ID="W438" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W439" LEMMA="wrzeciono" POS="subst:sg:inst:n">wrzecionem</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE67">
+      <W ID="W440" LEMMA="i" POS="conj">i</W>
+      <W ID="W441" LEMMA="prząść" POS="praet:sg:f:imperf">przędła</W>
+      <W ID="W442" LEMMA="pilnie" POS="adv:pos">pilnie</W>
+      <W ID="W443" LEMMA="Lena" POS="subst:pl:gen:f">len</W>
+      <W ID="W444" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S16">
+    <CLAUSE ID="CLAUSE68">
+      <W ID="W445" LEMMA="-" POS="interp">-</W>
+      <W ID="W446" LEMMA="dzień" POS="subst:sg:nom:m3">Dzień</W>
+      <W ID="W447" LEMMA="dobry" POS="adj:sg:nom:m3:pos">dobry</W>
+      <W ID="W448" LEMMA="," POS="interp">,</W>
+      <W ID="W449" LEMMA="babcia" POS="subst:sg:voc:f">babciu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE69">
+      <W ID="W450" LEMMA="-" POS="interp">-</W>
+      <W ID="W451" LEMMA="rzec" POS="praet:sg:f:perf">rzekła</W>
+      <W ID="W452" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE70">
+      <W ID="W453" LEMMA="-" POS="interp">-</W>
+      <W ID="W454" LEMMA="co" POS="subst:sg:acc:n">co</W>
+      <W ID="W455" LEMMA="ty" POS="ppron12:sg:nom:m1:sec">ty</W>
+      <W ID="W456" LEMMA="tu" POS="adv">tu</W>
+      <W ID="W457" LEMMA="robić" POS="fin:sg:sec:imperf">robisz</W>
+      <W ID="W458" LEMMA="?" POS="interp">?</W>
+    </CLAUSE>
+  </S>
+  <S ID="S17">
+    <CLAUSE ID="CLAUSE71">
+      <W ID="W459" LEMMA="-" POS="interp">-</W>
+      <W ID="W460" LEMMA="prząść" POS="fin:sg:pri:imperf">Przędę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE72">
+      <W ID="W461" LEMMA="-" POS="interp">-</W>
+      <W ID="W462" LEMMA="odeprzeć" POS="praet:sg:f:perf">odparła</W>
+      <W ID="W463" LEMMA="staruszka" POS="subst:sg:nom:f">staruszka</W>
+      <W ID="W464" LEMMA="," POS="interp">,</W>
+      <W ID="W465" LEMMA="kiwać" POS="pcon:imperf">kiwając</W>
+      <W ID="W466" LEMMA="głowa" POS="subst:sg:inst:f">głową</W>
+      <W ID="W467" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S18">
+    <CLAUSE ID="CLAUSE73">
+      <W ID="W468" LEMMA="-" POS="interp">-</W>
+      <W ID="W469" LEMMA="a" POS="conj">A</W>
+      <W ID="W470" LEMMA="co" POS="subst:sg:nom:n">co</W>
+      <W ID="W471" LEMMA="to" POS="pred">to</W>
+      <W ID="W472" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W473" LEMMA="śmiesznie" POS="adv:pos">śmiesznie</W>
+      <W ID="W474" LEMMA="podskakiwać" POS="fin:sg:ter:imperf">podskakuje</W>
+      <W ID="W475" LEMMA="?" POS="interp">?</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE74">
+      <W ID="W476" LEMMA="-" POS="interp">-</W>
+      <W ID="W477" LEMMA="spytać" POS="praet:sg:f:perf">spytała</W>
+      <W ID="W478" LEMMA="dziewczynka" POS="subst:sg:nom:f">dziewczynka</W>
+      <W ID="W479" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE75">
+      <W ID="W480" LEMMA="wziąć" POS="praet:sg:f:perf">wzięła</W>
+      <W ID="W481" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W482" LEMMA="ręka" POS="subst:sg:gen:f">ręki</W>
+      <W ID="W483" LEMMA="wrzeciono" POS="subst:sg:acc:n">wrzeciono</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE76">
+      <W ID="W484" LEMMA="i" POS="conj">i</W>
+      <W ID="W485" LEMMA="chcieć" POS="praet:sg:f:imperf">chciała</W>
+      <W ID="W486" LEMMA="także" POS="qub">także</W>
+      <W ID="W487" LEMMA="prząść" POS="inf:imperf">prząść</W>
+      <W ID="W488" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S19">
+    <CLAUSE ID="CLAUSE77">
+      <W ID="W489" LEMMA="ledwie" POS="qub">Ledwie</W>
+      <W ID="W490" LEMMA="dotknąć" POS="praet:sg:f:perf">dotknęła</W>
+      <W ID="W491" LEMMA="wrzeciono" POS="subst:pl:acc:n">wrzeciona</W>
+      <W ID="W492" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE78">
+      <W ID="W493" LEMMA="spełnić" POS="praet:sg:f:perf">spełniła</W>
+      <W ID="W494" LEMMA="się" POS="qub">się</W>
+      <W ID="W495" LEMMA="zły" POS="adj:sg:nom:f:pos">zła</W>
+      <W ID="W496" LEMMA="przepowiednia" POS="subst:sg:nom:f">przepowiednia</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE79">
+      <W ID="W497" LEMMA="i" POS="conj">i</W>
+      <W ID="W498" LEMMA="ukłuć" POS="praet:sg:f:perf">ukłuła</W>
+      <W ID="W499" LEMMA="się" POS="qub">się</W>
+      <W ID="W500" LEMMA="on" POS="ppron3:sg:inst:m1:ter:akc:npraep">nim</W>
+      <W ID="W501" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W502" LEMMA="palec" POS="subst:sg:acc:m3">palec</W>
+      <W ID="W503" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S20">
+    <CLAUSE ID="CLAUSE80">
+      <W ID="W504" LEMMA="a" POS="conj">A</W>
+      <W ID="W505" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W506" LEMMA="chwila" POS="subst:sg:loc:f">chwili</W>
+      <W ID="W507" LEMMA="gdy" POS="adv">gdy</W>
+      <W ID="W508" LEMMA="poczuć" POS="praet:sg:f:perf">poczuła</W>
+      <W ID="W509" LEMMA="ukłucie" POS="subst:sg:nom:n">ukłucie</W>
+      <W ID="W510" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE81">
+      <W ID="W511" LEMMA="paść" POS="praet:sg:f:perf">padła</W>
+      <W ID="W512" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W513" LEMMA="łóżko" POS="subst:sg:acc:n">łóżko</W>
+      <W ID="W514" LEMMA="stać" POS="pact:sg:acc:n:imperf:aff">stojące</W>
+      <W ID="W515" LEMMA="obok" POS="adv">obok</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE82">
+      <W ID="W516" LEMMA="i" POS="conj">i</W>
+      <W ID="W517" LEMMA="pogrążyć" POS="praet:sg:f:perf">pogrążyła</W>
+      <W ID="W518" LEMMA="się" POS="qub">się</W>
+      <W ID="W519" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W520" LEMMA="głęboki" POS="adj:sg:loc:m3:pos">głębokim</W>
+      <W ID="W521" LEMMA="sen" POS="subst:sg:loc:m3">śnie</W>
+      <W ID="W522" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S21">
+    <CLAUSE ID="CLAUSE83">
+      <W ID="W523" LEMMA="ten" POS="adj:sg:nom:m3:pos">Ten</W>
+      <W ID="W524" LEMMA="sen" POS="subst:sg:nom:m3">sen</W>
+      <W ID="W525" LEMMA="ogarnąć" POS="praet:sg:m3:perf">ogarnął</W>
+      <W ID="W526" LEMMA="również" POS="qub">również</W>
+      <W ID="W527" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W528" LEMMA="pałac" POS="subst:sg:acc:m3">pałac</W>
+      <W ID="W529" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE84">
+      <W ID="W530" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W531" LEMMA="i" POS="conj">i</W>
+      <W ID="W532" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W533" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE85">
+      <W ID="W534" LEMMA="który" POS="adj:pl:nom:m1:pos">którzy</W>
+      <W ID="W535" LEMMA="wrócić" POS="praet:pl:m1:perf">wrócili</W>
+      <W ID="W536" LEMMA="właśnie" POS="qub">właśnie</W>
+      <W ID="W537" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W538" LEMMA="dom" POS="subst:sg:gen:m3">domu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE86">
+      <W ID="W539" LEMMA="i" POS="conj">i</W>
+      <W ID="W540" LEMMA="wkraczać" POS="praet:pl:m1:imperf">wkraczali</W>
+      <W ID="W541" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W542" LEMMA="sala" POS="subst:sg:acc:f">salę</W>
+      <W ID="W543" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE87" CONTINUE="CLAUSE84">
+      <W ID="W544" LEMMA="zasnąć" POS="praet:pl:m1:perf">zasnęli</W>
+      <W ID="W545" LEMMA="wraz" POS="burk">wraz</W>
+      <W ID="W546" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W547" LEMMA="cały" POS="adj:sg:inst:m3:pos">całym</W>
+      <W ID="W548" LEMMA="swój" POS="adj:sg:inst:m3:pos">swym</W>
+      <W ID="W549" LEMMA="dwór" POS="subst:sg:inst:m3">dworem</W>
+      <W ID="W550" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S22">
+    <CLAUSE ID="CLAUSE88">
+      <W ID="W551" LEMMA="zasnąć" POS="praet:pl:m2:perf">Zasnęły</W>
+      <W ID="W552" LEMMA="koń" POS="subst:pl:nom:m2">konie</W>
+      <W ID="W553" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W554" LEMMA="stajnia" POS="subst:sg:loc:f">stajni</W>
+      <W ID="W555" LEMMA="," POS="interp">,</W>
+      <W ID="W556" LEMMA="pies" POS="subst:pl:nom:m2">psy</W>
+      <W ID="W557" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W558" LEMMA="podwórze" POS="subst:sg:loc:n">podwórzu</W>
+      <W ID="W559" LEMMA="," POS="interp">,</W>
+      <W ID="W560" LEMMA="gołąb" POS="subst:pl:nom:m2">gołębie</W>
+      <W ID="W561" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W562" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W563" LEMMA="," POS="interp">,</W>
+      <W ID="W564" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W565" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W566" LEMMA="ściana" POS="subst:sg:loc:f">ścianie</W>
+      <W ID="W567" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE89">
+      <W ID="W568" LEMMA="a" POS="conj">a</W>
+      <W ID="W569" LEMMA="nawet" POS="qub">nawet</W>
+      <W ID="W570" LEMMA="ogień" POS="subst:sg:nom:m3">ogień</W>
+      <W ID="W571" LEMMA="płonąć" POS="pact:sg:acc:m3:imperf:aff">płonący</W>
+      <W ID="W572" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W573" LEMMA="kuchenny" POS="adj:sg:loc:m3:pos">kuchennym</W>
+      <W ID="W574" LEMMA="piec" POS="subst:sg:loc:m3">piecu</W>
+      <W ID="W575" LEMMA="zgasnąć" POS="praet:sg:m1:perf">zgasł</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE90">
+      <W ID="W576" LEMMA="i" POS="conj">i</W>
+      <W ID="W577" LEMMA="usnąć" POS="praet:sg:m1:perf">usnął</W>
+      <W ID="W578" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE91">
+      <W ID="W579" LEMMA="a" POS="conj">a</W>
+      <W ID="W580" LEMMA="pieczeń" POS="subst:sg:nom:f">pieczeń</W>
+      <W ID="W581" LEMMA="przestać" POS="praet:sg:f:perf">przestała</W>
+      <W ID="W582" LEMMA="się" POS="qub">się</W>
+      <W ID="W583" LEMMA="dusić" POS="inf:imperf">dusić</W>
+      <W ID="W584" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE92">
+      <W ID="W585" LEMMA="i" POS="conj">i</W>
+      <W ID="W586" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W587" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE93">
+      <W ID="W588" LEMMA="który" POS="adj:sg:nom:m1:pos">który</W>
+      <W ID="W589" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W590" LEMMA="pociągnąć" POS="inf:perf">pociągnąć</W>
+      <W ID="W591" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W592" LEMMA="włos" POS="subst:pl:acc:m3">włosy</W>
+      <W ID="W593" LEMMA="kuchcik" POS="subst:sg:gen:m1">kuchcika</W>
+      <W ID="W594" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE94">
+      <W ID="W595" LEMMA="bo" POS="comp">bo</W>
+      <W ID="W596" LEMMA="coś" POS="subst:sg:nom:n">coś</W>
+      <W ID="W597" LEMMA="przeskrobać" POS="praet:sg:m1:perf">przeskrobał</W>
+      <W ID="W598" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE95" CONTINUE="CLAUSE93">
+      <W ID="W599" LEMMA="puścić" POS="praet:sg:m1:perf">puścił</W>
+      <W ID="W600" LEMMA="on" POS="ppron3:sg:gen:m1:ter:akc:npraep">jego</W>
+      <W ID="W601" LEMMA="czupryna" POS="subst:sg:acc:f">czuprynę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE96">
+      <W ID="W602" LEMMA="i" POS="conj">i</W>
+      <W ID="W603" LEMMA="zasnąć" POS="praet:sg:m1:perf">zasnął</W>
+      <W ID="W604" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S23">
+    <CLAUSE ID="CLAUSE97">
+      <W ID="W605" LEMMA="i" POS="conj">I</W>
+      <W ID="W606" LEMMA="wiatr" POS="subst:sg:nom:m3">wiatr</W>
+      <W ID="W607" LEMMA="ucichnąć" POS="praet:sg:m3:perf">ucichł</W>
+      <W ID="W608" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE98">
+      <W ID="W609" LEMMA="a" POS="conj">a</W>
+      <W ID="W610" LEMMA="liście" POS="subst:sg:nom:n">liście</W>
+      <W ID="W611" LEMMA="drzewo" POS="subst:pl:gen:n">drzew</W>
+      <W ID="W612" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W613" LEMMA="dziedziniec" POS="subst:sg:loc:m3">dziedzińcu</W>
+      <W ID="W614" LEMMA="znieruchomiać" POS="praet:pl:f:imperf">znieruchomiały</W>
+      <W ID="W615" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S24">
+    <CLAUSE ID="CLAUSE99">
+      <W ID="W616" LEMMA="wokół" POS="prep:gen">Wokół</W>
+      <W ID="W617" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+      <W ID="W618" LEMMA="zacząć" POS="praet:sg:m1:perf">zaczął</W>
+      <W ID="W619" LEMMA="rosnąć" POS="inf:imperf">rosnąć</W>
+      <W ID="W620" LEMMA="cierniowy" POS="adj:sg:acc:m3:pos">cierniowy</W>
+      <W ID="W621" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W622" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE100">
+      <W ID="W623" LEMMA="który" POS="adj:sg:nom:m3:pos">który</W>
+      <W ID="W624" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W625" LEMMA="każdy" POS="adj:sg:inst:m3:pos">każdym</W>
+      <W ID="W626" LEMMA="rok" POS="subst:sg:inst:m3">rokiem</W>
+      <W ID="W627" LEMMA="stawać" POS="praet:sg:m3:imperf">stawał</W>
+      <W ID="W628" LEMMA="się" POS="qub">się</W>
+      <W ID="W629" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W630" LEMMA="wysoki" POS="adj:sg:nom:m3:com">wyższy</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE101">
+      <W ID="W631" LEMMA="i" POS="conj">i</W>
+      <W ID="W632" LEMMA="wreszcie" POS="qub">wreszcie</W>
+      <W ID="W633" LEMMA="zarość" POS="praet:sg:m1:perf:nagl">zarósł</W>
+      <W ID="W634" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W635" LEMMA="pałac" POS="subst:sg:acc:m3">pałac</W>
+      <W ID="W636" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE102">
+      <W ID="W637" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W638" LEMMA="że" POS="comp">że</W>
+      <W ID="W639" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W640" LEMMA="być" POS="praet:sg:n:imperf">było</W>
+      <W ID="W641" LEMMA="on" POS="ppron3:sg:gen:m1:ter:nakc:npraep">go</W>
+      <W ID="W642" LEMMA="już" POS="qub">już</W>
+      <W ID="W643" LEMMA="wcale" POS="adv">wcale</W>
+      <W ID="W644" LEMMA="widać" POS="pred">widać</W>
+      <W ID="W645" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE103">
+      <W ID="W646" LEMMA="zniknąć" POS="praet:sg:f:perf">znikła</W>
+      <W ID="W647" LEMMA="nawet" POS="qub">nawet</W>
+      <W ID="W648" LEMMA="chorągiewka" POS="subst:sg:nom:f">chorągiewka</W>
+      <W ID="W649" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W650" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W651" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S25">
+    <CLAUSE ID="CLAUSE104">
+      <W ID="W652" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W653" LEMMA="kraj" POS="subst:sg:loc:m3">kraju</W>
+      <W ID="W654" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W655" LEMMA="rozejść" POS="praet:sg:f:perf">rozeszła</W>
+      <W ID="W656" LEMMA="się" POS="qub">się</W>
+      <W ID="W657" LEMMA="wieść" POS="subst:sg:nom:f">wieść</W>
+      <W ID="W658" LEMMA="o" POS="prep:loc">o</W>
+      <W ID="W659" LEMMA="śpiący" POS="adj:sg:loc:f:pos">śpiącej</W>
+      <W ID="W660" LEMMA="królewna" POS="subst:sg:loc:f">królewnie</W>
+      <W ID="W661" LEMMA="różyczka" POS="subst:sg:loc:f">Różyczce</W>
+      <W ID="W662" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE105">
+      <W ID="W663" LEMMA="bo" POS="comp">bo</W>
+      <W ID="W664" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W665" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W666" LEMMA="nazywać" POS="imps:imperf">nazywano</W>
+      <W ID="W667" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE106" CONTINUE="CLAUSE104">
+      <W ID="W668" LEMMA="i" POS="conj">i</W>
+      <W ID="W669" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W670" LEMMA="to" POS="qub">to</W>
+      <W ID="W671" LEMMA="jakiś" POS="adj:sg:nom:m1:pos">jakiś</W>
+      <W ID="W672" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W673" LEMMA="przybywać" POS="praet:sg:m1:imperf">przybywał</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE107">
+      <W ID="W674" LEMMA="i" POS="conj">i</W>
+      <W ID="W675" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W676" LEMMA="przedrzeć" POS="inf:perf">przedrzeć</W>
+      <W ID="W677" LEMMA="się" POS="qub">się</W>
+      <W ID="W678" LEMMA="przez" POS="prep:acc:nwok">przez</W>
+      <W ID="W679" LEMMA="gęsty" POS="adj:sg:acc:m3:pos">gęsty</W>
+      <W ID="W680" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W681" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S26">
+    <CLAUSE ID="CLAUSE108">
+      <W ID="W682" LEMMA="żaden" POS="adj:sg:dat:m1:pos">Żadnemu</W>
+      <W ID="W683" LEMMA="się" POS="qub">się</W>
+      <W ID="W684" LEMMA="to" POS="subst:sg:nom:n">to</W>
+      <W ID="W685" LEMMA="jednak" POS="conj">jednak</W>
+      <W ID="W686" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W687" LEMMA="udać" POS="praet:sg:n:perf">udało</W>
+      <W ID="W688" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE109">
+      <W ID="W689" LEMMA="bowiem" POS="comp">bowiem</W>
+      <W ID="W690" LEMMA="cierń" POS="subst:pl:nom:m3">ciernie</W>
+      <W ID="W691" LEMMA="powstrzymywać" POS="praet:pl:m3:imperf">powstrzymywały</W>
+      <W ID="W692" LEMMA="każdy" POS="adj:sg:gen:m3:pos">każdego</W>
+      <W ID="W693" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE110">
+      <W ID="W694" LEMMA="jakby" POS="comp">jakby</W>
+      <W ID="W695" LEMMA="mieć" POS="praet:pl:f:imperf">miały</W>
+      <W ID="W696" LEMMA="ręka" POS="subst:pl:acc:f">ręce</W>
+      <W ID="W697" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE111" CONTINUE="CLAUSE108">
+      <W ID="W698" LEMMA="i" POS="conj">i</W>
+      <W ID="W699" LEMMA="młodzieniec" POS="subst:pl:nom:m1">młodzieńcy</W>
+      <W ID="W700" LEMMA="," POS="interp">,</W>
+      <W ID="W701" LEMMA="wczepić" POS="ppas:pl:nom:m1:perf:aff">wczepieni</W>
+      <W ID="W702" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W703" LEMMA="on" POS="ppron3:pl:acc:m3:ter:akc:praep">nie</W>
+      <W ID="W704" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE112">
+      <W ID="W705" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W706" LEMMA="móc" POS="praet:pl:m1:imperf">mogli</W>
+      <W ID="W707" LEMMA="się" POS="qub">się</W>
+      <W ID="W708" LEMMA="już" POS="qub">już</W>
+      <W ID="W709" LEMMA="wyzwolić" POS="inf:perf">wyzwolić</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE113">
+      <W ID="W710" LEMMA="i" POS="conj">i</W>
+      <W ID="W711" LEMMA="umierać" POS="praet:pl:m1:imperf">umierali</W>
+      <W ID="W712" LEMMA="żałosny" POS="adj:sg:acc:f:pos">żałosną</W>
+      <W ID="W713" LEMMA="śmierć" POS="subst:sg:inst:f">śmiercią</W>
+      <W ID="W714" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S27">
+    <CLAUSE ID="CLAUSE114">
+      <W ID="W715" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W716" LEMMA="wiele" POS="num:pl:loc:m3:congr">wielu</W>
+      <W ID="W717" LEMMA="," POS="interp">,</W>
+      <W ID="W718" LEMMA="wiele" POS="num:pl:loc:m3:congr">wielu</W>
+      <W ID="W719" LEMMA="rok" POS="subst:pl:loc:m3">latach</W>
+      <W ID="W720" LEMMA="przybyć" POS="praet:sg:m1:perf">przybył</W>
+      <W ID="W721" LEMMA="znów" POS="qub">znów</W>
+      <W ID="W722" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W723" LEMMA="kraj" POS="subst:sg:gen:m3">kraju</W>
+      <W ID="W724" LEMMA="ten" POS="adj:sg:gen:m3:pos">tego</W>
+      <W ID="W725" LEMMA="młody" POS="adj:sg:nom:m1:pos">młody</W>
+      <W ID="W726" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W727" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S28">
+    <CLAUSE ID="CLAUSE115">
+      <W ID="W728" LEMMA="słyszeć" POS="praet:sg:m1:imperf">Słyszał</W>
+      <W ID="W729" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W730" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE116">
+      <W ID="W731" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W732" LEMMA="jakiś" POS="adj:sg:nom:m1:pos">jakiś</W>
+      <W ID="W733" LEMMA="starzec" POS="subst:sg:nom:m1">starzec</W>
+      <W ID="W734" LEMMA="opowiadać" POS="fin:sg:ter:imperf">opowiada</W>
+      <W ID="W735" LEMMA="o" POS="prep:loc">o</W>
+      <W ID="W736" LEMMA="cierniowy" POS="adj:sg:loc:m3:pos">cierniowym</W>
+      <W ID="W737" LEMMA="żywopłot" POS="subst:sg:loc:m3">żywopłocie</W>
+      <W ID="W738" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE117">
+      <W ID="W739" LEMMA="za" POS="prep:inst">za</W>
+      <W ID="W740" LEMMA="który" POS="adj:sg:inst:m3:pos">którym</W>
+      <W ID="W741" LEMMA="ukryć" POS="ppas:sg:nom:m3:perf:aff">ukryty</W>
+      <W ID="W742" LEMMA="być" POS="fin:sg:ter:imperf">jest</W>
+      <W ID="W743" LEMMA="pałac" POS="subst:sg:nom:m3">pałac</W>
+      <W ID="W744" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE118">
+      <W ID="W745" LEMMA="a" POS="conj">a</W>
+      <W ID="W746" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W747" LEMMA="on" POS="ppron3:sg:loc:m3:ter:akc:praep">nim</W>
+      <W ID="W748" LEMMA="od" POS="prep:gen:nwok">od</W>
+      <W ID="W749" LEMMA="sto" POS="num:pl:gen:m3:congr">stu</W>
+      <W ID="W750" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+      <W ID="W751" LEMMA="spać" POS="fin:sg:ter:imperf">śpi</W>
+      <W ID="W752" LEMMA="prześliczny" POS="adj:sg:nom:f:pos">prześliczna</W>
+      <W ID="W753" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W754" LEMMA="," POS="interp">,</W>
+      <W ID="W755" LEMMA="zwać" POS="ppas:sg:nom:f:imperf:aff">zwana</W>
+      <W ID="W756" LEMMA="różyczka" POS="subst:sg:inst:f">Różyczką</W>
+      <W ID="W757" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE119">
+      <W ID="W758" LEMMA="wraz" POS="burk">wraz</W>
+      <W ID="W759" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W760" LEMMA="on" POS="ppron3:sg:inst:f:ter:akc:praep">nią</W>
+      <W ID="W761" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W762" LEMMA="spać" POS="fin:pl:ter:imperf">śpią</W>
+      <W ID="W763" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W764" LEMMA="i" POS="conj">i</W>
+      <W ID="W765" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W766" LEMMA="," POS="interp">,</W>
+      <W ID="W767" LEMMA="i" POS="conj">i</W>
+      <W ID="W768" LEMMA="wszystek" POS="adj:pl:nom:m1:pos">wszyscy</W>
+      <W ID="W769" LEMMA="dworzanin" POS="subst:pl:nom:m1">dworzanie</W>
+      <W ID="W770" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S29">
+    <CLAUSE ID="CLAUSE120">
+      <W ID="W771" LEMMA="od" POS="prep:gen:nwok">Od</W>
+      <W ID="W772" LEMMA="swój" POS="adj:sg:gen:m1:pos">swego</W>
+      <W ID="W773" LEMMA="dziadek" POS="subst:sg:gen:m1">dziadka</W>
+      <W ID="W774" LEMMA="wiedzieć" POS="praet:sg:m1:imperf">wiedział</W>
+      <W ID="W775" LEMMA="również" POS="qub">również</W>
+      <W ID="W776" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE121">
+      <W ID="W777" LEMMA="że" POS="comp">że</W>
+      <W ID="W778" LEMMA="wiele" POS="num:pl:nom:m1:rec">wielu</W>
+      <W ID="W779" LEMMA="już" POS="qub">już</W>
+      <W ID="W780" LEMMA="królewicz" POS="subst:pl:gen:m1">królewiczów</W>
+      <W ID="W781" LEMMA="próbować" POS="praet:sg:n:imperf">próbowało</W>
+      <W ID="W782" LEMMA="przedrzeć" POS="inf:perf">przedrzeć</W>
+      <W ID="W783" LEMMA="się" POS="qub">się</W>
+      <W ID="W784" LEMMA="przez" POS="prep:acc:nwok">przez</W>
+      <W ID="W785" LEMMA="ów" POS="adj:sg:acc:m3:pos">ów</W>
+      <W ID="W786" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W787" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE122">
+      <W ID="W788" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W789" LEMMA="zawiśle" POS="subst:pl:gen:n">zawiśli</W>
+      <W ID="W790" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W791" LEMMA="on" POS="ppron3:sg:loc:m3:ter:akc:praep">nim</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE123">
+      <W ID="W792" LEMMA="i" POS="conj">i</W>
+      <W ID="W793" LEMMA="zginąć" POS="praet:pl:m1:perf">zginęli</W>
+      <W ID="W794" LEMMA="smutny" POS="adj:sg:acc:f:pos">smutną</W>
+      <W ID="W795" LEMMA="śmierć" POS="subst:sg:inst:f">śmiercią</W>
+      <W ID="W796" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S30">
+    <CLAUSE ID="CLAUSE124">
+      <W ID="W797" LEMMA="-" POS="interp">-</W>
+      <W ID="W798" LEMMA="ja" POS="ppron12:sg:nom:m1:pri">Ja</W>
+      <W ID="W799" LEMMA="się" POS="qub">się</W>
+      <W ID="W800" LEMMA="nic" POS="subst:sg:gen:n">niczego</W>
+      <W ID="W801" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W802" LEMMA="bać" POS="fin:sg:pri:imperf">boję</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE125">
+      <W ID="W803" LEMMA="-" POS="interp">-</W>
+      <W ID="W804" LEMMA="rzec" POS="praet:sg:m1:perf">rzekł</W>
+      <W ID="W805" LEMMA="młodzieniec" POS="subst:sg:nom:m1">młodzieniec</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE126">
+      <W ID="W806" LEMMA="-" POS="interp">-</W>
+      <W ID="W807" LEMMA="udać" POS="fin:sg:pri:perf">udam</W>
+      <W ID="W808" LEMMA="się" POS="qub">się</W>
+      <W ID="W809" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W810" LEMMA="zaczarowany" POS="adj:sg:gen:m3:pos">zaczarowanego</W>
+      <W ID="W811" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE127">
+      <W ID="W812" LEMMA="i" POS="conj">i</W>
+      <W ID="W813" LEMMA="zobaczyć" POS="fin:sg:pri:perf">zobaczę</W>
+      <W ID="W814" LEMMA="śliczny" POS="adj:sg:acc:f:pos">śliczną</W>
+      <W ID="W815" LEMMA="różyczka" POS="subst:sg:acc:f">Różyczkę</W>
+      <W ID="W816" LEMMA="!" POS="interp">!</W>
+    </CLAUSE>
+  </S>
+  <S ID="S31">
+    <CLAUSE ID="CLAUSE128">
+      <W ID="W817" LEMMA="poczciwy" POS="adj:sg:nom:m1:pos">Poczciwy</W>
+      <W ID="W818" LEMMA="starzec" POS="subst:sg:nom:m1">starzec</W>
+      <W ID="W819" LEMMA="odradzać" POS="praet:sg:m1:imperf">odradzał</W>
+      <W ID="W820" LEMMA="on" POS="ppron3:sg:dat:m1:ter:nakc:npraep">mu</W>
+      <W ID="W821" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE129">
+      <W ID="W822" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W823" LEMMA="móc" POS="praet:sg:m1:imperf:nagl">mógł</W>
+      <W ID="W824" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE130" CONTINUE="CLAUSE128">
+      <W ID="W825" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W826" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W827" LEMMA="wcale" POS="adv">wcale</W>
+      <W ID="W828" LEMMA="on" POS="ppron3:sg:gen:m1:ter:nakc:npraep">go</W>
+      <W ID="W829" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W830" LEMMA="słuchać" POS="praet:sg:m1:imperf">słuchał</W>
+      <W ID="W831" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S32">
+    <CLAUSE ID="CLAUSE131">
+      <W ID="W832" LEMMA="a" POS="conj">A</W>
+      <W ID="W833" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W834" LEMMA="właśnie" POS="qub">właśnie</W>
+      <W ID="W835" LEMMA="minąć" POS="praet:sg:n:perf">minęło</W>
+      <W ID="W836" LEMMA="sto" POS="num:pl:acc:m3:rec">sto</W>
+      <W ID="W837" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE132">
+      <W ID="W838" LEMMA="i" POS="conj">i</W>
+      <W ID="W839" LEMMA="nadejść" POS="praet:sg:m3:perf">nadszedł</W>
+      <W ID="W840" LEMMA="dzień" POS="subst:sg:nom:m3">dzień</W>
+      <W ID="W841" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE133">
+      <W ID="W842" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W843" LEMMA="który" POS="adj:sg:loc:m3:pos">którym</W>
+      <W ID="W844" LEMMA="śpiący" POS="adj:sg:nom:f:pos">śpiąca</W>
+      <W ID="W845" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W846" LEMMA="mieć" POS="praet:sg:f:imperf">miała</W>
+      <W ID="W847" LEMMA="się" POS="qub">się</W>
+      <W ID="W848" LEMMA="zbudzić" POS="inf:perf">zbudzić</W>
+      <W ID="W849" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S33">
+    <CLAUSE ID="CLAUSE134">
+      <W ID="W850" LEMMA="kiedy" POS="adv">Kiedy</W>
+      <W ID="W851" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W852" LEMMA="zbliżyć" POS="praet:sg:m1:perf">zbliżył</W>
+      <W ID="W853" LEMMA="się" POS="qub">się</W>
+      <W ID="W854" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W855" LEMMA="żywopłot" POS="subst:sg:gen:m3">żywopłotu</W>
+      <W ID="W856" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE135">
+      <W ID="W857" LEMMA="być" POS="praet:sg:m1:imperf">był</W>
+      <W ID="W858" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W859" LEMMA="pokryć" POS="ppas:sg:nom:m1:perf:aff">pokryty</W>
+      <W ID="W860" LEMMA="wielki" POS="subst:pl:inst:m1">wielkimi</W>
+      <W ID="W861" LEMMA="wspaniały" POS="adj:pl:inst:m3:pos">wspaniałymi</W>
+      <W ID="W862" LEMMA="kwiat" POS="subst:pl:inst:m3">kwiatami</W>
+      <W ID="W863" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE136">
+      <W ID="W864" LEMMA="który" POS="adj:pl:nom:m3:pos">które</W>
+      <W ID="W865" LEMMA="sam" POS="adj:pl:nom:f:pos">same</W>
+      <W ID="W866" LEMMA="się" POS="qub">się</W>
+      <W ID="W867" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W868" LEMMA="on" POS="ppron3:sg:inst:m1:ter:akc:praep">nim</W>
+      <W ID="W869" LEMMA="rozstąpić" POS="praet:pl:f:perf">rozstąpiły</W>
+      <W ID="W870" LEMMA="," POS="interp">,</W>
+      <W ID="W871" LEMMA="wpuszczać" POS="pcon:imperf">wpuszczając</W>
+      <W ID="W872" LEMMA="on" POS="ppron3:sg:acc:m1:ter:nakc:npraep">go</W>
+      <W ID="W873" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W874" LEMMA="środek" POS="subst:sg:gen:m3">środka</W>
+      <W ID="W875" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE137">
+      <W ID="W876" LEMMA="a" POS="conj">a</W>
+      <W ID="W877" LEMMA="potem" POS="adv">potem</W>
+      <W ID="W878" LEMMA="zewrzeć" POS="praet:pl:f:perf">zwarły</W>
+      <W ID="W879" LEMMA="się" POS="qub">się</W>
+      <W ID="W880" LEMMA="znowu" POS="qub">znowu</W>
+      <W ID="W881" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W882" LEMMA="gęsty" POS="adj:sg:acc:m3:pos">gęsty</W>
+      <W ID="W883" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W884" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S34">
+    <CLAUSE ID="CLAUSE138">
+      <W ID="W885" LEMMA="na" POS="prep:loc">Na</W>
+      <W ID="W886" LEMMA="dziedziniec" POS="subst:sg:loc:m3">dziedzińcu</W>
+      <W ID="W887" LEMMA="pałacowy" POS="adj:sg:loc:m3:pos">pałacowym</W>
+      <W ID="W888" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W889" LEMMA="ujrzeć" POS="praet:sg:m1:perf">ujrzał</W>
+      <W ID="W890" LEMMA="uśpić" POS="ppas:pl:nom:n:perf:aff">uśpione</W>
+      <W ID="W891" LEMMA="koń" POS="subst:pl:nom:m2">konie</W>
+      <W ID="W892" LEMMA="i" POS="conj">i</W>
+      <W ID="W893" LEMMA="także" POS="qub">także</W>
+      <W ID="W894" LEMMA="pies" POS="subst:pl:nom:m2">psy</W>
+      <W ID="W895" LEMMA="myśliwski" POS="adj:pl:nom:m2:pos">myśliwskie</W>
+      <W ID="W896" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE139">
+      <W ID="W897" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W898" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W899" LEMMA="siedzieć" POS="praet:pl:m3:imperf">siedziały</W>
+      <W ID="W900" LEMMA="Gołąb" POS="subst:pl:acc:m3">gołębie</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE140">
+      <W ID="W901" LEMMA="i" POS="conj">i</W>
+      <W ID="W902" LEMMA="każdy" POS="adj:sg:nom:m1:pos">każdy</W>
+      <W ID="W903" LEMMA="mieć" POS="praet:sg:m1:imperf">miał</W>
+      <W ID="W904" LEMMA="łepek" POS="subst:sg:acc:m3">łepek</W>
+      <W ID="W905" LEMMA="schować" POS="ppas:sg:acc:m3:perf:aff">schowany</W>
+      <W ID="W906" LEMMA="pod" POS="prep:acc:nwok">pod</W>
+      <W ID="W907" LEMMA="skrzydełko" POS="subst:sg:acc:n">skrzydełko</W>
+      <W ID="W908" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S35">
+    <CLAUSE ID="CLAUSE141">
+      <W ID="W909" LEMMA="a" POS="conj">A</W>
+      <W ID="W910" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W911" LEMMA="przekroczyć" POS="praet:sg:m1:perf">przekroczył</W>
+      <W ID="W912" LEMMA="próg" POS="subst:sg:acc:m3">próg</W>
+      <W ID="W913" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+      <W ID="W914" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE142">
+      <W ID="W915" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W916" LEMMA="spała" POS="subst:sg:gen:f">spały</W>
+      <W ID="W917" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W918" LEMMA="ściana" POS="subst:pl:loc:f">ścianach</W>
+      <W ID="W919" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE143">
+      <W ID="W920" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W921" LEMMA="stać" POS="praet:sg:m1:imperf">stał</W>
+      <W ID="W922" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W923" LEMMA="wyciągnąć" POS="ppas:sg:inst:f:perf:aff">wyciągniętą</W>
+      <W ID="W924" LEMMA="ręka" POS="subst:sg:inst:f">ręką</W>
+      <W ID="W925" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE144">
+      <W ID="W926" LEMMA="jakby" POS="comp">jakby</W>
+      <W ID="W927" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W928" LEMMA="chwycić" POS="inf:perf">chwycić</W>
+      <W ID="W929" LEMMA="kuchcik" POS="subst:sg:acc:m1">kuchcika</W>
+      <W ID="W930" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W931" LEMMA="czupryna" POS="subst:sg:acc:f">czuprynę</W>
+      <W ID="W932" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE145" CONTINUE="CLAUSE143">
+      <W ID="W933" LEMMA="a" POS="conj">a</W>
+      <W ID="W934" LEMMA="dziewka" POS="subst:sg:nom:f">dziewka</W>
+      <W ID="W935" LEMMA="kuchenny" POS="adj:sg:nom:f:pos">kuchenna</W>
+      <W ID="W936" LEMMA="siedzieć" POS="praet:sg:f:imperf">siedziała</W>
+      <W ID="W937" LEMMA="," POS="interp">,</W>
+      <W ID="W938" LEMMA="trzymać" POS="pcon:imperf">trzymając</W>
+      <W ID="W939" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W940" LEMMA="kolano" POS="subst:pl:loc:n">kolanach</W>
+      <W ID="W941" LEMMA="czarny" POS="adj:sg:acc:f:pos">czarną</W>
+      <W ID="W942" LEMMA="kura" POS="subst:sg:acc:f">kurę</W>
+      <W ID="W943" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE146">
+      <W ID="W944" LEMMA="który" POS="adj:sg:acc:f:pos">którą</W>
+      <W ID="W945" LEMMA="chcieć" POS="praet:sg:f:imperf">chciała</W>
+      <W ID="W946" LEMMA="oskubać" POS="inf:perf">oskubać</W>
+      <W ID="W947" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S36">
+    <CLAUSE ID="CLAUSE147">
+      <W ID="W948" LEMMA="pójść" POS="praet:sg:m1:perf">Poszedł</W>
+      <W ID="W949" LEMMA="daleko" POS="adv:com">dalej</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE148">
+      <W ID="W950" LEMMA="i" POS="conj">i</W>
+      <W ID="W951" LEMMA="zobaczyć" POS="praet:sg:m1:perf">zobaczył</W>
+      <W ID="W952" LEMMA="wszystek" POS="adj:pl:gen:m1:pos">wszystkich</W>
+      <W ID="W953" LEMMA="dworzanin" POS="subst:pl:gen:m1">dworzan</W>
+      <W ID="W954" LEMMA="spać" POS="pact:pl:gen:m1:imperf:aff">śpiących</W>
+      <W ID="W955" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W956" LEMMA="sala" POS="subst:sg:loc:f">sali</W>
+      <W ID="W957" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE149">
+      <W ID="W958" LEMMA="a" POS="conj">a</W>
+      <W ID="W959" LEMMA="obok" POS="prep:gen">obok</W>
+      <W ID="W960" LEMMA="tron" POS="subst:sg:gen:m3">tronu</W>
+      <W ID="W961" LEMMA="leżeć" POS="praet:pl:m1:imperf">leżeli</W>
+      <W ID="W962" LEMMA="uśpić" POS="ppas:pl:nom:m1:perf:aff">uśpieni</W>
+      <W ID="W963" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W964" LEMMA="i" POS="conj">i</W>
+      <W ID="W965" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W966" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S37">
+    <CLAUSE ID="CLAUSE150">
+      <W ID="W967" LEMMA="królewicz" POS="subst:sg:nom:m1">Królewicz</W>
+      <W ID="W968" LEMMA="iść" POS="praet:sg:m1:imperf">szedł</W>
+      <W ID="W969" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W970" LEMMA="daleko" POS="adv:com">dalej</W>
+      <W ID="W971" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE151">
+      <W ID="W972" LEMMA="a" POS="conj">a</W>
+      <W ID="W973" LEMMA="cisza" POS="subst:sg:nom:f">cisza</W>
+      <W ID="W974" LEMMA="dokoła" POS="adv">dokoła</W>
+      <W ID="W975" LEMMA="być" POS="praet:sg:f:imperf">była</W>
+      <W ID="W976" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W977" LEMMA="głęboki" POS="adj:sg:nom:f:pos">głęboka</W>
+      <W ID="W978" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE152">
+      <W ID="W979" LEMMA="że" POS="comp">że</W>
+      <W ID="W980" LEMMA="słyszeć" POS="praet:sg:m1:imperf">słyszał</W>
+      <W ID="W981" LEMMA="własny" POS="adj:sg:acc:m3:pos">własny</W>
+      <W ID="W982" LEMMA="oddech" POS="subst:sg:acc:m3">oddech</W>
+      <W ID="W983" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE153" CONTINUE="CLAUSE150">
+      <W ID="W984" LEMMA="i" POS="conj">i</W>
+      <W ID="W985" LEMMA="wreszcie" POS="qub">wreszcie</W>
+      <W ID="W986" LEMMA="dotrzeć" POS="praet:sg:m1:perf">dotarł</W>
+      <W ID="W987" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W988" LEMMA="wieża" POS="subst:sg:gen:f">wieży</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE154">
+      <W ID="W989" LEMMA="i" POS="conj">i</W>
+      <W ID="W990" LEMMA="otworzyć" POS="praet:sg:m1:perf">otworzył</W>
+      <W ID="W991" LEMMA="drzwi" POS="subst:pl:acc:n">drzwi</W>
+      <W ID="W992" LEMMA="izdebka" POS="subst:sg:gen:f">izdebki</W>
+      <W ID="W993" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE155">
+      <W ID="W994" LEMMA="gdzie" POS="adv">gdzie</W>
+      <W ID="W995" LEMMA="spać" POS="praet:sg:f:imperf">spała</W>
+      <W ID="W996" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W997" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S38">
+    <CLAUSE ID="CLAUSE156">
+      <W ID="W998" LEMMA="i" POS="conj">I</W>
+      <W ID="W999" LEMMA="ujrzeć" POS="praet:sg:m1:perf">ujrzał</W>
+      <W ID="W1000" LEMMA="dzieweczka" POS="subst:sg:acc:f">dzieweczkę</W>
+      <W ID="W1001" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W1002" LEMMA="piękny" POS="adj:sg:acc:f:pos">piękną</W>
+      <W ID="W1003" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE157">
+      <W ID="W1004" LEMMA="że" POS="comp">że</W>
+      <W ID="W1005" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W1006" LEMMA="móc" POS="praet:sg:m1:imperf:nagl">mógł</W>
+      <W ID="W1007" LEMMA="oderwać" POS="inf:perf">oderwać</W>
+      <W ID="W1008" LEMMA="od" POS="prep:gen:nwok">od</W>
+      <W ID="W1009" LEMMA="on" POS="ppron3:sg:gen:f:ter:akc:praep">niej</W>
+      <W ID="W1010" LEMMA="oko" POS="subst:pl:gen:n">oczu</W>
+      <W ID="W1011" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE158">
+      <W ID="W1012" LEMMA="pochylić" POS="praet:sg:m1:perf">pochylił</W>
+      <W ID="W1013" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE159">
+      <W ID="W1014" LEMMA="i" POS="conj">i</W>
+      <W ID="W1015" LEMMA="pocałować" POS="praet:sg:m1:perf">pocałował</W>
+      <W ID="W1016" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W1017" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S39">
+    <CLAUSE ID="CLAUSE160">
+      <W ID="W1018" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W1019" LEMMA="ten" POS="adj:sg:loc:m3:pos">tym</W>
+      <W ID="W1020" LEMMA="pocałunek" POS="subst:sg:loc:m3">pocałunku</W>
+      <W ID="W1021" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W1022" LEMMA="otworzyć" POS="praet:sg:f:perf">otworzyła</W>
+      <W ID="W1023" LEMMA="oko" POS="subst:pl:acc:n">oczy</W>
+      <W ID="W1024" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE161">
+      <W ID="W1025" LEMMA="zbudzić" POS="praet:sg:f:perf">zbudziła</W>
+      <W ID="W1026" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE162">
+      <W ID="W1027" LEMMA="i" POS="conj">i</W>
+      <W ID="W1028" LEMMA="spojrzeć" POS="praet:sg:f:perf">spojrzała</W>
+      <W ID="W1029" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W1030" LEMMA="on" POS="ppron3:sg:acc:m1:ter:akc:praep">niego</W>
+      <W ID="W1031" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W1032" LEMMA="uroczy" POS="adj:sg:inst:m3:pos">uroczym</W>
+      <W ID="W1033" LEMMA="uśmiech" POS="subst:sg:inst:m3">uśmiechem</W>
+      <W ID="W1034" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S40">
+    <CLAUSE ID="CLAUSE163">
+      <W ID="W1035" LEMMA="zejść" POS="praet:pl:m1:perf">Zeszli</W>
+      <W ID="W1036" LEMMA="potem" POS="adv">potem</W>
+      <W ID="W1037" LEMMA="razem" POS="adv">razem</W>
+      <W ID="W1038" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W1039" LEMMA="dół" POS="subst:sg:acc:m3">dół</W>
+      <W ID="W1040" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE164">
+      <W ID="W1041" LEMMA="a" POS="conj">a</W>
+      <W ID="W1042" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W1043" LEMMA="zbudzić" POS="praet:sg:m1:perf">zbudził</W>
+      <W ID="W1044" LEMMA="się" POS="qub">się</W>
+      <W ID="W1045" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W1046" LEMMA="," POS="interp">,</W>
+      <W ID="W1047" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W1048" LEMMA="i" POS="conj">i</W>
+      <W ID="W1049" LEMMA="cały" POS="adj:sg:nom:m3:pos">cały</W>
+      <W ID="W1050" LEMMA="dwór" POS="subst:sg:nom:m3">dwór</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE165">
+      <W ID="W1051" LEMMA="i" POS="conj">i</W>
+      <W ID="W1052" LEMMA="jeden" POS="adj:pl:nom:m1:pos">jedni</W>
+      <W ID="W1053" LEMMA="patrzyć" POS="praet:pl:m1:imperf">patrzyli</W>
+      <W ID="W1054" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1055" LEMMA="drugi" POS="adj:pl:loc:m3:pos">drugich</W>
+      <W ID="W1056" LEMMA="z" POS="prep:inst:wok">ze</W>
+      <W ID="W1057" LEMMA="zdumienie" POS="subst:sg:inst:n">zdumieniem</W>
+      <W ID="W1058" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S41">
+    <CLAUSE ID="CLAUSE166">
+      <W ID="W1059" LEMMA="koń" POS="subst:pl:nom:m2">Konie</W>
+      <W ID="W1060" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1061" LEMMA="podwórko" POS="subst:sg:loc:n">podwórku</W>
+      <W ID="W1062" LEMMA="podnieść" POS="praet:pl:m2:perf">podniosły</W>
+      <W ID="W1063" LEMMA="się" POS="qub">się</W>
+      <W ID="W1064" LEMMA="potrząsać" POS="pcon:imperf">potrząsając</W>
+      <W ID="W1065" LEMMA="grzywa" POS="subst:pl:inst:f">grzywami</W>
+      <W ID="W1066" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE167">
+      <W ID="W1067" LEMMA="pies" POS="subst:pl:acc:m2">psy</W>
+      <W ID="W1068" LEMMA="myślwskie" POS="ign">myślwskie</W>
+      <W ID="W1069" LEMMA="jąć" POS="praet:pl:m2:perf">jęły</W>
+      <W ID="W1070" LEMMA="skakać" POS="inf:imperf">skakać</W>
+      <W ID="W1071" LEMMA="i" POS="conj">i</W>
+      <W ID="W1072" LEMMA="machać" POS="inf:imperf">machać</W>
+      <W ID="W1073" LEMMA="ogon" POS="subst:pl:inst:m3">ogonami</W>
+      <W ID="W1074" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE168">
+      <W ID="W1075" LEMMA="gołąb" POS="subst:pl:nom:m2">gołębie</W>
+      <W ID="W1076" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1077" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W1078" LEMMA="wyciągnąć" POS="praet:pl:m2:perf">wyciągnęły</W>
+      <W ID="W1079" LEMMA="główka" POS="subst:pl:nom:f">główki</W>
+      <W ID="W1080" LEMMA="spod" POS="prep:gen:nwok">spod</W>
+      <W ID="W1081" LEMMA="skrzydełko" POS="subst:pl:gen:n">skrzydełek</W>
+      <W ID="W1082" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE169">
+      <W ID="W1083" LEMMA="rozejrzeć" POS="praet:pl:f:perf">rozejrzały</W>
+      <W ID="W1084" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE170">
+      <W ID="W1085" LEMMA="i" POS="conj">i</W>
+      <W ID="W1086" LEMMA="pofrunąć" POS="praet:pl:f:perf">pofrunęły</W>
+      <W ID="W1087" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W1088" LEMMA="pole" POS="subst:sg:acc:n">pole</W>
+      <W ID="W1089" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE171">
+      <W ID="W1090" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W1091" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1092" LEMMA="ściana" POS="subst:pl:loc:f">ścianach</W>
+      <W ID="W1093" LEMMA="poruszyć" POS="praet:pl:f:perf">poruszyły</W>
+      <W ID="W1094" LEMMA="się" POS="qub">się</W>
+      <W ID="W1095" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE172">
+      <W ID="W1096" LEMMA="ogień" POS="subst:sg:nom:m3">ogień</W>
+      <W ID="W1097" LEMMA="pod" POS="prep:inst:nwok">pod</W>
+      <W ID="W1098" LEMMA="kuchnia" POS="subst:sg:inst:f">kuchnią</W>
+      <W ID="W1099" LEMMA="zapłonąć" POS="praet:sg:m3:perf">zapłonął</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE173">
+      <W ID="W1100" LEMMA="i" POS="conj">i</W>
+      <W ID="W1101" LEMMA="zacząć" POS="praet:sg:m1:perf">zaczął</W>
+      <W ID="W1102" LEMMA="gotować" POS="inf:imperf">gotować</W>
+      <W ID="W1103" LEMMA="jedzenie" POS="subst:sg:acc:n">jedzenie</W>
+      <W ID="W1104" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE174">
+      <W ID="W1105" LEMMA="pieczeń" POS="subst:sg:nom:f">pieczeń</W>
+      <W ID="W1106" LEMMA="zaskwierczeć" POS="praet:sg:f:perf">zaskwierczała</W>
+      <W ID="W1107" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE175">
+      <W ID="W1108" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W1109" LEMMA="trzepnąć" POS="praet:sg:m1:perf">trzepnął</W>
+      <W ID="W1110" LEMMA="kuchcik" POS="subst:sg:acc:m1">kuchcika</W>
+      <W ID="W1111" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W1112" LEMMA="ucho" POS="subst:sg:acc:n">ucho</W>
+      <W ID="W1113" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE176">
+      <W ID="W1114" LEMMA="a" POS="conj">a</W>
+      <W ID="W1115" LEMMA="dziewka" POS="subst:sg:nom:f">dziewka</W>
+      <W ID="W1116" LEMMA="kuchenny" POS="adj:sg:nom:f:pos">kuchenna</W>
+      <W ID="W1117" LEMMA="oskubać" POS="praet:sg:f:perf">oskubała</W>
+      <W ID="W1118" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W1119" LEMMA="koniec" POS="subst:sg:gen:m3">końca</W>
+      <W ID="W1120" LEMMA="kura" POS="subst:sg:acc:f">kurę</W>
+      <W ID="W1121" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S42">
+    <CLAUSE ID="CLAUSE177">
+      <W ID="W1122" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W1123" LEMMA="co" POS="subst:sg:loc:n">czym</W>
+      <W ID="W1124" LEMMA="odbyć" POS="praet:sg:n:perf">odbyło</W>
+      <W ID="W1125" LEMMA="się" POS="qub">się</W>
+      <W ID="W1126" LEMMA="huczny" POS="adj:sg:nom:n:pos">huczne</W>
+      <W ID="W1127" LEMMA="wesele" POS="subst:sg:nom:n">wesele</W>
+      <W ID="W1128" LEMMA="królewicz" POS="subst:sg:gen:m1">królewicza</W>
+      <W ID="W1129" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W1130" LEMMA="królewna" POS="subst:sg:inst:f">królewną</W>
+      <W ID="W1131" LEMMA="różyczka" POS="subst:sg:inst:f">Różyczką</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE178">
+      <W ID="W1132" LEMMA="i" POS="conj">i</W>
+      <W ID="W1133" LEMMA="oba" POS="numcol:pl:nom:m1:rec">oboje</W>
+      <W ID="W1134" LEMMA="żyć" POS="praet:pl:m1:imperf">żyli</W>
+      <W ID="W1135" LEMMA="długo" POS="adv:pos">długo</W>
+      <W ID="W1136" LEMMA="i" POS="conj">i</W>
+      <W ID="W1137" LEMMA="szczęśliwie" POS="adv:pos">szczęśliwie</W>
+      <W ID="W1138" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+</DOCUMENT>
\ No newline at end of file
diff --git b/ClauseAnnotator/pom.xml a/ClauseAnnotator/pom.xml
new file mode 100644
index 0000000..a089c52
--- /dev/null
+++ a/ClauseAnnotator/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>ipipan.atlas</groupId>
+	<artifactId>clauseannotator</artifactId>
+	<version>0.1</version>
+	<name>Clauseannotator</name>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifest>
+							<mainClass>ipipan.atlas.clauseannotator.main.Clauseannotator</mainClass>
+						</manifest>
+					</archive>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.16</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.woodstox</groupId>
+			<artifactId>stax2-api</artifactId>
+			<version>3.1.1</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Clause.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Clause.java
new file mode 100644
index 0000000..052980f
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Clause.java
@@ -0,0 +1,117 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.basic;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Clause {
+
+	private Sentence sentence;
+	private final List<Word> words = new ArrayList<Word>();
+
+	private Clause cont = null;
+
+	public void add(Word currentWord) {
+		this.words.add(currentWord);
+		currentWord.setClause(this);
+	}
+
+	public void addFirst(Word currentWord) {
+		this.words.add(0, currentWord);
+		currentWord.setClause(this);
+	}
+
+	public List<Word> getWords() {
+		return words;
+	}
+
+	public Sentence getSentence() {
+		return this.sentence;
+	}
+
+	public void setSentence(Sentence sentence) {
+		this.sentence = sentence;
+	}
+
+	public List<Clause> split(Word w) {
+		Clause c1 = new Clause();
+		Clause c2 = new Clause();
+
+		boolean toC1 = true;
+		for (Word word : words) {
+			if (toC1) {
+				if (word.equals(w)) {
+					toC1 = false;
+					c2.add(word);
+				} else {
+					c1.add(word);
+				}
+			} else {
+				c2.add(word);
+			}
+		}
+
+		ArrayList<Clause> l = new ArrayList<Clause>();
+		l.add(c1);
+		l.add(c2);
+		return l;
+	}
+
+	public Clause getContinuedClause() {
+		return cont;
+	}
+
+	public boolean isFirstInSentence() {
+		return this.sentence.getClauses().get(0).equals(this);
+	}
+
+	public boolean isLastInSentence() {
+		return this.sentence.getLastClause().equals(this);
+	}
+
+	public String toTrimmedString(int len) {
+		StringBuffer sb = new StringBuffer();
+		boolean first = true;
+		for (Word w : words)
+			if (first) {
+				sb.append(w.toString());
+				first = false;
+			} else {
+				sb.append(" " + w.toString());
+			}
+
+		String trimmed = sb.toString().substring(0, Math.min(sb.toString().length(), len));
+
+		return sb.toString().length() < len ? trimmed : trimmed + "...";
+	}
+
+	@Override
+	public String toString() {
+		return toTrimmedString(80);
+	}
+
+	public void setContinuedClause(Clause clause) {
+		this.cont = clause;
+	}
+
+	public List<Word> getWordsSequence(Word startWord, Word stopWord) {
+		int start = -1;
+		int stop = -1;
+		for (int i = 0; i < words.size(); i++) {
+			Word w = words.get(i);
+			if (w.equals(startWord)) {
+				start = i;
+			}
+			if (w.equals(stopWord)) {
+				stop = i;
+				break;
+			}
+		}
+
+		return new ArrayList<Word>(this.words.subList(start, stop + 1));
+	}
+
+	public Word getFirstWord() {
+		return this.words.get(0);
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Document.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Document.java
new file mode 100644
index 0000000..74c3a67
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Document.java
@@ -0,0 +1,62 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.basic;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Document {
+
+	private List<Sentence> sentences = new ArrayList<Sentence>();
+
+	public void add(Sentence currentSentence) {
+		this.sentences.add(currentSentence);
+		currentSentence.setDocument(this);
+	}
+
+	public List<Sentence> getSentences() {
+		return sentences;
+	}
+
+	public List<Sentence> getSentenceNeighbourhood(Sentence s) {
+		int pos = -1;
+		for (int i = 0; i < sentences.size(); i++) {
+			if (sentences.get(i).equals(s)) {
+				pos = i;
+				break;
+			}
+		}
+
+		int first = Math.max(0, pos - 1);
+		int last = Math.min(sentences.size() - 1, pos + 1);
+
+		return new ArrayList<Sentence>(sentences.subList(first, last + 1));
+	}
+
+	public void splitSentence(Sentence s, Word selectedWord) {
+		int pos = -1;
+		for (int i = 0; i < sentences.size(); i++) {
+			if (sentences.get(i).equals(s)) {
+				pos = i;
+				break;
+			}
+		}
+		sentences.remove(pos);
+
+		s.splitClause(selectedWord.getClause(), selectedWord);
+		List<Clause> clauses1 = s.getClausesBefore(selectedWord.getClause());
+		List<Clause> clauses2 = new ArrayList<Clause>(s.getClauses());
+		clauses2.removeAll(clauses1);
+
+		Sentence s1 = new Sentence();
+		Sentence s2 = new Sentence();
+		for (Clause c : clauses1)
+			s1.add(c);
+		for (Clause c : clauses2)
+			s2.add(c);
+
+		sentences.add(pos, s1);
+		sentences.add(pos + 1, s2);
+		s1.setDocument(this);
+		s2.setDocument(this);
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Marker.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Marker.java
new file mode 100644
index 0000000..0ad5038
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Marker.java
@@ -0,0 +1,81 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.basic;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Marker {
+
+	private final List<Word> words = new ArrayList<Word>();
+
+	private String nuc = "";
+	private String connect = "";
+	private String type = "";
+
+	public Marker(List<Word> selectedWords) {
+		for (Word w : selectedWords)
+			add(w);
+	}
+
+	public void add(Word w) {
+		this.words.add(w);
+		w.setMarker(this);
+	}
+
+	public Marker(String nuc, String connect) {
+		if (nuc != null)
+			this.nuc = nuc;
+		if (connect != null)
+			setConnect(connect);
+	}
+
+	@Override
+	public String toString() {
+		StringBuffer sb = new StringBuffer();
+		for (Word w : words)
+			sb.append(" " + w.getOrth());
+
+		return sb.substring(1);
+	}
+
+	public Clause getClause() {
+		return this.words.get(0).getClause();
+	}
+
+	public void setNUC(String nuc) {
+		this.nuc = nuc;
+	}
+
+	public String getNUC() {
+		return nuc;
+	}
+
+	public Word getFirstWord() {
+		return words.get(0);
+	}
+
+	public void deleteMe() {
+		for (Word w : words)
+			w.setMarker(null);
+	}
+
+	public List<Word> getWords() {
+		return words;
+	}
+
+	public String getConnect() {
+		return connect;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setConnect(String connect) {
+		this.connect = connect;
+		if (!connect.equals(""))
+			this.type = "ext";
+		else
+			this.type = "int";
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Sentence.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Sentence.java
new file mode 100644
index 0000000..23d7dc7
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Sentence.java
@@ -0,0 +1,100 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.basic;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class Sentence {
+
+	private List<Clause> clauses = new ArrayList<Clause>();
+	private Document document;
+
+	public void add(Clause clause) {
+		this.clauses.add(clause);
+		clause.setSentence(this);
+	}
+
+	public List<Clause> getClauses() {
+		return clauses;
+	}
+
+	public void splitClause(Clause c, Word w) {
+		int pos = -1;
+		for (int i = 0; i < clauses.size(); i++) {
+			if (clauses.get(i).equals(c)) {
+				pos = i;
+				break;
+			}
+		}
+		List<Clause> split = c.split(w);
+		deleteClause(c);
+
+		clauses.addAll(pos, split);
+		for (Clause cl : split) {
+			cl.setSentence(this);
+		}
+	}
+
+	public void mergeClauseWithPrevious(Clause c) {
+		int pos = -1;
+		for (int i = 0; i < clauses.size(); i++) {
+			if (clauses.get(i).equals(c)) {
+				pos = i;
+				break;
+			}
+		}
+		Clause prevClause = clauses.get(pos - 1);
+		for (Word w : c.getWords())
+			prevClause.add(w);
+
+		deleteClause(c);
+	}
+
+	public void mergeClauseWithNext(Clause c) {
+		int pos = -1;
+		for (int i = 0; i < clauses.size(); i++) {
+			if (clauses.get(i).equals(c)) {
+				pos = i;
+				break;
+			}
+		}
+		Clause nextClause = clauses.get(pos + 1);
+		List<Word> words = new ArrayList<Word>(c.getWords());
+		Collections.reverse(words);
+		for (Word w : words)
+			nextClause.addFirst(w);
+
+		deleteClause(c);
+	}
+
+	private void deleteClause(Clause c) {
+		for (Clause clause : clauses)
+			if (c.equals(clause.getContinuedClause()))
+				clause.setContinuedClause(null);
+
+		clauses.remove(c);
+	}
+
+	public List<Clause> getClausesBefore(Clause c) {
+		int pos = 0;
+		for (int i = 0; i < clauses.size(); i++)
+			if (clauses.get(i).equals(c)) {
+				pos = i;
+				break;
+			}
+
+		return new ArrayList<Clause>(clauses.subList(0, pos));
+	}
+
+	public Clause getLastClause() {
+		return clauses.get(clauses.size() - 1);
+	}
+
+	public void setDocument(Document document) {
+		this.document = document;
+	}
+
+	public Document getDocument() {
+		return this.document;
+	}
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Word.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Word.java
new file mode 100644
index 0000000..8e9d70e
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/basic/Word.java
@@ -0,0 +1,76 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.basic;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.main.Clauseannotator;
+
+public class Word {
+
+	private Clause clause = null;
+
+	private String orth = null;
+	private String pos;
+	private String lemma;
+
+	private Marker marker = null;
+
+	public Word(String pos, String lemma) {
+		this.pos = pos;
+		this.lemma = lemma;
+	}
+
+	public void setOrth(String orth) {
+		this.orth = orth;
+	}
+
+	public String toString() {
+		return orth;
+	}
+
+	public String getOrth() {
+		return this.orth;
+	}
+
+	public Clause getClause() {
+		return this.clause;
+	}
+
+	public void setClause(Clause clause) {
+		this.clause = clause;
+	}
+
+	public String getPos() {
+		return this.pos;
+	}
+
+	public String getLemma() {
+		return this.lemma;
+	}
+
+	public boolean isFirstInClause() {
+		return this.clause.getFirstWord().equals(this);
+	}
+
+	public boolean isVerb() {
+		if (Clauseannotator.VERB_POS_REGEXP == null)
+			return false;
+		return pos.matches(Clauseannotator.VERB_POS_REGEXP);
+	}
+
+	public Marker getMarker() {
+		return this.marker;
+	}
+
+	public void setMarker(Marker marker) {
+		this.marker = marker;
+	}
+
+	public boolean isInMiddleOfMarker() {
+		if (marker == null)
+			return false;
+
+		if (marker.getFirstWord().equals(this))
+			return false;
+
+		return true;
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/IdGenerator.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/IdGenerator.java
new file mode 100644
index 0000000..6c732da
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/IdGenerator.java
@@ -0,0 +1,59 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.io;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+
+public class IdGenerator {
+
+	private int nextWordId = 0;
+	private int nextClauseId = 0;
+	private int nextSentenceId = 0;
+	private int nextMarkerId = 0;
+
+	private Map<Word, String> word2Id = new HashMap<Word, String>();
+	private Map<Clause, String> clause2Id = new HashMap<Clause, String>();
+	private Map<Sentence, String> sentence2Id = new HashMap<Sentence, String>();
+	private Map<Marker, String> marker2Id = new HashMap<Marker, String>();
+
+	public String getId(Word w) {
+		if (word2Id.containsKey(w))
+			return word2Id.get(w);
+
+		String newId = "W" + nextWordId++;
+		word2Id.put(w, newId);
+		return newId;
+	}
+
+	public String getId(Marker m) {
+		if (marker2Id.containsKey(m))
+			return marker2Id.get(m);
+
+		String newId = "MARKER" + nextMarkerId++;
+		marker2Id.put(m, newId);
+		return newId;
+	}
+
+	public String getId(Sentence s) {
+		if (sentence2Id.containsKey(s))
+			return sentence2Id.get(s);
+
+		String newId = "S" + nextSentenceId++;
+		sentence2Id.put(s, newId);
+		return newId;
+	}
+
+	public String getId(Clause c) {
+		if (clause2Id.containsKey(c))
+			return clause2Id.get(c);
+
+		String newId = "CLAUSE" + nextClauseId++;
+		clause2Id.put(c, newId);
+		return newId;
+	}
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLReader.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLReader.java
new file mode 100644
index 0000000..954ced3
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLReader.java
@@ -0,0 +1,195 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.io;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.log4j.Logger;
+import org.codehaus.stax2.XMLInputFactory2;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Document;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class XMLReader {
+
+	private static final Logger logger = Logger.getLogger(XMLReader.class);
+
+	private static final XMLInputFactory xif = XMLInputFactory2.newInstance();
+
+	public static String loadText(File input, Document document) {
+		logger.info("Loading text from file: " + input);
+
+		String error = null;
+
+		InputStream is = null;
+		XMLStreamReader sr = null;
+		try {
+			is = new FileInputStream(input);
+			sr = xif.createXMLStreamReader(is);
+
+			Sentence currentSentence = null;
+			Clause currentClause = null;
+			Word currentWord = null;
+			Marker currentMarker = null;
+
+			Map<String, Clause> id2Clause = new HashMap<String, Clause>();
+
+			Map<Clause, String> clause2ContId = new HashMap<Clause, String>();
+
+			while (sr.hasNext()) {
+				sr.next();
+
+				if (sr.isStartElement()) {
+					String name = sr.getName().getLocalPart();
+
+					if (name.equalsIgnoreCase("S")) {
+
+						currentSentence = new Sentence();
+
+						// artificial clause for first-time read
+						currentClause = new Clause();
+
+					} else if (name.equalsIgnoreCase("CLAUSE")) {
+
+						String id = sr.getAttributeValue(null, "ID");
+						String cont = sr.getAttributeValue(null, "CONTINUE");
+
+						if (id == null)
+							throw new Exception("Clause without id in line: " + sr.getLocation().getLineNumber());
+
+						currentClause = new Clause();
+						id2Clause.put(id, currentClause);
+
+						if (cont != null && !cont.equals(""))
+							clause2ContId.put(currentClause, cont);
+
+					} else if (name.equalsIgnoreCase("W")) {
+
+						String pos = sr.getAttributeValue(null, "POS");
+						String lemma = sr.getAttributeValue(null, "LEMMA");
+						if (pos == null)
+							pos = sr.getAttributeValue(null, "pos");
+						if (lemma == null)
+							lemma = sr.getAttributeValue(null, "lemma");
+
+						if (currentWord != null)
+							throw new Exception("Word starting before previous word finished in line: "
+							        + sr.getLocation().getLineNumber());
+
+						currentWord = new Word(pos, lemma);
+
+					} else if (name.equalsIgnoreCase("MARKER")) {
+
+						String nuc = sr.getAttributeValue(null, "NUC");
+						String connect = sr.getAttributeValue(null, "CONNECT");
+
+						currentMarker = new Marker(nuc, connect);
+					}
+
+				} else if (sr.isEndElement()) {
+
+					String name = sr.getName().getLocalPart();
+
+					if (name.equalsIgnoreCase("S")) {
+
+						if (currentSentence == null)
+							throw new Exception("Sentence ending before starting in line: "
+							        + sr.getLocation().getLineNumber());
+
+						// for first-time read
+						if (currentClause != null)
+							currentSentence.add(currentClause);
+
+						document.add(currentSentence);
+						currentSentence = null;
+
+					} else if (name.equalsIgnoreCase("CLAUSE")) {
+
+						currentSentence.add(currentClause);
+						currentClause = null;
+
+					} else if (name.equalsIgnoreCase("W")) {
+
+						if (currentWord == null)
+							throw new Exception("Word ending before starting in line: "
+							        + sr.getLocation().getLineNumber());
+
+						if (currentClause == null)
+							throw new Exception("Word not in a clause in line: " + sr.getLocation().getLineNumber());
+
+						if (currentMarker != null) {
+							currentMarker.add(currentWord);
+						}
+
+						if (currentWord.getPos() == null)
+							throw new Exception("Word without pos attribute in line: "
+							        + sr.getLocation().getLineNumber());
+
+						currentClause.add(currentWord);
+						currentWord = null;
+
+					} else if (name.equalsIgnoreCase("MARKER")) {
+
+						if (currentClause == null)
+							throw new Exception("Marker not in a clause in line: " + sr.getLocation().getLineNumber());
+
+						if (currentMarker == null)
+							throw new Exception("Marker ended before started in line: "
+							        + sr.getLocation().getLineNumber());
+
+						currentMarker = null;
+					}
+
+				} else if (sr.isWhiteSpace()) {
+
+				} else if (sr.isCharacters()) {
+					if (currentWord != null) {
+						if (currentWord.getOrth() != null)
+							throw new Exception("Second word orth in line: " + sr.getLocation().getLineNumber());
+
+						currentWord.setOrth(sr.getText());
+					}
+				}
+			}
+
+			for (Entry<Clause, String> e : clause2ContId.entrySet()) {
+				Clause c = e.getKey();
+				String contId = e.getValue();
+
+				Clause cont = id2Clause.get(contId);
+				if (cont == null)
+					throw new Exception("Clause with id: " + contId + " not found in line: "
+					        + sr.getLocation().getLineNumber());
+
+				c.setContinuedClause(cont);
+			}
+
+		} catch (Exception e) {
+			error = "Error reading file: " + e.getLocalizedMessage();
+
+		} finally {
+			try {
+				if (is != null)
+					is.close();
+				if (sr != null)
+					sr.close();
+			} catch (Exception e) {
+				error = "Error closing file: " + input + " Details: " + e.getLocalizedMessage();
+			}
+		}
+
+		logger.info(document.getSentences().size() + " sentences found.");
+
+		return error;
+	}
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLWriter.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLWriter.java
new file mode 100644
index 0000000..44825d8
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/io/XMLWriter.java
@@ -0,0 +1,184 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.io;
+
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.util.List;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.log4j.Logger;
+import org.codehaus.stax2.XMLOutputFactory2;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class XMLWriter {
+
+	private static final Logger logger = Logger.getLogger(XMLWriter.class);
+	private static final XMLOutputFactory xof = XMLOutputFactory2.newInstance();
+
+	private static final String INDENT = "  ";
+
+	public static boolean saveFile(File targetFile, List<Sentence> sentences) {
+		return saveFile(targetFile, sentences, false, false);		
+	}
+	
+	public static boolean saveFile(File targetFile, List<Sentence> sentences, boolean omitClauses, boolean omitMarkers) {
+		logger.info("Saving sentences in file: " + targetFile);
+		BufferedWriter bw = null;
+		XMLStreamWriter xsw = null;
+		try {
+
+			bw = new BufferedWriter(new FileWriter(targetFile));
+			xsw = xof.createXMLStreamWriter(bw);
+
+			IdGenerator gen = new IdGenerator();
+			writeDocument(xsw, sentences, gen, omitClauses, omitMarkers);
+
+		} catch (Exception e) {
+			logger.error("Error saving file: " + e.getLocalizedMessage());
+			return false;
+
+		} finally {
+			try {
+				if (xsw != null)
+					xsw.close();
+				if (bw != null)
+					bw.close();
+
+			} catch (Exception e) {
+				logger.error("Error closing file: " + e.getLocalizedMessage());
+				return false;
+			}
+		}
+		return true;
+	}
+
+	private static void writeSentence(XMLStreamWriter xsw, Sentence s, int i, IdGenerator gen, boolean omitClauses,
+			boolean omitMarkers) throws XMLStreamException {
+
+		indent(xsw, i);
+		xsw.writeStartElement("S");
+		xsw.writeAttribute("ID", gen.getId(s));
+		xsw.writeCharacters("\n");
+
+		for (Clause c : s.getClauses())
+			writeClause(xsw, c, i + 1, gen, omitClauses, omitMarkers);
+
+		indent(xsw, i);
+		xsw.writeEndElement(); // S
+		xsw.writeCharacters("\n");
+	}
+
+	private static void writeClause(XMLStreamWriter xsw, Clause c, int i, IdGenerator gen, boolean omitClauses,
+			boolean omitMarkers) throws XMLStreamException {
+
+		if (!omitClauses) {
+			indent(xsw, i);
+			xsw.writeStartElement("CLAUSE");
+
+			xsw.writeAttribute("ID", gen.getId(c));
+
+			Clause cont = c.getContinuedClause();
+			if (cont != null)
+				xsw.writeAttribute("CONTINUE", gen.getId(c.getContinuedClause()));
+
+			xsw.writeCharacters("\n");
+		} else {
+			i--;
+		}
+
+		Marker prevMarker = null;
+		for (Word w : c.getWords()) {
+			Marker currentMarker = w.getMarker();
+
+			if (omitMarkers || currentMarker == null) {
+
+				if (!omitMarkers && prevMarker != null)
+					endMarker(xsw, i + 1);
+
+				writeWord(xsw, w, i + 1, gen);
+
+			} else {
+
+				if (prevMarker == null) {
+					startMarker(xsw, currentMarker, i + 1, gen);
+
+				} else if (!prevMarker.equals(currentMarker)) {
+					endMarker(xsw, i + 1);
+					startMarker(xsw, currentMarker, i + 1, gen);
+				}
+
+				writeWord(xsw, w, i + 2, gen);
+			}
+
+			prevMarker = currentMarker;
+		}
+
+		if (!omitMarkers && prevMarker != null)
+			endMarker(xsw, i + 1);
+
+		if (!omitClauses) {
+			indent(xsw, i);
+			xsw.writeEndElement(); // CLAUSE
+			xsw.writeCharacters("\n");
+		}
+	}
+
+	private static void endMarker(XMLStreamWriter xsw, int i) throws XMLStreamException {
+		indent(xsw, i);
+		xsw.writeEndElement(); // MARKER
+		xsw.writeCharacters("\n");
+	}
+
+	private static void startMarker(XMLStreamWriter xsw, Marker currentMarker, int i, IdGenerator gen)
+			throws XMLStreamException {
+		indent(xsw, i);
+		xsw.writeStartElement("MARKER");
+		xsw.writeAttribute("ID", gen.getId(currentMarker));
+		xsw.writeAttribute("NUC", currentMarker.getNUC());
+		xsw.writeAttribute("TYPE", currentMarker.getType());
+		xsw.writeAttribute("CONNECT", currentMarker.getConnect());
+
+		xsw.writeCharacters("\n");
+	}
+
+	private static void writeWord(XMLStreamWriter xsw, Word w, int i, IdGenerator gen) throws XMLStreamException {
+		indent(xsw, i);
+		xsw.writeStartElement("W");
+		xsw.writeAttribute("ID", gen.getId(w));
+		xsw.writeAttribute("LEMMA", w.getLemma());
+		xsw.writeAttribute("POS", w.getPos());
+
+		xsw.writeCharacters(w.getOrth());
+
+		xsw.writeEndElement(); // W
+		xsw.writeCharacters("\n");
+	}
+
+	private static void indent(XMLStreamWriter xsw, int i) throws XMLStreamException {
+		for (int j = 0; j < i; j++)
+			xsw.writeCharacters(INDENT);
+	}
+
+	private static void writeDocument(XMLStreamWriter xsw, List<Sentence> sentences, IdGenerator gen,
+			boolean omitClauses, boolean omitMarkers) throws XMLStreamException {
+		xsw.writeStartDocument("utf-8", "1.0");
+		xsw.writeCharacters("\n");
+		xsw.writeStartElement("DOCUMENT");
+		xsw.writeCharacters("\n");
+
+		for (Sentence s : sentences)
+			writeSentence(xsw, s, 1, gen, omitClauses, omitMarkers);
+
+		xsw.writeEndElement(); // DOCUMENT
+		xsw.writeEndDocument();
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/BottomPanel.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/BottomPanel.java
new file mode 100644
index 0000000..cd9e784
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/BottomPanel.java
@@ -0,0 +1,213 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.awt.Component;
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.awt.Insets;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.util.List;
+
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class BottomPanel extends JPanel implements ItemListener {
+
+	private static final long serialVersionUID = 285048609353220598L;
+	private static final Logger logger = Logger.getLogger(BottomPanel.class);
+
+	private final MainTextPane textPane;
+
+	// clause stuff
+	private final JComboBox<Object> cont = new JComboBox<Object>();
+	private final JLabel currentClause = new JLabel("");
+
+	// marker stuff
+	private final JComboBox<String> markerNUC = new JComboBox<String>();
+	private final JComboBox<String> markerConnect = new JComboBox<String>();
+	private final JLabel currentMarker = new JLabel("");
+
+	{
+		markerNUC.addItem("");
+
+		markerNUC.addItem("_NN");
+		markerNUC.addItem("_NS");
+		markerNUC.addItem("_SN");
+
+		markerNUC.addItem("N_N");
+		markerNUC.addItem("N_S");
+		markerNUC.addItem("S_N");
+
+		markerNUC.addItem("NN_");
+		markerNUC.addItem("NS_");
+		markerNUC.addItem("SN_");
+
+		markerConnect.addItem("");
+
+		markerConnect.addItem("relate");
+		markerConnect.addItem("fulfil");
+		markerConnect.addItem("expect");
+	}
+
+	public BottomPanel(MainTextPane mainTextPane) {
+		super();
+		this.textPane = mainTextPane;
+
+		clearClauseSelection();
+		clearMarkerSelection();
+
+		cont.addItemListener(this);
+		markerConnect.addItemListener(this);
+		markerNUC.addItemListener(this);
+
+		this.setLayout(new GridBagLayout());
+		GridBagConstraints c = new GridBagConstraints();
+		c.insets = new Insets(5, 5, 5, 5);
+
+		// labels
+		c.fill = GridBagConstraints.NONE;
+		c.gridx = 0;
+		c.gridy = GridBagConstraints.RELATIVE;
+
+		this.add(new JLabel("Current clause:"), c);
+		this.add(new JLabel("Continues:"), c);
+		this.add(new JLabel("Current marker:"), c);
+		this.add(new JLabel("Current marker nuc:"), c);
+		this.add(new JLabel("Current marker connect:"), c);
+
+		// values:
+		c.weightx = 1;
+		c.fill = GridBagConstraints.HORIZONTAL;
+		c.gridx = 1;
+		c.gridy = GridBagConstraints.RELATIVE;
+
+		this.add(currentClause, c);
+
+		c.fill = GridBagConstraints.NONE;
+		c.anchor = GridBagConstraints.LINE_START;
+		this.add(cont, c);
+		this.add(currentMarker, c);
+		this.add(markerNUC, c);
+		this.add(markerConnect, c);
+	}
+
+	private synchronized void clearMarkerSelection() {
+		markerNUC.setEnabled(false);
+		markerConnect.setEnabled(false);
+
+		currentMarker.setText("No marker selected");
+		markerNUC.setSelectedIndex(0);
+		markerConnect.setSelectedIndex(0);
+	}
+
+	private synchronized void clearClauseSelection() {
+		cont.setEnabled(false);
+		cont.removeAllItems();
+		currentClause.setText("No clause selected");
+	}
+
+	public void selectionChanged(final List<Word> selectedSequence, final Marker m) {
+		if (selectedSequence == null) {
+			selectMarker(null);
+			selectClause(null);
+		} else {
+			Clause c = selectedSequence.get(0).getClause();
+
+			selectClause(c);
+			selectMarker(m);
+		}
+	}
+
+	private synchronized void selectClause(Clause clause) {
+
+		if (clause == null) {
+			clearClauseSelection();
+
+		} else {
+			currentClause.setText(clause.toString());
+
+			cont.setEnabled(false);
+			cont.removeAllItems();
+			cont.addItem("");
+			int sel = 0;
+			int i = 1;
+
+			for (Clause c : clause.getSentence().getClausesBefore(clause)) {
+				if (c.equals(clause.getContinuedClause()))
+					sel = i;
+
+				cont.addItem(c);
+				i++;
+			}
+
+			cont.setSelectedIndex(sel);
+			cont.setEnabled(true);
+		}
+	}
+
+	private synchronized void selectMarker(Marker m) {
+
+		if (m == null) {
+			clearMarkerSelection();
+
+		} else {
+			currentMarker.setText(m.toString());
+
+			markerNUC.setEnabled(false);
+			markerNUC.setSelectedItem(m.getNUC());
+			markerNUC.setEnabled(true);
+
+			markerConnect.setEnabled(false);
+			markerConnect.setSelectedItem(m.getConnect());
+			markerConnect.setEnabled(true);
+		}
+	}
+
+	public synchronized void itemStateChanged(ItemEvent e) {
+
+		// we don't care about deselection events
+		if (e.getStateChange() == ItemEvent.DESELECTED)
+			return;
+
+		Component c = (Component) e.getSource();
+
+		if (c.isEnabled()) {
+
+			if (c.equals(cont)) {
+				if (cont.getSelectedIndex() > 0) {
+					Clause clause = (Clause) cont.getSelectedItem();
+					logger.debug("Continuing clause selection changed for: " + clause);
+
+					textPane.setContinuingClause(clause);
+				} else {
+					textPane.setContinuingClause(null);
+				}
+
+			} else if (c.equals(markerNUC)) {
+
+				if (markerNUC.getSelectedIndex() >= 0) {
+					String nuc = (String) markerNUC.getSelectedItem();
+					logger.debug("Marker nuc selection changed for: " + nuc);
+
+					textPane.setMarkerNUC(nuc);
+				}
+			} else if (c.equals(markerConnect)) {
+
+				if (markerConnect.getSelectedIndex() >= 0) {
+					String connect = (String) markerConnect.getSelectedItem();
+					logger.debug("Marker connect selection changed for: " + connect);
+
+					textPane.setMarkerConnect(connect);
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Clauseannotator.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Clauseannotator.java
new file mode 100644
index 0000000..0f0f32c
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Clauseannotator.java
@@ -0,0 +1,315 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.regex.Pattern;
+
+import javax.swing.JEditorPane;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JScrollPane;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+import javax.swing.filechooser.FileFilter;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Document;
+import pl.waw.ipipan.zil.summarization.clauseannotator.io.XMLReader;
+import pl.waw.ipipan.zil.summarization.clauseannotator.io.XMLWriter;
+
+public class Clauseannotator extends JFrame implements Runnable {
+
+	private static final String WINDOW_TITLE = "Clause and marker annotator";
+
+	private static final long serialVersionUID = -3830790411182131318L;
+
+	private static final Logger logger = Logger.getLogger(Clauseannotator.class);
+
+	private static final int HEIGTH = 600;
+	private static final int WIDTH = 800;
+
+	public static final String verbposregexpFilename = "verb.regexp";
+	public static String VERB_POS_REGEXP = null;
+
+	static {
+		loadVerPosRegexp();
+	}
+
+	private JMenuItem save;
+
+	private File currentFile = null;
+
+	private MainSplitPanel mainSplitPane;
+
+	public static void main(String[] args) {
+		if (args.length != 0 && args.length != 1) {
+			logger.error("Wrong usage! Should be: java -jar " + Clauseannotator.class.getSimpleName() + " [input file]");
+			return;
+		}
+		final Clauseannotator clauseannotator = new Clauseannotator();
+		try {
+			SwingUtilities.invokeAndWait(clauseannotator);
+		} catch (Exception e) {
+			logger.error("Error starting application: " + e.getLocalizedMessage());
+			e.printStackTrace();
+			return;
+		}
+
+		if (args.length == 1) {
+			final File input = new File(args[0]);
+			if (input.exists()) {
+				SwingUtilities.invokeLater(new Runnable() {
+					public void run() {
+						clauseannotator.loadFile(input);
+					}
+				});
+			} else {
+				logger.error("Input file: " + input + " doesn't exist!");
+			}
+		}
+	}
+
+	private static void loadVerPosRegexp() {
+		InputStream f = Clauseannotator.class.getClassLoader().getResourceAsStream(verbposregexpFilename);
+		if (f != null) {
+			String regex = null;
+			try {
+				BufferedReader bw = new BufferedReader(new InputStreamReader(f));
+				regex = bw.readLine();
+
+				Pattern.compile(regex);
+			} catch (Exception e) {
+				logger.error("Error reading regexp file: " + e.getLocalizedMessage());
+				return;
+			}
+			VERB_POS_REGEXP = regex;
+			logger.info("Loaded verb regexp: " + regex);
+		}
+	}
+
+	public void run() {
+		this.setTitle(WINDOW_TITLE);
+		mainSplitPane = new MainSplitPanel(this);
+		this.getContentPane().add(mainSplitPane);
+		this.createMenu();
+		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		this.addWindowListener(new MainWindowListener(this));
+		this.setSize(WIDTH, HEIGTH);
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		this.setLocation((screenSize.width - WIDTH) / 2, (screenSize.height - HEIGTH) / 2);
+		this.setVisible(true);
+	}
+
+	private void createMenu() {
+		JMenuBar menu = new JMenuBar();
+		this.setJMenuBar(menu);
+
+		JMenu file = new JMenu("File");
+		menu.add(file);
+
+		JMenuItem open = new JMenuItem("Open");
+		open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
+		open.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				requestOpenFile();
+			}
+		});
+		file.add(open);
+
+		save = new JMenuItem("Save");
+		save.setEnabled(false);
+		save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
+		save.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				requestSaveFile();
+			}
+		});
+		file.add(save);
+
+		JMenuItem exit = new JMenuItem("Exit");
+		exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
+		exit.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				requestExit();
+			}
+		});
+		file.add(exit);
+
+		JMenu other = new JMenu("Other");
+		JMenuItem help = new JMenuItem("Help");
+		help.addActionListener(new ActionListener() {
+			public void actionPerformed(ActionEvent e) {
+				requestShowHelp();
+			}
+		});
+
+		other.add(help);
+		menu.add(other);
+	}
+
+	private void requestSaveFile() {
+		boolean success = XMLWriter.saveFile(currentFile, mainSplitPane.getSentences());
+
+		if (success) {
+			setTitle(WINDOW_TITLE);
+			save.setEnabled(false);
+		} else {
+			showError("Error saving file: " + currentFile);
+		}
+	}
+
+	private final void requestOpenFile() {
+		if (!askToSaveChanges())
+			return;
+
+		JFileChooser chooser;
+		if (currentFile == null)
+			chooser = new JFileChooser();
+		else
+			chooser = new JFileChooser(currentFile.getParentFile());
+
+		chooser.setFileFilter(new SummannotatorFileFilter());
+		int result = chooser.showOpenDialog(this);
+
+		if (result == JFileChooser.APPROVE_OPTION) {
+			this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+			this.loadFile(chooser.getSelectedFile());
+			this.setCursor(null);
+		}
+	}
+
+	private boolean askToSaveChanges() {
+		if (!save.isEnabled())
+			return true;
+
+		int result = JOptionPane.showOptionDialog(this, "Do you want to save changes?", "Unsaved changes",
+				JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
+
+		if (result == JOptionPane.CANCEL_OPTION)
+			return false;
+
+		if (result == JOptionPane.YES_OPTION)
+			requestSaveFile();
+
+		return true;
+	}
+
+	private final void requestExit() {
+		if (!askToSaveChanges())
+			return;
+
+		logger.info("Exiting.");
+		System.exit(0);
+	}
+
+	private final void requestShowHelp() {
+		JFrame helpFrame = new JFrame("Help");
+		helpFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+		JEditorPane editorPane = new JEditorPane();
+		editorPane.setEditable(false);
+		URL helpURL = Clauseannotator.class.getClassLoader().getResource("help.html");
+		if (helpURL != null) {
+			try {
+				editorPane.setPage(helpURL);
+			} catch (IOException e) {
+				logger.error("Attempted to read a bad URL: " + helpURL);
+			}
+		} else {
+			logger.error("Couldn't find file: help.html");
+		}
+
+		// Put the editor pane in a scroll pane.
+		JScrollPane editorScrollPane = new JScrollPane(editorPane);
+		editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setPreferredSize(new Dimension(800, 600));
+		editorScrollPane.setMinimumSize(new Dimension(30, 30));
+
+		helpFrame.getContentPane().add(editorScrollPane);
+		helpFrame.pack();
+		helpFrame.setVisible(true);
+	}
+
+	private final void loadFile(File input) {
+		if (!input.exists()) {
+			String err = "File " + input + " doesn't exist!";
+			logger.error(err);
+			showError(err);
+			return;
+		}
+		Document doc = new Document();
+		String error = XMLReader.loadText(input, doc);
+		if (error != null) {
+			logger.error(error);
+			showError(error);
+			return;
+		}
+		if (doc.getSentences().size() == 0) {
+			String err = "No clauses found in file: " + input;
+			logger.error(err);
+			showError(err);
+			return;
+		}
+
+		mainSplitPane.setSentences(doc.getSentences());
+
+		currentFile = input;
+		save.setEnabled(false);
+		setTitle(WINDOW_TITLE);
+	}
+
+	private void showError(String string) {
+		JOptionPane.showMessageDialog(this, string, "Error", JOptionPane.ERROR_MESSAGE);
+	}
+
+	private final class SummannotatorFileFilter extends FileFilter {
+		@Override
+		public String getDescription() {
+			return "XML files";
+		}
+
+		@Override
+		public boolean accept(File f) {
+			return f.getName().endsWith(".xml") || f.isDirectory();
+		}
+	}
+
+	public void annotationChanged() {
+		save.setEnabled(true);
+		setTitle(WINDOW_TITLE + " " + "[unsaved changes]");
+	}
+
+	private class MainWindowListener extends WindowAdapter {
+
+		private Clauseannotator summanotator;
+
+		public MainWindowListener(Clauseannotator sumannotator) {
+			this.summanotator = sumannotator;
+		}
+
+		public void windowClosing(WindowEvent we) {
+			this.summanotator.requestExit();
+		}
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/FixIds.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/FixIds.java
new file mode 100644
index 0000000..26afa9b
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/FixIds.java
@@ -0,0 +1,21 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.io.File;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Document;
+import pl.waw.ipipan.zil.summarization.clauseannotator.io.XMLReader;
+import pl.waw.ipipan.zil.summarization.clauseannotator.io.XMLWriter;
+
+public class FixIds {
+
+	public static void main(String[] args) {
+		
+		File dir = new File(args[0]);
+		for (File f : dir.listFiles()) {
+			Document doc = new Document();
+			XMLReader.loadText(f, doc);
+			XMLWriter.saveFile(f, doc.getSentences(), false, true);
+		}
+	}
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainDocument.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainDocument.java
new file mode 100644
index 0000000..3ecb7e7
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainDocument.java
@@ -0,0 +1,301 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.Caret;
+import javax.swing.text.DefaultStyledDocument;
+import javax.swing.text.SimpleAttributeSet;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class MainDocument extends DefaultStyledDocument implements CaretListener, KeyListener {
+
+	private static final long serialVersionUID = 4276485351817531583L;
+	private static final Logger logger = Logger.getLogger(MainDocument.class);
+
+	private final MainTextPane textPane;
+
+	private List<Word> selectedWords = null;
+	private Marker selectedMarker = null;
+
+	private List<Word> posToWord = null;
+	private Map<Word, Integer> wordToStartPos = null;
+	private List<Sentence> sentences = null;
+
+	private boolean ignoreCaretUpdate = false;
+
+	public MainDocument(MainTextPane mainTextPane) {
+		this.textPane = mainTextPane;
+	}
+
+	public synchronized void setSentences(final List<Sentence> sents) {
+
+		ignoreCaretUpdate = true;
+
+		try {
+			remove(0, getLength());
+		} catch (BadLocationException e) {
+			logger.error("Error clearing document: " + e.getLocalizedMessage());
+		}
+
+		sentences = sents;
+
+		posToWord = new ArrayList<Word>();
+		wordToStartPos = new HashMap<Word, Integer>();
+
+		int pos = 0;
+		try {
+			for (Sentence s : sentences) {
+
+				for (Clause c : s.getClauses()) {
+
+					insertString(pos, "[ ", Styles.getHandleStyle());
+					pos += 2;
+					posToWord.add(null);
+					posToWord.add(null);
+
+					Word prev = null;
+					for (Word w : c.getWords()) {
+						if (prev != null) {
+							insertString(pos, " ", Styles.getWhitespaceStyle());
+							pos += 1;
+							posToWord.add(prev);
+						}
+
+						String orth = w.getOrth();
+						boolean selected = selectedWords != null && selectedWords.contains(w);
+						insertString(pos, orth, Styles.getWordStyle(w, selected));
+						int length = orth.length();
+						wordToStartPos.put(w, pos);
+						for (int i = 0; i < length; i++)
+							posToWord.add(w);
+						pos += length;
+
+						prev = w;
+					}
+
+					insertString(pos, " ]", Styles.getHandleStyle());
+					pos += 2;
+					posToWord.add(null);
+					posToWord.add(null);
+				}
+				insertString(pos, "\n\n", Styles.getWhitespaceStyle());
+				pos += 2;
+				posToWord.add(null);
+				posToWord.add(null);
+			}
+			// for last dot
+			posToWord.add(null);
+
+		} catch (BadLocationException e) {
+			logger.error("Error setting document: " + e.getLocalizedMessage());
+		}
+
+		ignoreCaretUpdate = false;
+	}
+
+	public synchronized List<Sentence> getSentences() {
+		return sentences;
+	}
+
+	public void caretUpdate(final CaretEvent e) {
+		if (ignoreCaretUpdate)
+			return;
+
+		int dot = e.getDot();
+		int mark = e.getMark();
+		selectionOcurred(mark, dot);
+	}
+
+	private synchronized void selectionOcurred(int mark, int dot) {
+
+		if (posToWord == null)
+			return;
+
+		Word startWord;
+		Word stopWord;
+		if (mark > dot) {
+			startWord = posToWord.get(dot);
+			stopWord = posToWord.get(mark);
+		} else {
+			startWord = posToWord.get(mark);
+			stopWord = posToWord.get(dot);
+		}
+
+		if (startWord == null || stopWord == null) {
+			this.setSelectedWords(null, dot);
+			return;
+		}
+
+		Clause clause1 = startWord.getClause();
+		Clause clause2 = stopWord.getClause();
+
+		if (!clause1.equals(clause2)) {
+			this.setSelectedWords(null, dot);
+			return;
+		}
+
+		List<Word> selectedSequence = clause1.getWordsSequence(startWord, stopWord);
+
+		this.setSelectedWords(selectedSequence, dot);
+	}
+
+	public synchronized void setSelectedWords(List<Word> selectedSequence, int mark) {
+
+		if (wordToStartPos == null)
+			return;
+
+		logger.debug("Setting selected words: " + selectedSequence);
+
+		// remove previous selection
+		if (this.selectedWords != null) {
+			for (Word w : selectedWords) {
+				SimpleAttributeSet att = Styles.getWordStyle(w, false);
+				int start = wordToStartPos.get(w);
+				int len = w.toString().length();
+				this.setCharacterAttributes(start, len, att, true);
+			}
+		}
+
+		// mark new selection
+		if (selectedSequence != null) {
+			for (Word w : selectedSequence) {
+				SimpleAttributeSet att = Styles.getWordStyle(w, true);
+				int start = wordToStartPos.get(w);
+				int len = w.toString().length();
+				this.setCharacterAttributes(start, len, att, true);
+			}
+		}
+
+		this.selectedWords = selectedSequence;
+		this.selectedMarker = getMarkerFromSelection(selectedSequence);
+
+		if (this.ignoreCaretUpdate) {
+			this.textPane.selectionChanged(selectedSequence, selectedMarker, mark);
+		} else {
+			this.ignoreCaretUpdate = true;
+			this.textPane.selectionChanged(selectedSequence, selectedMarker, mark);
+			this.ignoreCaretUpdate = false;
+		}
+
+	}
+
+	private Marker getMarkerFromSelection(List<Word> selectedSequence) {
+		if (selectedSequence == null)
+			return null;
+
+		Marker m = null;
+		for (Word w : selectedSequence) {
+			if (w.getMarker() != null) {
+				if (m == null) {
+					m = w.getMarker();
+				} else if (!m.equals(w.getMarker())) {
+					m = null;
+					break;
+				}
+			}
+		}
+		return m;
+	}
+
+	public synchronized Word getFirstSelectedWord() {
+		if (selectedWords == null)
+			return null;
+		return this.selectedWords.get(0);
+	}
+
+	public synchronized int getFirstSelectedWordStartPos() {
+		Word firstSelectedWord = getFirstSelectedWord();
+		if (firstSelectedWord == null || wordToStartPos == null)
+			return 0;
+		return wordToStartPos.get(firstSelectedWord);
+	}
+
+	public void keyTyped(KeyEvent e) {
+	}
+
+	public void keyPressed(KeyEvent e) {
+		if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
+			ignoreCaretUpdate = true;
+		}
+	}
+
+	public void keyReleased(final KeyEvent e) {
+		if (e.getKeyCode() == KeyEvent.VK_ENTER) {
+			textPane.splitClause();
+		} else if (e.getKeyCode() == KeyEvent.VK_P) {
+			textPane.mergeClauseWithPrevious();
+		} else if (e.getKeyCode() == KeyEvent.VK_N) {
+			textPane.mergeClauseWithNext();
+		} else if (e.getKeyCode() == KeyEvent.VK_M) {
+			textPane.createMarker();
+		} else if (e.getKeyCode() == KeyEvent.VK_D) {
+			textPane.deleteMarker();
+		} else if (e.getKeyCode() == KeyEvent.VK_SHIFT) {
+			ignoreCaretUpdate = false;
+			Caret c = textPane.getCaret();
+			selectionOcurred(c.getDot(), c.getMark());
+		}
+		// } else if (e.getKeyCode() == KeyEvent.VK_S) {
+		// textPane.splitSentence();
+		// }
+
+	}
+
+	public synchronized List<Word> getSelectedWords() {
+		return this.selectedWords;
+	}
+
+	public synchronized Marker getSelectedMarker() {
+		return this.selectedMarker;
+	}
+
+	public synchronized void refreshCurrentMarkerStyle() {
+		if (selectedMarker == null || wordToStartPos == null)
+			return;
+
+		for (Word w : selectedMarker.getWords()) {
+			boolean selected = false;
+			if (selectedWords.contains(w))
+				selected = true;
+
+			SimpleAttributeSet att = Styles.getWordStyle(w, selected);
+			int start = wordToStartPos.get(w);
+			int len = w.toString().length();
+			this.setCharacterAttributes(start, len, att, true);
+		}
+	}
+
+	public synchronized void refreshCurrentClauseStyle() {
+		if (selectedWords == null || wordToStartPos == null)
+			return;
+
+		Clause c = selectedWords.get(0).getClause();
+
+		for (Word w : c.getWords()) {
+			boolean selected = false;
+			if (selectedWords.contains(w))
+				selected = true;
+
+			SimpleAttributeSet att = Styles.getWordStyle(w, selected);
+			int start = wordToStartPos.get(w);
+			int len = w.toString().length();
+			this.setCharacterAttributes(start, len, att, true);
+		}
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainSplitPanel.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainSplitPanel.java
new file mode 100644
index 0000000..df55787
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainSplitPanel.java
@@ -0,0 +1,57 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.util.List;
+
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class MainSplitPanel extends JSplitPane {
+
+	private static final long serialVersionUID = 3656861958564714263L;
+	private static final Logger logger = Logger.getLogger(MainSplitPanel.class);
+
+	private Clauseannotator clauseannotator;
+
+	private MainTextPane mainTextPane;
+	private BottomPanel bottomPanel;
+
+	public MainSplitPanel(Clauseannotator clauseannotator) {
+		super(JSplitPane.VERTICAL_SPLIT);
+
+		this.clauseannotator = clauseannotator;
+
+		logger.info("Creating main panel...");
+
+		mainTextPane = new MainTextPane(this);
+		bottomPanel = new BottomPanel(mainTextPane);
+
+		this.setTopComponent(new JScrollPane(mainTextPane));
+		this.setBottomComponent(bottomPanel);
+		this.setOneTouchExpandable(true);
+		this.setDividerLocation(350);
+	}
+
+	public void setSentences(final List<Sentence> sentences) {
+		mainTextPane.setSentences(sentences);
+	}
+
+	public List<Sentence> getSentences() {
+		return mainTextPane.getSentences();
+	}
+
+	public void selectionChanged(List<Word> selectedSequence, Marker m) {
+		bottomPanel.selectionChanged(selectedSequence, m);
+	}
+
+	public void annotationChanged() {
+		this.clauseannotator.annotationChanged();
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainTextPane.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainTextPane.java
new file mode 100644
index 0000000..3c076ab
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/MainTextPane.java
@@ -0,0 +1,214 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.awt.Insets;
+import java.util.List;
+
+import javax.swing.JTextPane;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Marker;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Sentence;
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class MainTextPane extends JTextPane {
+
+	private static final long serialVersionUID = 3709902726162446568L;
+	private static final Logger logger = Logger.getLogger(MainTextPane.class);
+
+	private MainSplitPanel mainSplitPanel;
+
+	private MainDocument document;
+
+	public MainTextPane(MainSplitPanel mainSplitPanel) {
+		super();
+
+		this.mainSplitPanel = mainSplitPanel;
+		this.document = new MainDocument(this);
+
+		this.setStyledDocument(document);
+		this.setMargin(new Insets(5, 5, 5, 5));
+		this.setEditable(false);
+
+		this.addCaretListener(document);
+		this.addKeyListener(document);
+	}
+
+	public void setSentences(List<Sentence> sentences) {
+		selectionChanged(null, null, 0);
+		document.setSentences(sentences);
+		this.setCaretPosition(0);
+		this.getCaret().setVisible(true);
+	}
+
+	public List<Sentence> getSentences() {
+		return document.getSentences();
+	}
+
+	public void selectionChanged(List<Word> selectedSequence, Marker m, int dot) {
+		this.select(dot, dot);
+		this.getCaret().setVisible(true);
+		mainSplitPanel.selectionChanged(selectedSequence, m);
+	}
+
+	private void reloadSentences() {
+		document.setSentences(document.getSentences());
+		final int caretPos = document.getFirstSelectedWordStartPos();
+		this.select(caretPos, caretPos);
+		this.getCaret().setVisible(true);
+		this.mainSplitPanel.annotationChanged();
+	}
+
+	private void reloadCurrentClause() {
+		document.refreshCurrentClauseStyle();
+		this.mainSplitPanel.annotationChanged();
+	}
+
+	private void reloadCurrentMarker() {
+		document.refreshCurrentMarkerStyle();
+		this.mainSplitPanel.annotationChanged();
+	}
+
+	/* ACTIONS */
+
+	public synchronized void splitClause() {
+		Word selectedWord = document.getFirstSelectedWord();
+		if (selectedWord == null)
+			return;
+
+		if (selectedWord.isFirstInClause())
+			return;
+
+		if (selectedWord.isInMiddleOfMarker())
+			return;
+
+		Clause c = selectedWord.getClause();
+		logger.info("Splitting clause: " + c + " starting from word: " + selectedWord);
+		Sentence s = c.getSentence();
+		s.splitClause(c, selectedWord);
+
+		reloadSentences();
+	}
+
+	public synchronized void mergeClauseWithPrevious() {
+		Word selectedWord = document.getFirstSelectedWord();
+		if (selectedWord == null)
+			return;
+		Clause c = selectedWord.getClause();
+
+		if (c.isFirstInSentence())
+			return;
+
+		logger.info("Merging clause: " + c + " into previous one");
+		Sentence s = c.getSentence();
+		s.mergeClauseWithPrevious(c);
+
+		reloadSentences();
+	}
+
+	public synchronized void mergeClauseWithNext() {
+		Word selectedWord = document.getFirstSelectedWord();
+		if (selectedWord == null)
+			return;
+		Clause c = selectedWord.getClause();
+
+		if (c.isLastInSentence())
+			return;
+
+		logger.info("Merging clause: " + c + " into next one");
+		Sentence s = c.getSentence();
+		s.mergeClauseWithNext(c);
+
+		reloadSentences();
+	}
+
+	public synchronized void setContinuingClause(Clause cont) {
+		Word selectedWord = document.getFirstSelectedWord();
+		if (selectedWord == null) {
+			logger.error("Trying to continiuing clause when no clause chosen!");
+			return;
+		}
+
+		Clause c = selectedWord.getClause();
+		logger.info("Setting continiuing clause: " + cont + " for clause: " + c);
+		c.setContinuedClause(cont);
+
+		reloadCurrentClause();
+	}
+
+	public synchronized void createMarker() {
+		List<Word> selectedWords = document.getSelectedWords();
+		if (selectedWords == null)
+			return;
+
+		for (Word w : selectedWords)
+			if (w.getMarker() != null)
+				return;
+
+		logger.info("Creating new marker from words: " + selectedWords);
+		new Marker(selectedWords);
+
+		reloadSentences();
+	}
+
+	public synchronized void deleteMarker() {
+		Marker selectedMarker = document.getSelectedMarker();
+		if (selectedMarker == null)
+			return;
+
+		logger.info("Deleting marker: " + selectedMarker);
+		selectedMarker.deleteMe();
+
+		reloadSentences();
+	}
+
+	public synchronized void setMarkerNUC(String nuc) {
+		Marker m = document.getSelectedMarker();
+		if (m == null) {
+			logger.error("Trying to set marker nuc when no marker chosen!");
+			return;
+		}
+
+		logger.info("Setting nuc " + nuc + " for marker: " + m);
+		m.setNUC(nuc);
+
+		reloadCurrentMarker();
+	}
+
+	public void splitSentence() {
+		Word selectedWord = document.getFirstSelectedWord();
+		if (selectedWord == null)
+			return;
+
+		if (selectedWord.isFirstInClause())
+			return;
+
+		if (selectedWord.isInMiddleOfMarker())
+			return;
+
+		Clause c = selectedWord.getClause();
+		Sentence s = c.getSentence();
+		logger.info("Splitting sentence: " + s + " starting from word: " + selectedWord);
+		
+		s.getDocument().splitSentence(s, selectedWord);		
+
+		reloadSentences();
+
+	}
+
+	public void setMarkerConnect(String connect) {
+		Marker m = document.getSelectedMarker();
+		if (m == null) {
+			logger.error("Trying to set marker connect when no marker chosen!");
+			return;
+		}
+
+		logger.info("Setting connect " + connect + " for marker: " + m);
+		m.setConnect(connect);
+
+		reloadCurrentMarker();
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Styles.java a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Styles.java
new file mode 100644
index 0000000..26ae5ce
--- /dev/null
+++ a/ClauseAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clauseannotator/main/Styles.java
@@ -0,0 +1,51 @@
+package pl.waw.ipipan.zil.summarization.clauseannotator.main;
+
+
+import java.awt.Color;
+
+import javax.swing.text.SimpleAttributeSet;
+import javax.swing.text.StyleConstants;
+
+import pl.waw.ipipan.zil.summarization.clauseannotator.basic.Word;
+
+public class Styles {
+
+	private static SimpleAttributeSet handleStyle;
+	private static SimpleAttributeSet whitespaceStyle;
+
+	static {
+		handleStyle = new SimpleAttributeSet();
+		StyleConstants.setBold(handleStyle, true);
+
+		whitespaceStyle = new SimpleAttributeSet();
+	}
+
+	public static SimpleAttributeSet getWordStyle(Word w, boolean selected) {
+		SimpleAttributeSet defaultStyle = new SimpleAttributeSet();
+		if (w.getClause().getContinuedClause() != null)
+			StyleConstants.setBackground(defaultStyle, Color.getHSBColor(0.069f, 0.20f, 0.99f));
+
+		if (w.getMarker() != null) {
+			StyleConstants.setUnderline(defaultStyle, true);
+			if (w.getMarker().getNUC().equals(""))
+				StyleConstants.setBackground(defaultStyle, Color.magenta);
+		}
+
+		if (selected)
+			StyleConstants.setBackground(defaultStyle, Color.yellow);
+
+		if (w.isVerb())
+			StyleConstants.setBold(defaultStyle, true);
+
+		return defaultStyle;
+	}
+
+	public static SimpleAttributeSet getHandleStyle() {
+		return handleStyle;
+	}
+
+	public static SimpleAttributeSet getWhitespaceStyle() {
+		return whitespaceStyle;
+	}
+
+}
diff --git b/ClauseAnnotator/src/main/resources/help.html a/ClauseAnnotator/src/main/resources/help.html
new file mode 100644
index 0000000..555a72a
--- /dev/null
+++ a/ClauseAnnotator/src/main/resources/help.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+	<p>Clause boundaries are bordered with handles: "[" and "]".</p>
+	<p>Sentences are separated with empty lines.</p>
+	<p>Markers are <u>underlined</u>.</p>
+	<p>Verbs are <i>italic</i> (by default works for Polish only). 
+	Verbs are identified by regular expression (with is compared to the pos tag of a word)
+	stored in the file <b>verb.regexp</b> inside the jar package. 
+	Modify this file for your purposes using any 
+	extraction tool.</p>
+
+<h2>Marker/Clause/Span selection</h2>
+	<p>When a span of text is selected, it's yellow. Program doesn't allow 
+	to select a span in more than one clause. Automatically this span's 
+	clause is selected. If the selected span contain only one marker (or part of a marker), 
+	this marker is also selected. Current selected clause/marker are 
+	displayed in the bottom panel. It's best to play with the program
+	to see how it selects them.</p>
+	<p>All clauses which have set a "continue" attribute are highlighted pink.</p>
+	<p>Markers which don't have set required attributes (arg1/2, type) are marked magenta.</p> 
+
+<h2>Clause actions</h2>
+	<p>These are possible clause actions:</p>
+	<ul>
+		<li><b>Split clause into two</b> - select a single word or a span of words, 
+		then press <b>ENTER</b> key on the keyboard. The clause is going to be split in two, beginning
+		from the first word selected. WARNING: System won't let you to split a marker into two clauses.		
+		<li><b>Merge clause with <u>n</u>ext</b> - select clause, then press <b>N</b> key. Current clause
+		is going to be merged with the next one, if possible. All pointers to current clause are going 
+		to be lost, all pointers to the next clause remain the same.
+		<li><b>Merge clause with <u>p</u>revious</b> - select clause, then press <b>P</b> key. Current clause
+		is going to be merged with the previous one, if possible. All pointers to current clause are going 
+		to be lost, all pointers to the previous clause remain the same.
+	</ul>	
+
+<h2>Marker actions</h2>
+	<p>These are possible marker actions:</p>
+	<ul>
+		<li><b>Create <u>m</u>arker</b> - select a span of words, then press <b>M</b> key on the keyboard. 
+		Marker will be created from the selection.</li>
+		<li><b><u>D</u>elete marker</b> - select this marker, 
+		then press key <b>D</b> on the keyboard.</li>
+		<li><b>Change marker NUC attribute</b> - select marker,
+		then select desired NUC in the bottom panel.
+		<li><b>Change marker CONNECT attribute</b> - select marker,
+		then select desired CONNECT in the bottom panel. 
+	</ul>
+</body>
+</html>
\ No newline at end of file
diff --git b/ClauseAnnotator/target/classes/help.html a/ClauseAnnotator/target/classes/help.html
new file mode 100644
index 0000000..555a72a
--- /dev/null
+++ a/ClauseAnnotator/target/classes/help.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+	<p>Clause boundaries are bordered with handles: "[" and "]".</p>
+	<p>Sentences are separated with empty lines.</p>
+	<p>Markers are <u>underlined</u>.</p>
+	<p>Verbs are <i>italic</i> (by default works for Polish only). 
+	Verbs are identified by regular expression (with is compared to the pos tag of a word)
+	stored in the file <b>verb.regexp</b> inside the jar package. 
+	Modify this file for your purposes using any 
+	extraction tool.</p>
+
+<h2>Marker/Clause/Span selection</h2>
+	<p>When a span of text is selected, it's yellow. Program doesn't allow 
+	to select a span in more than one clause. Automatically this span's 
+	clause is selected. If the selected span contain only one marker (or part of a marker), 
+	this marker is also selected. Current selected clause/marker are 
+	displayed in the bottom panel. It's best to play with the program
+	to see how it selects them.</p>
+	<p>All clauses which have set a "continue" attribute are highlighted pink.</p>
+	<p>Markers which don't have set required attributes (arg1/2, type) are marked magenta.</p> 
+
+<h2>Clause actions</h2>
+	<p>These are possible clause actions:</p>
+	<ul>
+		<li><b>Split clause into two</b> - select a single word or a span of words, 
+		then press <b>ENTER</b> key on the keyboard. The clause is going to be split in two, beginning
+		from the first word selected. WARNING: System won't let you to split a marker into two clauses.		
+		<li><b>Merge clause with <u>n</u>ext</b> - select clause, then press <b>N</b> key. Current clause
+		is going to be merged with the next one, if possible. All pointers to current clause are going 
+		to be lost, all pointers to the next clause remain the same.
+		<li><b>Merge clause with <u>p</u>revious</b> - select clause, then press <b>P</b> key. Current clause
+		is going to be merged with the previous one, if possible. All pointers to current clause are going 
+		to be lost, all pointers to the previous clause remain the same.
+	</ul>	
+
+<h2>Marker actions</h2>
+	<p>These are possible marker actions:</p>
+	<ul>
+		<li><b>Create <u>m</u>arker</b> - select a span of words, then press <b>M</b> key on the keyboard. 
+		Marker will be created from the selection.</li>
+		<li><b><u>D</u>elete marker</b> - select this marker, 
+		then press key <b>D</b> on the keyboard.</li>
+		<li><b>Change marker NUC attribute</b> - select marker,
+		then select desired NUC in the bottom panel.
+		<li><b>Change marker CONNECT attribute</b> - select marker,
+		then select desired CONNECT in the bottom panel. 
+	</ul>
+</body>
+</html>
\ No newline at end of file
diff --git b/ClauseSumAnnotator/example.xml a/ClauseSumAnnotator/example.xml
new file mode 100644
index 0000000..01690bb
--- /dev/null
+++ a/ClauseSumAnnotator/example.xml
@@ -0,0 +1,1586 @@
+<?xml version="1.0" encoding="utf-8"?>
+<DOCUMENT>
+  <S ID="S0">
+    <CLAUSE ID="CLAUSE0">
+      <W ID="W0" LEMMA="przed" POS="prep:inst:nwok">Przed</W>
+      <W ID="W1" LEMMA="rok" POS="subst:pl:inst:m3">laty</W>
+      <W ID="W2" LEMMA="żyć" POS="praet:pl:m1:imperf">żyli</W>
+      <W ID="W3" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W4" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W5" LEMMA="i" POS="conj">i</W>
+      <W ID="W6" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W7" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE1">
+      <W ID="W8" LEMMA="który" POS="adj:pl:nom:m1:pos">którzy</W>
+      <W ID="W9" LEMMA="powtarzać" POS="praet:pl:m1:imperf">powtarzali</W>
+      <W ID="W10" LEMMA="codziennie" POS="adv:pos">codziennie</W>
+      <W ID="W11" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE2">
+      <W ID="W12" LEMMA="-" POS="interp">-</W>
+      <W ID="W13" LEMMA="ach" POS="interj">Ach</W>
+      <W ID="W14" LEMMA="," POS="interp">,</W>
+      <W ID="W15" LEMMA="gdyby" POS="comp">gdyby</W>
+      <W ID="W16" LEMMA="być" POS="aglt:pl:pri:imperf:nwok">śmy</W>
+      <W ID="W17" LEMMA="mieć" POS="praet:pl:m1:imperf">mieli</W>
+      <W ID="W18" LEMMA="dziecko" POS="subst:sg:acc:n">dziecko</W>
+      <W ID="W19" LEMMA="!" POS="interp">!</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE3">
+      <W ID="W20" LEMMA="-" POS="interp">-</W>
+      <W ID="W21" LEMMA="a" POS="conj">a</W>
+      <W ID="W22" LEMMA="dziecko" POS="subst:sg:gen:n">dziecka</W>
+      <W ID="W23" LEMMA="wciąż" POS="adv">wciąż</W>
+      <W ID="W24" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W25" LEMMA="mieć" POS="praet:pl:m1:imperf">mieli</W>
+      <W ID="W26" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S1">
+    <CLAUSE ID="CLAUSE4">
+      <W ID="W27" LEMMA="zdarzyć" POS="praet:sg:n:perf">Zdarzyło</W>
+      <W ID="W28" LEMMA="się" POS="qub">się</W>
+      <W ID="W29" LEMMA="pewny" POS="adj:sg:gen:m3:pos">pewnego</W>
+      <W ID="W30" LEMMA="raz" POS="subst:sg:gen:m3">razu</W>
+      <W ID="W31" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE5">
+      <W ID="W32" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W33" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W34" LEMMA="zażywać" POS="praet:sg:f:imperf">zażywała</W>
+      <W ID="W35" LEMMA="kąpiel" POS="subst:sg:gen:f">kąpieli</W>
+      <W ID="W36" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE6">
+      <W ID="W37" LEMMA="że" POS="comp">że</W>
+      <W ID="W38" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W39" LEMMA="woda" POS="subst:sg:gen:f">wody</W>
+      <W ID="W40" LEMMA="wyskoczyć" POS="praet:sg:f:perf">wyskoczyła</W>
+      <W ID="W41" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W42" LEMMA="brzeg" POS="subst:sg:acc:m3">brzeg</W>
+      <W ID="W43" LEMMA="żaba" POS="subst:sg:nom:f">żaba</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE7">
+      <W ID="W44" LEMMA="i" POS="conj">i</W>
+      <W ID="W45" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W46" LEMMA="ten" POS="adj:pl:acc:n:pos">te</W>
+      <W ID="W47" LEMMA="słowo" POS="subst:pl:acc:n">słowa</W>
+      <W ID="W48" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W49" LEMMA="on" POS="ppron3:sg:gen:f:ter:akc:praep">niej</W>
+      <W ID="W50" LEMMA="przemówić" POS="praet:sg:f:perf">przemówiła</W>
+      <W ID="W51" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE8">
+      <W ID="W52" LEMMA="-" POS="interp">-</W>
+      <W ID="W53" LEMMA="twój" POS="adj:sg:nom:n:pos">Twoje</W>
+      <W ID="W54" LEMMA="pragnienie" POS="subst:sg:nom:n">pragnienie</W>
+      <W ID="W55" LEMMA="spełnić" POS="fin:sg:ter:perf">spełni</W>
+      <W ID="W56" LEMMA="się" POS="qub">się</W>
+      <W ID="W57" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE9">
+      <W ID="W58" LEMMA="nim" POS="comp">nim</W>
+      <W ID="W59" LEMMA="rok" POS="subst:sg:nom:m3">rok</W>
+      <W ID="W60" LEMMA="minąć" POS="fin:sg:ter:perf">minie</W>
+      <W ID="W61" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE10">
+      <W ID="W62" LEMMA="wydać" POS="fin:sg:sec:perf">wydasz</W>
+      <W ID="W63" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W64" LEMMA="świat" POS="subst:sg:acc:m3">świat</W>
+      <W ID="W65" LEMMA="córeczka" POS="subst:sg:acc:f">córeczkę</W>
+      <W ID="W66" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S2">
+    <CLAUSE ID="CLAUSE11">
+      <W ID="W67" LEMMA="i" POS="conj">I</W>
+      <W ID="W68" LEMMA="stać" POS="praet:sg:n:perf">stało</W>
+      <W ID="W69" LEMMA="się" POS="qub">się</W>
+      <W ID="W70" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE12">
+      <W ID="W71" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W72" LEMMA="przepowiedzieć" POS="praet:sg:f:perf">przepowiedziała</W>
+      <W ID="W73" LEMMA="żaba" POS="subst:sg:nom:f">żaba</W>
+      <W ID="W74" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE13">
+      <W ID="W75" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W76" LEMMA="urodzić" POS="praet:sg:f:perf">urodziła</W>
+      <W ID="W77" LEMMA="dziewczynka" POS="subst:sg:acc:f">dziewczynkę</W>
+      <W ID="W78" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W79" LEMMA="urodziwy" POS="adj:sg:acc:f:pos">urodziwą</W>
+      <W ID="W80" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE14">
+      <W ID="W81" LEMMA="że" POS="comp">że</W>
+      <W ID="W82" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W83" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W84" LEMMA="posiadać" POS="praet:sg:m1:imperf">posiadał</W>
+      <W ID="W85" LEMMA="się" POS="qub">się</W>
+      <W ID="W86" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W87" LEMMA="radość" POS="subst:sg:gen:f">radości</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE15">
+      <W ID="W88" LEMMA="i" POS="conj">i</W>
+      <W ID="W89" LEMMA="wydać" POS="praet:sg:m1:perf">wydał</W>
+      <W ID="W90" LEMMA="wspaniały" POS="adj:sg:acc:f:pos">wspaniałą</W>
+      <W ID="W91" LEMMA="uczta" POS="subst:sg:acc:f">ucztę</W>
+      <W ID="W92" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S3">
+    <CLAUSE ID="CLAUSE16">
+      <W ID="W93" LEMMA="zaprosić" POS="praet:sg:m1:perf">Zaprosił</W>
+      <W ID="W94" LEMMA="nie" POS="conj">nie</W>
+      <W ID="W95" LEMMA="tylko" POS="conj">tylko</W>
+      <W ID="W96" LEMMA="krewny" POS="subst:pl:gen:m1">krewnych</W>
+      <W ID="W97" LEMMA="," POS="interp">,</W>
+      <W ID="W98" LEMMA="przyjaciel" POS="subst:pl:gen:m1">przyjaciół</W>
+      <W ID="W99" LEMMA="i" POS="conj">i</W>
+      <W ID="W100" LEMMA="znajomy" POS="subst:pl:gen:m1">znajomych</W>
+      <W ID="W101" LEMMA="," POS="interp">,</W>
+      <W ID="W102" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W103" LEMMA="również" POS="qub">również</W>
+      <W ID="W104" LEMMA="wróżka" POS="subst:pl:nom:f">wróżki</W>
+      <W ID="W105" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE17">
+      <W ID="W106" LEMMA="aby" POS="comp">aby</W>
+      <W ID="W107" LEMMA="sprzyjać" POS="praet:pl:f:imperf">sprzyjały</W>
+      <W ID="W108" LEMMA="dziecki" POS="adjp">dziecku</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE18">
+      <W ID="W109" LEMMA="i" POS="conj">i</W>
+      <W ID="W110" LEMMA="otaczać" POS="praet:pl:m3:imperf">otaczały</W>
+      <W ID="W111" LEMMA="on" POS="ppron3:pl:acc:m3:ter:akc:npraep">je</W>
+      <W ID="W112" LEMMA="opieka" POS="subst:sg:inst:f">opieką</W>
+      <W ID="W113" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S4">
+    <CLAUSE ID="CLAUSE19">
+      <W ID="W114" LEMMA="być" POS="praet:sg:n:imperf">Było</W>
+      <W ID="W115" LEMMA="on" POS="ppron3:pl:gen:m2:ter:akc:npraep">ich</W>
+      <W ID="W116" LEMMA="trzynaście" POS="num:pl:nom:m3:rec">trzynaście</W>
+      <W ID="W117" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W118" LEMMA="cały" POS="adj:sg:loc:n:pos">całym</W>
+      <W ID="W119" LEMMA="królestwo" POS="subst:sg:loc:n">królestwie</W>
+      <W ID="W120" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE20">
+      <W ID="W121" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W122" LEMMA="że" POS="comp">że</W>
+      <W ID="W123" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W124" LEMMA="pałac" POS="subst:sg:loc:m3">pałacu</W>
+      <W ID="W125" LEMMA="posiadać" POS="imps:perf">posiadano</W>
+      <W ID="W126" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W127" LEMMA="dwanaście" POS="num:pl:acc:m3:rec">dwanaście</W>
+      <W ID="W128" LEMMA="złoty" POS="adj:pl:gen:m3:pos">złotych</W>
+      <W ID="W129" LEMMA="talerz" POS="subst:pl:gen:m3">talerzy</W>
+      <W ID="W130" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE21">
+      <W ID="W131" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W132" LEMMA="który" POS="adj:pl:loc:f:pos">których</W>
+      <W ID="W133" LEMMA="mieć" POS="praet:pl:f:imperf">miały</W>
+      <W ID="W134" LEMMA="jeść" POS="inf:imperf">jeść</W>
+      <W ID="W135" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE22" CONTINUE="CLAUSE20">
+      <W ID="W136" LEMMA="jeden" POS="adj:sg:nom:f:pos">jedna</W>
+      <W ID="W137" LEMMA="z" POS="prep:gen:nwok">z</W>
+      <W ID="W138" LEMMA="on" POS="ppron3:pl:gen:f:ter:akc:praep">nich</W>
+      <W ID="W139" LEMMA="musieć" POS="praet:sg:f:imperf">musiała</W>
+      <W ID="W140" LEMMA="zostać" POS="inf:perf">zostać</W>
+      <W ID="W141" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W142" LEMMA="dom" POS="subst:sg:loc:m3">domu</W>
+      <W ID="W143" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S5">
+    <CLAUSE ID="CLAUSE23">
+      <W ID="W144" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W145" LEMMA="niezwykle" POS="adv:pos">niezwykle</W>
+      <W ID="W146" LEMMA="wystawny" POS="adj:sg:loc:f:pos">wystawnej</W>
+      <W ID="W147" LEMMA="uczta" POS="subst:sg:loc:f">uczcie</W>
+      <W ID="W148" LEMMA="wróżka" POS="subst:sg:gen:f">wróżki</W>
+      <W ID="W149" LEMMA="począć" POS="praet:pl:m2:perf">poczęły</W>
+      <W ID="W150" LEMMA="składać" POS="inf:imperf">składać</W>
+      <W ID="W151" LEMMA="noworodek" POS="subst:sg:dat:m2">noworodkowi</W>
+      <W ID="W152" LEMMA="dar" POS="subst:pl:acc:m3">dary</W>
+      <W ID="W153" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE24">
+      <W ID="W154" LEMMA="jeden" POS="adj:sg:nom:f:pos">jedna</W>
+      <W ID="W155" LEMMA="obdarzyć" POS="praet:sg:f:perf">obdarzyła</W>
+      <W ID="W156" LEMMA="królewna" POS="subst:sg:acc:f">królewnę</W>
+      <W ID="W157" LEMMA="cnota" POS="subst:pl:inst:f">cnotami</W>
+      <W ID="W158" LEMMA="," POS="interp">,</W>
+      <W ID="W159" LEMMA="drugi" POS="adj:sg:nom:f:pos">druga</W>
+      <W ID="W160" LEMMA="uroda" POS="subst:sg:inst:f">urodą</W>
+      <W ID="W161" LEMMA="," POS="interp">,</W>
+      <W ID="W162" LEMMA="trzeci" POS="adj:sg:nom:f:pos">trzecia</W>
+      <W ID="W163" LEMMA="bogactwo" POS="subst:sg:inst:n">bogactwem</W>
+      <W ID="W164" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE25" CONTINUE="CLAUSE23">
+      <W ID="W165" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W166" LEMMA="że" POS="comp">że</W>
+      <W ID="W167" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W168" LEMMA="koniec" POS="subst:sg:loc:m3">końcu</W>
+      <W ID="W169" LEMMA="otrzymać" POS="praet:sg:f:perf">otrzymała</W>
+      <W ID="W170" LEMMA="on" POS="ppron3:sg:nom:f:ter:akc:npraep">ona</W>
+      <W ID="W171" LEMMA="wszystko" POS="subst:sg:acc:n">wszystko</W>
+      <W ID="W172" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE26">
+      <W ID="W173" LEMMA="co" POS="subst:sg:acc:n">co</W>
+      <W ID="W174" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W175" LEMMA="można" POS="pred">można</W>
+      <W ID="W176" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W177" LEMMA="wymarzyć" POS="inf:perf">wymarzyć</W>
+      <W ID="W178" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W179" LEMMA="ten" POS="adj:sg:loc:m3:pos">tym</W>
+      <W ID="W180" LEMMA="świat" POS="subst:sg:loc:m3">świecie</W>
+      <W ID="W181" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S6">
+    <CLAUSE ID="CLAUSE27">
+      <W ID="W182" LEMMA="kiedy" POS="adv">Kiedy</W>
+      <W ID="W183" LEMMA="jedenaście" POS="num:pl:nom:f:rec">jedenaście</W>
+      <W ID="W184" LEMMA="wróżka" POS="subst:pl:gen:f">wróżek</W>
+      <W ID="W185" LEMMA="poczynić" POS="praet:sg:n:perf">poczyniło</W>
+      <W ID="W186" LEMMA="już" POS="qub">już</W>
+      <W ID="W187" LEMMA="swój" POS="adj:pl:acc:n:pos">swoje</W>
+      <W ID="W188" LEMMA="zaklęcie" POS="subst:pl:acc:n">zaklęcia</W>
+      <W ID="W189" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE28">
+      <W ID="W190" LEMMA="wkroczyć" POS="praet:sg:f:perf">wkroczyła</W>
+      <W ID="W191" LEMMA="nagle" POS="adv:pos">nagle</W>
+      <W ID="W192" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W193" LEMMA="komnata" POS="subst:sg:gen:f">komnaty</W>
+      <W ID="W194" LEMMA="trzynasta" POS="subst:sg:nom:f">trzynasta</W>
+      <W ID="W195" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S7">
+    <CLAUSE ID="CLAUSE29">
+      <W ID="W196" LEMMA="chcieć" POS="praet:sg:f:imperf">Chciała</W>
+      <W ID="W197" LEMMA="się" POS="qub">się</W>
+      <W ID="W198" LEMMA="zemścić" POS="inf:perf">zemścić</W>
+      <W ID="W199" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W200" LEMMA="to" POS="subst:sg:acc:n">to</W>
+      <W ID="W201" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE30">
+      <W ID="W202" LEMMA="że" POS="comp">że</W>
+      <W ID="W203" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W204" LEMMA="zostać" POS="praet:sg:f:perf">została</W>
+      <W ID="W205" LEMMA="zaprosić" POS="ppas:sg:nom:f:perf:aff">zaproszona</W>
+      <W ID="W206" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE31">
+      <W ID="W207" LEMMA="i" POS="conj">i</W>
+      <W ID="W208" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W209" LEMMA="witać" POS="pcon:imperf">witając</W>
+      <W ID="W210" LEMMA="się" POS="qub">się</W>
+      <W ID="W211" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W212" LEMMA="nikt" POS="subst:sg:inst:m1">nikim</W>
+      <W ID="W213" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W214" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W215" LEMMA="nikt" POS="subst:sg:acc:m1">nikogo</W>
+      <W ID="W216" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W217" LEMMA="patrzyć" POS="pcon:imperf">patrząc</W>
+      <W ID="W218" LEMMA="," POS="interp">,</W>
+      <W ID="W219" LEMMA="zawołać" POS="praet:sg:f:perf">zawołała</W>
+      <W ID="W220" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W221" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W222" LEMMA="głos" POS="subst:sg:acc:m3">głos</W>
+      <W ID="W223" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE32">
+      <W ID="W224" LEMMA="-" POS="interp">-</W>
+      <W ID="W225" LEMMA="niechaj" POS="qub">Niechaj</W>
+      <W ID="W226" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W227" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W228" LEMMA="piętnasty" POS="adj:sg:loc:m3:pos">piętnastym</W>
+      <W ID="W229" LEMMA="rok" POS="subst:sg:loc:m3">roku</W>
+      <W ID="W230" LEMMA="życie" POS="subst:sg:gen:n">życia</W>
+      <W ID="W231" LEMMA="ukłuć" POS="fin:sg:ter:perf">ukłuje</W>
+      <W ID="W232" LEMMA="się" POS="qub">się</W>
+      <W ID="W233" LEMMA="wrzeciono" POS="subst:sg:inst:n">wrzecionem</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE33">
+      <W ID="W234" LEMMA="i" POS="conj">i</W>
+      <W ID="W235" LEMMA="umrzeć" POS="fin:sg:ter:perf">umrze</W>
+      <W ID="W236" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S8">
+    <CLAUSE ID="CLAUSE34">
+      <W ID="W237" LEMMA="powiedzieć" POS="pant:perf">Powiedziawszy</W>
+      <W ID="W238" LEMMA="to" POS="pred">to</W>
+      <W ID="W239" LEMMA="zawrócić" POS="praet:sg:f:perf">zawróciła</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE35">
+      <W ID="W240" LEMMA="i" POS="conj">i</W>
+      <W ID="W241" LEMMA="opuścić" POS="praet:sg:f:perf">opuściła</W>
+      <W ID="W242" LEMMA="sala" POS="subst:sg:acc:f">salę</W>
+      <W ID="W243" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S9">
+    <CLAUSE ID="CLAUSE36">
+      <W ID="W244" LEMMA="wszystek" POS="adj:pl:nom:m1:pos">Wszyscy</W>
+      <W ID="W245" LEMMA="obecny" POS="adj:pl:nom:m1:pos">obecni</W>
+      <W ID="W246" LEMMA="stać" POS="praet:pl:m1:imperf">stali</W>
+      <W ID="W247" LEMMA="przerażony" POS="adj:pl:nom:m1:pos">przerażeni</W>
+      <W ID="W248" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE37">
+      <W ID="W249" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W250" LEMMA="wystąpić" POS="praet:sg:f:perf">wystąpiła</W>
+      <W ID="W251" LEMMA="dwunasty" POS="adj:sg:nom:f:pos">dwunasta</W>
+      <W ID="W252" LEMMA="wróżka" POS="subst:sg:nom:f">wróżka</W>
+      <W ID="W253" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE38">
+      <W ID="W254" LEMMA="który" POS="adj:sg:nom:f:pos">która</W>
+      <W ID="W255" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W256" LEMMA="wymienić" POS="praet:sg:f:perf">wymieniła</W>
+      <W ID="W257" LEMMA="jeszcze" POS="qub">jeszcze</W>
+      <W ID="W258" LEMMA="swój" POS="adj:sg:gen:n:pos">swego</W>
+      <W ID="W259" LEMMA="życzenie" POS="subst:sg:gen:n">życzenia</W>
+      <W ID="W260" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE39">
+      <W ID="W261" LEMMA="a" POS="conj">a</W>
+      <W ID="W262" LEMMA="że" POS="comp">że</W>
+      <W ID="W263" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W264" LEMMA="móc" POS="praet:sg:f:imperf">mogła</W>
+      <W ID="W265" LEMMA="odwrócić" POS="inf:perf">odwrócić</W>
+      <W ID="W266" LEMMA="złowrogi" POS="adj:sg:gen:n:pos">złowrogiego</W>
+      <W ID="W267" LEMMA="zaklęcie" POS="subst:sg:gen:n">zaklęcia</W>
+      <W ID="W268" LEMMA="," POS="interp">,</W>
+      <W ID="W269" LEMMA="tylko" POS="qub">tylko</W>
+      <W ID="W270" LEMMA="on" POS="ppron3:pl:acc:n:ter:akc:npraep">je</W>
+      <W ID="W271" LEMMA="złagodzić" POS="inf:perf">złagodzić</W>
+      <W ID="W272" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE40" CONTINUE="CLAUSE37">
+      <W ID="W273" LEMMA="rzec" POS="praet:sg:f:perf">rzekła</W>
+      <W ID="W274" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE41">
+      <W ID="W275" LEMMA="-" POS="interp">-</W>
+      <W ID="W276" LEMMA="niech" POS="qub">Niech</W>
+      <W ID="W277" LEMMA="to" POS="pred">to</W>
+      <W ID="W278" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W279" LEMMA="być" POS="bedzie:sg:ter:imperf">będzie</W>
+      <W ID="W280" LEMMA="śmierć" POS="subst:sg:nom:f">śmierć</W>
+      <W ID="W281" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE42">
+      <W ID="W282" LEMMA="lecz" POS="conj">lecz</W>
+      <W ID="W283" LEMMA="stuletni" POS="adj:sg:nom:m3:pos">stuletni</W>
+      <W ID="W284" LEMMA="głęboki" POS="adj:sg:nom:m3:pos">głęboki</W>
+      <W ID="W285" LEMMA="sen" POS="subst:sg:nom:m3">sen</W>
+      <W ID="W286" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE43">
+      <W ID="W287" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W288" LEMMA="jaki" POS="adj:sg:nom:m3:pos">jaki</W>
+      <W ID="W289" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W290" LEMMA="zapaść" POS="fin:sg:ter:perf">zapadnie</W>
+      <W ID="W291" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S10">
+    <CLAUSE ID="CLAUSE44">
+      <W ID="W292" LEMMA="król" POS="subst:sg:nom:m1">Król</W>
+      <W ID="W293" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE45">
+      <W ID="W294" LEMMA="który" POS="adj:sg:nom:m1:pos">który</W>
+      <W ID="W295" LEMMA="pragnąć" POS="praet:sg:m1:imperf">pragnął</W>
+      <W ID="W296" LEMMA="uchronić" POS="inf:perf">uchronić</W>
+      <W ID="W297" LEMMA="ukochany" POS="adj:sg:acc:n:pos">ukochane</W>
+      <W ID="W298" LEMMA="dziecko" POS="subst:sg:acc:n">dziecko</W>
+      <W ID="W299" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W300" LEMMA="nieszczęście" POS="subst:sg:inst:n">nieszczęściem</W>
+      <W ID="W301" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE46" CONTINUE="CLAUSE44">
+      <W ID="W302" LEMMA="wydać" POS="praet:sg:m1:perf">wydał</W>
+      <W ID="W303" LEMMA="rozkaz" POS="subst:sg:acc:m3">rozkaz</W>
+      <W ID="W304" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE47">
+      <W ID="W305" LEMMA="aby" POS="comp">aby</W>
+      <W ID="W306" LEMMA="wszystek" POS="adj:pl:nom:n:pos">wszystkie</W>
+      <W ID="W307" LEMMA="wrzeciono" POS="subst:pl:nom:n">wrzeciona</W>
+      <W ID="W308" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W309" LEMMA="cały" POS="adj:sg:loc:m3:pos">całym</W>
+      <W ID="W310" LEMMA="on" POS="ppron3:sg:gen:m1:ter:akc:npraep">jego</W>
+      <W ID="W311" LEMMA="państwo" POS="subst:sg:loc:n">państwie</W>
+      <W ID="W312" LEMMA="zostać" POS="praet:pl:m3:perf">zostały</W>
+      <W ID="W313" LEMMA="spalony" POS="subst:pl:acc:m3">spalone</W>
+      <W ID="W314" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S11">
+    <CLAUSE ID="CLAUSE48">
+      <W ID="W315" LEMMA="dar" POS="subst:pl:nom:m3">Dary</W>
+      <W ID="W316" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE49">
+      <W ID="W317" LEMMA="jaki" POS="adj:pl:inst:f:pos">jakimi</W>
+      <W ID="W318" LEMMA="wróżka" POS="subst:sg:gen:f">wróżki</W>
+      <W ID="W319" LEMMA="obsypać" POS="praet:pl:f:perf">obsypały</W>
+      <W ID="W320" LEMMA="dzieweczka" POS="subst:sg:acc:f">dzieweczkę</W>
+      <W ID="W321" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE50" CONTINUE="CLAUSE48">
+      <W ID="W322" LEMMA="spełnić" POS="praet:pl:f:perf">spełniły</W>
+      <W ID="W323" LEMMA="się" POS="qub">się</W>
+      <W ID="W324" LEMMA="co" POS="comp">co</W>
+      <W ID="W325" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W326" LEMMA="jota" POS="subst:sg:gen:f">joty</W>
+      <W ID="W327" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE51">
+      <W ID="W328" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W329" LEMMA="być" POS="praet:sg:f:imperf">była</W>
+      <W ID="W330" LEMMA="taki" POS="adj:sg:nom:f:pos">taka</W>
+      <W ID="W331" LEMMA="śliczny" POS="adj:sg:nom:f:pos">śliczna</W>
+      <W ID="W332" LEMMA="," POS="interp">,</W>
+      <W ID="W333" LEMMA="cnotliwy" POS="adj:sg:nom:f:pos">cnotliwa</W>
+      <W ID="W334" LEMMA="," POS="interp">,</W>
+      <W ID="W335" LEMMA="milutki" POS="adj:sg:nom:f:pos">milutka</W>
+      <W ID="W336" LEMMA="i" POS="conj">i</W>
+      <W ID="W337" LEMMA="roztropny" POS="adj:sg:nom:f:pos">roztropna</W>
+      <W ID="W338" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE52">
+      <W ID="W339" LEMMA="że" POS="comp">że</W>
+      <W ID="W340" LEMMA="wystarczyć" POS="praet:sg:n:perf">wystarczyło</W>
+      <W ID="W341" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W342" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:praep">nią</W>
+      <W ID="W343" LEMMA="spojrzeć" POS="inf:perf">spojrzeć</W>
+      <W ID="W344" LEMMA="," POS="interp">,</W>
+      <W ID="W345" LEMMA="by" POS="comp">by</W>
+      <W ID="W346" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W347" LEMMA="pokochać" POS="inf:perf">pokochać</W>
+      <W ID="W348" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S12">
+    <CLAUSE ID="CLAUSE53">
+      <W ID="W349" LEMMA="tak" POS="adv:pos">Tak</W>
+      <W ID="W350" LEMMA="się" POS="qub">się</W>
+      <W ID="W351" LEMMA="złożyć" POS="praet:sg:n:perf">złożyło</W>
+      <W ID="W352" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE54">
+      <W ID="W353" LEMMA="że" POS="comp">że</W>
+      <W ID="W354" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W355" LEMMA="dzień" POS="subst:sg:loc:m3">dniu</W>
+      <W ID="W356" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE55">
+      <W ID="W357" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W358" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W359" LEMMA="kończyć" POS="praet:sg:f:imperf">kończyła</W>
+      <W ID="W360" LEMMA="piętnaście" POS="num:pl:acc:m3:rec">piętnaście</W>
+      <W ID="W361" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+      <W ID="W362" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE56">
+      <W ID="W363" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W364" LEMMA="król" POS="subst:sg:gen:m1">króla</W>
+      <W ID="W365" LEMMA="," POS="interp">,</W>
+      <W ID="W366" LEMMA="ani" POS="conj">ani</W>
+      <W ID="W367" LEMMA="królowa" POS="subst:sg:gen:f">królowej</W>
+      <W ID="W368" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W369" LEMMA="być" POS="praet:sg:n:imperf">było</W>
+      <W ID="W370" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W371" LEMMA="dom" POS="subst:sg:loc:m3">domu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE57">
+      <W ID="W372" LEMMA="i" POS="conj">i</W>
+      <W ID="W373" LEMMA="dziewczynka" POS="subst:sg:nom:f">dziewczynka</W>
+      <W ID="W374" LEMMA="zostać" POS="praet:sg:f:perf">została</W>
+      <W ID="W375" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W376" LEMMA="pałac" POS="subst:sg:loc:m3">pałacu</W>
+      <W ID="W377" LEMMA="zupełnie" POS="adv:pos">zupełnie</W>
+      <W ID="W378" LEMMA="sam" POS="adj:sg:nom:f:pos">sama</W>
+      <W ID="W379" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S13">
+    <CLAUSE ID="CLAUSE58">
+      <W ID="W380" LEMMA="chodzić" POS="praet:sg:f:imperf">Chodziła</W>
+      <W ID="W381" LEMMA="się" POS="siebie:dat">sobie</W>
+      <W ID="W382" LEMMA="po" POS="prep:loc">po</W>
+      <W ID="W383" LEMMA="cały" POS="adj:sg:loc:m3:pos">całym</W>
+      <W ID="W384" LEMMA="gmach" POS="subst:sg:loc:m3">gmachu</W>
+      <W ID="W385" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE59">
+      <W ID="W386" LEMMA="zaglądać" POS="praet:sg:f:imperf">zaglądała</W>
+      <W ID="W387" LEMMA="swobodnie" POS="adv:pos">swobodnie</W>
+      <W ID="W388" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W389" LEMMA="wszystek" POS="adj:pl:gen:f:pos">wszystkich</W>
+      <W ID="W390" LEMMA="komnata" POS="subst:pl:gen:f">komnat</W>
+      <W ID="W391" LEMMA="i" POS="conj">i</W>
+      <W ID="W392" LEMMA="pokój" POS="subst:pl:gen:m3">pokoi</W>
+      <W ID="W393" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE60">
+      <W ID="W394" LEMMA="aż" POS="comp">aż</W>
+      <W ID="W395" LEMMA="stanąć" POS="praet:sg:f:perf">stanęła</W>
+      <W ID="W396" LEMMA="u" POS="prep:gen">u</W>
+      <W ID="W397" LEMMA="stopa" POS="subst:pl:gen:f">stóp</W>
+      <W ID="W398" LEMMA="stary" POS="adj:sg:gen:f:pos">starej</W>
+      <W ID="W399" LEMMA="wieża" POS="subst:sg:gen:f">wieży</W>
+      <W ID="W400" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S14">
+    <CLAUSE ID="CLAUSE61">
+      <W ID="W401" LEMMA="wspiąć" POS="praet:sg:f:perf">Wspięła</W>
+      <W ID="W402" LEMMA="się" POS="qub">się</W>
+      <W ID="W403" LEMMA="po" POS="prep:loc">po</W>
+      <W ID="W404" LEMMA="kręcić" POS="ppas:pl:loc:n:imperf:aff">kręconych</W>
+      <W ID="W405" LEMMA="schody" POS="subst:pl:loc:n">schodach</W>
+      <W ID="W406" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W407" LEMMA="góra" POS="subst:sg:acc:f">górę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE62">
+      <W ID="W408" LEMMA="i" POS="conj">i</W>
+      <W ID="W409" LEMMA="znaleźć" POS="praet:sg:f:perf">znalazła</W>
+      <W ID="W410" LEMMA="się" POS="qub">się</W>
+      <W ID="W411" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W412" LEMMA="maleńki" POS="adj:pl:inst:n:pos">maleńkimi</W>
+      <W ID="W413" LEMMA="drzwiczki" POS="subst:pl:inst:n">drzwiczkami</W>
+      <W ID="W414" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S15">
+    <CLAUSE ID="CLAUSE63">
+      <W ID="W415" LEMMA="w" POS="prep:loc:nwok">W</W>
+      <W ID="W416" LEMMA="zamek" POS="subst:sg:loc:m3">zamku</W>
+      <W ID="W417" LEMMA="tkwić" POS="praet:sg:m3:imperf">tkwił</W>
+      <W ID="W418" LEMMA="zardzewiały" POS="adj:sg:nom:m3:pos">zardzewiały</W>
+      <W ID="W419" LEMMA="klucz" POS="subst:sg:nom:m3">klucz</W>
+      <W ID="W420" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE64">
+      <W ID="W421" LEMMA="a" POS="conj">a</W>
+      <W ID="W422" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W423" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W424" LEMMA="on" POS="ppron3:sg:acc:m1:ter:nakc:npraep">go</W>
+      <W ID="W425" LEMMA="przekręcić" POS="praet:sg:f:perf">przekręciła</W>
+      <W ID="W426" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE65">
+      <W ID="W427" LEMMA="drzwi" POS="subst:pl:nom:n">drzwi</W>
+      <W ID="W428" LEMMA="otworzyć" POS="praet:pl:n:perf">otworzyły</W>
+      <W ID="W429" LEMMA="się" POS="qub">się</W>
+      <W ID="W430" LEMMA="gwałtownie" POS="adv:pos">gwałtownie</W>
+      <W ID="W431" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE66">
+      <W ID="W432" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W433" LEMMA="izdebka" POS="subst:sg:loc:f">izdebce</W>
+      <W ID="W434" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W435" LEMMA="siedzieć" POS="praet:sg:f:imperf">siedziała</W>
+      <W ID="W436" LEMMA="stary" POS="adj:sg:nom:f:pos">stara</W>
+      <W ID="W437" LEMMA="kobieta" POS="subst:sg:nom:f">kobieta</W>
+      <W ID="W438" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W439" LEMMA="wrzeciono" POS="subst:sg:inst:n">wrzecionem</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE67">
+      <W ID="W440" LEMMA="i" POS="conj">i</W>
+      <W ID="W441" LEMMA="prząść" POS="praet:sg:f:imperf">przędła</W>
+      <W ID="W442" LEMMA="pilnie" POS="adv:pos">pilnie</W>
+      <W ID="W443" LEMMA="Lena" POS="subst:pl:gen:f">len</W>
+      <W ID="W444" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S16">
+    <CLAUSE ID="CLAUSE68">
+      <W ID="W445" LEMMA="-" POS="interp">-</W>
+      <W ID="W446" LEMMA="dzień" POS="subst:sg:nom:m3">Dzień</W>
+      <W ID="W447" LEMMA="dobry" POS="adj:sg:nom:m3:pos">dobry</W>
+      <W ID="W448" LEMMA="," POS="interp">,</W>
+      <W ID="W449" LEMMA="babcia" POS="subst:sg:voc:f">babciu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE69">
+      <W ID="W450" LEMMA="-" POS="interp">-</W>
+      <W ID="W451" LEMMA="rzec" POS="praet:sg:f:perf">rzekła</W>
+      <W ID="W452" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE70">
+      <W ID="W453" LEMMA="-" POS="interp">-</W>
+      <W ID="W454" LEMMA="co" POS="subst:sg:acc:n">co</W>
+      <W ID="W455" LEMMA="ty" POS="ppron12:sg:nom:m1:sec">ty</W>
+      <W ID="W456" LEMMA="tu" POS="adv">tu</W>
+      <W ID="W457" LEMMA="robić" POS="fin:sg:sec:imperf">robisz</W>
+      <W ID="W458" LEMMA="?" POS="interp">?</W>
+    </CLAUSE>
+  </S>
+  <S ID="S17">
+    <CLAUSE ID="CLAUSE71">
+      <W ID="W459" LEMMA="-" POS="interp">-</W>
+      <W ID="W460" LEMMA="prząść" POS="fin:sg:pri:imperf">Przędę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE72">
+      <W ID="W461" LEMMA="-" POS="interp">-</W>
+      <W ID="W462" LEMMA="odeprzeć" POS="praet:sg:f:perf">odparła</W>
+      <W ID="W463" LEMMA="staruszka" POS="subst:sg:nom:f">staruszka</W>
+      <W ID="W464" LEMMA="," POS="interp">,</W>
+      <W ID="W465" LEMMA="kiwać" POS="pcon:imperf">kiwając</W>
+      <W ID="W466" LEMMA="głowa" POS="subst:sg:inst:f">głową</W>
+      <W ID="W467" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S18">
+    <CLAUSE ID="CLAUSE73">
+      <W ID="W468" LEMMA="-" POS="interp">-</W>
+      <W ID="W469" LEMMA="a" POS="conj">A</W>
+      <W ID="W470" LEMMA="co" POS="subst:sg:nom:n">co</W>
+      <W ID="W471" LEMMA="to" POS="pred">to</W>
+      <W ID="W472" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W473" LEMMA="śmiesznie" POS="adv:pos">śmiesznie</W>
+      <W ID="W474" LEMMA="podskakiwać" POS="fin:sg:ter:imperf">podskakuje</W>
+      <W ID="W475" LEMMA="?" POS="interp">?</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE74">
+      <W ID="W476" LEMMA="-" POS="interp">-</W>
+      <W ID="W477" LEMMA="spytać" POS="praet:sg:f:perf">spytała</W>
+      <W ID="W478" LEMMA="dziewczynka" POS="subst:sg:nom:f">dziewczynka</W>
+      <W ID="W479" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE75">
+      <W ID="W480" LEMMA="wziąć" POS="praet:sg:f:perf">wzięła</W>
+      <W ID="W481" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W482" LEMMA="ręka" POS="subst:sg:gen:f">ręki</W>
+      <W ID="W483" LEMMA="wrzeciono" POS="subst:sg:acc:n">wrzeciono</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE76">
+      <W ID="W484" LEMMA="i" POS="conj">i</W>
+      <W ID="W485" LEMMA="chcieć" POS="praet:sg:f:imperf">chciała</W>
+      <W ID="W486" LEMMA="także" POS="qub">także</W>
+      <W ID="W487" LEMMA="prząść" POS="inf:imperf">prząść</W>
+      <W ID="W488" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S19">
+    <CLAUSE ID="CLAUSE77">
+      <W ID="W489" LEMMA="ledwie" POS="qub">Ledwie</W>
+      <W ID="W490" LEMMA="dotknąć" POS="praet:sg:f:perf">dotknęła</W>
+      <W ID="W491" LEMMA="wrzeciono" POS="subst:pl:acc:n">wrzeciona</W>
+      <W ID="W492" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE78">
+      <W ID="W493" LEMMA="spełnić" POS="praet:sg:f:perf">spełniła</W>
+      <W ID="W494" LEMMA="się" POS="qub">się</W>
+      <W ID="W495" LEMMA="zły" POS="adj:sg:nom:f:pos">zła</W>
+      <W ID="W496" LEMMA="przepowiednia" POS="subst:sg:nom:f">przepowiednia</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE79">
+      <W ID="W497" LEMMA="i" POS="conj">i</W>
+      <W ID="W498" LEMMA="ukłuć" POS="praet:sg:f:perf">ukłuła</W>
+      <W ID="W499" LEMMA="się" POS="qub">się</W>
+      <W ID="W500" LEMMA="on" POS="ppron3:sg:inst:m1:ter:akc:npraep">nim</W>
+      <W ID="W501" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W502" LEMMA="palec" POS="subst:sg:acc:m3">palec</W>
+      <W ID="W503" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S20">
+    <CLAUSE ID="CLAUSE80">
+      <W ID="W504" LEMMA="a" POS="conj">A</W>
+      <W ID="W505" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W506" LEMMA="chwila" POS="subst:sg:loc:f">chwili</W>
+      <W ID="W507" LEMMA="gdy" POS="adv">gdy</W>
+      <W ID="W508" LEMMA="poczuć" POS="praet:sg:f:perf">poczuła</W>
+      <W ID="W509" LEMMA="ukłucie" POS="subst:sg:nom:n">ukłucie</W>
+      <W ID="W510" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE81">
+      <W ID="W511" LEMMA="paść" POS="praet:sg:f:perf">padła</W>
+      <W ID="W512" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W513" LEMMA="łóżko" POS="subst:sg:acc:n">łóżko</W>
+      <W ID="W514" LEMMA="stać" POS="pact:sg:acc:n:imperf:aff">stojące</W>
+      <W ID="W515" LEMMA="obok" POS="adv">obok</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE82">
+      <W ID="W516" LEMMA="i" POS="conj">i</W>
+      <W ID="W517" LEMMA="pogrążyć" POS="praet:sg:f:perf">pogrążyła</W>
+      <W ID="W518" LEMMA="się" POS="qub">się</W>
+      <W ID="W519" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W520" LEMMA="głęboki" POS="adj:sg:loc:m3:pos">głębokim</W>
+      <W ID="W521" LEMMA="sen" POS="subst:sg:loc:m3">śnie</W>
+      <W ID="W522" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S21">
+    <CLAUSE ID="CLAUSE83">
+      <W ID="W523" LEMMA="ten" POS="adj:sg:nom:m3:pos">Ten</W>
+      <W ID="W524" LEMMA="sen" POS="subst:sg:nom:m3">sen</W>
+      <W ID="W525" LEMMA="ogarnąć" POS="praet:sg:m3:perf">ogarnął</W>
+      <W ID="W526" LEMMA="również" POS="qub">również</W>
+      <W ID="W527" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W528" LEMMA="pałac" POS="subst:sg:acc:m3">pałac</W>
+      <W ID="W529" LEMMA=":" POS="interp">:</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE84">
+      <W ID="W530" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W531" LEMMA="i" POS="conj">i</W>
+      <W ID="W532" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W533" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE85">
+      <W ID="W534" LEMMA="który" POS="adj:pl:nom:m1:pos">którzy</W>
+      <W ID="W535" LEMMA="wrócić" POS="praet:pl:m1:perf">wrócili</W>
+      <W ID="W536" LEMMA="właśnie" POS="qub">właśnie</W>
+      <W ID="W537" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W538" LEMMA="dom" POS="subst:sg:gen:m3">domu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE86">
+      <W ID="W539" LEMMA="i" POS="conj">i</W>
+      <W ID="W540" LEMMA="wkraczać" POS="praet:pl:m1:imperf">wkraczali</W>
+      <W ID="W541" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W542" LEMMA="sala" POS="subst:sg:acc:f">salę</W>
+      <W ID="W543" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE87" CONTINUE="CLAUSE84">
+      <W ID="W544" LEMMA="zasnąć" POS="praet:pl:m1:perf">zasnęli</W>
+      <W ID="W545" LEMMA="wraz" POS="burk">wraz</W>
+      <W ID="W546" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W547" LEMMA="cały" POS="adj:sg:inst:m3:pos">całym</W>
+      <W ID="W548" LEMMA="swój" POS="adj:sg:inst:m3:pos">swym</W>
+      <W ID="W549" LEMMA="dwór" POS="subst:sg:inst:m3">dworem</W>
+      <W ID="W550" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S22">
+    <CLAUSE ID="CLAUSE88">
+      <W ID="W551" LEMMA="zasnąć" POS="praet:pl:m2:perf">Zasnęły</W>
+      <W ID="W552" LEMMA="koń" POS="subst:pl:nom:m2">konie</W>
+      <W ID="W553" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W554" LEMMA="stajnia" POS="subst:sg:loc:f">stajni</W>
+      <W ID="W555" LEMMA="," POS="interp">,</W>
+      <W ID="W556" LEMMA="pies" POS="subst:pl:nom:m2">psy</W>
+      <W ID="W557" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W558" LEMMA="podwórze" POS="subst:sg:loc:n">podwórzu</W>
+      <W ID="W559" LEMMA="," POS="interp">,</W>
+      <W ID="W560" LEMMA="gołąb" POS="subst:pl:nom:m2">gołębie</W>
+      <W ID="W561" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W562" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W563" LEMMA="," POS="interp">,</W>
+      <W ID="W564" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W565" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W566" LEMMA="ściana" POS="subst:sg:loc:f">ścianie</W>
+      <W ID="W567" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE89">
+      <W ID="W568" LEMMA="a" POS="conj">a</W>
+      <W ID="W569" LEMMA="nawet" POS="qub">nawet</W>
+      <W ID="W570" LEMMA="ogień" POS="subst:sg:nom:m3">ogień</W>
+      <W ID="W571" LEMMA="płonąć" POS="pact:sg:acc:m3:imperf:aff">płonący</W>
+      <W ID="W572" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W573" LEMMA="kuchenny" POS="adj:sg:loc:m3:pos">kuchennym</W>
+      <W ID="W574" LEMMA="piec" POS="subst:sg:loc:m3">piecu</W>
+      <W ID="W575" LEMMA="zgasnąć" POS="praet:sg:m1:perf">zgasł</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE90">
+      <W ID="W576" LEMMA="i" POS="conj">i</W>
+      <W ID="W577" LEMMA="usnąć" POS="praet:sg:m1:perf">usnął</W>
+      <W ID="W578" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE91">
+      <W ID="W579" LEMMA="a" POS="conj">a</W>
+      <W ID="W580" LEMMA="pieczeń" POS="subst:sg:nom:f">pieczeń</W>
+      <W ID="W581" LEMMA="przestać" POS="praet:sg:f:perf">przestała</W>
+      <W ID="W582" LEMMA="się" POS="qub">się</W>
+      <W ID="W583" LEMMA="dusić" POS="inf:imperf">dusić</W>
+      <W ID="W584" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE92">
+      <W ID="W585" LEMMA="i" POS="conj">i</W>
+      <W ID="W586" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W587" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE93">
+      <W ID="W588" LEMMA="który" POS="adj:sg:nom:m1:pos">który</W>
+      <W ID="W589" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W590" LEMMA="pociągnąć" POS="inf:perf">pociągnąć</W>
+      <W ID="W591" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W592" LEMMA="włos" POS="subst:pl:acc:m3">włosy</W>
+      <W ID="W593" LEMMA="kuchcik" POS="subst:sg:gen:m1">kuchcika</W>
+      <W ID="W594" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE94">
+      <W ID="W595" LEMMA="bo" POS="comp">bo</W>
+      <W ID="W596" LEMMA="coś" POS="subst:sg:nom:n">coś</W>
+      <W ID="W597" LEMMA="przeskrobać" POS="praet:sg:m1:perf">przeskrobał</W>
+      <W ID="W598" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE95" CONTINUE="CLAUSE93">
+      <W ID="W599" LEMMA="puścić" POS="praet:sg:m1:perf">puścił</W>
+      <W ID="W600" LEMMA="on" POS="ppron3:sg:gen:m1:ter:akc:npraep">jego</W>
+      <W ID="W601" LEMMA="czupryna" POS="subst:sg:acc:f">czuprynę</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE96">
+      <W ID="W602" LEMMA="i" POS="conj">i</W>
+      <W ID="W603" LEMMA="zasnąć" POS="praet:sg:m1:perf">zasnął</W>
+      <W ID="W604" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S23">
+    <CLAUSE ID="CLAUSE97">
+      <W ID="W605" LEMMA="i" POS="conj">I</W>
+      <W ID="W606" LEMMA="wiatr" POS="subst:sg:nom:m3">wiatr</W>
+      <W ID="W607" LEMMA="ucichnąć" POS="praet:sg:m3:perf">ucichł</W>
+      <W ID="W608" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE98">
+      <W ID="W609" LEMMA="a" POS="conj">a</W>
+      <W ID="W610" LEMMA="liście" POS="subst:sg:nom:n">liście</W>
+      <W ID="W611" LEMMA="drzewo" POS="subst:pl:gen:n">drzew</W>
+      <W ID="W612" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W613" LEMMA="dziedziniec" POS="subst:sg:loc:m3">dziedzińcu</W>
+      <W ID="W614" LEMMA="znieruchomiać" POS="praet:pl:f:imperf">znieruchomiały</W>
+      <W ID="W615" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S24">
+    <CLAUSE ID="CLAUSE99">
+      <W ID="W616" LEMMA="wokół" POS="prep:gen">Wokół</W>
+      <W ID="W617" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+      <W ID="W618" LEMMA="zacząć" POS="praet:sg:m1:perf">zaczął</W>
+      <W ID="W619" LEMMA="rosnąć" POS="inf:imperf">rosnąć</W>
+      <W ID="W620" LEMMA="cierniowy" POS="adj:sg:acc:m3:pos">cierniowy</W>
+      <W ID="W621" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W622" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE100">
+      <W ID="W623" LEMMA="który" POS="adj:sg:nom:m3:pos">który</W>
+      <W ID="W624" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W625" LEMMA="każdy" POS="adj:sg:inst:m3:pos">każdym</W>
+      <W ID="W626" LEMMA="rok" POS="subst:sg:inst:m3">rokiem</W>
+      <W ID="W627" LEMMA="stawać" POS="praet:sg:m3:imperf">stawał</W>
+      <W ID="W628" LEMMA="się" POS="qub">się</W>
+      <W ID="W629" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W630" LEMMA="wysoki" POS="adj:sg:nom:m3:com">wyższy</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE101">
+      <W ID="W631" LEMMA="i" POS="conj">i</W>
+      <W ID="W632" LEMMA="wreszcie" POS="qub">wreszcie</W>
+      <W ID="W633" LEMMA="zarość" POS="praet:sg:m1:perf:nagl">zarósł</W>
+      <W ID="W634" LEMMA="cały" POS="adj:sg:acc:m3:pos">cały</W>
+      <W ID="W635" LEMMA="pałac" POS="subst:sg:acc:m3">pałac</W>
+      <W ID="W636" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE102">
+      <W ID="W637" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W638" LEMMA="że" POS="comp">że</W>
+      <W ID="W639" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W640" LEMMA="być" POS="praet:sg:n:imperf">było</W>
+      <W ID="W641" LEMMA="on" POS="ppron3:sg:gen:m1:ter:nakc:npraep">go</W>
+      <W ID="W642" LEMMA="już" POS="qub">już</W>
+      <W ID="W643" LEMMA="wcale" POS="adv">wcale</W>
+      <W ID="W644" LEMMA="widać" POS="pred">widać</W>
+      <W ID="W645" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE103">
+      <W ID="W646" LEMMA="zniknąć" POS="praet:sg:f:perf">znikła</W>
+      <W ID="W647" LEMMA="nawet" POS="qub">nawet</W>
+      <W ID="W648" LEMMA="chorągiewka" POS="subst:sg:nom:f">chorągiewka</W>
+      <W ID="W649" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W650" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W651" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S25">
+    <CLAUSE ID="CLAUSE104">
+      <W ID="W652" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W653" LEMMA="kraj" POS="subst:sg:loc:m3">kraju</W>
+      <W ID="W654" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W655" LEMMA="rozejść" POS="praet:sg:f:perf">rozeszła</W>
+      <W ID="W656" LEMMA="się" POS="qub">się</W>
+      <W ID="W657" LEMMA="wieść" POS="subst:sg:nom:f">wieść</W>
+      <W ID="W658" LEMMA="o" POS="prep:loc">o</W>
+      <W ID="W659" LEMMA="śpiący" POS="adj:sg:loc:f:pos">śpiącej</W>
+      <W ID="W660" LEMMA="królewna" POS="subst:sg:loc:f">królewnie</W>
+      <W ID="W661" LEMMA="różyczka" POS="subst:sg:loc:f">Różyczce</W>
+      <W ID="W662" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE105">
+      <W ID="W663" LEMMA="bo" POS="comp">bo</W>
+      <W ID="W664" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W665" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W666" LEMMA="nazywać" POS="imps:imperf">nazywano</W>
+      <W ID="W667" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE106" CONTINUE="CLAUSE104">
+      <W ID="W668" LEMMA="i" POS="conj">i</W>
+      <W ID="W669" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W670" LEMMA="to" POS="qub">to</W>
+      <W ID="W671" LEMMA="jakiś" POS="adj:sg:nom:m1:pos">jakiś</W>
+      <W ID="W672" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W673" LEMMA="przybywać" POS="praet:sg:m1:imperf">przybywał</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE107">
+      <W ID="W674" LEMMA="i" POS="conj">i</W>
+      <W ID="W675" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W676" LEMMA="przedrzeć" POS="inf:perf">przedrzeć</W>
+      <W ID="W677" LEMMA="się" POS="qub">się</W>
+      <W ID="W678" LEMMA="przez" POS="prep:acc:nwok">przez</W>
+      <W ID="W679" LEMMA="gęsty" POS="adj:sg:acc:m3:pos">gęsty</W>
+      <W ID="W680" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W681" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S26">
+    <CLAUSE ID="CLAUSE108">
+      <W ID="W682" LEMMA="żaden" POS="adj:sg:dat:m1:pos">Żadnemu</W>
+      <W ID="W683" LEMMA="się" POS="qub">się</W>
+      <W ID="W684" LEMMA="to" POS="subst:sg:nom:n">to</W>
+      <W ID="W685" LEMMA="jednak" POS="conj">jednak</W>
+      <W ID="W686" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W687" LEMMA="udać" POS="praet:sg:n:perf">udało</W>
+      <W ID="W688" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE109">
+      <W ID="W689" LEMMA="bowiem" POS="comp">bowiem</W>
+      <W ID="W690" LEMMA="cierń" POS="subst:pl:nom:m3">ciernie</W>
+      <W ID="W691" LEMMA="powstrzymywać" POS="praet:pl:m3:imperf">powstrzymywały</W>
+      <W ID="W692" LEMMA="każdy" POS="adj:sg:gen:m3:pos">każdego</W>
+      <W ID="W693" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE110">
+      <W ID="W694" LEMMA="jakby" POS="comp">jakby</W>
+      <W ID="W695" LEMMA="mieć" POS="praet:pl:f:imperf">miały</W>
+      <W ID="W696" LEMMA="ręka" POS="subst:pl:acc:f">ręce</W>
+      <W ID="W697" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE111" CONTINUE="CLAUSE108">
+      <W ID="W698" LEMMA="i" POS="conj">i</W>
+      <W ID="W699" LEMMA="młodzieniec" POS="subst:pl:nom:m1">młodzieńcy</W>
+      <W ID="W700" LEMMA="," POS="interp">,</W>
+      <W ID="W701" LEMMA="wczepić" POS="ppas:pl:nom:m1:perf:aff">wczepieni</W>
+      <W ID="W702" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W703" LEMMA="on" POS="ppron3:pl:acc:m3:ter:akc:praep">nie</W>
+      <W ID="W704" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE112">
+      <W ID="W705" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W706" LEMMA="móc" POS="praet:pl:m1:imperf">mogli</W>
+      <W ID="W707" LEMMA="się" POS="qub">się</W>
+      <W ID="W708" LEMMA="już" POS="qub">już</W>
+      <W ID="W709" LEMMA="wyzwolić" POS="inf:perf">wyzwolić</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE113">
+      <W ID="W710" LEMMA="i" POS="conj">i</W>
+      <W ID="W711" LEMMA="umierać" POS="praet:pl:m1:imperf">umierali</W>
+      <W ID="W712" LEMMA="żałosny" POS="adj:sg:acc:f:pos">żałosną</W>
+      <W ID="W713" LEMMA="śmierć" POS="subst:sg:inst:f">śmiercią</W>
+      <W ID="W714" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S27">
+    <CLAUSE ID="CLAUSE114">
+      <W ID="W715" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W716" LEMMA="wiele" POS="num:pl:loc:m3:congr">wielu</W>
+      <W ID="W717" LEMMA="," POS="interp">,</W>
+      <W ID="W718" LEMMA="wiele" POS="num:pl:loc:m3:congr">wielu</W>
+      <W ID="W719" LEMMA="rok" POS="subst:pl:loc:m3">latach</W>
+      <W ID="W720" LEMMA="przybyć" POS="praet:sg:m1:perf">przybył</W>
+      <W ID="W721" LEMMA="znów" POS="qub">znów</W>
+      <W ID="W722" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W723" LEMMA="kraj" POS="subst:sg:gen:m3">kraju</W>
+      <W ID="W724" LEMMA="ten" POS="adj:sg:gen:m3:pos">tego</W>
+      <W ID="W725" LEMMA="młody" POS="adj:sg:nom:m1:pos">młody</W>
+      <W ID="W726" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W727" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S28">
+    <CLAUSE ID="CLAUSE115">
+      <W ID="W728" LEMMA="słyszeć" POS="praet:sg:m1:imperf">Słyszał</W>
+      <W ID="W729" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W730" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE116">
+      <W ID="W731" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W732" LEMMA="jakiś" POS="adj:sg:nom:m1:pos">jakiś</W>
+      <W ID="W733" LEMMA="starzec" POS="subst:sg:nom:m1">starzec</W>
+      <W ID="W734" LEMMA="opowiadać" POS="fin:sg:ter:imperf">opowiada</W>
+      <W ID="W735" LEMMA="o" POS="prep:loc">o</W>
+      <W ID="W736" LEMMA="cierniowy" POS="adj:sg:loc:m3:pos">cierniowym</W>
+      <W ID="W737" LEMMA="żywopłot" POS="subst:sg:loc:m3">żywopłocie</W>
+      <W ID="W738" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE117">
+      <W ID="W739" LEMMA="za" POS="prep:inst">za</W>
+      <W ID="W740" LEMMA="który" POS="adj:sg:inst:m3:pos">którym</W>
+      <W ID="W741" LEMMA="ukryć" POS="ppas:sg:nom:m3:perf:aff">ukryty</W>
+      <W ID="W742" LEMMA="być" POS="fin:sg:ter:imperf">jest</W>
+      <W ID="W743" LEMMA="pałac" POS="subst:sg:nom:m3">pałac</W>
+      <W ID="W744" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE118">
+      <W ID="W745" LEMMA="a" POS="conj">a</W>
+      <W ID="W746" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W747" LEMMA="on" POS="ppron3:sg:loc:m3:ter:akc:praep">nim</W>
+      <W ID="W748" LEMMA="od" POS="prep:gen:nwok">od</W>
+      <W ID="W749" LEMMA="sto" POS="num:pl:gen:m3:congr">stu</W>
+      <W ID="W750" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+      <W ID="W751" LEMMA="spać" POS="fin:sg:ter:imperf">śpi</W>
+      <W ID="W752" LEMMA="prześliczny" POS="adj:sg:nom:f:pos">prześliczna</W>
+      <W ID="W753" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W754" LEMMA="," POS="interp">,</W>
+      <W ID="W755" LEMMA="zwać" POS="ppas:sg:nom:f:imperf:aff">zwana</W>
+      <W ID="W756" LEMMA="różyczka" POS="subst:sg:inst:f">Różyczką</W>
+      <W ID="W757" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE119">
+      <W ID="W758" LEMMA="wraz" POS="burk">wraz</W>
+      <W ID="W759" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W760" LEMMA="on" POS="ppron3:sg:inst:f:ter:akc:praep">nią</W>
+      <W ID="W761" LEMMA="zaś" POS="conj">zaś</W>
+      <W ID="W762" LEMMA="spać" POS="fin:pl:ter:imperf">śpią</W>
+      <W ID="W763" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W764" LEMMA="i" POS="conj">i</W>
+      <W ID="W765" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W766" LEMMA="," POS="interp">,</W>
+      <W ID="W767" LEMMA="i" POS="conj">i</W>
+      <W ID="W768" LEMMA="wszystek" POS="adj:pl:nom:m1:pos">wszyscy</W>
+      <W ID="W769" LEMMA="dworzanin" POS="subst:pl:nom:m1">dworzanie</W>
+      <W ID="W770" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S29">
+    <CLAUSE ID="CLAUSE120">
+      <W ID="W771" LEMMA="od" POS="prep:gen:nwok">Od</W>
+      <W ID="W772" LEMMA="swój" POS="adj:sg:gen:m1:pos">swego</W>
+      <W ID="W773" LEMMA="dziadek" POS="subst:sg:gen:m1">dziadka</W>
+      <W ID="W774" LEMMA="wiedzieć" POS="praet:sg:m1:imperf">wiedział</W>
+      <W ID="W775" LEMMA="również" POS="qub">również</W>
+      <W ID="W776" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE121">
+      <W ID="W777" LEMMA="że" POS="comp">że</W>
+      <W ID="W778" LEMMA="wiele" POS="num:pl:nom:m1:rec">wielu</W>
+      <W ID="W779" LEMMA="już" POS="qub">już</W>
+      <W ID="W780" LEMMA="królewicz" POS="subst:pl:gen:m1">królewiczów</W>
+      <W ID="W781" LEMMA="próbować" POS="praet:sg:n:imperf">próbowało</W>
+      <W ID="W782" LEMMA="przedrzeć" POS="inf:perf">przedrzeć</W>
+      <W ID="W783" LEMMA="się" POS="qub">się</W>
+      <W ID="W784" LEMMA="przez" POS="prep:acc:nwok">przez</W>
+      <W ID="W785" LEMMA="ów" POS="adj:sg:acc:m3:pos">ów</W>
+      <W ID="W786" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W787" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE122">
+      <W ID="W788" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W789" LEMMA="zawiśle" POS="subst:pl:gen:n">zawiśli</W>
+      <W ID="W790" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W791" LEMMA="on" POS="ppron3:sg:loc:m3:ter:akc:praep">nim</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE123">
+      <W ID="W792" LEMMA="i" POS="conj">i</W>
+      <W ID="W793" LEMMA="zginąć" POS="praet:pl:m1:perf">zginęli</W>
+      <W ID="W794" LEMMA="smutny" POS="adj:sg:acc:f:pos">smutną</W>
+      <W ID="W795" LEMMA="śmierć" POS="subst:sg:inst:f">śmiercią</W>
+      <W ID="W796" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S30">
+    <CLAUSE ID="CLAUSE124">
+      <W ID="W797" LEMMA="-" POS="interp">-</W>
+      <W ID="W798" LEMMA="ja" POS="ppron12:sg:nom:m1:pri">Ja</W>
+      <W ID="W799" LEMMA="się" POS="qub">się</W>
+      <W ID="W800" LEMMA="nic" POS="subst:sg:gen:n">niczego</W>
+      <W ID="W801" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W802" LEMMA="bać" POS="fin:sg:pri:imperf">boję</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE125">
+      <W ID="W803" LEMMA="-" POS="interp">-</W>
+      <W ID="W804" LEMMA="rzec" POS="praet:sg:m1:perf">rzekł</W>
+      <W ID="W805" LEMMA="młodzieniec" POS="subst:sg:nom:m1">młodzieniec</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE126">
+      <W ID="W806" LEMMA="-" POS="interp">-</W>
+      <W ID="W807" LEMMA="udać" POS="fin:sg:pri:perf">udam</W>
+      <W ID="W808" LEMMA="się" POS="qub">się</W>
+      <W ID="W809" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W810" LEMMA="zaczarowany" POS="adj:sg:gen:m3:pos">zaczarowanego</W>
+      <W ID="W811" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE127">
+      <W ID="W812" LEMMA="i" POS="conj">i</W>
+      <W ID="W813" LEMMA="zobaczyć" POS="fin:sg:pri:perf">zobaczę</W>
+      <W ID="W814" LEMMA="śliczny" POS="adj:sg:acc:f:pos">śliczną</W>
+      <W ID="W815" LEMMA="różyczka" POS="subst:sg:acc:f">Różyczkę</W>
+      <W ID="W816" LEMMA="!" POS="interp">!</W>
+    </CLAUSE>
+  </S>
+  <S ID="S31">
+    <CLAUSE ID="CLAUSE128">
+      <W ID="W817" LEMMA="poczciwy" POS="adj:sg:nom:m1:pos">Poczciwy</W>
+      <W ID="W818" LEMMA="starzec" POS="subst:sg:nom:m1">starzec</W>
+      <W ID="W819" LEMMA="odradzać" POS="praet:sg:m1:imperf">odradzał</W>
+      <W ID="W820" LEMMA="on" POS="ppron3:sg:dat:m1:ter:nakc:npraep">mu</W>
+      <W ID="W821" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE129">
+      <W ID="W822" LEMMA="jak" POS="adv">jak</W>
+      <W ID="W823" LEMMA="móc" POS="praet:sg:m1:imperf:nagl">mógł</W>
+      <W ID="W824" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE130" CONTINUE="CLAUSE128">
+      <W ID="W825" LEMMA="ale" POS="conj">ale</W>
+      <W ID="W826" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W827" LEMMA="wcale" POS="adv">wcale</W>
+      <W ID="W828" LEMMA="on" POS="ppron3:sg:gen:m1:ter:nakc:npraep">go</W>
+      <W ID="W829" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W830" LEMMA="słuchać" POS="praet:sg:m1:imperf">słuchał</W>
+      <W ID="W831" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S32">
+    <CLAUSE ID="CLAUSE131">
+      <W ID="W832" LEMMA="a" POS="conj">A</W>
+      <W ID="W833" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W834" LEMMA="właśnie" POS="qub">właśnie</W>
+      <W ID="W835" LEMMA="minąć" POS="praet:sg:n:perf">minęło</W>
+      <W ID="W836" LEMMA="sto" POS="num:pl:acc:m3:rec">sto</W>
+      <W ID="W837" LEMMA="rok" POS="subst:pl:gen:m3">lat</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE132">
+      <W ID="W838" LEMMA="i" POS="conj">i</W>
+      <W ID="W839" LEMMA="nadejść" POS="praet:sg:m3:perf">nadszedł</W>
+      <W ID="W840" LEMMA="dzień" POS="subst:sg:nom:m3">dzień</W>
+      <W ID="W841" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE133">
+      <W ID="W842" LEMMA="w" POS="prep:loc:nwok">w</W>
+      <W ID="W843" LEMMA="który" POS="adj:sg:loc:m3:pos">którym</W>
+      <W ID="W844" LEMMA="śpiący" POS="adj:sg:nom:f:pos">śpiąca</W>
+      <W ID="W845" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W846" LEMMA="mieć" POS="praet:sg:f:imperf">miała</W>
+      <W ID="W847" LEMMA="się" POS="qub">się</W>
+      <W ID="W848" LEMMA="zbudzić" POS="inf:perf">zbudzić</W>
+      <W ID="W849" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S33">
+    <CLAUSE ID="CLAUSE134">
+      <W ID="W850" LEMMA="kiedy" POS="adv">Kiedy</W>
+      <W ID="W851" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W852" LEMMA="zbliżyć" POS="praet:sg:m1:perf">zbliżył</W>
+      <W ID="W853" LEMMA="się" POS="qub">się</W>
+      <W ID="W854" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W855" LEMMA="żywopłot" POS="subst:sg:gen:m3">żywopłotu</W>
+      <W ID="W856" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE135">
+      <W ID="W857" LEMMA="być" POS="praet:sg:m1:imperf">był</W>
+      <W ID="W858" LEMMA="on" POS="ppron3:sg:nom:m1:ter:akc:npraep">on</W>
+      <W ID="W859" LEMMA="pokryć" POS="ppas:sg:nom:m1:perf:aff">pokryty</W>
+      <W ID="W860" LEMMA="wielki" POS="subst:pl:inst:m1">wielkimi</W>
+      <W ID="W861" LEMMA="wspaniały" POS="adj:pl:inst:m3:pos">wspaniałymi</W>
+      <W ID="W862" LEMMA="kwiat" POS="subst:pl:inst:m3">kwiatami</W>
+      <W ID="W863" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE136">
+      <W ID="W864" LEMMA="który" POS="adj:pl:nom:m3:pos">które</W>
+      <W ID="W865" LEMMA="sam" POS="adj:pl:nom:f:pos">same</W>
+      <W ID="W866" LEMMA="się" POS="qub">się</W>
+      <W ID="W867" LEMMA="przed" POS="prep:inst:nwok">przed</W>
+      <W ID="W868" LEMMA="on" POS="ppron3:sg:inst:m1:ter:akc:praep">nim</W>
+      <W ID="W869" LEMMA="rozstąpić" POS="praet:pl:f:perf">rozstąpiły</W>
+      <W ID="W870" LEMMA="," POS="interp">,</W>
+      <W ID="W871" LEMMA="wpuszczać" POS="pcon:imperf">wpuszczając</W>
+      <W ID="W872" LEMMA="on" POS="ppron3:sg:acc:m1:ter:nakc:npraep">go</W>
+      <W ID="W873" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W874" LEMMA="środek" POS="subst:sg:gen:m3">środka</W>
+      <W ID="W875" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE137">
+      <W ID="W876" LEMMA="a" POS="conj">a</W>
+      <W ID="W877" LEMMA="potem" POS="adv">potem</W>
+      <W ID="W878" LEMMA="zewrzeć" POS="praet:pl:f:perf">zwarły</W>
+      <W ID="W879" LEMMA="się" POS="qub">się</W>
+      <W ID="W880" LEMMA="znowu" POS="qub">znowu</W>
+      <W ID="W881" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W882" LEMMA="gęsty" POS="adj:sg:acc:m3:pos">gęsty</W>
+      <W ID="W883" LEMMA="żywopłot" POS="subst:sg:acc:m3">żywopłot</W>
+      <W ID="W884" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S34">
+    <CLAUSE ID="CLAUSE138">
+      <W ID="W885" LEMMA="na" POS="prep:loc">Na</W>
+      <W ID="W886" LEMMA="dziedziniec" POS="subst:sg:loc:m3">dziedzińcu</W>
+      <W ID="W887" LEMMA="pałacowy" POS="adj:sg:loc:m3:pos">pałacowym</W>
+      <W ID="W888" LEMMA="królewicz" POS="subst:sg:nom:m1">królewicz</W>
+      <W ID="W889" LEMMA="ujrzeć" POS="praet:sg:m1:perf">ujrzał</W>
+      <W ID="W890" LEMMA="uśpić" POS="ppas:pl:nom:n:perf:aff">uśpione</W>
+      <W ID="W891" LEMMA="koń" POS="subst:pl:nom:m2">konie</W>
+      <W ID="W892" LEMMA="i" POS="conj">i</W>
+      <W ID="W893" LEMMA="także" POS="qub">także</W>
+      <W ID="W894" LEMMA="pies" POS="subst:pl:nom:m2">psy</W>
+      <W ID="W895" LEMMA="myśliwski" POS="adj:pl:nom:m2:pos">myśliwskie</W>
+      <W ID="W896" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE139">
+      <W ID="W897" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W898" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W899" LEMMA="siedzieć" POS="praet:pl:m3:imperf">siedziały</W>
+      <W ID="W900" LEMMA="Gołąb" POS="subst:pl:acc:m3">gołębie</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE140">
+      <W ID="W901" LEMMA="i" POS="conj">i</W>
+      <W ID="W902" LEMMA="każdy" POS="adj:sg:nom:m1:pos">każdy</W>
+      <W ID="W903" LEMMA="mieć" POS="praet:sg:m1:imperf">miał</W>
+      <W ID="W904" LEMMA="łepek" POS="subst:sg:acc:m3">łepek</W>
+      <W ID="W905" LEMMA="schować" POS="ppas:sg:acc:m3:perf:aff">schowany</W>
+      <W ID="W906" LEMMA="pod" POS="prep:acc:nwok">pod</W>
+      <W ID="W907" LEMMA="skrzydełko" POS="subst:sg:acc:n">skrzydełko</W>
+      <W ID="W908" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S35">
+    <CLAUSE ID="CLAUSE141">
+      <W ID="W909" LEMMA="a" POS="conj">A</W>
+      <W ID="W910" LEMMA="kiedy" POS="adv">kiedy</W>
+      <W ID="W911" LEMMA="przekroczyć" POS="praet:sg:m1:perf">przekroczył</W>
+      <W ID="W912" LEMMA="próg" POS="subst:sg:acc:m3">próg</W>
+      <W ID="W913" LEMMA="pałac" POS="subst:sg:gen:m3">pałacu</W>
+      <W ID="W914" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE142">
+      <W ID="W915" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W916" LEMMA="spała" POS="subst:sg:gen:f">spały</W>
+      <W ID="W917" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W918" LEMMA="ściana" POS="subst:pl:loc:f">ścianach</W>
+      <W ID="W919" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE143">
+      <W ID="W920" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W921" LEMMA="stać" POS="praet:sg:m1:imperf">stał</W>
+      <W ID="W922" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W923" LEMMA="wyciągnąć" POS="ppas:sg:inst:f:perf:aff">wyciągniętą</W>
+      <W ID="W924" LEMMA="ręka" POS="subst:sg:inst:f">ręką</W>
+      <W ID="W925" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE144">
+      <W ID="W926" LEMMA="jakby" POS="comp">jakby</W>
+      <W ID="W927" LEMMA="chcieć" POS="praet:sg:m1:imperf">chciał</W>
+      <W ID="W928" LEMMA="chwycić" POS="inf:perf">chwycić</W>
+      <W ID="W929" LEMMA="kuchcik" POS="subst:sg:acc:m1">kuchcika</W>
+      <W ID="W930" LEMMA="za" POS="prep:acc">za</W>
+      <W ID="W931" LEMMA="czupryna" POS="subst:sg:acc:f">czuprynę</W>
+      <W ID="W932" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE145" CONTINUE="CLAUSE143">
+      <W ID="W933" LEMMA="a" POS="conj">a</W>
+      <W ID="W934" LEMMA="dziewka" POS="subst:sg:nom:f">dziewka</W>
+      <W ID="W935" LEMMA="kuchenny" POS="adj:sg:nom:f:pos">kuchenna</W>
+      <W ID="W936" LEMMA="siedzieć" POS="praet:sg:f:imperf">siedziała</W>
+      <W ID="W937" LEMMA="," POS="interp">,</W>
+      <W ID="W938" LEMMA="trzymać" POS="pcon:imperf">trzymając</W>
+      <W ID="W939" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W940" LEMMA="kolano" POS="subst:pl:loc:n">kolanach</W>
+      <W ID="W941" LEMMA="czarny" POS="adj:sg:acc:f:pos">czarną</W>
+      <W ID="W942" LEMMA="kura" POS="subst:sg:acc:f">kurę</W>
+      <W ID="W943" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE146">
+      <W ID="W944" LEMMA="który" POS="adj:sg:acc:f:pos">którą</W>
+      <W ID="W945" LEMMA="chcieć" POS="praet:sg:f:imperf">chciała</W>
+      <W ID="W946" LEMMA="oskubać" POS="inf:perf">oskubać</W>
+      <W ID="W947" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S36">
+    <CLAUSE ID="CLAUSE147">
+      <W ID="W948" LEMMA="pójść" POS="praet:sg:m1:perf">Poszedł</W>
+      <W ID="W949" LEMMA="daleko" POS="adv:com">dalej</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE148">
+      <W ID="W950" LEMMA="i" POS="conj">i</W>
+      <W ID="W951" LEMMA="zobaczyć" POS="praet:sg:m1:perf">zobaczył</W>
+      <W ID="W952" LEMMA="wszystek" POS="adj:pl:gen:m1:pos">wszystkich</W>
+      <W ID="W953" LEMMA="dworzanin" POS="subst:pl:gen:m1">dworzan</W>
+      <W ID="W954" LEMMA="spać" POS="pact:pl:gen:m1:imperf:aff">śpiących</W>
+      <W ID="W955" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W956" LEMMA="sala" POS="subst:sg:loc:f">sali</W>
+      <W ID="W957" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE149">
+      <W ID="W958" LEMMA="a" POS="conj">a</W>
+      <W ID="W959" LEMMA="obok" POS="prep:gen">obok</W>
+      <W ID="W960" LEMMA="tron" POS="subst:sg:gen:m3">tronu</W>
+      <W ID="W961" LEMMA="leżeć" POS="praet:pl:m1:imperf">leżeli</W>
+      <W ID="W962" LEMMA="uśpić" POS="ppas:pl:nom:m1:perf:aff">uśpieni</W>
+      <W ID="W963" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W964" LEMMA="i" POS="conj">i</W>
+      <W ID="W965" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W966" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S37">
+    <CLAUSE ID="CLAUSE150">
+      <W ID="W967" LEMMA="królewicz" POS="subst:sg:nom:m1">Królewicz</W>
+      <W ID="W968" LEMMA="iść" POS="praet:sg:m1:imperf">szedł</W>
+      <W ID="W969" LEMMA="coraz" POS="adv">coraz</W>
+      <W ID="W970" LEMMA="daleko" POS="adv:com">dalej</W>
+      <W ID="W971" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE151">
+      <W ID="W972" LEMMA="a" POS="conj">a</W>
+      <W ID="W973" LEMMA="cisza" POS="subst:sg:nom:f">cisza</W>
+      <W ID="W974" LEMMA="dokoła" POS="adv">dokoła</W>
+      <W ID="W975" LEMMA="być" POS="praet:sg:f:imperf">była</W>
+      <W ID="W976" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W977" LEMMA="głęboki" POS="adj:sg:nom:f:pos">głęboka</W>
+      <W ID="W978" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE152">
+      <W ID="W979" LEMMA="że" POS="comp">że</W>
+      <W ID="W980" LEMMA="słyszeć" POS="praet:sg:m1:imperf">słyszał</W>
+      <W ID="W981" LEMMA="własny" POS="adj:sg:acc:m3:pos">własny</W>
+      <W ID="W982" LEMMA="oddech" POS="subst:sg:acc:m3">oddech</W>
+      <W ID="W983" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE153" CONTINUE="CLAUSE150">
+      <W ID="W984" LEMMA="i" POS="conj">i</W>
+      <W ID="W985" LEMMA="wreszcie" POS="qub">wreszcie</W>
+      <W ID="W986" LEMMA="dotrzeć" POS="praet:sg:m1:perf">dotarł</W>
+      <W ID="W987" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W988" LEMMA="wieża" POS="subst:sg:gen:f">wieży</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE154">
+      <W ID="W989" LEMMA="i" POS="conj">i</W>
+      <W ID="W990" LEMMA="otworzyć" POS="praet:sg:m1:perf">otworzył</W>
+      <W ID="W991" LEMMA="drzwi" POS="subst:pl:acc:n">drzwi</W>
+      <W ID="W992" LEMMA="izdebka" POS="subst:sg:gen:f">izdebki</W>
+      <W ID="W993" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE155">
+      <W ID="W994" LEMMA="gdzie" POS="adv">gdzie</W>
+      <W ID="W995" LEMMA="spać" POS="praet:sg:f:imperf">spała</W>
+      <W ID="W996" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W997" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S38">
+    <CLAUSE ID="CLAUSE156">
+      <W ID="W998" LEMMA="i" POS="conj">I</W>
+      <W ID="W999" LEMMA="ujrzeć" POS="praet:sg:m1:perf">ujrzał</W>
+      <W ID="W1000" LEMMA="dzieweczka" POS="subst:sg:acc:f">dzieweczkę</W>
+      <W ID="W1001" LEMMA="tak" POS="adv:pos">tak</W>
+      <W ID="W1002" LEMMA="piękny" POS="adj:sg:acc:f:pos">piękną</W>
+      <W ID="W1003" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE157">
+      <W ID="W1004" LEMMA="że" POS="comp">że</W>
+      <W ID="W1005" LEMMA="nie" POS="qub">nie</W>
+      <W ID="W1006" LEMMA="móc" POS="praet:sg:m1:imperf:nagl">mógł</W>
+      <W ID="W1007" LEMMA="oderwać" POS="inf:perf">oderwać</W>
+      <W ID="W1008" LEMMA="od" POS="prep:gen:nwok">od</W>
+      <W ID="W1009" LEMMA="on" POS="ppron3:sg:gen:f:ter:akc:praep">niej</W>
+      <W ID="W1010" LEMMA="oko" POS="subst:pl:gen:n">oczu</W>
+      <W ID="W1011" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE158">
+      <W ID="W1012" LEMMA="pochylić" POS="praet:sg:m1:perf">pochylił</W>
+      <W ID="W1013" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE159">
+      <W ID="W1014" LEMMA="i" POS="conj">i</W>
+      <W ID="W1015" LEMMA="pocałować" POS="praet:sg:m1:perf">pocałował</W>
+      <W ID="W1016" LEMMA="on" POS="ppron3:sg:acc:f:ter:akc:npraep">ją</W>
+      <W ID="W1017" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S39">
+    <CLAUSE ID="CLAUSE160">
+      <W ID="W1018" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W1019" LEMMA="ten" POS="adj:sg:loc:m3:pos">tym</W>
+      <W ID="W1020" LEMMA="pocałunek" POS="subst:sg:loc:m3">pocałunku</W>
+      <W ID="W1021" LEMMA="królewna" POS="subst:sg:nom:f">królewna</W>
+      <W ID="W1022" LEMMA="otworzyć" POS="praet:sg:f:perf">otworzyła</W>
+      <W ID="W1023" LEMMA="oko" POS="subst:pl:acc:n">oczy</W>
+      <W ID="W1024" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE161">
+      <W ID="W1025" LEMMA="zbudzić" POS="praet:sg:f:perf">zbudziła</W>
+      <W ID="W1026" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE162">
+      <W ID="W1027" LEMMA="i" POS="conj">i</W>
+      <W ID="W1028" LEMMA="spojrzeć" POS="praet:sg:f:perf">spojrzała</W>
+      <W ID="W1029" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W1030" LEMMA="on" POS="ppron3:sg:acc:m1:ter:akc:praep">niego</W>
+      <W ID="W1031" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W1032" LEMMA="uroczy" POS="adj:sg:inst:m3:pos">uroczym</W>
+      <W ID="W1033" LEMMA="uśmiech" POS="subst:sg:inst:m3">uśmiechem</W>
+      <W ID="W1034" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S40">
+    <CLAUSE ID="CLAUSE163">
+      <W ID="W1035" LEMMA="zejść" POS="praet:pl:m1:perf">Zeszli</W>
+      <W ID="W1036" LEMMA="potem" POS="adv">potem</W>
+      <W ID="W1037" LEMMA="razem" POS="adv">razem</W>
+      <W ID="W1038" LEMMA="na" POS="prep:acc">na</W>
+      <W ID="W1039" LEMMA="dół" POS="subst:sg:acc:m3">dół</W>
+      <W ID="W1040" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE164">
+      <W ID="W1041" LEMMA="a" POS="conj">a</W>
+      <W ID="W1042" LEMMA="wtedy" POS="adv">wtedy</W>
+      <W ID="W1043" LEMMA="zbudzić" POS="praet:sg:m1:perf">zbudził</W>
+      <W ID="W1044" LEMMA="się" POS="qub">się</W>
+      <W ID="W1045" LEMMA="król" POS="subst:sg:nom:m1">król</W>
+      <W ID="W1046" LEMMA="," POS="interp">,</W>
+      <W ID="W1047" LEMMA="królowa" POS="subst:sg:nom:f">królowa</W>
+      <W ID="W1048" LEMMA="i" POS="conj">i</W>
+      <W ID="W1049" LEMMA="cały" POS="adj:sg:nom:m3:pos">cały</W>
+      <W ID="W1050" LEMMA="dwór" POS="subst:sg:nom:m3">dwór</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE165">
+      <W ID="W1051" LEMMA="i" POS="conj">i</W>
+      <W ID="W1052" LEMMA="jeden" POS="adj:pl:nom:m1:pos">jedni</W>
+      <W ID="W1053" LEMMA="patrzyć" POS="praet:pl:m1:imperf">patrzyli</W>
+      <W ID="W1054" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1055" LEMMA="drugi" POS="adj:pl:loc:m3:pos">drugich</W>
+      <W ID="W1056" LEMMA="z" POS="prep:inst:wok">ze</W>
+      <W ID="W1057" LEMMA="zdumienie" POS="subst:sg:inst:n">zdumieniem</W>
+      <W ID="W1058" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S41">
+    <CLAUSE ID="CLAUSE166">
+      <W ID="W1059" LEMMA="koń" POS="subst:pl:nom:m2">Konie</W>
+      <W ID="W1060" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1061" LEMMA="podwórko" POS="subst:sg:loc:n">podwórku</W>
+      <W ID="W1062" LEMMA="podnieść" POS="praet:pl:m2:perf">podniosły</W>
+      <W ID="W1063" LEMMA="się" POS="qub">się</W>
+      <W ID="W1064" LEMMA="potrząsać" POS="pcon:imperf">potrząsając</W>
+      <W ID="W1065" LEMMA="grzywa" POS="subst:pl:inst:f">grzywami</W>
+      <W ID="W1066" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE167">
+      <W ID="W1067" LEMMA="pies" POS="subst:pl:acc:m2">psy</W>
+      <W ID="W1068" LEMMA="myślwskie" POS="ign">myślwskie</W>
+      <W ID="W1069" LEMMA="jąć" POS="praet:pl:m2:perf">jęły</W>
+      <W ID="W1070" LEMMA="skakać" POS="inf:imperf">skakać</W>
+      <W ID="W1071" LEMMA="i" POS="conj">i</W>
+      <W ID="W1072" LEMMA="machać" POS="inf:imperf">machać</W>
+      <W ID="W1073" LEMMA="ogon" POS="subst:pl:inst:m3">ogonami</W>
+      <W ID="W1074" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE168">
+      <W ID="W1075" LEMMA="gołąb" POS="subst:pl:nom:m2">gołębie</W>
+      <W ID="W1076" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1077" LEMMA="dach" POS="subst:sg:loc:m3">dachu</W>
+      <W ID="W1078" LEMMA="wyciągnąć" POS="praet:pl:m2:perf">wyciągnęły</W>
+      <W ID="W1079" LEMMA="główka" POS="subst:pl:nom:f">główki</W>
+      <W ID="W1080" LEMMA="spod" POS="prep:gen:nwok">spod</W>
+      <W ID="W1081" LEMMA="skrzydełko" POS="subst:pl:gen:n">skrzydełek</W>
+      <W ID="W1082" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE169">
+      <W ID="W1083" LEMMA="rozejrzeć" POS="praet:pl:f:perf">rozejrzały</W>
+      <W ID="W1084" LEMMA="się" POS="qub">się</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE170">
+      <W ID="W1085" LEMMA="i" POS="conj">i</W>
+      <W ID="W1086" LEMMA="pofrunąć" POS="praet:pl:f:perf">pofrunęły</W>
+      <W ID="W1087" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W1088" LEMMA="pole" POS="subst:sg:acc:n">pole</W>
+      <W ID="W1089" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE171">
+      <W ID="W1090" LEMMA="mucha" POS="subst:pl:nom:f">muchy</W>
+      <W ID="W1091" LEMMA="na" POS="prep:loc">na</W>
+      <W ID="W1092" LEMMA="ściana" POS="subst:pl:loc:f">ścianach</W>
+      <W ID="W1093" LEMMA="poruszyć" POS="praet:pl:f:perf">poruszyły</W>
+      <W ID="W1094" LEMMA="się" POS="qub">się</W>
+      <W ID="W1095" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE172">
+      <W ID="W1096" LEMMA="ogień" POS="subst:sg:nom:m3">ogień</W>
+      <W ID="W1097" LEMMA="pod" POS="prep:inst:nwok">pod</W>
+      <W ID="W1098" LEMMA="kuchnia" POS="subst:sg:inst:f">kuchnią</W>
+      <W ID="W1099" LEMMA="zapłonąć" POS="praet:sg:m3:perf">zapłonął</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE173">
+      <W ID="W1100" LEMMA="i" POS="conj">i</W>
+      <W ID="W1101" LEMMA="zacząć" POS="praet:sg:m1:perf">zaczął</W>
+      <W ID="W1102" LEMMA="gotować" POS="inf:imperf">gotować</W>
+      <W ID="W1103" LEMMA="jedzenie" POS="subst:sg:acc:n">jedzenie</W>
+      <W ID="W1104" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE174">
+      <W ID="W1105" LEMMA="pieczeń" POS="subst:sg:nom:f">pieczeń</W>
+      <W ID="W1106" LEMMA="zaskwierczeć" POS="praet:sg:f:perf">zaskwierczała</W>
+      <W ID="W1107" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE175">
+      <W ID="W1108" LEMMA="kucharz" POS="subst:sg:nom:m1">kucharz</W>
+      <W ID="W1109" LEMMA="trzepnąć" POS="praet:sg:m1:perf">trzepnął</W>
+      <W ID="W1110" LEMMA="kuchcik" POS="subst:sg:acc:m1">kuchcika</W>
+      <W ID="W1111" LEMMA="w" POS="prep:acc:nwok">w</W>
+      <W ID="W1112" LEMMA="ucho" POS="subst:sg:acc:n">ucho</W>
+      <W ID="W1113" LEMMA="," POS="interp">,</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE176">
+      <W ID="W1114" LEMMA="a" POS="conj">a</W>
+      <W ID="W1115" LEMMA="dziewka" POS="subst:sg:nom:f">dziewka</W>
+      <W ID="W1116" LEMMA="kuchenny" POS="adj:sg:nom:f:pos">kuchenna</W>
+      <W ID="W1117" LEMMA="oskubać" POS="praet:sg:f:perf">oskubała</W>
+      <W ID="W1118" LEMMA="do" POS="prep:gen">do</W>
+      <W ID="W1119" LEMMA="koniec" POS="subst:sg:gen:m3">końca</W>
+      <W ID="W1120" LEMMA="kura" POS="subst:sg:acc:f">kurę</W>
+      <W ID="W1121" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+  <S ID="S42">
+    <CLAUSE ID="CLAUSE177">
+      <W ID="W1122" LEMMA="po" POS="prep:loc">Po</W>
+      <W ID="W1123" LEMMA="co" POS="subst:sg:loc:n">czym</W>
+      <W ID="W1124" LEMMA="odbyć" POS="praet:sg:n:perf">odbyło</W>
+      <W ID="W1125" LEMMA="się" POS="qub">się</W>
+      <W ID="W1126" LEMMA="huczny" POS="adj:sg:nom:n:pos">huczne</W>
+      <W ID="W1127" LEMMA="wesele" POS="subst:sg:nom:n">wesele</W>
+      <W ID="W1128" LEMMA="królewicz" POS="subst:sg:gen:m1">królewicza</W>
+      <W ID="W1129" LEMMA="z" POS="prep:inst:nwok">z</W>
+      <W ID="W1130" LEMMA="królewna" POS="subst:sg:inst:f">królewną</W>
+      <W ID="W1131" LEMMA="różyczka" POS="subst:sg:inst:f">Różyczką</W>
+    </CLAUSE>
+    <CLAUSE ID="CLAUSE178">
+      <W ID="W1132" LEMMA="i" POS="conj">i</W>
+      <W ID="W1133" LEMMA="oba" POS="numcol:pl:nom:m1:rec">oboje</W>
+      <W ID="W1134" LEMMA="żyć" POS="praet:pl:m1:imperf">żyli</W>
+      <W ID="W1135" LEMMA="długo" POS="adv:pos">długo</W>
+      <W ID="W1136" LEMMA="i" POS="conj">i</W>
+      <W ID="W1137" LEMMA="szczęśliwie" POS="adv:pos">szczęśliwie</W>
+      <W ID="W1138" LEMMA="." POS="interp">.</W>
+    </CLAUSE>
+  </S>
+</DOCUMENT>
\ No newline at end of file
diff --git b/ClauseSumAnnotator/pom.xml a/ClauseSumAnnotator/pom.xml
new file mode 100644
index 0000000..88f78a2
--- /dev/null
+++ a/ClauseSumAnnotator/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>ipipan.atlas</groupId>
+	<artifactId>sumannotator</artifactId>
+	<version>0.1</version>
+	<name>Sumannotator</name>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifest>
+							<mainClass>ipipan.atlas.sumannotator.main.Sumannotator</mainClass>
+						</manifest>
+					</archive>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.16</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.woodstox</groupId>
+			<artifactId>stax2-api</artifactId>
+			<version>3.1.1</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Clause.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Clause.java
new file mode 100644
index 0000000..cb9b295
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Clause.java
@@ -0,0 +1,41 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.basic;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Clause {
+
+	private List<Word> words = new ArrayList<Word>();
+	private String id;
+	private String cont;
+
+	public Clause(String id, String cont) {
+		this.id = id;
+		this.cont = cont;
+	}
+
+	public void add(Word currentWord) {
+		this.words.add(currentWord);
+	}
+
+	public String getId() {
+		return this.id;
+	}
+
+	public List<Word> getWords() {
+		return words;
+	}
+
+	public String toString() {
+		StringBuffer sb = new StringBuffer();
+		for (Word w : words)
+			sb.append(" " + w.getOrth());
+		return sb.toString();
+	}
+
+	public String getContinue() {
+		return this.cont;
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Word.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Word.java
new file mode 100644
index 0000000..17417aa
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/basic/Word.java
@@ -0,0 +1,15 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.basic;
+
+public class Word {
+
+	private String orth = null;
+
+	public void setOrth(String orth) {
+		this.orth = orth;
+	}
+
+	public String getOrth() {
+		return orth;
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/SummaryFileIO.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/SummaryFileIO.java
new file mode 100644
index 0000000..9a2cdfd
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/SummaryFileIO.java
@@ -0,0 +1,151 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.io;
+
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.swing.JTabbedPane;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clausesumannotator.main.MyTab;
+
+public class SummaryFileIO {
+
+	private static final Logger logger = Logger.getLogger(SummaryFileIO.class);
+
+	public static boolean loadSummary(File summaryFile, JTabbedPane tabbedPane) {
+		logger.info("Loading summary from file: " + summaryFile);
+		BufferedReader br = null;
+
+		try {
+			br = new BufferedReader(new FileReader(summaryFile));
+			for (int i = 0; i < tabbedPane.getTabCount(); i++) {
+				MyTab tab = (MyTab) tabbedPane.getComponent(i);
+				readTab(br, tab);
+			}
+		} catch (IOException e) {
+			logger.error("Error reading summary: " + e.getLocalizedMessage());
+			return false;
+		} finally {
+			try {
+				if (br != null)
+					br.close();
+			} catch (IOException e) {
+				logger.error("Error closing summary file: " + e.getLocalizedMessage());
+				return false;
+			}
+		}
+		return true;
+	}
+
+	public static boolean saveSummary(File summaryFile, JTabbedPane tabbedPane) {
+		logger.info("Saving summary in file: " + summaryFile);
+		BufferedWriter bw = null;
+
+		try {
+			bw = new BufferedWriter(new FileWriter(summaryFile));
+
+			for (int i = 0; i < tabbedPane.getTabCount(); i++) {
+				MyTab tab = (MyTab) tabbedPane.getComponent(i);
+				writeTab(bw, tab);
+			}
+
+		} catch (IOException e) {
+			logger.error("Error writing summary: " + e.getLocalizedMessage());
+			return false;
+		} finally {
+			if (bw != null)
+				try {
+					bw.close();
+				} catch (IOException e) {
+					logger.error("Error closing summary file: " + e.getLocalizedMessage());
+					return false;
+				}
+		}
+		return true;
+	}
+
+	private static void readTab(BufferedReader br, MyTab tab) throws IOException {
+		br.readLine();
+
+		Set<String> clauseIds = new HashSet<String>();
+		while (true) {
+			String line = br.readLine();
+			if (line == null)
+				break;
+			if (line.equals(""))
+				break;
+			clauseIds.add(line);
+		}
+
+		tab.setChosenClauses(clauseIds);
+
+		while (true) {
+			String line = br.readLine();
+			if (line == null)
+				break;
+			if (line.equals(""))
+				break;
+		}
+	}
+
+	private static void writeTab(Writer writer, MyTab tab) throws IOException {
+		writer.append("A " + tab.getName() + " should contain:\n");
+
+		int maxContLen = 0;
+		int maxIdLen = 0;
+		for (Clause c : tab.getChosenClauses()) {
+			int contLen = getCont(c).length();
+			int idLen = getId(c).length();
+			if (contLen > maxContLen)
+				maxContLen = contLen;
+			if (idLen > maxIdLen)
+				maxIdLen = idLen;
+
+			writer.append(c.getId() + "\n");
+		}
+
+		writer.append("\n");
+
+		for (Clause c : tab.getChosenClauses()) {
+			String id = fill(getId(c), maxIdLen + 1);
+			String cont = fill(getCont(c), maxContLen + 1);
+			String full = id + " " + cont + " " + c.toString();
+			writer.append(full + "\n");
+		}
+
+		writer.append("\n");
+	}
+
+	public static File getTargetFile(File currentFile) {
+		File parent = currentFile.getParentFile();
+		String targetName = currentFile.getName().substring(0, currentFile.getName().lastIndexOf(".")) + ".summ";
+		return new File(parent + File.separator + targetName);
+	}
+
+	private static String getId(Clause c) {
+		return "ID=\"" + c.getId() + "\"";
+	}
+
+	private static String getCont(Clause c) {
+		return "CONTINUE=\"" + c.getContinue() + "\"";
+	}
+
+	private static String fill(String string, int spaceCount) {
+		StringBuffer sb = new StringBuffer(string);
+		int toFill = Math.max(0, spaceCount - string.length());
+		for (int i = 0; i < toFill; i++)
+			sb.append(" ");
+		return sb.toString();
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/XMLReader.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/XMLReader.java
new file mode 100644
index 0000000..bcd8213
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/io/XMLReader.java
@@ -0,0 +1,122 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.io;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.log4j.Logger;
+import org.codehaus.stax2.XMLInputFactory2;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Word;
+
+public class XMLReader {
+
+	private static final Logger logger = Logger.getLogger(XMLReader.class);
+
+	private static final XMLInputFactory xif = XMLInputFactory2.newInstance();
+
+	public static String loadText(File input, List<Clause> allClauses) {
+		logger.info("Loading text from file: " + input);
+
+		String error = null;
+
+		InputStream is = null;
+		XMLStreamReader sr = null;
+		try {
+			is = new FileInputStream(input);
+			sr = xif.createXMLStreamReader(is);
+
+			Clause currentClause = null;
+			Word currentWord = null;
+
+			while (sr.hasNext()) {
+				sr.next();
+
+				if (sr.isStartElement()) {
+					String name = sr.getName().getLocalPart();
+					if (name.equals("CLAUSE")) {
+						String id = sr.getAttributeValue(null, "ID");
+						String cont = sr.getAttributeValue(null, "CONTINUE");
+
+						if (cont == null)
+							cont = "";
+						
+						if (id == null) {
+							error = "Clause without id in line: "
+									+ sr.getLocation().getLineNumber();
+							break;
+						}
+
+						if (currentClause != null) {
+							error = "Clause starting before previous clause finished in line: "
+									+ sr.getLocation().getLineNumber();
+							break;
+						}
+
+						currentClause = new Clause(id, cont);
+					} else if (name.equals("W")) {
+						if (currentWord != null) {
+							error = "Word starting before previous word finished in line: "
+									+ sr.getLocation().getLineNumber();
+							break;
+						}
+						currentWord = new Word();
+					}
+				} else if (sr.isEndElement()) {
+					String name = sr.getName().getLocalPart();
+					if (name.equals("CLAUSE")) {
+						if (currentClause == null) {
+							error = "Clause ending before starting in line: " + sr.getLocation().getLineNumber();
+							break;
+						}
+
+						allClauses.add(currentClause);
+						currentClause = null;
+					} else if (name.equals("W")) {
+						if (currentWord == null) {
+							error = "Word ending before starting in line: " + sr.getLocation().getLineNumber();
+							break;
+						}
+						if (currentClause == null) {
+							error = "Word not inside a clause in line: " + sr.getLocation().getLineNumber();
+							break;							
+						}
+						currentClause.add(currentWord);
+						currentWord = null;
+					}
+				} else if (sr.isWhiteSpace()) {
+
+				} else if (sr.isCharacters()) {
+					if (currentWord != null) {
+						if (currentWord.getOrth() != null) {
+							error = "Second word orth in line: " + sr.getLocation().getLineNumber();
+							break;
+						}
+						currentWord.setOrth(sr.getText());
+					}
+				}
+			}
+		} catch (Exception e) {
+			error = "Error reading file: " + e.getLocalizedMessage();
+		} finally {
+			try {
+				if (is != null)
+					is.close();
+				if (sr != null)
+					sr.close();
+			} catch (Exception e) {
+				error = "Error closing file: " + input + " Details: " + e.getLocalizedMessage();
+			}
+		}
+
+		logger.info(allClauses.size() + " clauses found.");
+
+		return error;
+	}
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseSumAnnotator.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseSumAnnotator.java
new file mode 100644
index 0000000..bc454a9
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseSumAnnotator.java
@@ -0,0 +1,397 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.main;
+
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JEditorPane;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+import javax.swing.filechooser.FileFilter;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+import pl.waw.ipipan.zil.summarization.clausesumannotator.io.SummaryFileIO;
+import pl.waw.ipipan.zil.summarization.clausesumannotator.io.XMLReader;
+
+public class ClauseSumAnnotator extends JFrame implements Runnable, MyTabChangeListener {
+
+	private static final String WINDOW_TITLE = "Extraction summary creator";
+
+	private static final long serialVersionUID = -3830790411182131318L;
+
+	private static final Logger logger = Logger.getLogger(ClauseSumAnnotator.class);
+
+	private static final int HEIGTH = 600;
+	private static final int WIDTH = 800;
+
+	private JMenuItem save;
+
+	private File currentFile = null;
+	private boolean unsavedChanges = false;
+
+	private JTabbedPane tabbedPane;
+
+	private float displayFontSize;
+
+	public static void main(String[] args) {
+		if (args.length != 0 && args.length != 1) {
+			logger.error("Wrong usage! Should be: java -jar " + ClauseSumAnnotator.class.getSimpleName() + " [input file]");
+			return;
+		}
+		final ClauseSumAnnotator summanno = new ClauseSumAnnotator();
+		try {
+			SwingUtilities.invokeAndWait(summanno);
+		} catch (Exception e) {
+			logger.error("Error starting application: " + e.getLocalizedMessage());
+			e.printStackTrace();
+			return;
+		}
+
+		if (args.length == 1) {
+			final File input = new File(args[0]);
+			if (input.exists()) {
+				SwingUtilities.invokeLater(new Runnable() {
+					@Override
+					public void run() {
+						summanno.loadFile(input);
+					}
+				});
+			} else {
+				logger.error("Input file: " + input + " doesn't exist!");
+			}
+		}
+	}
+
+	@Override
+	public void run() {
+		displayFontSize = loadDisplayFontSize();
+		tabbedPane = new JTabbedPane();
+		this.getContentPane().add(tabbedPane);
+		this.setTitle(WINDOW_TITLE);
+		this.createMenu();
+		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		this.addWindowListener(new MainWindowListener(this));
+		this.setSize(WIDTH, HEIGTH);
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		this.setLocation((screenSize.width - WIDTH) / 2, (screenSize.height - HEIGTH) / 2);
+		this.setVisible(true);
+	}
+
+	private float loadDisplayFontSize() {
+		float result = 12f;
+		// File fontsizeFile = new File(fontsizePath);
+		// if (fontsizeFile.exists()) {
+		// try {
+		// Scanner s = new Scanner(fontsizeFile);
+		// result = s.nextFloat();
+		// s.close();
+		// logger.info("Font size found in file: " + fontsizeFile);
+		// } catch (FileNotFoundException e) {
+		// logger.error(e.getLocalizedMessage());
+		// }
+		// } else {
+		// logger.info("Font size not found in file: " + fontsizeFile);
+		logger.info("Using default font size.");
+		// }
+		return result;
+	}
+
+	private void createMenu() {
+		JMenuBar menu = new JMenuBar();
+		this.setJMenuBar(menu);
+
+		JMenu file = new JMenu("File");
+		menu.add(file);
+
+		JMenuItem open = new JMenuItem("Open");
+		open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
+		open.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestOpenFile();
+			}
+		});
+		file.add(open);
+
+		save = new JMenuItem("Save");
+		save.setEnabled(false);
+		save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
+		save.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestSaveFile();
+			}
+		});
+		file.add(save);
+
+		JMenuItem exit = new JMenuItem("Exit");
+		exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
+		exit.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestExit();
+			}
+		});
+		file.add(exit);
+
+		JMenu other = new JMenu("Other");
+
+		ButtonGroup fontSizeButtonGroup = new ButtonGroup();
+		JMenu setFontSize = new JMenu("Change font size");
+		for (int z = 8; z < 30; z = z + 2) {
+
+			final int currentFontSize = z;
+
+			JRadioButtonMenuItem temp = new JRadioButtonMenuItem(z + "");
+			if (z == displayFontSize) {
+				temp.setSelected(true);
+			}
+			temp.addActionListener(new ActionListener() {
+				@Override
+				public void actionPerformed(ActionEvent ae) {
+					requestSetFontSize(currentFontSize);
+				}
+			});
+			fontSizeButtonGroup.add(temp);
+			setFontSize.add(temp);
+		}
+		other.add(setFontSize);
+
+		JMenuItem help = new JMenuItem("Help");
+		help.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				requestShowHelp();
+			}
+		});
+		other.add(help);
+
+		menu.add(other);
+	}
+
+	protected void requestSetFontSize(int currentFontSize) {
+		logger.info("Setting font size: " + currentFontSize);
+		displayFontSize = currentFontSize;
+
+		// File fontsizeFile = new File(fontsizePath);
+		// logger.info("Saving font size in file: " + fontsizeFile);
+		//
+		// try {
+		// Writer w = new FileWriter(fontsizeFile);
+		// w.write(Float.toString(displayFontSize));
+		// w.write("\n");
+		// w.close();
+		// } catch (IOException e) {
+		// logger.error(e.getLocalizedMessage());
+		// }
+	}
+
+	private final void requestShowHelp() {
+		JFrame helpFrame = new JFrame("Help");
+		helpFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+		JEditorPane editorPane = new JEditorPane();
+		editorPane.setEditable(false);
+		URL helpURL = ClauseSumAnnotator.class.getClassLoader().getResource("help.html");
+		if (helpURL != null) {
+			try {
+				editorPane.setPage(helpURL);
+			} catch (IOException e) {
+				logger.error("Attempted to read a bad URL: " + helpURL);
+			}
+		} else {
+			logger.error("Couldn't find file: help.html");
+		}
+
+		// Put the editor pane in a scroll pane.
+		JScrollPane editorScrollPane = new JScrollPane(editorPane);
+		editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setPreferredSize(new Dimension(800, 600));
+		editorScrollPane.setMinimumSize(new Dimension(30, 30));
+
+		helpFrame.getContentPane().add(editorScrollPane);
+		helpFrame.pack();
+		helpFrame.setVisible(true);
+	}
+
+	private void requestSaveFile() {
+		File targetFile = SummaryFileIO.getTargetFile(currentFile);
+		boolean success = SummaryFileIO.saveSummary(targetFile, tabbedPane);
+
+		if (success) {
+			unsavedChanges = false;
+			setTitle(WINDOW_TITLE);
+			save.setEnabled(false);
+		} else {
+			showError("Error saving file: " + targetFile);
+		}
+	}
+
+	private final void requestOpenFile() {
+		if (!askToSaveChanges())
+			return;
+
+		JFileChooser chooser;
+		if (currentFile == null)
+			chooser = new JFileChooser();
+		else
+			chooser = new JFileChooser(currentFile.getParentFile());
+
+		chooser.setFileFilter(new SummannotatorFileFilter());
+		int result = chooser.showOpenDialog(this);
+
+		if (result == JFileChooser.APPROVE_OPTION) {
+			this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+			this.loadFile(chooser.getSelectedFile());
+			this.setCursor(null);
+		}
+	}
+
+	private boolean askToSaveChanges() {
+		if (!unsavedChanges)
+			return true;
+
+		int result = JOptionPane.showOptionDialog(this, "Do you want to save changes?", "Unsaved changes",
+		        JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
+
+		if (result == JOptionPane.CANCEL_OPTION)
+			return false;
+
+		if (result == JOptionPane.YES_OPTION)
+			requestSaveFile();
+
+		return true;
+	}
+
+	private final void requestExit() {
+		if (!askToSaveChanges())
+			return;
+
+		logger.info("Exiting.");
+		System.exit(0);
+	}
+
+	private final void loadFile(File input) {
+		tabbedPane.removeAll();
+
+		if (!input.exists()) {
+			String err = "File " + input + " doesn't exist!";
+			logger.error(err);
+			showError(err);
+			return;
+		}
+		List<Clause> clauses = new ArrayList<Clause>();
+		String error = XMLReader.loadText(input, clauses);
+		if (error != null) {
+			logger.error(error);
+			showError(error);
+			return;
+		}
+		if (clauses.size() == 0) {
+			String err = "No clauses found in file: " + input;
+			logger.error(err);
+			showError(err);
+			return;
+		}
+
+		int all = getAllWordsCount(clauses);
+
+		MyTab tab1 = new MyTab(all, 0.2, displayFontSize);
+		MyTab tab2 = new MyTab(all, 0.1, displayFontSize);
+		MyTab tab3 = new MyTab(all, 0.05, displayFontSize);
+
+		tab1.addChangeListener(tab2);
+		tab2.addChangeListener(tab3);
+		tab1.clausesChanged(clauses);
+
+		tabbedPane.addTab(tab1.getName(), tab1);
+		tabbedPane.addTab(tab2.getName(), tab2);
+		tabbedPane.addTab(tab3.getName(), tab3);
+
+		currentFile = input;
+
+		File summaryFile = SummaryFileIO.getTargetFile(input);
+		if (summaryFile.exists()) {
+			boolean success = SummaryFileIO.loadSummary(summaryFile, tabbedPane);
+			if (success) {
+				logger.info("Summary file found and loaded: " + summaryFile);
+			} else {
+				showError("Error loading summary file: " + summaryFile);
+			}
+		}
+
+		tab1.addChangeListener(this);
+		tab2.addChangeListener(this);
+		tab3.addChangeListener(this);
+	}
+
+	private void showError(String string) {
+		JOptionPane.showMessageDialog(this, string, "Error", JOptionPane.ERROR_MESSAGE);
+	}
+
+	private static int getAllWordsCount(List<Clause> clauses) {
+		int all = 0;
+		for (Clause c : clauses)
+			all += c.getWords().size();
+		return all;
+	}
+
+	private final class SummannotatorFileFilter extends FileFilter {
+		@Override
+		public String getDescription() {
+			return "XML files";
+		}
+
+		@Override
+		public boolean accept(File f) {
+			return f.getName().endsWith(".xml") || f.isDirectory();
+		}
+	}
+
+	private class MainWindowListener extends WindowAdapter {
+
+		private final ClauseSumAnnotator summanotator;
+
+		public MainWindowListener(ClauseSumAnnotator sumannotator) {
+			this.summanotator = sumannotator;
+		}
+
+		@Override
+		public void windowClosing(WindowEvent we) {
+			this.summanotator.requestExit();
+		}
+	}
+
+	@Override
+	public void clausesChanged(List<Clause> clauses) {
+		unsavedChanges = true;
+		save.setEnabled(true);
+		setTitle(WINDOW_TITLE + " " + "[unsaved changes]");
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseTable.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseTable.java
new file mode 100644
index 0000000..9167866
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/ClauseTable.java
@@ -0,0 +1,187 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.main;
+
+
+import java.awt.Color;
+import java.awt.Component;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.swing.JTable;
+import javax.swing.JTextArea;
+import javax.swing.ListSelectionModel;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableCellRenderer;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+
+public class ClauseTable extends JTable implements MouseListener, KeyListener {
+
+	private static final long serialVersionUID = 5865240498654370980L;
+
+	private final List<Clause> allClauses = new ArrayList<Clause>();
+	private final Set<Clause> chosenClauses = new HashSet<Clause>();
+
+	private final AbstractTableModel model;
+
+	private final MyTab parentTab;
+
+	public ClauseTable(MyTab parentTab, float displayFontSize) {
+		this.parentTab = parentTab;
+
+		setFillsViewportHeight(true);
+		setTableHeader(null);
+		addMouseListener(this);
+		addKeyListener(this);
+		setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
+		setDefaultRenderer(Object.class, new MyCellRenderer(displayFontSize));
+
+		model = new SimpleClauseTableModel();
+		setModel(model);
+	}
+
+	public synchronized void setClauseList(List<Clause> clauses) {
+		allClauses.clear();
+		allClauses.addAll(clauses);
+		chosenClauses.retainAll(allClauses);
+		model.fireTableDataChanged();
+	}
+
+	public synchronized void rowsSelected() {
+		if (this.getSelectedRows().length == 0)
+			return;
+
+		for (int i : this.getSelectedRows()) {
+			changeRowStatus(i);
+		}
+		clearSelection();
+		parentTab.chosenClausesChanged();
+	}
+
+	public synchronized void changeRowStatus(int row) {
+		Clause c = allClauses.get(row);
+		if (chosenClauses.contains(c))
+			chosenClauses.remove(c);
+		else
+			chosenClauses.add(c);
+	}
+
+	private boolean isClauseChosen(Clause value) {
+		return chosenClauses.contains(value);
+	}
+
+	public List<Clause> getChosenClauses() {
+		List<Clause> result = new ArrayList<Clause>();
+		for (Clause c : allClauses)
+			if (chosenClauses.contains(c))
+				result.add(c);
+		return result;
+	}
+
+	public synchronized void setChosenClauses(Set<String> clauseIds) {
+		chosenClauses.clear();
+		for (Clause c : allClauses)
+			if (clauseIds.contains(c.getId()))
+				chosenClauses.add(c);
+		parentTab.chosenClausesChanged();
+	}
+
+	/************* listeners ******************************/
+
+	@Override
+	public void mouseClicked(MouseEvent e) {
+	}
+
+	@Override
+	public void mouseEntered(MouseEvent e) {
+	}
+
+	@Override
+	public void mouseExited(MouseEvent e) {
+	}
+
+	@Override
+	public void mousePressed(MouseEvent e) {
+	}
+
+	@Override
+	public void keyPressed(KeyEvent arg0) {
+	}
+
+	@Override
+	public void keyTyped(KeyEvent arg0) {
+	}
+
+	@Override
+	public void mouseReleased(MouseEvent e) {
+		rowsSelected();
+	}
+
+	@Override
+	public void keyReleased(KeyEvent e) {
+		if (e.getKeyCode() == KeyEvent.VK_SPACE)
+			rowsSelected();
+	}
+
+	private final class SimpleClauseTableModel extends AbstractTableModel {
+
+		private static final long serialVersionUID = 5563319901787241258L;
+
+		@Override
+		public Object getValueAt(int rowIndex, int columnIndex) {
+			return allClauses.get(rowIndex);
+		}
+
+		@Override
+		public int getRowCount() {
+			return allClauses.size();
+		}
+
+		@Override
+		public int getColumnCount() {
+			return 1;
+		}
+	}
+
+	/********************** cell renderer **************************/
+
+	private class MyCellRenderer extends JTextArea implements TableCellRenderer {
+
+		private static final long serialVersionUID = 3003554184145715021L;
+
+		public MyCellRenderer(float displayFontSize) {
+			super();
+			setFont(getFont().deriveFont(displayFontSize));
+		}
+
+		@Override
+		public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
+		        boolean hasFocus, int row, int col) {
+
+			String text = value.toString();
+			setLineWrap(true);
+			setWrapStyleWord(true);
+			setText(text);
+			setSize(table.getWidth(), table.getRowHeight());
+
+			if (isSelected)
+				setBackground(Color.gray);
+			else if (isClauseChosen((Clause) value))
+				setBackground(Color.yellow);
+			else
+				setBackground(null);
+
+			int heightWanted = getPreferredSize().height;
+			if (heightWanted != table.getRowHeight(row))
+				table.setRowHeight(row, heightWanted);
+
+			return this;
+		}
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTab.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTab.java
new file mode 100644
index 0000000..5ee6918
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTab.java
@@ -0,0 +1,126 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.main;
+
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.swing.BoxLayout;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+
+public class MyTab extends JSplitPane implements MyTabChangeListener {
+
+	private static final long serialVersionUID = 3656861958564714263L;
+
+	private final ClauseTable table;
+	private final JTextArea textArea;
+	private final JProgressBar pb;
+
+	private final int targetSegmentCount;
+
+	private final Set<MyTabChangeListener> listeners = new HashSet<MyTabChangeListener>();
+
+	private final double desired;
+
+	public MyTab(int allSegments, double desired, float displayFontSize) {
+		super(JSplitPane.VERTICAL_SPLIT);
+
+		this.targetSegmentCount = (int) (desired * allSegments);
+		this.desired = desired;
+
+		textArea = new JTextArea("empty");
+		textArea.setLineWrap(true);
+		textArea.setWrapStyleWord(true);
+		textArea.setFont(textArea.getFont().deriveFont(displayFontSize));
+		JScrollPane textAreaScrollPane = new JScrollPane(textArea);
+
+		pb = new JProgressBar(0, targetSegmentCount);
+		JLabel all = new JLabel("Words in text: " + allSegments);
+		JLabel prop = new JLabel("Summary proportion: " + (int) (desired * 100) + "%");
+		JLabel summ = new JLabel("Words in summary: " + targetSegmentCount);
+
+		// pb.setFont(pb.getFont().deriveFont(displayFontSize));
+		// all.setFont(all.getFont().deriveFont(displayFontSize));
+		// prop.setFont(prop.getFont().deriveFont(displayFontSize));
+		// summ.setFont(summ.getFont().deriveFont(displayFontSize));
+
+		JPanel bottomLeftPanel = new JPanel();
+		bottomLeftPanel.setLayout(new BoxLayout(bottomLeftPanel, BoxLayout.Y_AXIS));
+		bottomLeftPanel.add(pb);
+		bottomLeftPanel.add(all);
+		bottomLeftPanel.add(prop);
+		bottomLeftPanel.add(summ);
+		bottomLeftPanel.setPreferredSize(new Dimension(prop.getPreferredSize().width + 10, 100));
+
+		JPanel bottomPane = new JPanel(new BorderLayout());
+		bottomPane.add(textAreaScrollPane, BorderLayout.CENTER);
+		bottomPane.add(bottomLeftPanel, BorderLayout.LINE_START);
+
+		table = new ClauseTable(this, displayFontSize);
+
+		JScrollPane topPane = new JScrollPane(table);
+
+		this.setTopComponent(topPane);
+		this.setBottomComponent(bottomPane);
+		this.setOneTouchExpandable(true);
+		this.setDividerLocation(350);
+	}
+
+	private void notifyAllListeners() {
+		for (MyTabChangeListener tab : listeners)
+			tab.clausesChanged(table.getChosenClauses());
+	}
+
+	public void addChangeListener(MyTabChangeListener tab) {
+		listeners.add(tab);
+	}
+
+	@Override
+	public void clausesChanged(List<Clause> clauses) {
+		table.setClauseList(clauses);
+		chosenClausesChanged();
+	}
+
+	public void chosenClausesChanged() {
+		StringBuffer sb = new StringBuffer();
+		int chosenWords = 0;
+		for (Clause c : table.getChosenClauses()) {
+			sb.append(c);
+			chosenWords += c.getWords().size();
+		}
+
+		pb.setValue(chosenWords);
+		pb.setStringPainted(true);
+		if (targetSegmentCount == 0)
+			pb.setString(chosenWords + "/0 = -- %");
+		else
+			pb.setString(chosenWords + "/" + targetSegmentCount + " = " + (100 * chosenWords / targetSegmentCount)
+			        + "%");
+		textArea.setText(sb.toString());
+
+		notifyAllListeners();
+	}
+
+	@Override
+	public String getName() {
+		return (int) (desired * 100) + "% summary";
+	}
+
+	public List<Clause> getChosenClauses() {
+		return table.getChosenClauses();
+	}
+
+	public void setChosenClauses(Set<String> clauseIds) {
+		table.setChosenClauses(clauseIds);
+	}
+
+}
diff --git b/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTabChangeListener.java a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTabChangeListener.java
new file mode 100644
index 0000000..283a535
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/clausesumannotator/main/MyTabChangeListener.java
@@ -0,0 +1,12 @@
+package pl.waw.ipipan.zil.summarization.clausesumannotator.main;
+
+
+import java.util.List;
+
+import pl.waw.ipipan.zil.summarization.clausesumannotator.basic.Clause;
+
+public interface MyTabChangeListener {
+
+	public abstract void clausesChanged(List<Clause> clauses);
+
+}
\ No newline at end of file
diff --git b/ClauseSumAnnotator/src/main/resources/help.html a/ClauseSumAnnotator/src/main/resources/help.html
new file mode 100644
index 0000000..24af383
--- /dev/null
+++ a/ClauseSumAnnotator/src/main/resources/help.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Summannotator is a program for manual extraction summary creation.
+It allows to select/deselect clauses to summaries simply by clicking them.</p>
+
+<p>When we open a file in it, we can see 3 tabs, each corresponding 
+to a different summary size: 20%, 10% and 5%. Clauses to choose 
+from are shown in the top pane, bottom pane presents current size 
+of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that we selected all the clauses).
+Bottom right pane presents the summary as free text.</p>
+
+<p>Each smaller summary must contain only clauses from the bigger one.</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. For changes to have effect, you need to load the text 
+again (by selecting "Open" option from "File" menu). Settings are reset to default 
+after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in XML format (with the .xml)
+extension. It should contain CLAUSE tags (with obligatory ID attribute),
+and WORD tags. A WORD tag should contain orthgraphical form of the word
+inside. Two example files (Greek and English) are enclosed with this 
+application.</p>
+
+<p>Saving the summary in program results in the creation of a file with 
+the same name as the opened one, but with .summ extension instead of
+.xml. File format is self-explaining, the file contains information 
+about 3 summaries: 20%, 10% and 5%. Empty lines are important, and
+it's better not to try to edit this file manually.</p>
+
+<p>If we choose to open a file with existing .summ neighbour, the summary
+from it will be automatically loaded.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git b/ClauseSumAnnotator/target/classes/help.html a/ClauseSumAnnotator/target/classes/help.html
new file mode 100644
index 0000000..24af383
--- /dev/null
+++ a/ClauseSumAnnotator/target/classes/help.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Summannotator is a program for manual extraction summary creation.
+It allows to select/deselect clauses to summaries simply by clicking them.</p>
+
+<p>When we open a file in it, we can see 3 tabs, each corresponding 
+to a different summary size: 20%, 10% and 5%. Clauses to choose 
+from are shown in the top pane, bottom pane presents current size 
+of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that we selected all the clauses).
+Bottom right pane presents the summary as free text.</p>
+
+<p>Each smaller summary must contain only clauses from the bigger one.</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. For changes to have effect, you need to load the text 
+again (by selecting "Open" option from "File" menu). Settings are reset to default 
+after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in XML format (with the .xml)
+extension. It should contain CLAUSE tags (with obligatory ID attribute),
+and WORD tags. A WORD tag should contain orthgraphical form of the word
+inside. Two example files (Greek and English) are enclosed with this 
+application.</p>
+
+<p>Saving the summary in program results in the creation of a file with 
+the same name as the opened one, but with .summ extension instead of
+.xml. File format is self-explaining, the file contains information 
+about 3 summaries: 20%, 10% and 5%. Empty lines are important, and
+it's better not to try to edit this file manually.</p>
+
+<p>If we choose to open a file with existing .summ neighbour, the summary
+from it will be automatically loaded.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git b/ExtrSumAnnotator/example.txt a/ExtrSumAnnotator/example.txt
new file mode 100644
index 0000000..562dff6
--- /dev/null
+++ a/ExtrSumAnnotator/example.txt
@@ -0,0 +1,127 @@
+DYSKUSJA 
+
+Polemika z artykułem prof. Jana Jończyka
+
+Jutro i wczoraj polskich emerytur
+
+RYS. ARTUR KRAJEWSKI
+
+MICHAŁ RUTKOWSKI
+
+Gdyby artykuł Jana Jończyka "Kosztowna prywatyzacja ryzyka starości" ukazał się kilkadziesiąt lub nawet kilkanaście lat temu, odpowiadałby w zupełności ówczesnemu rozumieniu zarówno tego, jak powinny działać ubezpieczenia społeczne, jak i tego, jaka powinna być rola państwa w zapewnieniu bezpieczeństwa emerytalnego. 
+
+Ponieważ jednak ukazał się 23 kwietnia 1997 r. i dotyczył krytyki dokumentu powstałego w kierowanym przeze mnie Biurze Pełnomocnika Rządu ds. Reformy Zabezpieczenia Społecznego, chciałbym ustosunkować się do zawartych w nim ocen i interpretacji.
+
+Przede wszystkim trzeba uświadomić sobie wyraźnie, że systemy społecznych ubezpieczeń emerytalnych oparte na monopolu czy zdecydowanej dominacji filaru repartycyjnego, czyli takiego, w którym pracujący za pomocą podatku zwanego składką transferują środki do emerytów, przeżywają głęboki ogólnoświatowy kryzys. Wywołuje go narastającą falę zmian będącą rezultatem z jednej strony szybkiego pogarszania się proporcji demograficznych między osobami w wieku emerytalnym i ludnością w wieku produkcyjnym (proporcja ta jest wielkością krytyczną dla możliwości działania filaru repartycyjnego), a z drugiej - faktów wywołujących zmiany w poglądach na rolę państwa w dziedzinie transferów pieniężnych oraz rozwoju technologii umożliwiających daleko posuniętą indywidualizację rachunków, na które wpłacane są składki.
+
+Działający w Polsce system ubezpieczeń społecznych jest systemem, do którego się przyzwyczailiśmy i do którego dostosowane zostały, kiedyś przecież różne od obecnych, doktryny prawne. Rozumiem w tym względzie sentyment autora artykułu. Nie znaczy to jednakże, że system ten jest dobry albo że okaże się wystarczająco dobry w nadchodzącej przyszłości. Brak daleko idących reform w dziedzinie emerytur grozi ich bankructwem i kompromitacją państwa (wraz z regulującym je systemem prawnym) jako ich gwaranta. Sytuacja ta wymaga rzetelnej i uczciwej analizy zmierzającej do rozwiązania problemu, a nie deklaracji prowadzących do antagonizacji nastrojów społecznych.
+
+Przygotowany w Biurze Pełnomocnika Rządu do Spraw Reformy Zabezpieczenia Społecznego projekt reform jest odpowiedzią na narastające szybko zagrożenie kompromitacji systemu emerytalnego. Tendencje leżące u podstawy tego zagrożenia - zarówno w Polsce, jak i w wielu innych krajach - nie były jeszcze tak wyraźnie widoczne nawet kilkanaście lat temu, w czasach, kiedy sądy i oceny Jana Jończyka mogły jeszcze nie budzić zdziwienia. Być może właśnie z  nieuwzględnienia zasięgu i powagi zachodzących zmian wynikają nieporozumienia, które znalazły wyraz w omawianym artykule.
+
+Nieporozumień tych jest wiele, wszystkie one mają jednak ważny wspólny mianownik. Mianownikiem tym jest niechęć autora do wyciągnięcia wniosków z faktu, że świat zmienia się szybko, a Polska zmienia się jeszcze szybciej w okresie transformacji systemowej. Jednym z wniosków jest konieczność zrewidowania starego paradygmatu w ubezpieczeniach społecznych. Nie można szablonów powstałych wiele lat temu przyłożyć do współczesnej rzeczywistości, następnie dziwić się, że nie pasują, i obciążać za to tych, którzy pragną osiągnąć te same cele za pomocą metod dostosowanych do nowej rzeczywistości.
+
+Niewydolność starych  rozwiązań
+
+Nieporozumienie pierwsze: czym jest ubezpieczenie społeczne na wypadek starości?
+
+Nie jest prawdą - jak sugeruje artykuł - że reforma zlikwiduje ubezpieczenie społeczne. Istotą tych ubezpieczeń  jest - z jednej strony - ustawowy przymus uczestnictwa oraz - z drugiej  - grupowe organizowanie funduszy finansowych z przeznaczeniem na z góry określone wydarzenia losowe, tutaj starość. Ubezpieczeniowy charakter organizowania tych funduszy przejawia się w tym, że wysokość składek kalkulowana jest tak, aby  wyrównać koszty wystąpienia ryzyka w wyznaczonej liczbie ubezpieczonych oraz w określonym czasie trwania ubezpieczenia. Dla uczestnika systemu ubezpieczenie społeczne od starości oznacza, że jego ryzyko socjalne będzie pokryte i że nastąpi wyrównanie między potrzebami pokrycia ryzyk socjalnych wszystkich ubezpieczonych a sumą zebranych środków dla tego pokrycia. Istotą ubezpieczenia społecznego jest więc to, że składek nie kalkuluje się w odniesieniu do indywidualnego ryzyka ubezpieczonych, lecz do ryzyka przeciętnego wyliczonego jako suma wszystkich ryzyk indywidualnych w zbiorowości ubezpieczonych.
+
+Zreformowany system emerytalny pozostanie więc w pełnym tego słowa znaczeniu systemem ubezpieczenia społecznego. Obowiązkowa składka będzie oczywiście kalkulowana według ryzyka przeciętnego dla wszystkich ubezpieczonych. Będzie więc wspólnota ryzyka. Utrzymany zostanie obowiązkowy charakter udziału. Istnieć będą rzeczywiste gwarancje i solidarność ubezpieczonych przez - z jednej strony - system "rygli bezpieczeństwa", w którym w razie niepowodzenia inni uczestnicy systemu pomagają pokrzywdzonym (np. mechanizm rachunku rezerwowego, funduszu gwarancyjnego i regwarancji państwa w filarze kapitałowym) oraz - z drugiej strony - emeryturę minimalną i system pomocy społecznej. Zachowany zostanie w pełni publiczny charakter instytucji obsługującej całość składki na wszystkie rodzaje ryzyk (ZUS), a instytucje drugiego filaru (fundusze emerytalne i zarządzające nimi towarzystwa emerytalne) będą publicznie regulowane i nadzorowane przez Urząd Nadzoru nad Funduszami Emerytalnymi. Żadna, powtarzam, żadna z kategorii społecznych i prawnych ubezpieczeń społecznych nie zostanie odrzucona, wbrew temu, co twierdzi artykuł, a częściowy powrót do kapitalizacji składki jest powrotem do źródeł ubezpieczeń społecznych, które długo opierały się na kapitalizacji składek.
+
+Co więc się zmieni? Ano coś, czego autor nie chce dostrzec: że w świetle postępującej niewydolności starych rozwiązań, czyli systemu monoubezpieczenia społecznego, prowadzącej do tego, że kategorie, o których pisze autor, stają się  wyłącznie papierowe, zostanie nadana im rzeczywista, współczesna treść. Kategorie ubezpieczeń społecznych, o których pisze autor, w szczególności percepcja solidarności i wspólnego ryzyka, nie są w rzeczywistości stosowane w  warunkach, w których składki na ubezpieczenie społeczne  - w wyniku nieprzejrzystego wymieszania repartycji z redystrybucją - traktuje się jako podatki, a równocześnie występuje silna tendencja do unikania ich płacenia  i do przechodzenia na emeryturę najwcześniej jak  to możliwe. Publiczny charakter instytucji obsługującej system (ZUS) jest wyparty przez percepcję ZUS jako instytucji państwowej, niesamorządnej i pozbawionej osobowości prawnej. Wreszcie, gwarancje państwa uchodzą - słusznie - za czysto papierowe, w warunkach corocznego w latach 90. manipulowania podstawą wymiaru w związku z tym, że realne świadczenia spadły o 6 proc. w 1990 r. (oczywiście z uzasadnionych przyczyn, ale czego dotyczyła gwarancja?).
+
+Tak więc reforma w proponowanym kształcie stwarza warunki do nadania rzeczywistego znaczenia powyższym kategoriom, które - choć związane ze źródłami ubezpieczeń społecznych - w coraz mniejszym stopniu występują w  polskim systemie ubezpieczeń społecznych, tak jak  dzieje się  we wszystkich krajach o monopolu filaru repartycyjnego. Artykuł zupełnie ignoruje, że większość wad obecnego systemu to wady dominacji repartycji w ogóle, a nie wady polskiej odmiany tego systemu.
+
+Porównać koszty i korzyści
+
+Nieporozumienie drugie: korzyści i koszty filaru kapitałowego.
+
+Filar kapitałowy przyniesie wyraźne korzyści uczestnikom systemu. Zwiększą się indywidualne oszczędności ludności, zmieni się także ich struktura w kierunku większego udziału oszczędności długookresowych. Oba te czynniki nie mogą nie przyspieszyć wzrostu gospodarczego. Międzynarodowa dywersyfikacja inwestycji funduszy emerytalnych, która z czasem będzie się zwiększać, umożliwi znacznie lepszą kontrolę ryzyka (m.&nbsp;in. dlatego, że makroekonomiczne szoki dotyczą różnych krajów w różnych okresach, a ludność różnych krajów starzeje się w różnym tempie). Długookresowe dane pokazują wyraźnie, że stopa zwrotu - przy obecnym poziomie rozwoju rynków finansowych, jakże różnym od tego, co widzieliśmy pięćdziesiąt, a nawet dwadzieścia lat temu - jest wyższa w filarze kapitałowym niż w filarze repartycyjnym.
+
+Artykuł całkowicie pomija te fakty. Koncentruje się  natomiast na kosztach filaru kapitałowego. Rzeczywiście, koszty te będą najprawdopodobniej wyższe niż koszty w obecnym systemie ubezpieczenia społecznego. Nasz projekt wymienia wiele kroków, które będą podjęte w celu ich kontroli, przede wszystkim kosztów marketingu i sprzedaży (np. ograniczenie częstotliwości przechodzenia między funduszami, utrzymanie ZUS jako instytucji zbierającej składkę do obu filarów czy zakaz niektórych form akwizycji). Sedno sprawy jednak w porównaniu kosztów i korzyści, a nie w analizie samych kosztów. Dzisiejszy system bankowy w Polsce ma wyższe koszty administracyjne niż miał monobank piętnaście lat temu, ale korzyści w postaci sprawności działania systemu - nikt temu nie zaprzeczy - są o wiele wyższe. W dodatku koszty te - podobnie jak przy funduszach emerytalnych - w dużej części będą  kosztami sektora prywatnego nie obciążającymi budżetu, a beneficjentami będą wszyscy obywatele. Ponadto, przytaczane przez autora koszty administracyjne obecnego systemu są sztucznie zaniżone, bo nie uwzględniają kosztów obsługi systemu ponoszonych przez pracodawców.
+
+Autor artykułu myli się w szczegółach dotyczących dodatkowych kosztów. Na przykład nie jest prawdą, że towarzystwa emerytalne będą mogły zlecać odpłatnie określone czynności zarządu osobom trzecim - będą one co najwyżej mogły powierzyć wyspecjalizowanemu podmiotowi prowadzenie indywidualnych kont. Nie jest prawdą, że upadłość towarzystwa emerytalnego kosztuje system, ponieważ wszystkie koszty będą pokrywane wyłącznie z majątku towarzystwa. Nie będzie problemem niejasność oferty firm ubezpieczeniowych, gdyż jedynym produktem oferowanym uczestnikom drugiego filaru będzie produkt prosty i jasny: emerytura dożywotnia. Nie jest prawdą, że koszty Urzędu Nadzoru nad Funduszami Emerytalnymi obciążą uczestników systemu - w drugim filarze pokryje je w całości budżet.
+
+Świadczenia będą rosły
+
+Nieporozumienie trzecie: "drastyczne obniżenie poziomu świadczeń" oraz "sprawiedliwość dla mniejszości społeczeństwa".
+
+Świadczenia nie ulegną obniżeniu, wręcz przeciwnie - będą  rosły. Obniży się jedynie relacja świadczeń do płac, ale wyniknie to z realnego wzrostu płac, a nie spadku emerytur, które w naszych analizach były waloryzowane w stosunku do cen.
+
+Jeżeli chodzi o sprawiedliwość to - w istocie - w ujęciu koncepcji reformy za sprawiedliwe uznajemy wypłacenie takiej wielkości środków emerytalnych, jakie zostały przez jednostkę zgromadzone przez lata sumiennej pracy. Kwestią solidarności społecznej jest natomiast zapewnienie środków do życia tym, którzy z różnych względów nie byli zdolni do zapracowania na własną emeryturę. Wprowadzenie minimalnej emerytury, wypłacanej przez państwo, służyć ma właśnie zaspokojeniu tej potrzeby życia społecznego. To minimum będzie na tyle wysokie, na ile stać będzie społeczeństwo. Pozostawienie części środków najwyżej zarabiającym służyć ma ożywieniu ich aktywności gospodarczej, której efekty przynosić powinny wzrost zamożności całego społeczeństwa przez wzrost liczby miejsc pracy.
+
+Co do kwestii "rażąco wysokiego wartościowania ostatniej fazy zatrudnienia", to z przykrością stwierdzić musimy, iż ta część tekstu jest dowodem nieznajomości przez autora kategorii statystycznych i finansowych. Znaczny wzrost wielkości emerytury dla osób, które zdecydują się pracować dłużej, nie jest bowiem wynikiem arbitralnej decyzji państwa, od takich bowiem decyzji zreformowany system będzie wolny, ale wynikiem prostego rachunku:
+
+- z dwóch osób o tej samej długości życia z emerytury korzystać będzie dłużej ta, która pracowała krócej, a zatem mniejsza ilość zgromadzonych środków będzie musiała wystarczyć na większą liczbę lat, co w oczywisty sposób wpływa na wielkość otrzymywanych miesięcznie wypłat,
+
+- ze względu na naturę procentu składanego nawet ta sama wielkość środków inwestowana przez dłuższy okres  przy tej samej stopie procentowej przynosi znacznie większy dochód, tak jak to się dzieje z oszczędnościami bankowymi; osoba, która dłużej powstrzyma się od konsumowania zgromadzonych oszczędności, uzyska po przejściu na emeryturę większą kwotę.
+
+Z tych powodów jedyny sprawiedliwy rachunek przyszłych należności emerytalnych, tj. rachunek aktuarialny, musi wartościować późne lata pracy wyżej. To liniowy sposób naliczania świadczeń jest gwałtem na naturze, zmuszającym pracowników do wcześniejszych emerytur wbrew ich woli i wbrew sprawiedliwości. O ekwiwalentności wkładu i zwrotu, której brak zarzuca nam autor opracowania, możemy więc mówić dopiero po powiększeniu zaoszczędzonych środków o dochód, jaki przynoszą dzięki wykorzystaniu ich przez system finansowy.
+
+Dalsze rozważania autora o "nowym podziale dóbr" są zatem całkowicie nieuprawnione, mogą natomiast służyć zaostrzeniu antagonizmów wokół reformy, wynikających z niezrozumienia lub nieznajomości jej zasad. Warto byłoby natomiast podkreślić, że tę reformę rzeczywiście robi elita z myślą o problemach, jakie mogą spotkać najuboższych, jeśli kroki zmierzające do zmiany obecnego systemu nie zostaną podjęte w najbliższej przyszłości. Elita poradziłaby sobie zapewne i bez reformy.
+
+Bezpieczne fundusze
+
+Nieporozumienie czwarte: przymus indywidualnego oszczędzania.
+
+Argumentacja artykułu prowadzona jest tak, jakby obecny system repartycyjny nie był przymusowy (a przecież jest), a wprowadzenie filaru obowiązkowych funduszy emerytalnych oznaczało wymuszenie ograniczenia konsumpcji. Tymczasem prawda jest taka, że w sferze obowiązkowego filaru ubezpieczeń zmieni się jedynie sposób zarządzania środkami, a nie ich forma czy wielkość. Zarówno składka, jak i sposób jej zbierania nie ulegną przecież zmianie. Istotne jest natomiast to, iż system stworzy motywacje i instrumenty do nadzorowania procesu zarządzania i dysponowania tymi środkami przez ich przyszłych odbiorców, co oznacza zaangażowanie w kontrolowanie ryzyka przyszłych świadczeń szerszych grup społecznych. Nie będzie możliwa utrata zgromadzonych w funduszach emerytalnych środków, gdyż te gwarantować będzie państwo. Zbankrutować natomiast może, tracąc jedynie własne środki, prywatne towarzystwo emerytalne, i to wskutek przekazania własnego kapitału na niedobór wynikający z niższych w porównaniu z innymi funduszami dochodów. Ryzykiem motywującym je do bardziej intensywnych wysiłków objęte są zatem niemal wyłącznie towarzystwa emerytalne, a nie uczestnicy funduszów emerytalnych. Ewentualne straty tych ostatnich polegać mogą jedynie na uzyskaniu średniego, a nie najwyższego zwrotu z zainwestowanych składek. Wypłacalność funduszy gwarantowana będzie przez sponsorowany przez wszystkie towarzystwa fundusz gwarancyjny oraz w ostatecznej instancji przez państwo.
+
+Projekt reformy - podkreślam dobitnie - to nie po prostu wprowadzanie przymusu indywidualnego oszczędzania. Projekt nie odrzuca kategorii wspólnoty ryzyka, solidarności, samorządności itd., nadaje im natomiast bardziej nowoczesny wymiar, pozwalający na indywidualne włączenie się do procesu zarządzania środkami. System będzie bardziej bezpieczny dzięki temu, że środki na starość gromadzone będą w co najmniej dwóch instytucjach (ZUS i obowiązkowy fundusz emerytalny) i że możliwa będzie osobista kontrola nad sposobem ich zarządzania.
+
+Grozi bankructwo 
+
+Nieporozumienie piąte: brak konieczności zmian.
+
+Dokument przedstawiony przez Biuro Pełnomocnika dotyczy koncepcji zmian w systemie zabezpieczeń społecznych. Pisanie kolejnego dokumentu potwierdzającego niewydolność obecnego systemu byłoby o tyle bezcelowe, że o jego rychłym bankructwie świadczą powszechnie dostępne prognozy demograficzne oraz deficyt ZUS widoczny w kolejnych ustawach budżetowych, sztucznie obniżany - słusznym skądinąd - przesunięciem wypłat zasiłków rodzinnych poza ZUS. W tym kontekście argumenty o niesprawiedliwości i arbitralności obecnego systemu, cytowane przez autora za naszym opracowaniem, wydają się stosunkowo mało istotne. Zarzucając nam nadmierne uleganie "kampanii na temat rzekomej niewydolności i bankructwa ZUS", autor nie proponuje wyliczeń, które wskazywałyby na nieprawdziwość tych argumentów. Tymczasem z całą odpowiedzialnością twierdzimy, że przy obecnych warunkach, aby zbilansować system, bez radykalnej zmiany jego konstrukcji, należałoby podnosić udział wydatków państwowych na emerytury i renty w produkcie krajowym brutto aż do poziomu ok. 22 proc., a składkę na emerytury i renty do  ponad 55 proc. funduszu płac. Swojej opinii o możliwości zbilansowania systemu "przez dokonanie istotnych korekt w jego ramach, z uwzględnieniem demograficznej komponenty" autor nie popiera żadnymi przykładami, których, nawiasem mówiąc, bylibyśmy niezmiernie ciekawi. Korzyści filaru kapitałowego dla wzrostu gospodarczego są przez autora całkowicie pomijane. 
+
+Projekt reformy został poddany ocenie ekspertów, aby usunąć jego ewentualne niedoskonałości, i przedstawić do wdrożenia taki, który zapewni bezpieczną przyszłość milionom odchodzących na emerytury Polaków za pięćdziesiąt, a nie pięć lat.
+
+Nie straszyć juntą
+
+Nieporozumienie szóste: nadużycie przykładu chilijskiego.
+
+W swojej krytyce projektu reformy autor sięga po przykład chilijski, oczekując zapewne, iż będzie to ostateczny argument przekreślający zarówno jej sens ekonomiczny, jak i społeczny. Trzeba przyznać, iż w społeczeństwie polskim ze względu na doświadczenia stanu wojennego jest to argument niezwykle silnie oddziałujący na emocje. Warto też pamiętać, że obalenie lewicowego rządu Allende przez prawicową juntę Pinocheta było przez lata wykorzystywane do własnych celów przez propagandę gierkowską. Posługiwanie się nim w celach demagogicznych jest na dodatek o tyle łatwe, że ze względu na położenie geograficzne Chile i niewielkie znaczenie tego państwa dla kontaktów gospodarczych i politycznych Polski wiedza o nim jest, niestety, bardzo mała. Aby ostatecznie skończyć ze straszeniem przyszłych emerytów juntą chilijską, chciałbym przypomnieć autorowi artykułu oraz wszystkim tym, którzy zbyt łatwo po argument ten sięgają, że:
+
+- w istocie reformę emerytur w Chile wprowadzono na podstawie prac wąskiej grupy ludzi, początkowo wbrew wojskowym i przy rosnącym poparciu społecznym. Porównywanie tej sytuacji z Polską nie ma jednak  sensu, gdyż sytuacja gospodarcza, w jakiej znajdowało się wówczas Chile, była znacznie gorsza niż obecnie w Polsce. Nie zmienia to faktu, że reforma chilijska postrzegana jest pozytywnie przez społeczeństwo tego kraju i że stała się  bodźcem do rozwoju systemu finansowego oraz przyspieszenia wzrostu gospodarczego, dając podstawę dla wzrostu zamożności całego społeczeństwa. Statystycznie rzecz biorąc, dochód narodowy na mieszkańca Chile jest, nawiasem mówiąc, prawie 2-krotnie  wyższy niż na przeciętnego mieszkańca Polski. Wyższe są także w porównaniu z Polską wskaźniki chilijskiego poziomu wykształcenia i zdrowotności społeczeństwa;
+
+- żadne z państw reformujących systemy emerytur, w tym  państwa Ameryki Łacińskiej, nie skopiowały systemu chilijskiego, głównie ze względu na istniejące w nich odmienności instytucjonalne i ogólnogospodarcze. W Argentynie, Peru, Kolumbii czy ostatnio w Meksyku reformę wprowadzono w warunkach demokratycznych i z dużymi zmianami w stosunku do pierwowzoru chilijskiego. Wspólnym mianownikiem było jedynie trzymanie się po raz pierwszy zastosowanej w Chile idei wiązania wypłat emerytalnych z indywidualną aktywnością zawodową oraz angażowanie sektora prywatnego do zarządzania środkami emerytalnymi. Reformy podobnego typu - jak podkreślałem wcześniej - wprowadziły już lub rozpoczęły ich wdrażanie nie tylko znacznie bardziej rozwinięte gospodarczo od Polski kraje takie jak Szwajcaria, Holandia, Australia, Singapur, ale także bliskie nam Węgry czy Łotwa. Sądzę, że uczciwe byłoby  określanie projektu reformy systemu zabezpieczeń społecznych w Polsce mianem syndromu węgierskiego lub szwajcarskiego. Byłoby to bliższe prawdy, zważywszy, iż zarówno w tych państwach, jak i w Polsce reformy te odbywają się w warunkach demokratycznego państwa prawa, a nie wojskowej dyktatury.
+
+Na co nas stać
+
+Nieporozumienie siódme: problemy okresu przejściowego.
+
+Zgadzam się z autorem, że konieczność sfinansowania reformy jest najtrudniejszym jej elementem. Gdyby nie ograniczenia finansowe, które w ujęciu makrogospodarczym przekładają się na ograniczenia budżetowe i równowagę gospodarczą, nasza skłonność do obdarowywania wszystkich zainteresowanych jak najwyższymi świadczeniami byłaby znacznie większa. Faktem jest jednak, że cała koncepcja reformy zbudowana została na bazie tego, na co jako społeczeństwo możemy sobie pozwolić, czyli na ile nas stać. Nie bez znaczenia jest tu moment rozpoczęcia reformy - dzięki korzystnym tendencjom gospodarczym w Polsce (wzrost związany z efektami reform gospodarczych) i na świecie oraz ciągle jeszcze dostępnym zasobom prywatyzacyjnym stać nas przez najbliższe kilka lat na trochę więcej, niż byłoby to możliwe w innych warunkach. Dzięki temu obciążenia, jakim podlegać będzie pokolenie dzisiejszych czterdziesto- i pięćdziesięciolatków będą mniejsze niż te, jakie musieliby ponieść przy braku lub odkładaniu reform, tzn. niska emerytura w przyszłości i obciążenie ich dzieci (czyli pokolenia, które moralnie będzie zobowiązane do pomocy niepracującym rodzicom) podwójnymi kosztami reform. Nie śmiemy twierdzić, że jest to sprawiedliwe, ale po prostu sprawiedliwsze. Nasze poczucie sprawiedliwości wzmacnia fakt, iż racjonalizacja obecnego systemu nie polega na obniżaniu świadczeń, ale przede wszystkim na uszczelnianiu systemu, czyli budowaniu motywacji dla czarnej i szarej strefy gospodarki do ujawniania swoich dochodów i płacenia składek na świadczenia, z których i tak przecież będą w takiej czy innej formie korzystać. Za niesprawiedliwe uważamy bowiem uchylanie się od pełnego ujawniania dochodów i płacenia składek, gdy każdemu przysługuje minimalna emerytura i opieka zdrowotna.
+
+Niezbędne ustawy
+
+Nieporozumienie ósme: aspekty konstytucyjne i polityczne.
+
+Realizacja projektu reformy, przez wielu ekspertów ocenianego jako  kompetentny i profesjonalny, wymaga uchwalenia przez Sejm 6-7 nowych ustaw i nowelizacji kilkunastu. Wszystkich tych potrzeb jesteśmy świadomi i zarówno my jako autorzy, jak i polskie organa legislacyjne nie ignorują ich. Kalendarz prac, jaki sobie założyliśmy, zakładał przygotowanie najpierw ustawy o wykorzystaniu wpływów z prywatyzacji części mienia Skarbu Państwa w celu wsparcia reformy systemu ubezpieczeń społecznych oraz ustawy o organizacji i funkcjonowaniu funduszy emerytalnych jako tych, które umożliwią stworzenie podstaw materialnych reformy i pozwolą podjąć niezbędne przygotowania zaangażowanym w nie instytucjom, takim jak banki, firmy ubezpieczeniowe, fundusze  inwestycyjne, instytucje nadzorcze itd. To dobrze, że Rada Ministrów przyjęła już te projekty ustaw. Inwestycje niezbędne do zarządzania środkami emerytalnymi są kosztowne i najwyższy czas, aby zainteresowane nimi instytucje rozpoczęły  przygotowania. Gotowa jest już ustawa o pracowniczych programach emerytalnych. Przygotowuje się ustawę o systemie ubezpieczeń społecznych oraz kilka innych nowelizacji i zmian.
+
+Kwestie przystawalności projektu reformy do zasad konstytucyjnych wymagają nowoczesnego spojrzenia na to, czym jest zabezpieczenie społeczne. Jak podkreśliliśmy wcześniej, sposób, w jaki autor opracowania postrzega tradycyjne kategorie ubezpieczenia społecznego, odpowiada nie tyle zasadom prawnym, ile nawykom nabytym podczas propagandy (a nie praktyki!) państwa socjalistycznego w Polsce. Reforma, co należy jeszcze raz podkreślić, zmienia sposób zarządzania składką na ubezpieczenie społeczne, a nie składkę czy jej formę prawną. Wątpliwości autora można porównać z rozważaniem, czy sklep, który został sprywatyzowany i wyposażony w nowoczesne kasy fiskalne, przestał być sklepem i czy zakłóca to umowę sprzedaży w ujęciu kodeksu cywilnego.
+
+Zdumiewające wydaje się rozczarowanie autora unikaniem przez obecny rząd wciągania reformy w "przedwyborcze debaty i walki". Gdyby takim debatom poddany był swego czasu program Balcerowicza, to jeszcze do dziś kupowalibyśmy buty na kartki i chleb spod lady. Na szczęście i wówczas, i dziś  ekipy rządzące oraz  elity polityczne mają dość odpowiedzialności za państwo i jego stan w długim okresie, aby uznać, że reforma jest konieczna i że podlegać powinna najpierw analizie ekonomicznej, a nie politycznym przepychankom. I to jest chyba piękne w "polskim surrealizmie politycznym", że kłócimy się o rzeczy drobne, natomiast w sprawach naprawdę ważnych stać nas na dojrzałość i rozwagę.
+
+A propos lewicowości i polityki: czy autor dostrzegł, że obecny system emerytalny zawiera w sobie ukrytą redystrybucję od biednych do bogatych, ponieważ to bogaci jako żyjący dłużej korzystają z "uwspólnienia" ryzyka? Czy autor zauważa, że  niebranie pod uwagę składek z wczesnego okresu kariery zawodowej uderza w niżej zarabiających, którzy zazwyczaj mają mniej lat spędzonych w szkole? Czy nie jest zrozumiałe, że każdy rząd wrażliwy na bezzasadność tego typu ukrytej redystrybucji, usiłowałby ją usunąć?
+
+Co na świecie
+
+Nieporozumienie dziewiąte: my a inni.
+
+Omawiany artykuł zdaje się traktować kierunek polskich zmian jako idiosynkratyczne dziwactwo. Chociaż polski program reform wynika wyłącznie z polskich uwarunkowań wewnętrznych, nie jest bezzasadne rozejrzenie się wokół siebie.
+
+Co dzieje się wokół nas w kwietniu 1997 r.? Oto na Węgrzech, rządzonych przez sojusz zreformowanej Węgierskiej Partii Socjalistycznej oraz Partii Wolnych Demokratów, przedkładany jest właśnie do parlamentu pakiet ustaw wprowadzających nowy wielofilarowy system emerytalny z drugim filarem w postaci powszechnych obowiązkowych, otwartych, konkurujących ze sobą funduszy emerytalnych. Oto w Szwecji jesteśmy w przededniu wprowadzenia systemu emerytalnego, zawierającego także filar kapitałowy, oraz ścisły związek składki i świadczenia w filarze repartycyjnym (w postaci tego, co w naszym projekcie nazwaliśmy "kapitałem uprawnień emerytalnych"). Oto na Łotwie - gdzie system kapitałowych uprawnień emerytalnych działa już pełną parą - wprowadza się filar powszechnych funduszy kapitałowych. Oto w Szwajcarii, Danii, Holandii, Wielkiej Brytanii czy Australii dominują powszechne ubezpieczenia kapitałowe (tj. grupujące co najmniej 70 proc. siły roboczej), a w niektórych wypadkach (Szwajcaria, Australia) obowiązkowe kapitałowe systemy zabezpieczenia na starość. Oto w przynajmniej sześciu krajach Ameryki Łacińskiej działają systemy oparte na przymusowej kapitalizacji całości (Chile) lub części składki. Oto w Stanach Zjednoczonych Doradczy Panel Prezydenta ds. Reformy Ubezpieczeń Społecznych proponuje wprowadzenie systemu trójfilarowego ‡ la rozwiązania latynoamerykańskie...
+
+Nie dlatego robimy reformy, ponieważ robią je inni. Powinniśmy jednak dobrze wiedzieć, co i dlaczego robią inni, aby nie powielić cudzych błędów i czerpać z innych doświadczeń tylko to, co wzbogaca nasz program.
+
+Komu służą reformy
+
+Nieporozumienie dziesiąte: cele i beneficjenci reform.
+
+Kolejnym przykładem problemów autora omawianego artykułu z podstawowymi kategoriami ekonomicznymi i finansowymi jest zarzut, iż jedyny cel reform jest natury fiskalnej. Oczywiście, że cały wysiłek podejmowany jest po to, aby w przyszłości za emerytury nie płacić głębokim deficytem budżetowym i okradającą nas wszystkich inflacją. Fundusze emerytalne nie będą natomiast źródłem finansowania deficytu, ale źródłem finansowania prywatnych inwestycji i rozwoju gospodarczego. Gromadzone przez fundusze środki będą bowiem za pośrednictwem systemu finansowego, a więc przez kredyt bankowy i hipoteczny, inwestycje w akcje i obligacje, zasilać wzrost gospodarczy. Część tych środków, zgodnie zresztą z normami ostrożnościowymi obowiązującymi w najbardziej rozwiniętych systemach finansowych, będzie inwestowana w rządowe papiery wartościowe jako najbezpieczniejszą formę lokat; cześć będzie też zapewne inwestowana za granicą w celu dywersyfikacji ryzyka. Jest natomiast całkowitą nieprawdą, że fundusze emerytalne będą zobowiązane do inwestowania w dłużne papiery Skarbu Państwa.
+
+Nie wiedzieć czemu, do beneficjentów reformy ubezpieczeń w Polsce autor wciągnął także instytucje międzynarodowe, przedstawiane w tonie żądnych krwi bestii. Warto więc przypomnieć, że Polska jest członkiem założycielem tych instytucji, ma w nich swoich przedstawicieli i  systematycznie wpłaca statutowe składki na finansowanie ich działalności. Od kiedy mamy w Polsce zrównoważony bilans płatniczy, prawie nie korzystamy  z pomocy finansowej tych instytucji, dlatego ich wskazania mają jedynie charakter doradczy, a nie warunkowy. Korzystanie z rad specjalistów Banku Światowego i Międzynarodowego Funduszu Walutowego nie wydaje się zresztą zbytnio nierozważne, jeśli wziąć pod uwagę, iż instytucje te zatrudniają fachowców z całego świata, którzy pracując w różnych krajach, mają unikatową możliwość poznania i wymiany najlepszych doświadczeń gospodarczych krajów, z jakimi się w swojej codziennej pracy stykają.
+
+I wreszcie ostatnia uwaga, w imię pamięci nieodżałowanego autora "Bambini di Praga". Instytucje i rozwiązania krytykowane przez autora są tworzone właśnie po to, aby nie było wolnego pola dla oferujących złudzenia aferzystów. Mam nadzieję, że  nadchodzi czas przejścia od etapu konieczności polemiki z tymi, którzy wciąż oferują polskim przyszłym emerytom złudzenia dnia wczorajszego, do etapu wspólnej pracy nad zapewnieniem jak najwyższej jakości projektowanych rozwiązań.
+
+Autor jest dyrektorem Biura Pełnomocnika Rządu do Spraw Reformy Zabezpieczenia Społecznego
diff --git b/ExtrSumAnnotator/pom.xml a/ExtrSumAnnotator/pom.xml
new file mode 100644
index 0000000..4e5acf8
--- /dev/null
+++ a/ExtrSumAnnotator/pom.xml
@@ -0,0 +1,37 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>ipipan.atlas</groupId>
+	<artifactId>extrsumannotator</artifactId>
+	<version>0.1</version>
+	<name>ExtrSumAnnotator</name>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+				<configuration>
+					<archive>
+						<manifest>
+							<mainClass>ipipan.atlas.extrsumannotator.main.ExtrSumAnnotator</mainClass>
+						</manifest>
+					</archive>
+					<descriptorRefs>
+						<descriptorRef>jar-with-dependencies</descriptorRef>
+					</descriptorRefs>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.16</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.woodstox</groupId>
+			<artifactId>stax2-api</artifactId>
+			<version>3.1.1</version>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git b/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/basic/Text.java a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/basic/Text.java
new file mode 100644
index 0000000..e3bc98b
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/basic/Text.java
@@ -0,0 +1,43 @@
+package pl.waw.ipipan.zil.summarization.extrsumannotator.basic;
+
+import java.util.List;
+import java.util.SortedSet;
+
+public class Text {
+
+	private String text = null;
+	private List<SortedSet<Integer>> summaries;
+
+	public Text(String string, List<SortedSet<Integer>> summaries) {
+		this.text = string;
+		this.summaries = summaries;
+	}
+
+	public String getText() {
+		return text;
+	}
+
+	public int getTextWordsCount() {
+		return getStringWordCount(text);
+	}
+
+	public static int getStringWordCount(String string) {
+		return string.split("[ ]+").length;
+	}
+
+	public void setSummaries(List<SortedSet<Integer>> summaries) {
+		this.summaries = summaries;
+	}
+
+	public SortedSet<Integer> getSummary(int number) {
+		return summaries.get(number);
+	}
+
+	public List<SortedSet<Integer>> getSummaries() {
+		return summaries;
+	}
+
+	public void setSummary(int summNumber, SortedSet<Integer> sum) {
+		summaries.set(summNumber, sum);
+	}
+}
diff --git b/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/io/SummaryFileIO.java a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/io/SummaryFileIO.java
new file mode 100644
index 0000000..a87a9ad
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/io/SummaryFileIO.java
@@ -0,0 +1,135 @@
+package pl.waw.ipipan.zil.summarization.extrsumannotator.io;
+
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.extrsumannotator.basic.Text;
+import pl.waw.ipipan.zil.summarization.extrsumannotator.main.ExtrSumAnnotator;
+
+public class SummaryFileIO {
+
+	private static final String SUMMARIES = "#### SUMMARIES ####";
+	private static final String SUMMARY_START = "#### SUMMARY START ####";
+	private static final String SUMMARY_END = "#### SUMMARY END ####";
+
+	private static final Logger logger = Logger.getLogger(SummaryFileIO.class);
+
+	public static boolean saveSummary(File summaryFile, Text text) {
+		logger.info("Saving text with summaries in file: " + summaryFile);
+		BufferedWriter bw = null;
+
+		try {
+			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(summaryFile), "UTF-8"));
+
+			bw.append(text.getText() + "\n");
+
+			bw.append(SUMMARIES + "\n");
+
+			for (SortedSet<Integer> sum : text.getSummaries()) {
+				bw.append(SUMMARY_START + "\n");
+				for (Integer idx : sum)
+					bw.append(idx + " ");
+				bw.append("\n");
+				bw.append(SUMMARY_END + "\n");
+			}
+
+		} catch (IOException e) {
+			logger.error("Error writing summary: " + e.getLocalizedMessage());
+			return false;
+		} finally {
+			if (bw != null)
+				try {
+					bw.close();
+				} catch (IOException e) {
+					logger.error("Error closing summary file: " + e.getLocalizedMessage());
+					return false;
+				}
+		}
+		return true;
+	}
+
+	public static Text loadText(File input) {
+
+		logger.info("Loading text with summaries from file: " + input);
+		BufferedReader br = null;
+
+		try {
+			br = new BufferedReader(new InputStreamReader(new FileInputStream(input), "UTF-8"));
+			String line = null;
+			StringBuffer fullText = new StringBuffer();
+			List<SortedSet<Integer>> summaries = new ArrayList<SortedSet<Integer>>();
+			while ((line = br.readLine()) != null) {
+				if (line.startsWith(SUMMARIES))
+					loadSummaries(br, summaries);
+				else
+					fullText.append(line + "\n");
+			}
+
+			while (summaries.size() < ExtrSumAnnotator.SUMMARIES_SIZES.length) {
+				summaries.add(new TreeSet<Integer>());
+			}
+
+			Text t = new Text(fullText.toString(), summaries);
+			return t;
+
+		} catch (IOException e) {
+			logger.error("Error reading text: " + e.getLocalizedMessage());
+			return null;
+		} finally {
+			try {
+				if (br != null)
+					br.close();
+			} catch (IOException e) {
+				logger.error("Error closing text file: " + e.getLocalizedMessage());
+				return null;
+			}
+		}
+	}
+
+	private static void loadSummaries(BufferedReader br, List<SortedSet<Integer>> summaries) throws IOException {
+		SortedSet<Integer> summary = null;
+		while ((summary = loadSummary(br)) != null)
+			summaries.add(summary);
+	}
+
+	private static SortedSet<Integer> loadSummary(BufferedReader br) throws IOException {
+		SortedSet<Integer> summary = new TreeSet<Integer>();
+
+		String line = null;
+		boolean inside = false;
+		while ((line = br.readLine()) != null) {
+			if (line.startsWith(SUMMARY_END))
+				break;
+
+			if (inside) {
+				Scanner sc = new Scanner(line);
+				while (sc.hasNextInt())
+					summary.add(sc.nextInt());
+				sc.close();
+			}
+
+			if (line.startsWith(SUMMARY_START))
+				inside = true;
+		}
+
+		if (summary.size() == 0 && !inside)
+			return null;
+
+		return summary;
+	}
+
+}
diff --git b/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/ExtrSumAnnotator.java a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/ExtrSumAnnotator.java
new file mode 100644
index 0000000..bba3303
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/ExtrSumAnnotator.java
@@ -0,0 +1,384 @@
+package pl.waw.ipipan.zil.summarization.extrsumannotator.main;
+
+
+import java.awt.Cursor;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Toolkit;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.InputEvent;
+import java.awt.event.KeyEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JEditorPane;
+import javax.swing.JFileChooser;
+import javax.swing.JFrame;
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+import javax.swing.JMenuItem;
+import javax.swing.JOptionPane;
+import javax.swing.JRadioButtonMenuItem;
+import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
+import javax.swing.KeyStroke;
+import javax.swing.SwingUtilities;
+import javax.swing.UIManager;
+import javax.swing.filechooser.FileFilter;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.extrsumannotator.basic.Text;
+import pl.waw.ipipan.zil.summarization.extrsumannotator.io.SummaryFileIO;
+
+public class ExtrSumAnnotator extends JFrame implements Runnable, MyTabChangeListener {
+
+	private static final String WINDOW_TITLE = "ESE v0.9";
+
+	private static final long serialVersionUID = -3830790411182131318L;
+
+	private static final Logger logger = Logger.getLogger(ExtrSumAnnotator.class);
+
+	private static final int HEIGTH = 600;
+	private static final int WIDTH = 800;
+
+	public static double[] SUMMARIES_SIZES = new double[] { 0.2, 0.1, 0.05 };
+
+	private JMenuItem save;
+
+	private File currentFile = null;
+	private boolean unsavedChanges = false;
+
+	private JTabbedPane tabbedPane;
+
+	private float displayFontSize;
+
+	private Text currentText;
+
+	public static void main(String[] args) {
+		if (args.length != 0 && args.length != 1) {
+			logger.error("Wrong usage! Should be: java -jar " + ExtrSumAnnotator.class.getSimpleName()
+			        + " [input file]");
+			return;
+		}
+		final ExtrSumAnnotator summanno = new ExtrSumAnnotator();
+		try {
+			SwingUtilities.invokeAndWait(summanno);
+		} catch (Exception e) {
+			logger.error("Error starting application: " + e.getLocalizedMessage());
+			e.printStackTrace();
+			return;
+		}
+
+		if (args.length == 1) {
+			final File input = new File(args[0]);
+			if (input.exists()) {
+				SwingUtilities.invokeLater(new Runnable() {
+
+					public void run() {
+						summanno.loadFile(input);
+					}
+				});
+			} else {
+				logger.error("Input file: " + input + " doesn't exist!");
+			}
+		}
+	}
+
+	public void run() {
+		displayFontSize = loadDisplayFontSize();
+		tabbedPane = new JTabbedPane();
+		this.getContentPane().add(tabbedPane);
+		this.setTitle(WINDOW_TITLE);
+		this.createMenu();
+		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+		this.addWindowListener(new MainWindowListener(this));
+		this.setSize(WIDTH, HEIGTH);
+		Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+		this.setLocation((screenSize.width - WIDTH) / 2, (screenSize.height - HEIGTH) / 2);
+		this.setVisible(true);
+	}
+
+	private float loadDisplayFontSize() {
+		float result = 12f;
+		logger.info("Using default font size.");
+		return result;
+	}
+
+	private void createMenu() {
+		JMenuBar menu = new JMenuBar();
+		this.setJMenuBar(menu);
+
+		JMenu file = new JMenu("File");
+		menu.add(file);
+
+		JMenuItem open = new JMenuItem("Open");
+		open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
+		open.addActionListener(new ActionListener() {
+
+			public void actionPerformed(ActionEvent e) {
+				requestOpenFile();
+			}
+		});
+		file.add(open);
+
+		save = new JMenuItem("Save");
+		save.setEnabled(false);
+		save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
+		save.addActionListener(new ActionListener() {
+
+			public void actionPerformed(ActionEvent e) {
+				requestSaveFile();
+			}
+		});
+		file.add(save);
+
+		JMenuItem exit = new JMenuItem("Exit");
+		exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
+		exit.addActionListener(new ActionListener() {
+
+			public void actionPerformed(ActionEvent e) {
+				requestExit();
+			}
+		});
+		file.add(exit);
+
+		JMenu other = new JMenu("Other");
+
+		ButtonGroup fontSizeButtonGroup = new ButtonGroup();
+		JMenu setFontSize = new JMenu("Change font size");
+		for (int z = 8; z < 30; z = z + 2) {
+
+			final int currentFontSize = z;
+
+			JRadioButtonMenuItem temp = new JRadioButtonMenuItem(z + "");
+			if (z == displayFontSize) {
+				temp.setSelected(true);
+			}
+			temp.addActionListener(new ActionListener() {
+
+				public void actionPerformed(ActionEvent ae) {
+					requestSetFontSize(currentFontSize);
+				}
+			});
+			fontSizeButtonGroup.add(temp);
+			setFontSize.add(temp);
+		}
+		other.add(setFontSize);
+
+		JMenuItem help = new JMenuItem("Help");
+		help.addActionListener(new ActionListener() {
+
+			public void actionPerformed(ActionEvent e) {
+				requestShowHelp();
+			}
+		});
+		other.add(help);
+
+		menu.add(other);
+	}
+
+	protected void requestSetFontSize(float currentFontSize) {
+		logger.info("Setting font size: " + currentFontSize);
+		displayFontSize = currentFontSize;
+
+		Enumeration<Object> enumer = UIManager.getDefaults().keys();
+		while (enumer.hasMoreElements()) {
+			Object key = enumer.nextElement();
+			Object value = UIManager.get(key);
+			if (value instanceof Font) {
+				UIManager.put(key, new javax.swing.plaf.FontUIResource(((Font) value).deriveFont(currentFontSize)));
+			}
+		}
+		SwingUtilities.updateComponentTreeUI(this);
+	}
+
+	private final void requestShowHelp() {
+		JFrame helpFrame = new JFrame("Help");
+		helpFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+
+		JEditorPane editorPane = new JEditorPane();
+		editorPane.setEditable(false);
+		URL helpURL = ExtrSumAnnotator.class.getClassLoader().getResource("help.html");
+		if (helpURL != null) {
+			try {
+				editorPane.setPage(helpURL);
+			} catch (IOException e) {
+				logger.error("Attempted to read a bad URL: " + helpURL);
+			}
+		} else {
+			logger.error("Couldn't find file: help.html");
+		}
+
+		// Put the editor pane in a scroll pane.
+		JScrollPane editorScrollPane = new JScrollPane(editorPane);
+		editorScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
+		editorScrollPane.setPreferredSize(new Dimension(800, 600));
+		editorScrollPane.setMinimumSize(new Dimension(30, 30));
+
+		helpFrame.getContentPane().add(editorScrollPane);
+		helpFrame.pack();
+		helpFrame.setVisible(true);
+	}
+
+	private void requestSaveFile() {
+
+		for (int i = 0; i < tabbedPane.getTabCount(); i++) {
+			MyTab tab = (MyTab) tabbedPane.getComponentAt(i);
+			currentText.setSummary(i, tab.getSelectedIndices());
+		}
+
+		boolean success = SummaryFileIO.saveSummary(currentFile, currentText);
+
+		if (success) {
+			unsavedChanges = false;
+			setTitle(WINDOW_TITLE);
+			save.setEnabled(false);
+		} else {
+			showError("Error saving file: " + currentFile);
+		}
+	}
+
+	private final void requestOpenFile() {
+		if (!askToSaveChanges())
+			return;
+
+		JFileChooser chooser;
+		if (currentFile == null)
+			chooser = new JFileChooser();
+		else
+			chooser = new JFileChooser(currentFile.getParentFile());
+
+		chooser.setFileFilter(new SummannotatorFileFilter());
+		int result = chooser.showOpenDialog(this);
+
+		if (result == JFileChooser.APPROVE_OPTION) {
+			this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
+			this.loadFile(chooser.getSelectedFile());
+			this.setCursor(null);
+		}
+	}
+
+	private boolean askToSaveChanges() {
+		if (!unsavedChanges)
+			return true;
+
+		int result = JOptionPane.showOptionDialog(this, "Do you want to save changes?", "Unsaved changes",
+		        JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE, null, null, null);
+
+		if (result == JOptionPane.CANCEL_OPTION)
+			return false;
+
+		if (result == JOptionPane.YES_OPTION)
+			requestSaveFile();
+
+		return true;
+	}
+
+	private final void requestExit() {
+		if (!askToSaveChanges())
+			return;
+
+		logger.info("Exiting.");
+		System.exit(0);
+	}
+
+	private final void loadFile(File input) {
+		tabbedPane.removeAll();
+
+		if (!input.exists()) {
+			String err = "File " + input + " doesn't exist!";
+			logger.error(err);
+			showError(err);
+			return;
+		}
+
+		currentText = SummaryFileIO.loadText(input);
+
+		int all = currentText.getTextWordsCount();
+		List<MyTab> allTabs = new ArrayList<MyTab>();
+
+		MyTab firstTab = new MyTab((int) (SUMMARIES_SIZES[0] * all), currentText.getText());
+		allTabs.add(firstTab);
+
+		MyTab toListen = firstTab;
+		for (int i = 1; i < SUMMARIES_SIZES.length; i++) {
+			MyTab tab = new MyTab((int) (SUMMARIES_SIZES[i] * all), currentText.getText());
+			toListen.addChangeListener(tab);
+			toListen = tab;
+			allTabs.add(tab);
+		}
+
+		SortedSet<Integer> fullSelection = new TreeSet<Integer>();
+		for (int i = 0; i < currentText.getText().length(); i++)
+			fullSelection.add(i);
+		firstTab.fullTextChanged(fullSelection);
+
+		int i = 0;
+		for (SortedSet<Integer> sum : currentText.getSummaries()) {
+			allTabs.get(i++).setSummary(sum);
+		}
+
+		i = 0;
+		for (MyTab tab : allTabs) {
+			tab.addChangeListener(this);
+			tabbedPane.addTab(((int) (SUMMARIES_SIZES[i++] * 100)) + "% summary", tab);
+		}
+
+		currentFile = input;
+	}
+
+	private void showError(String string) {
+		JOptionPane.showMessageDialog(this, string, "Error", JOptionPane.ERROR_MESSAGE);
+	}
+
+	private final class SummannotatorFileFilter extends FileFilter {
+		@Override
+		public String getDescription() {
+			return "TXT files";
+		}
+
+		@Override
+		public boolean accept(File f) {
+			return f.getName().endsWith(".txt") || f.isDirectory();
+		}
+	}
+
+	private class MainWindowListener extends WindowAdapter {
+
+		private final ExtrSumAnnotator summanotator;
+
+		public MainWindowListener(ExtrSumAnnotator sumannotator) {
+			this.summanotator = sumannotator;
+		}
+
+		@Override
+		public void windowClosing(WindowEvent we) {
+			this.summanotator.requestExit();
+		}
+	}
+
+	public void fullTextChanged(SortedSet<Integer> selectedCharsIndices) {
+		unsavedChanges = true;
+		save.setEnabled(true);
+		setTitle(WINDOW_TITLE + " " + "[unsaved changes]");
+	}
+
+	public void undo() {
+	}
+
+	public void saveStateForUndo(boolean thisTabChanged) {
+	}
+
+}
diff --git b/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTab.java a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTab.java
new file mode 100644
index 0000000..a4d84e0
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTab.java
@@ -0,0 +1,325 @@
+package pl.waw.ipipan.zil.summarization.extrsumannotator.main;
+
+
+import java.awt.BorderLayout;
+import java.awt.Color;
+import java.awt.Insets;
+import java.awt.event.ActionEvent;
+import java.awt.event.KeyEvent;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import javax.swing.AbstractAction;
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JProgressBar;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
+import javax.swing.KeyStroke;
+import javax.swing.event.CaretEvent;
+import javax.swing.event.CaretListener;
+import javax.swing.text.BadLocationException;
+import javax.swing.text.DefaultHighlighter;
+import javax.swing.text.Highlighter.HighlightPainter;
+
+import org.apache.log4j.Logger;
+
+import pl.waw.ipipan.zil.summarization.extrsumannotator.basic.Text;
+
+public class MyTab extends JSplitPane implements MyTabChangeListener {
+
+	private static final Logger logger = Logger.getLogger(MyTab.class);
+
+	private static final long serialVersionUID = 3656861958564714263L;
+
+	private final JTextToSummarizeArea fullTextPane;
+	private final JTextArea summaryPane;
+
+	private final JProgressBar pb;
+
+	private final int targetSegmentCount;
+	private final int allSegmentCount;
+
+	private final Set<MyTabChangeListener> listeners = new HashSet<MyTabChangeListener>();
+
+	private final String originalText;
+
+	public SortedSet<Integer> previousIndices = null;
+
+	private final JButton undoButton;
+
+	public MyTab(int targetCount, String originalText) {
+		super(JSplitPane.VERTICAL_SPLIT);
+
+		this.originalText = originalText;
+
+		this.targetSegmentCount = targetCount;
+		this.allSegmentCount = Text.getStringWordCount(originalText);
+
+		fullTextPane = new JTextToSummarizeArea();
+		fullTextPane.setLineWrap(true);
+		fullTextPane.setEditable(false);
+		fullTextPane.setWrapStyleWord(true);
+		fullTextPane.setMargin(new Insets(10, 10, 10, 10));
+
+		summaryPane = new JTextArea();
+		summaryPane.setLineWrap(true);
+		summaryPane.setEditable(false);
+		summaryPane.setWrapStyleWord(true);
+		summaryPane.setMargin(new Insets(10, 10, 10, 10));
+
+		pb = new JProgressBar(0, targetSegmentCount);
+		JLabel all = new JLabel("Words in text: " + allSegmentCount);
+		JLabel summ = new JLabel("Words in summary: " + targetSegmentCount);
+
+		UndoAction undoAction = new UndoAction();
+		this.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(
+		        KeyStroke.getKeyStroke(KeyEvent.VK_Z, KeyEvent.CTRL_MASK), "undo");
+		this.getActionMap().put("undo", undoAction);
+		undoButton = new JButton(undoAction);
+		undoButton.setEnabled(false);
+		undoButton.setText("Undo last action (CTRL+Z)");
+
+		JPanel bottomLeftPanel = new JPanel();
+		bottomLeftPanel.setLayout(new BoxLayout(bottomLeftPanel, BoxLayout.Y_AXIS));
+		bottomLeftPanel.add(pb);
+		bottomLeftPanel.add(all);
+		bottomLeftPanel.add(summ);
+		bottomLeftPanel.add(Box.createVerticalStrut(8));
+		bottomLeftPanel.add(undoButton);
+
+		JPanel bottomPane = new JPanel(new BorderLayout());
+		bottomPane.add(new JScrollPane(summaryPane), BorderLayout.CENTER);
+		bottomPane.add(bottomLeftPanel, BorderLayout.LINE_START);
+
+		this.setTopComponent(new JScrollPane(fullTextPane));
+		this.setBottomComponent(bottomPane);
+		this.setOneTouchExpandable(true);
+		this.setDividerLocation(350);
+	}
+
+	public void addChangeListener(MyTabChangeListener tab) {
+		listeners.add(tab);
+	}
+
+	public void selectionChanged(SortedSet<Integer> selectedCharsIndices) {
+		String summ = getTextByIndices(this.originalText, selectedCharsIndices);
+		int summWC = Text.getStringWordCount(summ);
+
+		pb.setValue(summWC);
+		pb.setStringPainted(true);
+		if (targetSegmentCount == 0)
+			pb.setString(summWC + "/0 = -- %");
+		else
+			pb.setString(summWC + "/" + targetSegmentCount + " = " + (100 * summWC / targetSegmentCount) + "%");
+
+		summaryPane.setText(summ);
+
+		for (MyTabChangeListener l : listeners)
+			l.fullTextChanged(selectedCharsIndices);
+	}
+
+	private String getTextByIndices(String text, SortedSet<Integer> selectedCharsIndices) {
+		StringBuffer sb = new StringBuffer();
+		for (Integer idx : selectedCharsIndices)
+			sb.append(text.substring(idx, idx + 1));
+		String summ = sb.toString();
+		return summ;
+	}
+
+	public void fullTextChanged(SortedSet<Integer> selectedCharsIndices) {
+		fullTextPane.setOriginalText(selectedCharsIndices);
+	}
+
+	public SortedSet<Integer> getSelectedIndices() {
+		return fullTextPane.getSelectedIndices();
+	}
+
+	public void setSummary(SortedSet<Integer> sum) {
+		fullTextPane.setSummary(sum);
+	}
+
+	public void saveStateForUndo(boolean thisTabChanged) {
+		logger.debug("Saving state for undo... (tab: " + targetSegmentCount + ")");
+		previousIndices = getSelectedIndices();
+		logger.debug(previousIndices);
+
+		if (thisTabChanged)
+			undoButton.setEnabled(true);
+		else
+			undoButton.setEnabled(false);
+
+		for (MyTabChangeListener l : listeners)
+			l.saveStateForUndo(false);
+	}
+
+	public void undo() {
+		if (previousIndices != null) {
+			logger.debug("Undoing... (tab: " + targetSegmentCount + ")");
+			logger.debug(previousIndices);
+			this.undoButton.setEnabled(false);
+
+			try {
+				this.setSummary(previousIndices);
+			} catch (Exception ex) {
+				logger.error("Error undoing... (tab: " + targetSegmentCount + ")");
+			}
+
+			previousIndices = null;
+			for (MyTabChangeListener l : listeners)
+				l.undo();
+		} else {
+			logger.debug("Nothing to undo... (tab: " + targetSegmentCount + ")");
+		}
+	}
+
+	private class JTextToSummarizeArea extends JTextArea implements CaretListener {
+
+		private static final long serialVersionUID = -8674213151313542475L;
+
+		private SortedSet<Integer> selectedCharsIndices = new TreeSet<Integer>();
+
+		private final Map<Integer, Integer> mappingOrig2This = new HashMap<Integer, Integer>();
+		private final Map<Integer, Integer> mappingThis2Orig = new HashMap<Integer, Integer>();
+
+		private final Color hlColor = new Color(255, 0, 0, 100);
+		private final HighlightPainter hlPainter = new DefaultHighlighter.DefaultHighlightPainter(hlColor);
+
+		public JTextToSummarizeArea() {
+			super();
+			this.addCaretListener(this);
+		}
+
+		public void setSummary(SortedSet<Integer> sum) {
+			selectedCharsIndices.clear();
+			for (Integer idx : sum)
+				selectedCharsIndices.add(mappingOrig2This.get(idx));
+			refreshView();
+		}
+
+		public SortedSet<Integer> getSelectedIndices() {
+			SortedSet<Integer> origSelectedCharsIndices = new TreeSet<Integer>();
+			for (Integer i : this.selectedCharsIndices)
+				origSelectedCharsIndices.add(mappingThis2Orig.get(i));
+
+			return origSelectedCharsIndices;
+		}
+
+		public void setOriginalText(SortedSet<Integer> newOriginalTextIndices) {
+			if (mappingOrig2This != null) {
+				SortedSet<Integer> newSelectedCharsIndices = new TreeSet<Integer>();
+				int i = 0;
+				for (Integer idx : newOriginalTextIndices) {
+					Integer oldIdx = mappingOrig2This.get(idx);
+					if (oldIdx != null && selectedCharsIndices.contains(oldIdx))
+						newSelectedCharsIndices.add(i);
+					i++;
+				}
+				selectedCharsIndices = newSelectedCharsIndices;
+			}
+
+			mappingOrig2This.clear();
+			int i = 0;
+			for (Integer idx : newOriginalTextIndices)
+				mappingOrig2This.put(idx, i++);
+
+			mappingThis2Orig.clear();
+			i = 0;
+			for (Integer idx : newOriginalTextIndices)
+				mappingThis2Orig.put(i++, idx);
+
+			String summ = getTextByIndices(originalText, newOriginalTextIndices);
+
+			this.setText(summ);
+			this.setCaretPosition(0);
+			refreshView();
+		}
+
+		public void caretUpdate(CaretEvent e) {
+			int dot = e.getDot();
+			int mark = e.getMark();
+
+			if (dot == mark)
+				return;
+
+			if (dot < mark) {
+				int tmp = mark;
+				mark = dot;
+				dot = tmp;
+			}
+
+			saveStateForUndo(true);
+
+			boolean allSelected = true;
+			for (int i = mark; i < dot; i++)
+				if (!this.selectedCharsIndices.contains(i))
+					allSelected = false;
+
+			for (int i = mark; i < dot; i++)
+				if (!allSelected)
+					this.selectedCharsIndices.add(i);
+				else
+					this.selectedCharsIndices.remove(i);
+
+			refreshView();
+		}
+
+		private void refreshView() {
+
+			this.getHighlighter().removeAllHighlights();
+
+			Integer start = null;
+			Integer end = null;
+
+			Iterator<Integer> it = selectedCharsIndices.iterator();
+			while (it.hasNext()) {
+				int idx = it.next();
+				if (start == null) {
+					start = idx;
+					end = idx;
+				} else {
+					if (idx == end + 1)
+						end = idx;
+					else {
+						addHighlight(start, end + 1);
+						start = idx;
+						end = idx;
+					}
+				}
+			}
+			if (start != null && end != null)
+				addHighlight(start, end + 1);
+
+			selectionChanged(getSelectedIndices());
+		}
+
+		private void addHighlight(Integer start, Integer end) {
+			try {
+				this.getHighlighter().addHighlight(start, end, this.hlPainter);
+			} catch (BadLocationException e) {
+				logger.error("Error highlighting... " + e.getLocalizedMessage());
+			}
+		}
+	}
+
+	private class UndoAction extends AbstractAction {
+
+		private static final long serialVersionUID = 640721327092571644L;
+
+		public void actionPerformed(ActionEvent e) {
+			if (undoButton.isEnabled()) {
+				undo();
+			}
+		}
+	}
+}
diff --git b/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTabChangeListener.java a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTabChangeListener.java
new file mode 100644
index 0000000..c0bb108
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/java/pl/waw/ipipan/zil/summarization/extrsumannotator/main/MyTabChangeListener.java
@@ -0,0 +1,13 @@
+package pl.waw.ipipan.zil.summarization.extrsumannotator.main;
+
+import java.util.SortedSet;
+
+public interface MyTabChangeListener {
+
+	public abstract void fullTextChanged(SortedSet<Integer> selectedCharsIndices);
+
+	public abstract void undo();
+
+	public abstract void saveStateForUndo(boolean thisTabChanged);
+
+}
\ No newline at end of file
diff --git b/ExtrSumAnnotator/src/main/resources/help.html a/ExtrSumAnnotator/src/main/resources/help.html
new file mode 100644
index 0000000..fcf2f8f
--- /dev/null
+++ a/ExtrSumAnnotator/src/main/resources/help.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Extract Summary Editor is a program for manual extract summary creation and edition.</p>
+
+<p>When we open a file in it, in the top pane the original text to summarize is shown.
+In the bottom we can see 3 tabs, each corresponding to a different summary size: 20%, 10% and 5% 
+(in terms of word count).
+The summary of given size should be created as an extract of the original text.
+The left side of the bottom
+pane presents current size of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that it contains all words from the original text).</p>
+
+<p>Each summary of smaller size should contain only characters of the summary of bigger size
+- that means for example that 10% summary is an extract of 20% summary, not the whole original
+text.</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. Settings are reset to default after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in raw TXT format, with UTF-8 encoding.</p>
+
+<p>Summaries are appended to the end of text after saving (and separated by special lines).
+Summary is encoded as sequence of character numbers, separated by spaces. 
+It's better not to try to edit this file manually in normal text editor.</p>
+
+<p>Is the summaries were saved, they are loaded the next time we open the same file.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git b/ExtrSumAnnotator/target/199704280023.txt a/ExtrSumAnnotator/target/199704280023.txt
new file mode 100644
index 0000000..ab8f9f7
--- /dev/null
+++ a/ExtrSumAnnotator/target/199704280023.txt
@@ -0,0 +1,155 @@
+DYSKUSJA 
+
+Polemika z artykułem prof. Jana Jończyka
+
+Jutro i wczoraj polskich emerytur
+
+RYS. ARTUR KRAJEWSKI
+
+MICHAŁ RUTKOWSKI
+
+Gdyby artykuł Jana Jończyka "Kosztowna prywatyzacja ryzyka starości" ukazał się kilkadziesiąt lub nawet kilkanaście lat temu, odpowiadałby w zupełności ówczesnemu rozumieniu zarówno tego, jak powinny działać ubezpieczenia społeczne, jak i tego, jaka powinna być rola państwa w zapewnieniu bezpieczeństwa emerytalnego. 
+
+Ponieważ jednak ukazał się 23 kwietnia 1997 r. i dotyczył krytyki dokumentu powstałego w kierowanym przeze mnie Biurze Pełnomocnika Rządu ds. Reformy Zabezpieczenia Społecznego, chciałbym ustosunkować się do zawartych w nim ocen i interpretacji.
+
+Przede wszystkim trzeba uświadomić sobie wyraźnie, że systemy społecznych ubezpieczeń emerytalnych oparte na monopolu czy zdecydowanej dominacji filaru repartycyjnego, czyli takiego, w którym pracujący za pomocą podatku zwanego składką transferują środki do emerytów, przeżywają głęboki ogólnoświatowy kryzys. Wywołuje go narastającą falę zmian będącą rezultatem z jednej strony szybkiego pogarszania się proporcji demograficznych między osobami w wieku emerytalnym i ludnością w wieku produkcyjnym (proporcja ta jest wielkością krytyczną dla możliwości działania filaru repartycyjnego), a z drugiej - faktów wywołujących zmiany w poglądach na rolę państwa w dziedzinie transferów pieniężnych oraz rozwoju technologii umożliwiających daleko posuniętą indywidualizację rachunków, na które wpłacane są składki.
+
+Działający w Polsce system ubezpieczeń społecznych jest systemem, do którego się przyzwyczailiśmy i do którego dostosowane zostały, kiedyś przecież różne od obecnych, doktryny prawne. Rozumiem w tym względzie sentyment autora artykułu. Nie znaczy to jednakże, że system ten jest dobry albo że okaże się wystarczająco dobry w nadchodzącej przyszłości. Brak daleko idących reform w dziedzinie emerytur grozi ich bankructwem i kompromitacją państwa (wraz z regulującym je systemem prawnym) jako ich gwaranta. Sytuacja ta wymaga rzetelnej i uczciwej analizy zmierzającej do rozwiązania problemu, a nie deklaracji prowadzących do antagonizacji nastrojów społecznych.
+
+Przygotowany w Biurze Pełnomocnika Rządu do Spraw Reformy Zabezpieczenia Społecznego projekt reform jest odpowiedzią na narastające szybko zagrożenie kompromitacji systemu emerytalnego. Tendencje leżące u podstawy tego zagrożenia - zarówno w Polsce, jak i w wielu innych krajach - nie były jeszcze tak wyraźnie widoczne nawet kilkanaście lat temu, w czasach, kiedy sądy i oceny Jana Jończyka mogły jeszcze nie budzić zdziwienia. Być może właśnie z  nieuwzględnienia zasięgu i powagi zachodzących zmian wynikają nieporozumienia, które znalazły wyraz w omawianym artykule.
+
+Nieporozumień tych jest wiele, wszystkie one mają jednak ważny wspólny mianownik. Mianownikiem tym jest niechęć autora do wyciągnięcia wniosków z faktu, że świat zmienia się szybko, a Polska zmienia się jeszcze szybciej w okresie transformacji systemowej. Jednym z wniosków jest konieczność zrewidowania starego paradygmatu w ubezpieczeniach społecznych. Nie można szablonów powstałych wiele lat temu przyłożyć do współczesnej rzeczywistości, następnie dziwić się, że nie pasują, i obciążać za to tych, którzy pragną osiągnąć te same cele za pomocą metod dostosowanych do nowej rzeczywistości.
+
+Niewydolność starych  rozwiązań
+
+Nieporozumienie pierwsze: czym jest ubezpieczenie społeczne na wypadek starości?
+
+Nie jest prawdą - jak sugeruje artykuł - że reforma zlikwiduje ubezpieczenie społeczne. Istotą tych ubezpieczeń  jest - z jednej strony - ustawowy przymus uczestnictwa oraz - z drugiej  - grupowe organizowanie funduszy finansowych z przeznaczeniem na z góry określone wydarzenia losowe, tutaj starość. Ubezpieczeniowy charakter organizowania tych funduszy przejawia się w tym, że wysokość składek kalkulowana jest tak, aby  wyrównać koszty wystąpienia ryzyka w wyznaczonej liczbie ubezpieczonych oraz w określonym czasie trwania ubezpieczenia. Dla uczestnika systemu ubezpieczenie społeczne od starości oznacza, że jego ryzyko socjalne będzie pokryte i że nastąpi wyrównanie między potrzebami pokrycia ryzyk socjalnych wszystkich ubezpieczonych a sumą zebranych środków dla tego pokrycia. Istotą ubezpieczenia społecznego jest więc to, że składek nie kalkuluje się w odniesieniu do indywidualnego ryzyka ubezpieczonych, lecz do ryzyka przeciętnego wyliczonego jako suma wszystkich ryzyk indywidualnych w zbiorowości ubezpieczonych.
+
+Zreformowany system emerytalny pozostanie więc w pełnym tego słowa znaczeniu systemem ubezpieczenia społecznego. Obowiązkowa składka będzie oczywiście kalkulowana według ryzyka przeciętnego dla wszystkich ubezpieczonych. Będzie więc wspólnota ryzyka. Utrzymany zostanie obowiązkowy charakter udziału. Istnieć będą rzeczywiste gwarancje i solidarność ubezpieczonych przez - z jednej strony - system "rygli bezpieczeństwa", w którym w razie niepowodzenia inni uczestnicy systemu pomagają pokrzywdzonym (np. mechanizm rachunku rezerwowego, funduszu gwarancyjnego i regwarancji państwa w filarze kapitałowym) oraz - z drugiej strony - emeryturę minimalną i system pomocy społecznej. Zachowany zostanie w pełni publiczny charakter instytucji obsługującej całość składki na wszystkie rodzaje ryzyk (ZUS), a instytucje drugiego filaru (fundusze emerytalne i zarządzające nimi towarzystwa emerytalne) będą publicznie regulowane i nadzorowane przez Urząd Nadzoru nad Funduszami Emerytalnymi. Żadna, powtarzam, żadna z kategorii społecznych i prawnych ubezpieczeń społecznych nie zostanie odrzucona, wbrew temu, co twierdzi artykuł, a częściowy powrót do kapitalizacji składki jest powrotem do źródeł ubezpieczeń społecznych, które długo opierały się na kapitalizacji składek.
+
+Co więc się zmieni? Ano coś, czego autor nie chce dostrzec: że w świetle postępującej niewydolności starych rozwiązań, czyli systemu monoubezpieczenia społecznego, prowadzącej do tego, że kategorie, o których pisze autor, stają się  wyłącznie papierowe, zostanie nadana im rzeczywista, współczesna treść. Kategorie ubezpieczeń społecznych, o których pisze autor, w szczególności percepcja solidarności i wspólnego ryzyka, nie są w rzeczywistości stosowane w  warunkach, w których składki na ubezpieczenie społeczne  - w wyniku nieprzejrzystego wymieszania repartycji z redystrybucją - traktuje się jako podatki, a równocześnie występuje silna tendencja do unikania ich płacenia  i do przechodzenia na emeryturę najwcześniej jak  to możliwe. Publiczny charakter instytucji obsługującej system (ZUS) jest wyparty przez percepcję ZUS jako instytucji państwowej, niesamorządnej i pozbawionej osobowości prawnej. Wreszcie, gwarancje państwa uchodzą - słusznie - za czysto papierowe, w warunkach corocznego w latach 90. manipulowania podstawą wymiaru w związku z tym, że realne świadczenia spadły o 6 proc. w 1990 r. (oczywiście z uzasadnionych przyczyn, ale czego dotyczyła gwarancja?).
+
+Tak więc reforma w proponowanym kształcie stwarza warunki do nadania rzeczywistego znaczenia powyższym kategoriom, które - choć związane ze źródłami ubezpieczeń społecznych - w coraz mniejszym stopniu występują w  polskim systemie ubezpieczeń społecznych, tak jak  dzieje się  we wszystkich krajach o monopolu filaru repartycyjnego. Artykuł zupełnie ignoruje, że większość wad obecnego systemu to wady dominacji repartycji w ogóle, a nie wady polskiej odmiany tego systemu.
+
+Porównać koszty i korzyści
+
+Nieporozumienie drugie: korzyści i koszty filaru kapitałowego.
+
+Filar kapitałowy przyniesie wyraźne korzyści uczestnikom systemu. Zwiększą się indywidualne oszczędności ludności, zmieni się także ich struktura w kierunku większego udziału oszczędności długookresowych. Oba te czynniki nie mogą nie przyspieszyć wzrostu gospodarczego. Międzynarodowa dywersyfikacja inwestycji funduszy emerytalnych, która z czasem będzie się zwiększać, umożliwi znacznie lepszą kontrolę ryzyka (m.&nbsp;in. dlatego, że makroekonomiczne szoki dotyczą różnych krajów w różnych okresach, a ludność różnych krajów starzeje się w różnym tempie). Długookresowe dane pokazują wyraźnie, że stopa zwrotu - przy obecnym poziomie rozwoju rynków finansowych, jakże różnym od tego, co widzieliśmy pięćdziesiąt, a nawet dwadzieścia lat temu - jest wyższa w filarze kapitałowym niż w filarze repartycyjnym.
+
+Artykuł całkowicie pomija te fakty. Koncentruje się  natomiast na kosztach filaru kapitałowego. Rzeczywiście, koszty te będą najprawdopodobniej wyższe niż koszty w obecnym systemie ubezpieczenia społecznego. Nasz projekt wymienia wiele kroków, które będą podjęte w celu ich kontroli, przede wszystkim kosztów marketingu i sprzedaży (np. ograniczenie częstotliwości przechodzenia między funduszami, utrzymanie ZUS jako instytucji zbierającej składkę do obu filarów czy zakaz niektórych form akwizycji). Sedno sprawy jednak w porównaniu kosztów i korzyści, a nie w analizie samych kosztów. Dzisiejszy system bankowy w Polsce ma wyższe koszty administracyjne niż miał monobank piętnaście lat temu, ale korzyści w postaci sprawności działania systemu - nikt temu nie zaprzeczy - są o wiele wyższe. W dodatku koszty te - podobnie jak przy funduszach emerytalnych - w dużej części będą  kosztami sektora prywatnego nie obciążającymi budżetu, a beneficjentami będą wszyscy obywatele. Ponadto, przytaczane przez autora koszty administracyjne obecnego systemu są sztucznie zaniżone, bo nie uwzględniają kosztów obsługi systemu ponoszonych przez pracodawców.
+
+Autor artykułu myli się w szczegółach dotyczących dodatkowych kosztów. Na przykład nie jest prawdą, że towarzystwa emerytalne będą mogły zlecać odpłatnie określone czynności zarządu osobom trzecim - będą one co najwyżej mogły powierzyć wyspecjalizowanemu podmiotowi prowadzenie indywidualnych kont. Nie jest prawdą, że upadłość towarzystwa emerytalnego kosztuje system, ponieważ wszystkie koszty będą pokrywane wyłącznie z majątku towarzystwa. Nie będzie problemem niejasność oferty firm ubezpieczeniowych, gdyż jedynym produktem oferowanym uczestnikom drugiego filaru będzie produkt prosty i jasny: emerytura dożywotnia. Nie jest prawdą, że koszty Urzędu Nadzoru nad Funduszami Emerytalnymi obciążą uczestników systemu - w drugim filarze pokryje je w całości budżet.
+
+Świadczenia będą rosły
+
+Nieporozumienie trzecie: "drastyczne obniżenie poziomu świadczeń" oraz "sprawiedliwość dla mniejszości społeczeństwa".
+
+Świadczenia nie ulegną obniżeniu, wręcz przeciwnie - będą  rosły. Obniży się jedynie relacja świadczeń do płac, ale wyniknie to z realnego wzrostu płac, a nie spadku emerytur, które w naszych analizach były waloryzowane w stosunku do cen.
+
+Jeżeli chodzi o sprawiedliwość to - w istocie - w ujęciu koncepcji reformy za sprawiedliwe uznajemy wypłacenie takiej wielkości środków emerytalnych, jakie zostały przez jednostkę zgromadzone przez lata sumiennej pracy. Kwestią solidarności społecznej jest natomiast zapewnienie środków do życia tym, którzy z różnych względów nie byli zdolni do zapracowania na własną emeryturę. Wprowadzenie minimalnej emerytury, wypłacanej przez państwo, służyć ma właśnie zaspokojeniu tej potrzeby życia społecznego. To minimum będzie na tyle wysokie, na ile stać będzie społeczeństwo. Pozostawienie części środków najwyżej zarabiającym służyć ma ożywieniu ich aktywności gospodarczej, której efekty przynosić powinny wzrost zamożności całego społeczeństwa przez wzrost liczby miejsc pracy.
+
+Co do kwestii "rażąco wysokiego wartościowania ostatniej fazy zatrudnienia", to z przykrością stwierdzić musimy, iż ta część tekstu jest dowodem nieznajomości przez autora kategorii statystycznych i finansowych. Znaczny wzrost wielkości emerytury dla osób, które zdecydują się pracować dłużej, nie jest bowiem wynikiem arbitralnej decyzji państwa, od takich bowiem decyzji zreformowany system będzie wolny, ale wynikiem prostego rachunku:
+
+- z dwóch osób o tej samej długości życia z emerytury korzystać będzie dłużej ta, która pracowała krócej, a zatem mniejsza ilość zgromadzonych środków będzie musiała wystarczyć na większą liczbę lat, co w oczywisty sposób wpływa na wielkość otrzymywanych miesięcznie wypłat,
+
+- ze względu na naturę procentu składanego nawet ta sama wielkość środków inwestowana przez dłuższy okres  przy tej samej stopie procentowej przynosi znacznie większy dochód, tak jak to się dzieje z oszczędnościami bankowymi; osoba, która dłużej powstrzyma się od konsumowania zgromadzonych oszczędności, uzyska po przejściu na emeryturę większą kwotę.
+
+Z tych powodów jedyny sprawiedliwy rachunek przyszłych należności emerytalnych, tj. rachunek aktuarialny, musi wartościować późne lata pracy wyżej. To liniowy sposób naliczania świadczeń jest gwałtem na naturze, zmuszającym pracowników do wcześniejszych emerytur wbrew ich woli i wbrew sprawiedliwości. O ekwiwalentności wkładu i zwrotu, której brak zarzuca nam autor opracowania, możemy więc mówić dopiero po powiększeniu zaoszczędzonych środków o dochód, jaki przynoszą dzięki wykorzystaniu ich przez system finansowy.
+
+Dalsze rozważania autora o "nowym podziale dóbr" są zatem całkowicie nieuprawnione, mogą natomiast służyć zaostrzeniu antagonizmów wokół reformy, wynikających z niezrozumienia lub nieznajomości jej zasad. Warto byłoby natomiast podkreślić, że tę reformę rzeczywiście robi elita z myślą o problemach, jakie mogą spotkać najuboższych, jeśli kroki zmierzające do zmiany obecnego systemu nie zostaną podjęte w najbliższej przyszłości. Elita poradziłaby sobie zapewne i bez reformy.
+
+Bezpieczne fundusze
+
+Nieporozumienie czwarte: przymus indywidualnego oszczędzania.
+
+Argumentacja artykułu prowadzona jest tak, jakby obecny system repartycyjny nie był przymusowy (a przecież jest), a wprowadzenie filaru obowiązkowych funduszy emerytalnych oznaczało wymuszenie ograniczenia konsumpcji. Tymczasem prawda jest taka, że w sferze obowiązkowego filaru ubezpieczeń zmieni się jedynie sposób zarządzania środkami, a nie ich forma czy wielkość. Zarówno składka, jak i sposób jej zbierania nie ulegną przecież zmianie. Istotne jest natomiast to, iż system stworzy motywacje i instrumenty do nadzorowania procesu zarządzania i dysponowania tymi środkami przez ich przyszłych odbiorców, co oznacza zaangażowanie w kontrolowanie ryzyka przyszłych świadczeń szerszych grup społecznych. Nie będzie możliwa utrata zgromadzonych w funduszach emerytalnych środków, gdyż te gwarantować będzie państwo. Zbankrutować natomiast może, tracąc jedynie własne środki, prywatne towarzystwo emerytalne, i to wskutek przekazania własnego kapitału na niedobór wynikający z niższych w porównaniu z innymi funduszami dochodów. Ryzykiem motywującym je do bardziej intensywnych wysiłków objęte są zatem niemal wyłącznie towarzystwa emerytalne, a nie uczestnicy funduszów emerytalnych. Ewentualne straty tych ostatnich polegać mogą jedynie na uzyskaniu średniego, a nie najwyższego zwrotu z zainwestowanych składek. Wypłacalność funduszy gwarantowana będzie przez sponsorowany przez wszystkie towarzystwa fundusz gwarancyjny oraz w ostatecznej instancji przez państwo.
+
+Projekt reformy - podkreślam dobitnie - to nie po prostu wprowadzanie przymusu indywidualnego oszczędzania. Projekt nie odrzuca kategorii wspólnoty ryzyka, solidarności, samorządności itd., nadaje im natomiast bardziej nowoczesny wymiar, pozwalający na indywidualne włączenie się do procesu zarządzania środkami. System będzie bardziej bezpieczny dzięki temu, że środki na starość gromadzone będą w co najmniej dwóch instytucjach (ZUS i obowiązkowy fundusz emerytalny) i że możliwa będzie osobista kontrola nad sposobem ich zarządzania.
+
+Grozi bankructwo 
+
+Nieporozumienie piąte: brak konieczności zmian.
+
+Dokument przedstawiony przez Biuro Pełnomocnika dotyczy koncepcji zmian w systemie zabezpieczeń społecznych. Pisanie kolejnego dokumentu potwierdzającego niewydolność obecnego systemu byłoby o tyle bezcelowe, że o jego rychłym bankructwie świadczą powszechnie dostępne prognozy demograficzne oraz deficyt ZUS widoczny w kolejnych ustawach budżetowych, sztucznie obniżany - słusznym skądinąd - przesunięciem wypłat zasiłków rodzinnych poza ZUS. W tym kontekście argumenty o niesprawiedliwości i arbitralności obecnego systemu, cytowane przez autora za naszym opracowaniem, wydają się stosunkowo mało istotne. Zarzucając nam nadmierne uleganie "kampanii na temat rzekomej niewydolności i bankructwa ZUS", autor nie proponuje wyliczeń, które wskazywałyby na nieprawdziwość tych argumentów. Tymczasem z całą odpowiedzialnością twierdzimy, że przy obecnych warunkach, aby zbilansować system, bez radykalnej zmiany jego konstrukcji, należałoby podnosić udział wydatków państwowych na emerytury i renty w produkcie krajowym brutto aż do poziomu ok. 22 proc., a składkę na emerytury i renty do  ponad 55 proc. funduszu płac. Swojej opinii o możliwości zbilansowania systemu "przez dokonanie istotnych korekt w jego ramach, z uwzględnieniem demograficznej komponenty" autor nie popiera żadnymi przykładami, których, nawiasem mówiąc, bylibyśmy niezmiernie ciekawi. Korzyści filaru kapitałowego dla wzrostu gospodarczego są przez autora całkowicie pomijane. 
+
+Projekt reformy został poddany ocenie ekspertów, aby usunąć jego ewentualne niedoskonałości, i przedstawić do wdrożenia taki, który zapewni bezpieczną przyszłość milionom odchodzących na emerytury Polaków za pięćdziesiąt, a nie pięć lat.
+
+Nie straszyć juntą
+
+Nieporozumienie szóste: nadużycie przykładu chilijskiego.
+
+W swojej krytyce projektu reformy autor sięga po przykład chilijski, oczekując zapewne, iż będzie to ostateczny argument przekreślający zarówno jej sens ekonomiczny, jak i społeczny. Trzeba przyznać, iż w społeczeństwie polskim ze względu na doświadczenia stanu wojennego jest to argument niezwykle silnie oddziałujący na emocje. Warto też pamiętać, że obalenie lewicowego rządu Allende przez prawicową juntę Pinocheta było przez lata wykorzystywane do własnych celów przez propagandę gierkowską. Posługiwanie się nim w celach demagogicznych jest na dodatek o tyle łatwe, że ze względu na położenie geograficzne Chile i niewielkie znaczenie tego państwa dla kontaktów gospodarczych i politycznych Polski wiedza o nim jest, niestety, bardzo mała. Aby ostatecznie skończyć ze straszeniem przyszłych emerytów juntą chilijską, chciałbym przypomnieć autorowi artykułu oraz wszystkim tym, którzy zbyt łatwo po argument ten sięgają, że:
+
+- w istocie reformę emerytur w Chile wprowadzono na podstawie prac wąskiej grupy ludzi, początkowo wbrew wojskowym i przy rosnącym poparciu społecznym. Porównywanie tej sytuacji z Polską nie ma jednak  sensu, gdyż sytuacja gospodarcza, w jakiej znajdowało się wówczas Chile, była znacznie gorsza niż obecnie w Polsce. Nie zmienia to faktu, że reforma chilijska postrzegana jest pozytywnie przez społeczeństwo tego kraju i że stała się  bodźcem do rozwoju systemu finansowego oraz przyspieszenia wzrostu gospodarczego, dając podstawę dla wzrostu zamożności całego społeczeństwa. Statystycznie rzecz biorąc, dochód narodowy na mieszkańca Chile jest, nawiasem mówiąc, prawie 2-krotnie  wyższy niż na przeciętnego mieszkańca Polski. Wyższe są także w porównaniu z Polską wskaźniki chilijskiego poziomu wykształcenia i zdrowotności społeczeństwa;
+
+- żadne z państw reformujących systemy emerytur, w tym  państwa Ameryki Łacińskiej, nie skopiowały systemu chilijskiego, głównie ze względu na istniejące w nich odmienności instytucjonalne i ogólnogospodarcze. W Argentynie, Peru, Kolumbii czy ostatnio w Meksyku reformę wprowadzono w warunkach demokratycznych i z dużymi zmianami w stosunku do pierwowzoru chilijskiego. Wspólnym mianownikiem było jedynie trzymanie się po raz pierwszy zastosowanej w Chile idei wiązania wypłat emerytalnych z indywidualną aktywnością zawodową oraz angażowanie sektora prywatnego do zarządzania środkami emerytalnymi. Reformy podobnego typu - jak podkreślałem wcześniej - wprowadziły już lub rozpoczęły ich wdrażanie nie tylko znacznie bardziej rozwinięte gospodarczo od Polski kraje takie jak Szwajcaria, Holandia, Australia, Singapur, ale także bliskie nam Węgry czy Łotwa. Sądzę, że uczciwe byłoby  określanie projektu reformy systemu zabezpieczeń społecznych w Polsce mianem syndromu węgierskiego lub szwajcarskiego. Byłoby to bliższe prawdy, zważywszy, iż zarówno w tych państwach, jak i w Polsce reformy te odbywają się w warunkach demokratycznego państwa prawa, a nie wojskowej dyktatury.
+
+Na co nas stać
+
+Nieporozumienie siódme: problemy okresu przejściowego.
+
+Zgadzam się z autorem, że konieczność sfinansowania reformy jest najtrudniejszym jej elementem. Gdyby nie ograniczenia finansowe, które w ujęciu makrogospodarczym przekładają się na ograniczenia budżetowe i równowagę gospodarczą, nasza skłonność do obdarowywania wszystkich zainteresowanych jak najwyższymi świadczeniami byłaby znacznie większa. Faktem jest jednak, że cała koncepcja reformy zbudowana została na bazie tego, na co jako społeczeństwo możemy sobie pozwolić, czyli na ile nas stać. Nie bez znaczenia jest tu moment rozpoczęcia reformy - dzięki korzystnym tendencjom gospodarczym w Polsce (wzrost związany z efektami reform gospodarczych) i na świecie oraz ciągle jeszcze dostępnym zasobom prywatyzacyjnym stać nas przez najbliższe kilka lat na trochę więcej, niż byłoby to możliwe w innych warunkach. Dzięki temu obciążenia, jakim podlegać będzie pokolenie dzisiejszych czterdziesto- i pięćdziesięciolatków będą mniejsze niż te, jakie musieliby ponieść przy braku lub odkładaniu reform, tzn. niska emerytura w przyszłości i obciążenie ich dzieci (czyli pokolenia, które moralnie będzie zobowiązane do pomocy niepracującym rodzicom) podwójnymi kosztami reform. Nie śmiemy twierdzić, że jest to sprawiedliwe, ale po prostu sprawiedliwsze. Nasze poczucie sprawiedliwości wzmacnia fakt, iż racjonalizacja obecnego systemu nie polega na obniżaniu świadczeń, ale przede wszystkim na uszczelnianiu systemu, czyli budowaniu motywacji dla czarnej i szarej strefy gospodarki do ujawniania swoich dochodów i płacenia składek na świadczenia, z których i tak przecież będą w takiej czy innej formie korzystać. Za niesprawiedliwe uważamy bowiem uchylanie się od pełnego ujawniania dochodów i płacenia składek, gdy każdemu przysługuje minimalna emerytura i opieka zdrowotna.
+
+Niezbędne ustawy
+
+Nieporozumienie ósme: aspekty konstytucyjne i polityczne.
+
+Realizacja projektu reformy, przez wielu ekspertów ocenianego jako  kompetentny i profesjonalny, wymaga uchwalenia przez Sejm 6-7 nowych ustaw i nowelizacji kilkunastu. Wszystkich tych potrzeb jesteśmy świadomi i zarówno my jako autorzy, jak i polskie organa legislacyjne nie ignorują ich. Kalendarz prac, jaki sobie założyliśmy, zakładał przygotowanie najpierw ustawy o wykorzystaniu wpływów z prywatyzacji części mienia Skarbu Państwa w celu wsparcia reformy systemu ubezpieczeń społecznych oraz ustawy o organizacji i funkcjonowaniu funduszy emerytalnych jako tych, które umożliwią stworzenie podstaw materialnych reformy i pozwolą podjąć niezbędne przygotowania zaangażowanym w nie instytucjom, takim jak banki, firmy ubezpieczeniowe, fundusze  inwestycyjne, instytucje nadzorcze itd. To dobrze, że Rada Ministrów przyjęła już te projekty ustaw. Inwestycje niezbędne do zarządzania środkami emerytalnymi są kosztowne i najwyższy czas, aby zainteresowane nimi instytucje rozpoczęły  przygotowania. Gotowa jest już ustawa o pracowniczych programach emerytalnych. Przygotowuje się ustawę o systemie ubezpieczeń społecznych oraz kilka innych nowelizacji i zmian.
+
+Kwestie przystawalności projektu reformy do zasad konstytucyjnych wymagają nowoczesnego spojrzenia na to, czym jest zabezpieczenie społeczne. Jak podkreśliliśmy wcześniej, sposób, w jaki autor opracowania postrzega tradycyjne kategorie ubezpieczenia społecznego, odpowiada nie tyle zasadom prawnym, ile nawykom nabytym podczas propagandy (a nie praktyki!) państwa socjalistycznego w Polsce. Reforma, co należy jeszcze raz podkreślić, zmienia sposób zarządzania składką na ubezpieczenie społeczne, a nie składkę czy jej formę prawną. Wątpliwości autora można porównać z rozważaniem, czy sklep, który został sprywatyzowany i wyposażony w nowoczesne kasy fiskalne, przestał być sklepem i czy zakłóca to umowę sprzedaży w ujęciu kodeksu cywilnego.
+
+Zdumiewające wydaje się rozczarowanie autora unikaniem przez obecny rząd wciągania reformy w "przedwyborcze debaty i walki". Gdyby takim debatom poddany był swego czasu program Balcerowicza, to jeszcze do dziś kupowalibyśmy buty na kartki i chleb spod lady. Na szczęście i wówczas, i dziś  ekipy rządzące oraz  elity polityczne mają dość odpowiedzialności za państwo i jego stan w długim okresie, aby uznać, że reforma jest konieczna i że podlegać powinna najpierw analizie ekonomicznej, a nie politycznym przepychankom. I to jest chyba piękne w "polskim surrealizmie politycznym", że kłócimy się o rzeczy drobne, natomiast w sprawach naprawdę ważnych stać nas na dojrzałość i rozwagę.
+
+A propos lewicowości i polityki: czy autor dostrzegł, że obecny system emerytalny zawiera w sobie ukrytą redystrybucję od biednych do bogatych, ponieważ to bogaci jako żyjący dłużej korzystają z "uwspólnienia" ryzyka? Czy autor zauważa, że  niebranie pod uwagę składek z wczesnego okresu kariery zawodowej uderza w niżej zarabiających, którzy zazwyczaj mają mniej lat spędzonych w szkole? Czy nie jest zrozumiałe, że każdy rząd wrażliwy na bezzasadność tego typu ukrytej redystrybucji, usiłowałby ją usunąć?
+
+Co na świecie
+
+Nieporozumienie dziewiąte: my a inni.
+
+Omawiany artykuł zdaje się traktować kierunek polskich zmian jako idiosynkratyczne dziwactwo. Chociaż polski program reform wynika wyłącznie z polskich uwarunkowań wewnętrznych, nie jest bezzasadne rozejrzenie się wokół siebie.
+
+Co dzieje się wokół nas w kwietniu 1997 r.? Oto na Węgrzech, rządzonych przez sojusz zreformowanej Węgierskiej Partii Socjalistycznej oraz Partii Wolnych Demokratów, przedkładany jest właśnie do parlamentu pakiet ustaw wprowadzających nowy wielofilarowy system emerytalny z drugim filarem w postaci powszechnych obowiązkowych, otwartych, konkurujących ze sobą funduszy emerytalnych. Oto w Szwecji jesteśmy w przededniu wprowadzenia systemu emerytalnego, zawierającego także filar kapitałowy, oraz ścisły związek składki i świadczenia w filarze repartycyjnym (w postaci tego, co w naszym projekcie nazwaliśmy "kapitałem uprawnień emerytalnych"). Oto na Łotwie - gdzie system kapitałowych uprawnień emerytalnych działa już pełną parą - wprowadza się filar powszechnych funduszy kapitałowych. Oto w Szwajcarii, Danii, Holandii, Wielkiej Brytanii czy Australii dominują powszechne ubezpieczenia kapitałowe (tj. grupujące co najmniej 70 proc. siły roboczej), a w niektórych wypadkach (Szwajcaria, Australia) obowiązkowe kapitałowe systemy zabezpieczenia na starość. Oto w przynajmniej sześciu krajach Ameryki Łacińskiej działają systemy oparte na przymusowej kapitalizacji całości (Chile) lub części składki. Oto w Stanach Zjednoczonych Doradczy Panel Prezydenta ds. Reformy Ubezpieczeń Społecznych proponuje wprowadzenie systemu trójfilarowego ‡ la rozwiązania latynoamerykańskie...
+
+Nie dlatego robimy reformy, ponieważ robią je inni. Powinniśmy jednak dobrze wiedzieć, co i dlaczego robią inni, aby nie powielić cudzych błędów i czerpać z innych doświadczeń tylko to, co wzbogaca nasz program.
+
+Komu służą reformy
+
+Nieporozumienie dziesiąte: cele i beneficjenci reform.
+
+Kolejnym przykładem problemów autora omawianego artykułu z podstawowymi kategoriami ekonomicznymi i finansowymi jest zarzut, iż jedyny cel reform jest natury fiskalnej. Oczywiście, że cały wysiłek podejmowany jest po to, aby w przyszłości za emerytury nie płacić głębokim deficytem budżetowym i okradającą nas wszystkich inflacją. Fundusze emerytalne nie będą natomiast źródłem finansowania deficytu, ale źródłem finansowania prywatnych inwestycji i rozwoju gospodarczego. Gromadzone przez fundusze środki będą bowiem za pośrednictwem systemu finansowego, a więc przez kredyt bankowy i hipoteczny, inwestycje w akcje i obligacje, zasilać wzrost gospodarczy. Część tych środków, zgodnie zresztą z normami ostrożnościowymi obowiązującymi w najbardziej rozwiniętych systemach finansowych, będzie inwestowana w rządowe papiery wartościowe jako najbezpieczniejszą formę lokat; cześć będzie też zapewne inwestowana za granicą w celu dywersyfikacji ryzyka. Jest natomiast całkowitą nieprawdą, że fundusze emerytalne będą zobowiązane do inwestowania w dłużne papiery Skarbu Państwa.
+
+Nie wiedzieć czemu, do beneficjentów reformy ubezpieczeń w Polsce autor wciągnął także instytucje międzynarodowe, przedstawiane w tonie żądnych krwi bestii. Warto więc przypomnieć, że Polska jest członkiem założycielem tych instytucji, ma w nich swoich przedstawicieli i  systematycznie wpłaca statutowe składki na finansowanie ich działalności. Od kiedy mamy w Polsce zrównoważony bilans płatniczy, prawie nie korzystamy  z pomocy finansowej tych instytucji, dlatego ich wskazania mają jedynie charakter doradczy, a nie warunkowy. Korzystanie z rad specjalistów Banku Światowego i Międzynarodowego Funduszu Walutowego nie wydaje się zresztą zbytnio nierozważne, jeśli wziąć pod uwagę, iż instytucje te zatrudniają fachowców z całego świata, którzy pracując w różnych krajach, mają unikatową możliwość poznania i wymiany najlepszych doświadczeń gospodarczych krajów, z jakimi się w swojej codziennej pracy stykają.
+
+I wreszcie ostatnia uwaga, w imię pamięci nieodżałowanego autora "Bambini di Praga". Instytucje i rozwiązania krytykowane przez autora są tworzone właśnie po to, aby nie było wolnego pola dla oferujących złudzenia aferzystów. Mam nadzieję, że  nadchodzi czas przejścia od etapu konieczności polemiki z tymi, którzy wciąż oferują polskim przyszłym emerytom złudzenia dnia wczorajszego, do etapu wspólnej pracy nad zapewnieniem jak najwyższej jakości projektowanych rozwiązań.
+
+Autor jest dyrektorem Biura Pełnomocnika Rządu do Spraw Reformy Zabezpieczenia Społecznego
+
+
+#### SUMMARIES ####
+#### SUMMARY START ####
+System emerytalny oparty na dominacji modelu, w którym pracujący odkłada środki na emeryturę w formie podatku, przeżywa ogólnoświatowy kryzys. Jego przyczyną są zmiany w proporcjach demograficznych między osobami w wieku emerytalnym i produkcyjnym, nowe poglądy na temat roli państwa w dziedzinie transferów pieniężnych oraz technologia umożliwiająca indywidualizację rachunków emerytalnych. Polski system ubezpieczeń, do którego przyzwyczaili się ludzie i dostosowane zostało prawo, nie musi być dobry w nadchodzącej przyszłości. Jeśli nie zostanie zreformowany, grozi mu bankructwo. W obecnych warunkach, w zmieniającej się szybko polskiej rzeczywistości, opinie Jana Jończyka wyrażone w jego artykule są trudne do przyjęcia. 
+Nowa reforma emerytalna nie zlikwiduje ubezpieczeń społecznych. Ich istotą jest przymus uczestnictwa i grupowe organizowanie funduszy przeznaczonych na starość. Wysokość składek kalkulowana jest tak, aby możliwe było wyrównanie kosztów ryzyka socjalnego nie indywidualnej osoby, ale wszystkich ubezpieczonych. Nowy system emerytalny będzie systemem ubezpieczenia społecznego. Obowiązkowa składka będzie wyliczana według przeciętnego ryzyka. Będą istniały rzeczywiste gwarancje i zasada solidarności ubezpieczonych: rachunki rezerwowe, fundusz gwarancyjny, emerytura minimalna i system pomocy społecznej. Składki nadal będzie obsługiwał ZUS, a fundusze drugiego filaru będą regulowane i nadzorowane publicznie. Reforma nada rzeczywiste znaczenie katogoriom ubezpieczeń społecznych. Dziś składki traktuje się jak podatki, dąży się do unikania ich płacenia i jak najwcześniejszego przechodzenia na emeryturę, a ZUS uważa się za instytucję państwową, pozbawioną osobowości prawnej.
+Filar kapitałowy nowego systemu zwiększy oszczędności ubezpieczonych oraz zwiększy udział oszczędności długookresowych. Inwestycje funduszy emerytalnych przyspieszą wzrost gospodarczy. Dane pokazują, że stopa zwrotu w filarze kapitałowym jest wyższa niż w filarze repartycyjnym. Jan Jończyk koncentruje się na kosztach filaru kapitałowego, zaniżając jednocześnie koszty obecnego systemu. Koszty utrzymania funduszy będą wyższe niż w obecnym systemie, ale korzyści i tak będą większe. Podobnie jak w systemie bankowym koszty administracyjne funduszy będą pokrywane w dużej części z sektora prywatnego. Autor artykułu myli się m.in., kiedy pisze, że upadłość towarzystwa emerytalnego będzie obciążała system. Koszty te będą pokrywane z majątku towarzystwa. Firmy ubezpieczeniowe będą oferowały jeden prosty produkt: dożywotnią emeryturę, ich oferta będzie więc jasna. Koszty nadzoru nad funduszami będą pokrywane z budżetu.
+Świadczenia emerytalne będą rosły, obniży się ich relacja do płac, ponieważ płace będą rosły. Sprawiedliwe w nowym systemie będzie wypłacanie ubezpieczonemu takich środków, jakie zgromadził przez lata pracy. Wprowadzenie minimalnej emerytury (takiej, na jaką stać będzie społeczeństwo) dla tych, którzy nie wypracowali własnej emerytury, jest elementem solidarności społecznej. Wzrost emerytury dla osób, które będą pracowały dłużej, nie wynika z założeń systemu, tylko z prostego rachunku: im dłużej się odkłada i powstrzymuje od konsumpcji, tym większą kwotę się otrzymuje. Późne lata pracy powinny być wartościowane wyżej. Liniowy sposób naliczania świadczeń był niesprawiedliwy i zmuszał pracowników do poberania wcześniejszych emerytur. Wydaje się, że Jan Jończyk nie zrozumiał zasad reformy, jego zarzuty mogą zaostrzyć spór wokół nowego systemu. 
+W sferze obowiązkowego filaru ubezpieczeń zmieni się sposób zarządzania środkami, nie ich forma czy wielkość. Składka będzie pobierana jak dotąd. Nowy system umożliwi nadzorowanie procesu zarządzania tymi środkami przez ich przyszłych odbiorców. Zgromadzonych śodków nie będzie można stracić, wypłacalność towarzystw emerytalnych będzie gwarantowana przez fundusz gwarancyjny oraz państwo. Bankrutujące towarzystwo może stracić tylko własne środki. Projekt reformy nie wprowadza przymusu indywidualnego oszczędzania, nie rezygnuje z kategorii solidarności społecznej itd. Nadaje systemowi nowoczesny wymiar. 
+Obecny system emerytalny jest niewydolny. Aby zbilansować ten system bez zmiany jego konstrukcji, należałoby zwiększyć udział wydatków państwowych w produkcie krajowym brutto. Jończyk krytykuje projekt, ale nie podaje innych propozycji naprawy dzisiejszego systemu. Powołuje się za to na obalenie lewicowego rządu przez Pinocheta w Chile, wydarzenie, które przez lata wykorzystywała propaganda gierkowska. Nie ma sensu porównywać chilijskiej reformy emerytalnej z polską, ponieważ sytuacja gospodarcza obu krajów jest zupełnie inna. Prawdą jest, że reforma w Chile przyspieszyła wzrost gospodarczy i poziom zamożności całego społeczeństwa. Żadne państwo reformujące swój system emerytalny nie powieliło modelu chilijskiego. Zachowano jednak zasadę powiązania wypłat emerytalnych z indywidualną aktywnością zawodową oraz udziału sektora prywatnego w zarządzaniu środkami emerytalnymi. Reformy podobnego typu przeprowadziło już wiele krajów europejskich. 
+Koszty reformy są jej najtrudniejszym elementem, ale obecna sytuacja gospodarcza Polski stwarza warunki do jej przeprowadzenia. Racjonalizacja systemu polega przede wszystkim na motywowaniu czarnej i szarej strefy do ujawniania dochodów i płacenia składek. Wiadomo, że wprowadzenie nowej reformy wymaga uchwalenia i nowelizacji kilku ustaw, które przygotują instytucje do funkcjonowania w nowych warunkach. Dziwne jest rozczarowanie autora artykułu tym, że kwestii reformy nie wprowadza się do przedwyborczej debaty. Tu nie chodzi o polityczne przepychanki, tylko o dobro państwa. 
+Polska reforma nie jest żadnym dziwactwem. Wielofilarowy system z funduszami kapitałowymi wprowadza się w wielu krajach w Europie i na świecie. Nowa reforma ma na celu uniknięcie głębokiego deficytu budżetowego i zasilenie wzrostu gospodarczego dzięki inwestowaniu gromadzonych środków m.in. w rządowe papiery wartościowe. 
+
+
+#### SUMMARY END ####
+#### SUMMARY START ####
+System emerytalny oparty na dominacji modelu, w którym pracujący odkłada środki na emeryturę w formie podatku, przeżywa ogólnoświatowy kryzys z powodu zmian demograficznych i technologii umożliwiającej indywidualizację rachunków emerytalnych. Polski system ubezpieczeń nie musi być dobry w nadchodzącej przyszłości. Jeśli nie zostanie zreformowany, grozi mu bankructwo. W obecnych warunkach opinie Jana Jończyka wyrażone w jego artykule są trudne do przyjęcia. 
+Nowa reforma emerytalna nie zlikwiduje ubezpieczeń społecznych, w których wysokość składek kalkulowana jest tak, aby możliwe było wyrównanie kosztów ryzyka socjalnego wszystkich ubezpieczonych. W nowym systemie będą istniały rzeczywiste gwarancje i zasada solidarności ubezpieczonych: rachunki rezerwowe, fundusz gwarancyjny, emerytura minimalna i system pomocy społecznej. Składki nadal będzie obsługiwał ZUS, a fundusze drugiego filaru będą regulowane i nadzorowane publicznie. 
+Filar kapitałowy nowego systemu zwiększy oszczędności ubezpieczonych i przyspieszą wzrost gospodarczy. Utrzymanie funduszy będzie drogie, ale korzyści i tak będą większe. Jan Jończyk myli się, kiedy pisze, że upadłość towarzystwa emerytalnego będzie obciążała system. Koszty te będą pokrywane z majątku towarzystwa, nadzór nad funduszami będzie opłacany z budżetu.
+Sprawiedliwe w nowym systemie będzie wypłacanie ubezpieczonemu takich środków, jakie zgromadził przez lata pracy. Wprowadzenie minimalnej emerytury jest elementem solidarności społecznej. Znaczny wzrost emerytury dla osób, które będą pracowały dłużej, wynika z prostego rachunku: im dłużej się odkłada, tym większą kwotę się otrzymuje. 
+W sferze obowiązkowego filaru ubezpieczeń zmieni się sposób zarządzania środkami, nie ich forma czy wielkość. Nowy system umożliwi nadzorowanie procesu zarządzania tymi środkami przez ich przyszłych odbiorców. Wypłacalność towarzystw emerytalnych będzie gwarantowana przez fundusz gwarancyjny oraz państwo. 
+Zbilansowanie obecnego niewydolnego systemu wymagałoby zwiększenia wydatków państwowych. Jończyk krytykuje projekt, ale nie podaje innych propozycji. Dość nieudolnie powołuje się na przykład chilijskiej reformy emerytalnej. Prawda jest taka, że reforma ta przyspieszyła wzrost gospodarczy i poziom zamożności chilijskiego społeczeństwa. Inne państwa reformujące swój system emerytalny wykorzystały zasadę powiązania wypłat emerytalnych z indywidualną aktywnością zawodową oraz udziału sektora prywatnego w zarządzaniu środkami emerytalnymi. Reformy podobnego typu przeprowadziło już wiele krajów europejskich. Polska reforma nie jest na tym tle żadnym dziwactwem.
+Koszty reformy są jej najtrudniejszym elementem, ale obecna sytuacja gospodarcza Polski stwarza warunki do jej przeprowadzenia. Wprowadzenie nowej reformy i przygotowanie instytucji wymaga uchwalenia i nowelizacji kilku ustaw. Reforma emerytalna służy dobru państwa, ma na celu uniknięcie głębokiego deficytu budżetowego i zasilenie wzrostu gospodarczego dzięki inwestowaniu gromadzonych środków m.in. w rządowe papiery wartościowe. 
+
+#### SUMMARY END ####
+#### SUMMARY START ####
+System emerytalny, w którym pracujący odkłada środki na emeryturę w formie podatku, przeżywa ogólnoświatowy kryzys m.in. z powodu zmian demograficznych. Jeśli polski system nie zostanie zreformowany, w przyszłości grozi mu bankructwo. Krytyka Jana Jończyka jest trudna do przyjęcia. Nowa reforma zachowa ubezpieczenia społeczne, mechanizmy gwarancyjne i zasadę solidarności społecznej. Składki nadal będzie obsługiwał ZUS, a fundusze drugiego filaru, regulowane publicznie, zwiększą oszczędności ubezpieczonych i przyspieszą wzrost gospodarczy. Upadłość towarzystwa emerytalnego wcale nie będzie obciążała systemu, koszty te będą pokrywane z majątku towarzystwa. Sprawiedliwe w nowym systemie będzie wypłacanie ubezpieczonemu takich środków, jakie zgromadził przez lata pracy. W drugim filarze zmieni się sposób zarządzania środkami, nie ich forma czy wielkość. Wypłacalność towarzystw emerytalnych będzie gwarantowana przez fundusz gwarancyjny oraz państwo. Jończyk krytykuje projekt, ale nie podaje propozycji naprawy obecnego systemu. Przywołuje przykład chilijskiej reformy emerytalnej, która tak naprawdę przyspieszyła rozwój gospodarczy Chile. Reformy wykorzystujące zasadę powiązania emerytur z indywidualną aktywnością zawodową oraz udziału sektora prywatnego w zarządzaniu środkami wprowadziło wiele krajów. Obecna sytuacja gospodarcza Polski umożliwia przeprowadzenie tej reformy. Służy ona dobru państwa, ma na celu uniknięcie głębokiego deficytu budżetowego i zasilenie wzrostu gospodarczego dzięki inwestowaniu gromadzonych środków.
+#### SUMMARY END ####
diff --git b/ExtrSumAnnotator/target/classes/help.html a/ExtrSumAnnotator/target/classes/help.html
new file mode 100644
index 0000000..fcf2f8f
--- /dev/null
+++ a/ExtrSumAnnotator/target/classes/help.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Help</title>
+</head>
+<body>
+
+<h2>General</h2>
+
+<p>Extract Summary Editor is a program for manual extract summary creation and edition.</p>
+
+<p>When we open a file in it, in the top pane the original text to summarize is shown.
+In the bottom we can see 3 tabs, each corresponding to a different summary size: 20%, 10% and 5% 
+(in terms of word count).
+The summary of given size should be created as an extract of the original text.
+The left side of the bottom
+pane presents current size of the summary with respect to the desired size (so a 100% means
+that summary is of correct size, not that it contains all words from the original text).</p>
+
+<p>Each summary of smaller size should contain only characters of the summary of bigger size
+- that means for example that 10% summary is an extract of 20% summary, not the whole original
+text.</p>
+
+<h2>Changing display size</h2>
+<p>To change display size, choose from "Other" menu option "Change font size" 
+and select desired value. Settings are reset to default after the program is closed.</p>
+
+<h2>Format of input/output files</h2>
+<p>Input file to the program should be in raw TXT format, with UTF-8 encoding.</p>
+
+<p>Summaries are appended to the end of text after saving (and separated by special lines).
+Summary is encoded as sequence of character numbers, separated by spaces. 
+It's better not to try to edit this file manually in normal text editor.</p>
+
+<p>Is the summaries were saved, they are loaded the next time we open the same file.</p>
+
+</body>
+</html>
\ No newline at end of file