(Autor: Adam Przepiórkowski, Jakub Wilk; ostatnia modyfikacja: 2 października 2011)
Składnia zapytań w programie Poliqarp jest wzorowana na składni używanej w programie Corpus Query Processor (CQP) stworzonym na Uniwersytecie w Stuttgarcie, zawiera jednak szereg rozszerzeń i udogodnień. Niniejszy rozdział omawia składnię zapytań programu Poliqarp i ilustruje ją wieloma przykładami.
W najprostszym wypadku zapytanie to ciąg szukanych segmentów, np.:
W drugim z powyższych dwóch zapytań występują trzy segmenty odpowiadające dwóm słowom: przyszedłem i rano. W wypadku prostych zapytań o formy Poliqarp próbuje wykryć sytuacje, w których słowo składa się z kilku segmentów i znaleźć odpowiednie ciągi segmentów, a zatem prawidłowe wyniki dadzą także zapytania:
W tym drugim wypadku znalezione zostaną zarówno wszystkie wystąpienia trzysegmentowych ciągów [długo][m] [szedł], interpretowanych jako przysłówek, aglutynant i pseudoimiesłów, jak i dwusegmentowych ciągów [długom] [szedł], interpretowanych jako celownikowa forma nominalna i pseudoimiesłów.
Domyślnie rozróżniana jest kasztowość (wielkość) liter, a zatem poniższe dwa zapytania dadzą różne wyniki:
Aby znaleźć wszystkie wystąpienia formy przyszedł, niezależnie od wielkości poszczególnych liter, należy użyć flagi /i. Poniższe zapytania dadzą te same wyniki, zawierające wszystkie odpowiedzi na oba powyższe zapytania.
W wersji graficznej i tekstowej programu kasztowość można ustawić także globalnie dla całego zapytania lub szeregu zapytań.
W zapytaniach o segmenty mogą wystąpić standardowe wyrażenia regularne wykorzystujące następujące znaki specjalne: ?, *, +, ., ,, |, {, }, [, ], (, ) oraz liczby naturalne pisane cyframi arabskimi, np. 0 czy 21, przy czym specyfikacje segmentów zawierające wyrażenia regularne muszą być ujęte w cudzysłowy ". Ponieważ formalny opis wyrażeń regularnych wykracza poza ramy niniejszej publikacji, ograniczymy się tutaj do kilku przykładów, które powinny pozwolić użytkownikowi na szybkie przyswojenie składni i znaczenia takich wyrażeń.
znak | oznacza alternatywę dwóch wyrażeń, a zatem zapytanie to może zostać użyte do znalezienia wszystkich wystąpień segmentów o postaci Ala lub Ela,
nawiasy kwadratowe oznaczają alternatywę znaków, a zatem zapytanie to może zostać użyte do znalezienia tych segmentów, których pierwszy znak to A lub E, a następne to la, tj. zapytanie to jest równoważne poprzedniemu,
znak zapytania oznacza opcjonalność znaku (tutaj a) lub ujętego w nawiasy okrągłe wyrażenia bezpośrednio poprzedzającego znak ?, a zatem w wyniku zadania tego zapytania znalezione zostaną segmenty bez i beza,
kropka oznacza dowolny znak, a zatem wynikiem tego zapytania będą segmenty beza, bezy, bezą itp., ale nie bez czy bezami,
bez, beza, bezy, bezą itp., ale nie bezami,
segmenty pięcioznakowe, w których 2. i 4. znak to z (np. czczą i rzezi),
segmenty składające się z pięciu lub sześciu znaków, w których 2. i 4. znak to z, np. czczą, rzezi i szczyt,
gwiazdka oznacza dowolną liczbę wystąpień znaku lub wyrażenia bezpośrednio przed nią, a zatem zapytanie to może posłużyć do znalezienia segmentów składających się z dowolnej liczby liter a, po których następuje ciąg by, np. by (zero wystąpień a), aby, aaaaby itp.,
segmenty zaczynające się na Ala, np. Ala i Alabama,
segmenty zaczynające się na ala, Ala, aLa, ALA itd., np. Ala, alabaster i ALABAMA,
plus ma działanie podobne do gwiazdki i oznacza dowolną większą od zera liczbę wystąpień znaku lub wyrażenia bezpośrednio przed nim, a zatem wynikiem tego zapytania będzie znalezienie segmentów kończących się na al, all, alll itd., ale nie na a, np. dal, robal i Gall,
konstrukcja typu n,m oznacza od n do m wystąpień znaku lub wyrażenia bezpośrednio przed nią, a zatem zapytanie to pomoże znaleźć segmenty zaczynające się od ciągu od 1 do 3 liter a lub A, po którym następuje litera b lub B, a następnie dowolny ciąg znaków (por. .*), np. Aby, aaaby, absolutnie, ABBA,
konstrukcja typu n, oznacza co najmniej n wystąpień znaku lub ujętego w nawiasy okrągłe wyrażenia bezpośrednio przed nią, a zatem zapytanie to może posłużyć do znalezienia segmentów, w których ciąg la występuje przynajmniej 3 razy pod rząd, np. tralalala, sialalala,
segmenty składające się z co najmniej 4 spółgłosek i dokładnie jednej samogłoski, np. źdźbła i Chrzczę wyrażenie [bcćdfghjklłmnńprsśtwzźż]{4,} oznacza co najmniej czterokrotne powtórzenie znaku pasującego do [bcćdfghjklłmnńprsśtwzźż], tj. co najmniej cztery wystąpienia spółgłoski (niekoniecznie tej samej),
segmenty składające się z co najmniej dwukrotnego powtórzenia wzorca CCCV, gdzie C to spółgłoska, a V to samogłoska, np. wszystko, Zdmuchnąwszy i Szmajdziński konstrukcja typu n oznacza dokładnie n wystąpień znaku lub ujętego w nawiasy okrągłe wyrażenia bezpośrednio przed nią,
jak wyżej,
segmenty zaczynające się od podjecha, najecha i zajecha, np. podjechał, zajechawszy.
Specyfikacje segmentów podane powyżej muszą pasować do całych segmentów stąd konieczność umieszczenia po obu stronach ciągu (la){3,} w zapytaniu 13. o segmenty zawierające ciąg lalala wyrażenia .*, pasującego do dowolnego ciągu znaków. Ten sam efekt zostanie osiągnięty przy użyciu flagi /x, oznaczającej, że dana specyfikacja segmentu musi pasować przynajmniej do części danego segmentu, niekoniecznie do całego segmentu:
segmenty, w których ciąg la występuje przynajmniej 3 razy pod rząd, np. tralalala, sialalala,
segmenty, w których występuje ciąg lalala, LaLAla itp., np. tralalala, SiaLaLALA.
Aby znaleźć wszystkie formy leksemu korpus, można użyć następującego zapytania:
Atrybut base jest jednym z wielu możliwych atrybutów, jakie mogą pojawić się w zapytaniu. Wartością tego atrybutu powinna być specyfikacja formy podstawowej (hasłowej), a zatem zapytanie [base=pisać] może być użyte do znalezienia form typu pisać, piszę, pisała, piszcie, pisanie, pisano, pisane itp.
Innym możliwym atrybutem jest orth wartości tego atrybutu określają same segmenty, a zatem następujące pary zapytań są równoważne:
Nie są jednak równoważne zapytania:
W pierwszym wypadku program spróbuje rozbić słowo przyszedłem na dwa segmenty, przyszedł i em, podczas gdy wartość atrybutu orth jest zawsze interpretowana jako specyfikacja pojedynczego segmentu.
Wartościami atrybutów base i orth mogą być wyrażenia regularne, podobnie jak w wypadku prostych zapytań o formy opisanych w p.3.1, np.:
znalezione zostaną segmenty bez, Beza, bezy itp., ale nie bzem czy bezami,
znalezione zostaną wszystkie segmenty, których forma hasłowa ma 3 lub 4 litery i zaczyna się od bez (przy dowolnej kasztowości), czyli np. segmenty bzem, bez, bezami itp.
Zapytania o segmenty i o formy podstawowe segmentów można łączyć. Na przykład, aby znaleźć wszystkie wystąpienia segmentu minę rozumianego jako forma leksemu mina (a nie na przykład leksemu minąć), można zadać następujące zapytanie:
Podobne znaczenie ma następujące zapytanie o te wystąpienia segmentu minę, które nie są interpretowane jako formy leksemu minąć.
Warunek, że forma hasłowa to nie minąć, można zadać także, umieszczając znak negacji (wykrzyknik) przed nazwą atrybutu, a więc poniższe zapytanie jest w pełni równoważne zapytaniu powyższemu.
Podobnie jak w rachunku zdań, zapytanie z podwójną negacją jest równoważna zapytaniu bez negacji, a zatem następujące zapytania o segment nie jako formę zaimka osobowego on są w pełni równoważne:
W powyższych zapytaniach operator & spełnia rolę logicznej koniunkcji. Operatorem do niego dualnym jest operator |, spełniający rolę logicznej alternatywy. Oto kilka przykładów użycia tego operatora:
wszystkie formy zaimków on i ja, równoważne zapytaniu [base="on|ja"],
wszystkie formy zaimka on, a także segmenty mnie i ciebie,
segment pora nie będący ani formą leksemu por, ani formą leksemu pora.
Aby lepiej zrozumieć różnicę pomiędzy operatorami & i |, porównajmy następujące dwa zapytania:
W wyniku zadania pierwszego zapytania znalezione zostaną te segmenty, które są jednocześnie (koniunkcja) segmentem minę i formą leksemu mina, a więc wyłącznie te wystąpienia segmentu minę, które są interpretowane jako formy leksemu mina. W wyniku zadania drugiego zapytania znalezione natomiast zostaną te segmenty, które są albo dowolnie interpretowanym segmentem minę, albo formą leksemu mina (alternatywa), czyli wszystkie wystąpienia zarówno segmentu minę, jak i segmentów mina, miny, minami itp. interpretowanych jako formy leksemu mina.
Specyfikacje pozycji w korpusie, ujęte w nawiasy kwadratowe, mogą zawierać dowolną liczbę warunków typu atrybut=wartość (na przykład orth=nie) połączonych operatorami !, & i |, tak jak pokazują to powyższe przykłady. Możliwe jest także całkowite pominięcie jakichkolwiek warunków poniższe zapytanie mogłoby posłużyć do znalezienia wszystkich segmentów w korpusie.1
Taka trywialna specyfikacja pozycji w korpusie, pasująca do dowolnego segmentu, może posłużyć na przykład do znalezienia dwóch form oddzielonych od siebie dowolnymi dwoma segmentami, np.:
W wyniku tego zapytania zostaną znalezione ciągi takie jak się nikogo nie bać, się Boga nie boicie itp.
Dla wielu zastosowań ciekawsza byłaby możliwość zapytania na przykład o formy oddalone od siebie o najwyżej pięć pozycji. Poliqarp umożliwia zadawanie takich pytań, gdyż pozwala na formułowanie wyrażeń regularnych także na poziomie pozycji korpusu. Na przykład zapytanie o formę leksemu bać występującą dwie, trzy lub cztery pozycje dalej niż forma się może wyglądać następująco:
W wyniku tego zapytania zostaną znalezione ciągi uzyskane w wyniku poprzedniego zapytania, a także na przykład ciąg się każdy następny Rywin będzie bał.
Zapewne bardziej poprawnym zapytaniem o różne wystąpienia form tzw. czasownika zwrotnego bać się byłoby zapytanie o się w pewnej odległości przed formą leksemu bać, ale bez znaku interpunkcyjnego pomiędzy tymi formami, lub bezpośrednio za taką formą, ewentualnie oddzielone od formy bać zaimkiem osobowym:
Powyższe zapytanie można uprościć poprzez zastąpienie warunku orth!="[.!?,:]" bezpośrednim odwołaniem do „klasy gramatycznej” interp:
Ogólniej, wartościami atrybutu pos (ang. part of speech ’część mowy’) są skróty nazw klas gramatycznych omówionych w p.2.2 (por. tabela w p.2.2). Na przykład zapytanie o sekwencję dwóch form rzeczownikowych rozpoczynających się na a może być sformułowane w sposób następujący:
Podobnie jak to miało miejsce w wypadku specyfikacji form tekstowych i form hasłowych, także specyfikacje klas gramatycznych mogą zawierać wyrażenia regularne. Na przykład, zważywszy na to, że zaimki osobowe należą do klasy zaimków trzecioosobowych ppron3 i do klasy zaimków nietrzecioosobowych ppron12, poniższe zapytania mogą posłużyć do znalezienia dowolnych form dowolnych zaimków osobowych:
A zatem zapytanie o formy bać się może zostać jeszcze bardziej uproszczone do następującego zapytania:
W zapytaniach można określać wartości nie tylko formy wyrazowej (za pomocą atrybutu orth), formy hasłowej (za pomocą base) i klasy gramatycznej (za pomocą pos), ale także wartości poszczególnych kategorii gramatycznych, takich jak przypadek czy rodzaj. Służą do tego następujące atrybuty (por. p.2.1):
atrybut | kategoria | możliwe wartości |
number | liczba | sg pl |
case | przypadek | nom gen dat acc inst loc voc |
gender | rodzaj | m1 m2 m3 f n |
person | osoba | pri sec ter |
degree | stopień | pos comp sup |
aspect | aspekt | imperf perf |
negation | zanegowanie | aff neg |
accentability | akcentowość | akc nakc |
post-prepositionality | poprzyimkowość | npraep praep |
accommodability | akomodacyjność | congr rec |
agglutination | aglutynacyjność | agl nagl |
vocalicity | wokaliczność | nwok wok |
fullstoppedness | kropkowalność | pun npun |
A zatem możliwe jest zadanie na przykład następujących zapytań:
znalezione zostaną wszystkie formy w liczbie pojedynczej,
znalezione zostaną formy rzeczownikowe w liczbie pojedynczej,
formy rzeczownikowe rodzaju męskiego lub nijakiego,
pojedyncze mianownikowe lub biernikowe formy męskie.
Zamiast pełnych nazw atrybutów można używać ich trzyliterowych skrótów:
atrybut | skrót |
number | nmb |
case | cas |
gender | gnd |
person | per |
degree | deg |
aspect | asp |
negation | neg |
accommodability | acm |
accentability | acn |
post-prepositionality | ppr |
agglutination | agg |
vocalicity | vcl |
fullstoppedness | fsn |
A zatem powyższe zapytanie 4. można zadać także w sposób następujący:
Wersje graficzna i tekstowa umożliwiają zdefiniowanie tzw. aliasów, czyli skrótów alternatyw wartości danego atrybutu, których następnie można używać jak zwykłych wartości atrybutów. W obecnej wersji Narodowego Korpusu Języka Polskiego predefiniowane są cztery takie aliasy:
alias | definicja |
masc | m1 m2 m3 |
noun | subst depr ger ppron12 ppron3 |
pron | ppron12 ppron3 siebie |
verb | fin praet aglt bedzie inf imps impt pact ppas pcon pant ger winien |
Przy tak zdefiniowanych aliasach noun i masc, poniższe dwa zapytania są równoważne:
O klasy gramatyczne i kategorie gramatyczne można także pytać łącznie, używając do tego atrybutu tag. Na przykład, aby znaleźć wszystkie rzeczowniki nijakie w mianowniku o pojedynczej wartości liczby, można zadać następujące zapytanie:
Wartości atrybutu tag mają postać kl:kat1:kat2:...:katn, gdzie kl to nazwa klasy gramatycznej, a kati to wartości kategorii przysługujących tej klasie w kolejności, w jakiej zostały podane w tabeli w p.2.2.
Tak jak w wypadku innych atrybutów, specyfikacja atrybutu tag może być zadana wyrażeniem regularnym, np.:
Specyfikacje klas gramatycznych i kategorii gramatycznych mogą zawierać zmienne (mające postać $n, gdzie n jest pojedynczą cyfrą), których wartości zostaną ustalone dopiero podczas wykonywania zapytania. Na przykład poniższe zapytanie o zapytanie o przymiotnik i rzeczownik z uzgodnionymi wartościami przypadka:
można uprościć do:
Jedną z cech, które wyróżniają Narodowy Korpus Języka Polskiego i program Poliqarp, jest możliwość reprezentacji wieloznaczności morfosyntaktycznych. Istnieją jednak konstrukcje, w których nie jest możliwe ujednoznacznienie interpretacji danej formy, na przykład dlatego, że kilka możliwych interpretacji prowadzi do identycznego znaczenia całego zdania. Ilustruje to przykład 1.
W przykładzie tym nie można stwierdzić, czy forma pijaną jest formą biernikową, jak pijanego w 2a., czy też formą narzędnikową, jak pijanym w 2. Dlatego też w korpusie segment pijaną w 1. powinien dostać dwie interpretacje: biernikową i narzędnikową.
W takim wypadku powstaje jednak pytanie, czy segment pijaną w 1. powinien zostać znaleziony w wypadku zadania zapytania typu [case=acc], czy też nie: za odpowiedzią pozytywną przemawia fakt, że interpretacja biernikowa jest poprawną interpretacją tego segmentu w tym kontekście, zaś za odpowiedzią negatywną fakt, że nie można z całkowitą pewnością uznać tej formy za formę biernikową.
Zamiast narzucać jedną z tych interpretacji, Poliqarp pozwala na zadanie obu rodzajów zapytań. Wynikiem zapytania [case=acc] będzie znalezienie tych segmentów, w wypadku których przynajmniej jedna z interpretacji poprawnych w danym kontekście jest interpretacją biernikową, a zatem, w wypadku zdania 1., zostanie znaleziony zarówno segment pijaną, jak i segment ją, zaś w wypadku zdania 2a. zarówno pijanego, jak i go. Aby natomiast znaleźć te segmenty, które są biernikowe z całą pewnością, tj. których każda poprawna w danym kontekście interpretacja jest biernikowa, należy posłużyć się zapytaniem [case==acc]. Wynikiem tego ostatniego zapytania w wypadku zdania 1. będzie znalezienie formy ją, ale nie formy pijaną, zaś w wypadku zdania 2a. zostaną ponownie znalezione obie formy go i pijanego choć są to formy synkretyczne posiadające także interpretacje dopełniaczowe, w kontekście zdania 2a. powinny zostać zdezambiguowane do interpretacji biernikowej.
Dzięki temu rozróżnieniu możliwe jest na przykład wyszukiwanie form, które mogą być w danym kontekście interpretowane jako biernikowe lub dopełniaczowe, a zatem w poprawnie oznakowanym korpusie poniższe zapytanie może dać niepuste wyniki.
Z drugiej strony, zapytanie przedstawione poniżej, jako zapytanie o te formy, których wszystkie poprawne w danym kontekście interpretacje są jednocześnie biernikowe i dopełniaczowe, oczywiście da wynik pusty.
Powyższe zapytania dotyczą interpretacji segmentów uzyskanych w procesie dezambiguacji, tj. w wyniku ujednoznacznienia (a raczej unietakwieloznacznienia) interpretacji morfosyntaktycznych. W Narodowym Korpusie Języka Polskiego zachowane są jednak wszystkie interpretacje danego segmentu znane analizatorowi morfologicznemu, a nie tylko te, które zostały uznane za poprawne w danym kontekście. W pewnych sytuacjach przydatny jest dostęp do tych odrzuconych interpretacji, na przykład wtedy, gdy chcemy znaleźć wszystkie występujące w korpusie formy synkretyczne o możliwych interpretacjach biernikowej i dopełniaczowej, niezależnie od tego, które z tych interpretacji są poprawne w danym kontekście, albo gdy chcemy zignorować potencjalnie błędne wyniki działania dezambiguatora. W pierwszym z tych wypadków posłużyć się możemy następującym zapytaniem:
W wyniku tego zapytania znalezione zostaną synkretyczne formy go i pijanego, ale nie formy ją i pijaną, które takiego synkretyzmu nie wykazują.
Ostatnim rodzajem równości dostępnym w zapytaniach jest ~~. Zapytanie poniższe może posłużyć do znalezienia tych form, o których jeszcze przed ujednoznacznianiem wiadomo, że są wyłącznie biernikowe:
Poniższa tabela podsumowuje znaczenie poszczególnych operatorów równości.
w wynikach | w wynikach | |
analizy morfologicznej | dezambiguacji | |
co najmniej jedna interpretacja | ~ | = |
każda interpretacja | ~~ | == |
A zatem prawdziwe są następujące implikacje:
tj. każda odpowiedź na zapytanie [atrybut~~wartość] jest także odpowiedzią na zapytanie [atrybut==wartość]
tj. każda odpowiedź na zapytanie [atrybut==wartość] jest także odpowiedzią na zapytanie [atrybut=wartość]
tj. każda odpowiedź na zapytanie [atrybut=wartość] jest także odpowiedzią na zapytanie [atrybut~wartość]
Tekst zawarty w Narodowym Korpusie Języka Polskiego został automatycznie podzielony na zdania i na akapity. Informację tę można wykorzystać w zapytaniach, na przykład ograniczając dopasowanie do jednego zdania.
Aby ograniczyć zasięg zapytania, należy dopisać do zapytania słowo kluczowe within, a po nim s lub p, w zależności od tego, czy zasięg ma być ograniczony do zdania (ang. sentence) czy do akapitu (ang. paragraph). Ilustruje to następujący przykład zapytania o zdania, w których forma się występuje za formą leksemu być, lecz nie bezpośrednio za nią:
Z każdym utworem znajdującym się w Narodowym Korpusie Języka Polskiego związane są tzw. metadane, czyli informacje o tytule i autorze utworu, jego pochodzeniu, wydawcy itp. Część z tych informacji jest dostępna za pomocą programu Poliqarp i może zostać użyta do ograniczenia zasięgu zapytania, na przykład do tekstów danego autora lub tekstów powstałych w danym przedziale czasowym.
W Narodowym Korpusie Języka Polskiego dostępne są następujące metaatrybuty:
Zwykle tylko niektóre z tych atrybutów będą miały przypisaną wartość, na przykład wtedy, gdy znana jest tylko data publikacji, a nie data pierwszej publikacji i powstania, albo w wypadku krótkich notatek prasowych, których autor a czasami i tytuł nie są znane.
Aby ograniczyć zasięg zapytania do określonych wartości metadanych, należy na końcu zapytania wpisać słowo kluczowe meta, po którym następuje specyfikacja wartości metaatrybutów. W wypadku, gdy zapytanie jest ograniczone zarówno do zdania czy akapitu, jak i na podstawie metadanych, specyfikacja ograniczenia do zdania lub akapitu występuje w zapytaniu przed specyfikacją metadanych, na przykład:
Wartości atrybutów author i title mogą być zadane wyrażeniami regularnymi, np. poniższe zapytanie może posłużyć do znalezienia form leksemu wirus w utworach, których tytuł zawiera jeden z napisów windows lub microsoft.
Specyfikacje atrybutów author i title są rozumiane w sposób bezkasztowy (wielkość liter nie ma znaczenia) i są interpretowane jako części pełnych wartości, a zatem wyniki poniższego zapytania będą pochodziły z utworów m.in. Pola, Polkowskiego i Rampolskiego (o ile ci autorzy są reprezentowani w korpusie):
Flagi /X i /I działają w sposób dualny do opisanych powyżej flag /x i /i: flaga /X powoduje, że dana specyfikacja atrybutu jest rozumiana jako specyfikacja pełnej wartości tego atrybutu, a nie tylko jego części, zaś flaga /I powoduje, że kasztowość specyfikacji jest dopasowywana do kasztowości wartości atrybutu. Ilustrują to poniższe przykłady:
przeszukiwanie ograniczone do utworów Pola, Polkowskiego itd., ale nie Rampolskiego
przeszukiwanie ograniczone do utworów Marka Pola
przeszukiwanie ograniczone do utworów autora, którego pełna specyfikacja imienia i nazwiska to Pol (lub POL, pol itd.)
przeszukiwanie ograniczone do utworów autora, którego nazwisko to Pol
Odmiennie traktowane są atrybuty data_powstania, data_pozyskania, data_nagrania, data_pierwszego_wydania i data_wydania, którego wartościami mogą być wyłącznie daty. W wypadku atrybutów tego typu nie można użyć wyrażeń regularnych, natomiast można użyć znaków < i > w celu określenia przedziału czasowego, z jakiego dany utwór ma pochodzić, na przykład:
przeszukiwanie ograniczone do utworów powstałych po roku 1950
Warunki dotyczące metadanych można łączyć za pomocą operatorów &, | i !:
przeszukiwanie ograniczone do utworów powstałych w latach 1951-1960
przeszukiwanie ograniczone do utworów wydanych po roku 1900, z wyjątkiem tekstów Sienkiewicza,
przeszukiwanie ograniczone do Potopu Sienkiewicza i Przedwiośnia Żeromskiego
przeszukiwanie ograniczone do tekstów naukowo-dydaktycznych wydanych w postaci książki
Poprzednie dema Narodowego Korpusu Języka Polskiego oraz wydania Korpusu IPI PAN używają innych schematów metadanych. Szczegóły można znaleźć w Ściągawce do Korpusu IPI PAN.
W części zapytania dotyczącej form, tj. przed kwalifikatorami within i meta, można używać znacznika wyrównania ^, na przykład:
W wyniku zadania powyższego zapytania wyświetlone zostaną cztery kolumny zawierające, odpowiednio, lewy kontekst, tj. fragment tekstu bezpośrednio poprzedzający znalezione dopasowanie, lewe dopasowanie, tj. fragment tekstu pasujący do części zapytania przed znakiem ^ (tutaj: ciąg przymiotników w mianowniku), prawe dopasowanie (tutaj: ciąg rzeczowników w mianowniku) oraz prawy kontekst.