\chapter{Dokumentacja Techniczna}
\section{sump.plwnpwnsumo\_file.py}
\subsection{class MapingFileOperator(object)}
Klasa bazowa, służąca do manipulacji plikami wyjściowymi (automatyczne odwzorowanie \mbox{plWN -> SUMO})
\paragraph{Metody:}
\subsubsection{print\_contents(self, out\_fileobj=sys.stdout)}
Wypisuje zawartość pliku w tym samym formacie w jakim została odczytana. Argumentem wywołania jest plik wyjściowy. 
Domyślnie zawartość wypisywana jest na wyjście standardowe (stdout).
\subsubsection{read\_mapping\_file(self, mapping\_file, selected=(), linefunc=None)}
Odczytuje i zapamiętuje cały plik. Zawartość nagłówka jest przechowywany w \mbox{\_header}, natomiast zawartość wierszy w \mbox{\_linebuffer}. 
Nagłówek, oraz każdy z wierszy jest listą unicode strings odwzorowującą komórki pliku csv.
\paragraph{Argumenty:}
\begin{itemize}
\item 'selected' jest listą identyfikatorów kolumn (lub ich numerów id)
\item 'linefunc' jest funkcją wykonywaną dla każdego z wierszy
\end{itemize}
\paragraph{Metody statyczne:}
\subsubsection{\_print(record, out\_fileobj=sys.stdout)}
Łączy komórki średnikami i wypisuje je do out\_fileobj (domyślnie stdout).
\subsubsection{\_print\_header(self. out\_fileobj=sys.stdout)}
Łączy komórki średnikami (uwzględnia nagłówek) i wypisuje je do out\_fileobj (domyślnie stdout).
\subsubsection{\_print\_line(self, idx, out\_fileobj=sys.stdout)}
Łaczy komórki średnikami i wypisuje je do out\_fileobj(domyślnie stdout), działa dla jednego wiersza, którego numer jest przekazywany przez argument idx.

\section{sumo.plwwnpwnsumo\_map.py}
\subsection{class PlwnPwnSumoMap}
Klasa do obsługi rzutowania \mbox{plWN -> PWN -> SUMO}
\\
Przechowuje informacje o:
\begin{itemize}
\item synsecie Słowosieci - typ npsemrel.wn.synset
\item synsecie Princeton - typ npsemrel.wn.synset
\item pojęciu SUMO - typ npsemrel.sumo.sumo
\item typie relacji Slowosiec->Princeton
\item typie relacji Princeton->SUMO
\end{itemize}
\paragraph{Metody:}
\subsubsection{\_\_init\_\_(self, plWN\_synset, PWN\_synset, SUMO\_conc)}
\subsubsection{plwn\_synset(self)}
Zwraca \_plWN\_synset.
\subsubsection{pwm\_synset(self)}
Zwraca \_PWN\_synset.
\subsubsection{sumo\_concept(self)}
Zwraca \_SUMO\_conc.
\subsubsection{plwn\_pwn\_rel\_str(self)}
Zwraca \_plWN\_PWN\_rel\_str.
\subsubsection{pwn\_sumo\_rel\_str(self)}
Zwraca \_PWN\_SUMO\_rel\_str.
\subsubsection{pwn\_sumo\_rel\_shortuct\_str(self)}
Zwraca \_PWN\_SUMO\_rel\_str\_shortcut.
\subsubsection{resolve\_plwn\_SUMO\_rel(self)}
Zwraca relację pomiędzy plWN a SUMO na podstawie relacji:\\
\begin{itemize}
\item plWN -> PWN
\item PWN -> SUMO
\end{itemize}
Zgodnie z tabelą dostępną na gdocu.\\
Aktualnie używana wersja \_resolve\_plwn\_SUMO\_rel\_v3\_2()

\section{sumo.pwn2sumo.py}
\subsection{class PWN2SUMOMapper}
Odwzorowanie PWNSenseIndex na SumoInstance
\paragraph{Metody:}
\subsubsection{\_\_init\_\_(self, pwn\_sense\_index, sumoinstance, s2p\_rel, s2p\_rel\_shrtcut)}
\paragraph{Argumenty:}
\begin{itemize}
\item pwn\_sense\_index - indeks znaczenia PWN
\item sumoinstance - instancja SUMO
\item s2p\_rel - relacja SUMO -> PWN
\item s2p\_rel\_shrtcut - relacja SUMO -> PWN (zapis skrótowy)
\end{itemize}

\subsection{PWN2SUMOReader}
Klasa pomocnicza, do czytania wszystkich typów plików WordNetMapping30
\paragraph{Metody:}
\subsubsection{\_\_init\_\_(self, filename, pwns\_indexes)}
\paragraph{Argumenty:}
\begin{itemize}
\item filename - nazwa pliku z mapą PWN -> SUMO
\item pwns\_indexes - słownik indeksów instancji pwn
\end{itemize}

\subsubsection{read(self, clear\_synset\_lemma = False)}
Wczytuje odwzorowanie PWN na SUMO dla podanej nazwy pliku.
\paragraph{Argumenty:}
\begin{itemize}
\item clear\_synset\_lemma - argument pomocniczy. Jeśli jest ustawiony, moduł próbuje naprawić błędnie wczytany lemat.  
\end{itemize}
Zwraca listę objektów klasy PWN2SUMOMapper

\subsubsection{parse\_line(self, line, clear\_synset\_lemma)}
Uwaga! Czasem w pliku WordNetMapping30-adj.txt część mowy jest oznaczona jako 'a' a czasem jako 's'. Ponieważ w słowniku przymiotników PWN3.0, przymiotniki sa zwykle oznaczone przez 'a', w tej metodzie wszystkie oznaczenia przymiotników 's' zamieniane sa na 'a'.
\\
\paragraph{Argumenty:}
\begin{itemize}
\item clear\_synset\_lemma - argument pomocniczy. Jeśli jest ustawiony, moduł próbuje naprawić błędnie wczytany lemat.  
\item line - linia, która ma być analizowana
\end{itemize}
Przykładowa linia
\begin{verbatim} 
00434597 00 s 01 solid 0 001 & 00433115 a 0000 |
impenetrable for the eye; "solid blackness" &%capability+
\end{verbatim}
Metoda zwraca listę instancji klasy PWN2SUMOMapper lub None, jeśli podana linia jest niepoprawna. Zwraca None również w przypadku, gdy podana linia jest komentarzem (rozpoczyna się średnikiem ';'). 
\\
Format odwzorowania jest następujący:
\begin{verbatim}
synset_offset  lex_filename  pos_as_character  ???  lemma 
| examples | &%SUMO_conceptRELATION_SHORTCUT

			agon%1:04:00:: 00035697 1 0 
			00035697 04 n 01 agon 0 005 (...)
		
			reparation%1:04:00:: 00095329 4 0
			00095329 04 n 02 reparation 0 amends 0 003 (...)

			break%1:04:02:: 00294748 14 0
			00294748 04 n 01 break 2 002 (...)
		
			hard%4:02:01:: 00091534 10 0
			00091534 02 r 01 hard 1 000 (...)
\end{verbatim}
???\\
Temporarly is build PWNSenseIndex \_only\_ for build sensekey and cheks into i
		available senses from sense.index file (PWN) To the mapping is used the sense,
		witch exists into dictionary. Temporary build sense is deleted.
\\???
\subsubsection{get\_concname\_s2prel(self, sumoconc\_name)}
Analizuje podane jako String pojęcie SUMO. Zwraca krotkę (SUMO\_concept\_name, sumo2pwn\_relation, sumo2pwn\_relation\_shortcut)
\paragraph{Argumenty wejściowe:}
\begin{itemize}
\item sumoconc\_name - pojęcie SUMO
\end{itemize}
\paragraph{Argumenty wyjsciowe}
\begin{itemize}
\item SUMO\_concept\_name - nazwa pojęcia SUMO
\item sumo2pwn\_relation - relacja SUMO -> PWN
\item sumo2pwe\_relaction\_shortcut - zapis skrótowy relacji SUMO -> PWN
\end{itemize}
Zapis skrótowy i pełne nazwy relacji:
\begin{itemize}
\item = equivalent (również :)
\item + subsumed (również [)
\item @ instance\_of (również ])
\end{itemize}
\subsubsection{\_\_make\_pos\_disamb(self, pos\_int)}
Metoda przydatna do ujednoznaczniania części mowy
Na wejści przyjmuje nr części mowy (pos\_int).
\\Zwraca odpowiednio:
\begin{enumerate}
\item - noun
\item - verb
\item - adj\_a
\item - adv
\end{enumerate}
W pozostałych przypadkach zwraca 0.

\section{sumo.processor.py}
\subsection{SumoProcessor}
Klasa bazowa dla ccl\_processor.py i static\_processor.py
posiada podstawowe metody do odczytywania, zapisywania
i przetwarzania pliku ccl.
\paragraph{Metody klasy:}
\subsubsection{\_\_read\_file(self, file\_path)}
Wczytuje plik.
\subsubsection{\_\_read\_ccl\_stream(self)}
Coś robi. (czyta strumień ccl?)
\subsubsection{\_\_write\_ccl\_file(self, document)}
Zapisuje plik ccl. 
\subsubsection{\_\_print\_ccl\_file(self, document)}
Wyświetla plik ccl.
\subsubsection{process\_ccl(self, input\_path, output\_path=None)}

\section{tools.evaluation.resample.py}
\subsubsection{make\_parser()}
Parsuje argumenty wywołania.
\subsubsection{read\_file(filename)}
Czyta plik podany na wejście. Zwraca listę wierszy (lines).

\subsubsection{sample(lines, s\_number, s\_size)}
Losuje bez powtórzeń wiersze z pliku. Tworzy s\_number próbek o s\_size wierszach.

\subsubsection{save\_samples(samples)}
Zapisuje uzyskane wcześniej próbki do plików.

\section{tools.evaluation.resample\_weighted.py}
\subsubsection{make\_parser()}
Parsuje argumenty wywołania.
\subsubsection{group\_rows(lines)}
Grupuje wiersze pod względem ostatecznej relacji plWN->SUMO. Zwraca słownik (lines\_dir), w którym kluczem jest nazwa relacji, natomiast wartością lista wierszy.
\subsubsection{sample\_weighted(lines\_dir, s\_number, s\_size)}
Losuje bez powtórzeń wiersze z pliku, uwzględniając stosunek wierszy z odpowiednią relacją. Tworzy s\_number próbek o około s\_size wierszach. Liczba wierszy może się nieznacznie róznić od podanego parametru s\_size, co jest wynikiem zaokragleń. 

\subsubsection{sample\_weighted\_config(lines\_dir, s\_number, s\_size, rel\_weight)}
Losuje bez powtórzeń wiersze z pliku. Liczba wierszy z odpowiednia relacja zalezna jest od pliku konfiguracyjnego. 
\paragraph{Argumenty wywołania:}
\begin{itemize}
\item lines\_dir - słownik zawierający wiersze pliku wejściowego
\item s\_number - liczba próbek
\item s\_ size - liczność próbki (do niej odnoszą się wartości podane w pliku konfiguracyjnym)
\item rel\_weight - słownik zawierający wagi odpowiednich relacji, stworzony z pliku konfiguracyjnego.
\end{itemize}
Funkcja zwraca listę próbek. 
\subsubsection{sample(lines, s\_number, s\_size)}
Losuje bez powtórzeń wiersze z pliku. Tworzy s\_number próbek o s\_size wierszach.

\subsubsection{save\_samples(samples)}
Zapisuje uzyskane wcześniej próbki do plików.

\section{tools.filters.errorfilter.py}
\subsection{class ErrorFilter(MapingFileOperator)}
\paragraph{Metody:}
\subsubsection{\_\_linefunc(self, plWN\_str, sumo\_str)}
Wyszukuje błędne rzutowania i dopisuje ich identyfikatory do listy.
\subsubsection{filter\_errors(self, mapping\_result\_file, out\_fileobj = sys.stdout)}
Wypisuje błędne rzutowania. 

\section{tools.filtersmultimapfilter.py}
Wyszukuje takie rzutowania w pliku z rzutowaniami, gdzie dla danego znaczenia ze Slowosieci istnieje klilka rzutowań na pojęcie/pojęcia SUMO. Wynik przekierowywany jest na standardowe wyjście.

\section{tools.filters.multimapfilter\_err.py}
Wyszukuje takie rzutowania w pliku z rzutowaniami, gdzie dla danego 
znaczenia ze Slowosieci istnieje klilka rzutowań na pojęcie/pojęcia
SUMO i rzutowania te posiadają różne typy relacji między tym samym
znaczeniem ze Słowosieci, a tym samym (lub różnymi) pojęciami z SUMO. 

Ma to za zadanie wyszukać teoretycznie błędne rzutowania, które dla
danego znaczenia ze Słowosieci posiadają przypisane różne rzutowania
na pojęcie/pojęcia SUMO za pomocą różnych relacji. Może się zdarzyć,
że dane znaczenie jest zrzutowane na kilka pojęć za pomocą różnych 
relacji. Lub za pomocą różnych relacji na to samo pojęcie.

Wynik przekierowywany jest na standardowe wyjście. 
\paragraph{Metody:}
\subsubsection{num\_of\_different\_rels(lines)}
Wypisuje liczbę różnych relacji.

\section{tools.filters.file\_reader.py}
\subsubsection{read\_file\_as\_dict(mapping\_result\_file)}
Wczytuje plik i tworzy z niego słownik 

\section{tools.stats.column\_stats.py}
Tworzy statystyki kolumnowe.
\paragraph{Metody:}
\subsubsection{make\_parser()}
Parsuje argumenty wejściowe. 
\begin{itemize}
\item -i - --in-file - plik wejściowy
\item -o - --out\_file - plik wyjściowy
\item -n - --column\_name - nazwa kolumny, dla której mają zostać stworzone statystyki. 
\end{itemize}
\subsubsection{read\_file(filename)}
Wczytuje plik wejściowy, zwraca liste wierszy. 
\subsubsection{str\_to\_nr(column\_name, filename)}
Zamienia nazwę kolumny, na jej numer. 
\subsubsection{make\_stats(lines, column)}
Tworzy statystyki dla podanej kolumny. Argumentami wejściowymi są lista wierszy stworzona z pliku wejściowego oraz numer kolumny, dla której mają zostać stworzone statystyki.
\subsubsection{write\_stats(statistic)}
Wypisuje statystyki na wyjście standardowe.
\subsubsection{save\_to\_file(statistic, out\_file)}
Zapisuje statystyki do pliku. 

\section{tools.stats.dump\_pwnsumo\_map.py}
Wczytuje rzutowanie PWN na SUMO i przedstawia wynik

\section{tools.stats.pwn\_sumo\_stat\_lemmas.py}
worzy statystyki domapsowania lematowego dla wskazanych wynikow
Sprawdza ile z podanych rzutowan PWN - SUMO:
\begin{itemize}
\item zgadza sie lematowo
\item prawie zadza sie lematowo
\item nie zgadza sie lematowo
\end{itemize}
\subsubsection{make\_str\_pwn\_sumo\_dict(in\_file)}
Coś robi
\subsubsection{make\_rel\_stat(str\_dict)}
Tworzy jakąś statystykę. Zwraca rel\_out.
\subsubsection{show\_rel\_stat(rel\_out)}
Wypisuje uzyskana wczesniej statystykę na wyjście standardowe.

\section{tools.stats.pwn\_sumo\_stat\_rel\_conc.py}
Dla zadanego zbioru danych wykorzystanych do rzutowania PLWN-PWN-SUMO
Sprawdza licznosci pojec w kontekscie danej relacji
\subsubsection{make\_str\_pwn\_sumo\_dict(in\_file)}
Coś tam robi, zwraca słownik. 
\subsubsection{make\_rel\_stat(str\_dict)}
Tworzy statystyki.
\subsubsection{show\_header()}
Wypisuje nagłówek na sys.stderr.
\subsubsection{show\_rel\_stat(rel\_name, rel\_dict)}
Wypisuje uzyskane statystyki na sys.stderr. 

\section{tools.stats.r\_only.py}
Wypisuje takie znaczenia plWN lub pary plWN->SUMO, dla których przypisana jest relacja R i nie jest przypisana inna relacja.
\subsubsection{make\_parser()}
Parsuje argumenty wejściowe.
\subsubsection{read\_file\_as\_dict(filename)}
Tworzy słownik z pliku wejściowego.
\subsubsection{R\_only\_stats(lines\_dict)}
Wypisuje wszystkie znaczenia plWN, które mają przypisaną tylko relacię 'R'.

\section{tools.bulbulator.py}
\subsection{class Bulbulator(MappingFileoperator)}
\paragraph{Metody:}
\subsubsection{\_\_linefunc(self, cross\_ling\_rel, plWN\_str, sumo\_str, sumo\_rel)}
Funkcja, która w przypadku wystąpienia relacji międzyjęzykowej 'syn\_pa' dodaje relację SUMO dla podanego id (pojęcie plwn, pojęcie SUMO).
\paragraph{Argumenty wywołania:}
\begin{itemize}
\item cross\_ling\_rel - relacja międzyjęzykowa
\item plWN\_str - pojęcie plWN
\item sumo\_str - pojęcie SUMO
\item sumo\_rel - relacja SUMO
\end{itemize}

\subsubsection{bulbul(self, mapping\_result\_file, out\_fileobj = sys.stdout)}
Główna wunkcja działania programu. Wypisuje na wyjście standardowe plik uzupełniony o kolumnę 'plwn\_sumo\_rel\_step2', w której znajdują się poprawione rzutowania. 

\section{tools.ccl\_processor.py}
\subsection{class SumoCclProcessor(SumpProcessor)}
\paragraph{Metody:}
\subsubsection{\_\_first\_step(self, document)}
coś tam robi... (pierwszy krok?)
\subsubsection{\_\_second\_step(self, inbuf, generate\_buffer=False)}
Robi coś innego. (drugi krok?)
\subsubsection{\_\_bulbulator(self, inbuf)}
Odpowiada za użycie bulbulatora.
\subsubsection{\_\_rreductor(self, inbuf)}
Odpowiada za użycie rreductora. 
\subsubsection{process\_document(self, docuent)}
Przetwarza dokument dopisując do niego dane z rzutowania.  
\subsubsection{aparser()}
Parsuje argumenty wejściowe.

\section{tools.mapper.py}
\subsection{class Mapper}
\paragraph{Metody:}
\subsubsection{\_convert\_dbpos\_to\_str(self, pos\_int)}
Zamienia numer części mowy na znak. Odpowiednio:
\begin{itemize}
\item 5 - 'v'
\item 6 - 'n'
\item 7 - 'r'
\item 8 - 'a'
\item else - '?'
\end{itemize}
\subsubsection{\_\_find\_p2s\_lemmasensenum(self, lemma, sensenum, pos, p2s\_map\_list)}
Coś tam robi, zwraca p2s.
\subsubsection{\_\_make\_plwnpwnsumomapo(self, plwn\_syn\_id, plwn\_lex, pwn\_syn\_id, pwn\_lex, plwn\_pwn\_rel, pwn2sumo)}
... zwraca pps\_map.
\subsubsection{basic\_sumo\_mapping(self, output\_file, resolve\_plwn\_sumo, dbplwn, relations\_id, sensindexfile, sensindexfiles, synids)}
...
\subsubsection{parse\_line(self, str\_line)}
...
\subsubsection{\_\_write\_header(self, fout)}
Wypisuje nagłówek do pliku wyjściowego. 
\subsubsection{second\_step\_sumo\_mapping(self, in\_file, out\_file)}
...

\section{tools.oknak.py}
\subsection{class Windower(MappingFileoperator)}
\paragraph{Metody:}
\subsubsection{\_\_linefunc(self, cross\_ling\_rel, plWN\_str, sumo\_str, sumo\_rel)}
Funkcja przypisujaca relację wynikową dla wszystkich sprzecznych rzutowań (par pojęcie plWN -> SUMO, mających przypisane różne relacje) według wzoru:
\begin{verbatim}
    mero:el_pa oraz hipo_pa -> subsumed;
    mero:cz_pa oraz hipo_pa -> subsumed;
    mero:cz_pa oraz hiper_pa -> subsumed;
    synmr_pa oraz syncz_pa -> subsumed;
    synmr_pa oraz hipo_pa -> subsumed;
    syn_pa oraz oraz hiper_pa -> equivalent;
    hipo_pa oraz hiper_pa -> instance_of;
\end{verbatim}

\section{tools.rreductor.py}
\subsection{class RReductor(MappingFileOperator)}
\subsubsection{\_\_linefunc(self, plWN\_str, sumo\_str, sumo\_rel)}
Dla pary pojęcie plWN -> SUMO, przypisuje relację różną od R, jeśli takowa istnieje. 
\subsubsection{reduce\_R(self, mapping\_result\_file, out\_fileobj=sys.stdout)}
Wypisuje na wyjście standardowe plik poszerzony o dodatkową kolumnę 'plwn\_sumo\_rel\_step1', zawierającą rzutowania ze zredukowaną liczbą 'R'.

\section{tools.wn\_pwn2sumo.py}
\subsubsection{make\_parser()}
Parsuje argumenty wywołania, którymi są:
\begin{itemize}
\item -d --db-cfg-file - plik konfiguracyjny
\item -i --indexcorp-file
\item -t --tagset
\item -r --resolve\_plwn\_sumo
\item -o --output-file
\end{itemize}
\subsubsection{read\_corpus\_get\_wsd(corpus\_index\_file, tagset)}
Odczytuje korpus...
\subsubsection{show\_p2s\_map\_list(p2s\_map\_list)}
Wyświetla p2s\_map\_list

\section{tools.wn\_pwn2sumo\_rel.py}
Dla zadanego pliku z przypisaniem pojeć SUMO do synsetu określa relacje pomiedzy SUMO a synsetami plWN

Każda linia w pliku wejsciowym ma postac:
    nazwisko.1;por-7;6988;syn\_pa;surname.1;por-7;161948;ContentBearingObject;subsumed;+

Przyklad uruchomienia:
    python wn\_pwn2sumo\_rel.py -i input.csv -o output\_rel.csv

\section{tools.static\_processor.py}
\subsection{class SumoStaticProcessor(SumoCclProcessor):}
\paragraph{metody:}
\subsubsection{\_\_init\_\_(self, db\_config, senseindexfile, senseindexfiles, 
                 plwn2sumo\_map\_file, tagset='nkjp')}
Buduje słownik sumo\_out, w ktrórym kluczem jest id pojęcia plWN, natomiast wartościami wyniki rzutowania na SUMO. 
\subsubsection{process\_document(self, docuent)}
Przetwarza dokument dopisując do niego dane z rzutowania.


\section{sumo\_corpus\_lists\_generator}
\subsubsection{void show\_usage()}
Funkcja wyświetlająca sposób użycia narzędzia.

\subsubsection{map<int, string> make\_sense\_map()}
Funkcja ta opiera swoje działanie na bazie danych Słowosieci. Zwraca mapę, w której kluczem jest lemat, natomiast wartością jest informacja o owym lemacie.
\\
\\
Format mapy:
\\
{\tt [lemma] $\longrightarrow$ [synset\_str\_plwn;dziedzina\_plwn;synset\_id]}
\\
\\
Przykładowy rekord z mapy:
\\
{\tt [żwawik czerwieniak] $\longrightarrow$ [żwawik czerwieniak.1;zw-21;384935]}

\subsubsection{map<string, vector<string> > make\_annotation\_map()}
Funkcja ta opiera swoje działanie na bazie danych Słowosieci. Zwraca mapę, w której kluczem jest nazwa synsetu, natomiast wartością jest jego identyfikator. Funkcja ta wyciąga informacje o synsetach z komentarzy do nich dołączonych.
\\
\\
Format mapy:
\\
{\tt [synset\_str\_plwn] $\longrightarrow$ [synset\_id]}
\\
\\
Przykładowy rekord z mapy:
\\
{\tt [znaleźć-37] $\longrightarrow$ [55134]}

\subsubsection{map <int, vector<string> > make\_sumo\_map(string sumoFileName)}
Funkcja generuje mapę synsetów i odpowiadających im pojęć SUMO na podstawie pliku wejściowego zawierającego rzutowanie SUMO na Słowosieć. Kluczem w mapie jest identyfikator synsetu, natomiast wartością wektor rekordów wydobytych z pliku wejściowego dotyczących danego synsetu.
\\
\\
Format mapy:
\\
{\tt [synset\_id] $\longrightarrow$ [record\_1, record\_2, ..., record\_n]}

\subsubsection{int main(int argc, char *argv[])}
Funkcja główna odpowiedzialna za wywołanie powyżej opisanych metod oraz wykonanie zadania.


\section{static\_sumo\_kpwr\_annotator}
\subsubsection{void show\_usage()}
Funkcja wyświetlająca sposób użycia narzędzia.

\subsubsection{map<string, vector<string> > make\_annotation\_map()}
Funkcja ta opiera swoje działanie na bazie danych Słowosieci. Zwraca mapę, w której kluczem jest nazwa synsetu, natomiast wartością jest jego identyfikator. Funkcja ta wyciąga informacje o synsetach z komentarzy do nich dołączonych.
\\
\\
Format mapy:
\\
{\tt [synset\_str\_plwn] $\longrightarrow$ [synset\_id]}
\\
\\
Przykładowy rekord z mapy:
\\
{\tt [znaleźć-37] $\longrightarrow$ [55134]}

\subsubsection{map <int, vector<string> > make\_sumo\_map(string sumoFileName)}
Funkcja generuje mapę synsetów i odpowiadających im pojęć SUMO na podstawie pliku wejściowego zawierającego rzutowanie SUMO na Słowosieć. Kluczem w mapie jest identyfikator synsetu, natomiast wartością wektor zawierający pojęcia SUMO wraz z relacją łączącą pojęcie z synsetem.
\\
\\
Format mapy:
\\
{\tt [synset\_id] $\longrightarrow$ [sumo\_rel\_1:sumo\_concept\_1, ..., sumo\_rel\_n:sumo\_concept\_n]}
\\
\\
Przykładowy rekord z mapy:
\\
{\tt [17] $\longrightarrow$ [subsumed:Attorney, subsumed:Position]}

\subsubsection{int main(int argc, char *argv[])}
Funkcja główna odpowiedzialna za wywołanie powyżej opisanych metod oraz wykonanie zadania.