Povpraševalni jezik

Na tej strani je podrobneje predstavljen formalizem, s pomočjo katerega iščemo po skladenjsko razčlenjenih korpusih na spletnem vmesniku Drevesnik. Temelji na povpraševalnem jeziku, razvitem znotraj orodja dep_search, ki smo ga za potrebe iskanja po slovenskih korpusih prilagodili tako, da poleg iskanja po oblikoslovnih in odvisnostnih skladenjskih oznak sheme Universal Dependencies omogoča tudi iskanje po oblikoskladenjskih oznakah sheme JOS. Možnosti iskanja so v nadaljevanju ponazorjene z nekaj izbranimi iskalnimi pogoji, na katere lahko tudi kliknemo in si ogledamo rezultate tovrstne poizvedbe v ročno označenem korpusu SSJ (naključni zadetki v krajših povedih).

Lastnosti pojavnice

Iskanje po besednih oblikah

Po besedni obliki pojavnice iščemo z vnosom poljubnega niza znakov. Primeri:

Po osnovni obliki besede (lemi) iščemo s predpono L=:

Iskanje po oblikoslovnih lastnostih

Besedno vrsto in druge oblikoslovne lastnosti pojavnice lahko opredelimo na dva načina, saj so vsi korpusi označeni tako z označevalno shemo JOS kot Universal Dependencies (UD). Oba sistema sta dobro dokumentirana in primerljiva z vidika ustreznosti naslavljanja specifik slovenščine, zato je izbira enega ali drugega odvisna predvsem od uporabnikovih preferenc.

Oblikoslovne lastnosti po shemi JOS

Po oblikoskladenjskih oznakah JOS iščemo s predpopono X=, pri čemer je pri teh oznakah podprta tudi uporaba posebnih operatorjev . (ki nadomešča poljuben znak) in * (ki nadomešča poljubno število pojavitev znaka na levi). Glede na specifike naloženih korpusov je trenutno možno zgolj iskanje po angleški različici oznak. Primeri:

Oblikoslovne lastnosti po shemi UD

Po besedni vrsti UD iščemo z vpisom iskane besedne vrste, po drugih oblikoslovnih lastnostih pa z opisom iskane oznake v obliki para atributa in njegove vrednosti, npr. Kategorija=Oznaka.

Posebni operatorji

Vse zgoraj navedene lastnosti pojavnice lahko med seboj tudi kombiniramo s posebnima operatorjema & (in) oz. | (ali):

Pri iskanju po besednih oblikah, lemah in oznakah lahko uporabimo tudi negacijo z vpisom operatorja ! pred lastnostjo, po kateri ne želimo iskati. Primeri:

Za iskanje po pojavnicah brez opredeljenih lastnosti uporabimo podčrtaj (_).

Iskanje po skladenjskih relacijah

Skladenjske relacije zapisujemo z operatorjema < in >, ki posnemata puščice, s kakršnimi so običajno ponazorjena skladenjska razmerja med besedami v odvisnostno razčlenjenih povedih (odvisnostnih drevesih).

Podčrtaj _ predstavlja katerokoli pojavnico, torej pojavnico, ki ji ne želimo opredeliti dodatnih lastnosti. Spodaj navajamo nekaj preprostih primerov iskanj po odvisnostnih skladenjskih strukturah:

Cilj poizvedbe je vedno pojavnica na skrajni levi, ki se v rezultatih tudi obarva zeleno. Čeprav iskalna pogoja delo > _ in _ < delo opisujeta isto skladenjsko strukturo, so prikazani rezultati drugačni.

Vrsto skladenjske relacije med pojavnicama lahko podrobneje opredelimo za relacijskim operatorjem (puščico), npr. _ <vrsta _ ali _ >vrsta _. Več možnih tipov relacije ločimo z operatorjem | (ali), kot rezultat iskanja pa so prikazane strukture, ki ustrezajo vsaj enemu izmed navedenih tipov.

Z nizanjem operatorjev lahko opredelimo več odvisnostnih relacij neke pojavnice naenkrat:

Hierarhijo odvisnostnih relacij opredelimo z oklepaji:

Za negacijo uporabljamo operator !, ki ga je mogoče uporabiti tako v kombinaciji z operatorjema < in > kot s posamičnimi vrstami relacij. Primeri:

Pri negaciji celotne relacije (npr. _ !>amod _) lahko med zadetki torej pričakujemo tudi pojavnice brez podrejenih elementov, medtem ko negacija vrste relacije (npr. _ >!amod _) pomeni, da mora imeti pojavnica vsaj en podrejeni element (ki pa ni amod).

Smer odvisnostne relacije lahko opredelimo z operatorjema @R and @L, ki določata, ali se skrajno desna pojavnica iskalnega pogoja pojavlja desno oz. levo od iskane pojavnice (tj. skrajno leve pojavnice iskalnega pogoja).

Združevanje iskalnih pogojev

Več ločenih iskalnih pogojev lahko združimo z operatorjem +. Združeni iskalni pogoj v obliki pogoj1 + pogoj2 + pogoj3 vrne vse povedi (drevesa), ki izpolnjujejo vse tri pogoje hkrati.

Univerzalni iskalni pogoji

Z operatorjem -> lahko opredelimo tudi pogoj, ki velja za vse iskane pojavnice (tj. pojavnice ali strukture na levi strani tega operatorja). Primeri: