Polish noun morphology

This is a very cool christmass update that consists of entire new version
of the Polish noun morphology and some minor bugfixes. The new description
of the morphology is generated automaticaly from some linguistic resources that 
have benn recently released free. This description covers (probably) all 
the Polish nouns.
This commit is contained in:
asl (at) mimuw.edu.pl
2010-12-18 01:08:27 +00:00
parent 3816623310
commit f653dec8c9
10 changed files with 30644 additions and 4012 deletions

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:../prelude
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
concrete CatPol of Cat = CommonX - [CAdv] ** open ResPol, Prelude, (R = ParamX) in {
@@ -116,11 +116,11 @@ concrete CatPol of Cat = CommonX - [CAdv] ** open ResPol, Prelude, (R = ParamX)
-- Substantives moreover have an inherent gender.
N = {s : SubstForm => Str; g : Gender};
N = CommNoun;
N2 = {s : SubstForm => Str; g : Gender} ** { c : Complement } ;
N2 = CommNoun2;
N3 = {s : SubstForm => Str; g : Gender} ** { c, c2 : Complement } ;
N3 = CommNoun3;-- ** { c, c2 : Complement } ;
PN = NounPhrase;

View File

@@ -2,260 +2,60 @@
-- Ilona Nowak, Wintersemester 2007/08
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
concrete LexiconPol of Lexicon = CatPol **
open ParadigmsPol, Prelude, StructuralPol, MorphoPol in {
concrete LexiconPol of Lexicon = CatPol, LexiconNounPol **
open Prelude, MorphoPol in {
flags
optimize =values ; coding =utf8 ;
lin
-- jury_N = mkIndeclinableNoun "jury" neuter ; -- for undeclinable noun
-- cocoa_N = mkIndeclinableNoun "kakao" neuter ; -- for undeclinable noun
-- menu_N = mkIndeclinableNoun "menu" neuter ; -- for undeclinable noun
art_N = nApteka "sztuka";
airplane_N = nSad "samolot";
apartment_N = nDanie "mieszkanie";
apple_N = nJablko "jabłko";
baby_N = nCiele "niemowlę";
bad_A = mkRegAdj "zły" "gorszy" "źle" "gorzej";
bank_N = nBrzeg "bank";
beautiful_A = mkRegAdj "piękny" "piękniejszy" "pięknie" "piękniej";
beer_N = nPiwo "piwo";
big_A = mkRegAdj "duży" "większy" "dużo" "więcej";
bike_N = nWal "rower";
bird_N = nPtak "ptak";
black_A = mkRegAdj "czarny" "czarniejszy" "czarno" "czarniej";
blue_A = mkCompAdj "niebieski" "niebiesko";
boat_N = nLodz "łódź";
book_N = nMatka "książka";
boot_N = nBat "but";
boss_N = nArab "szef";
boy_N = nChlopiec "chłopiec";
bread_N = nChleb "chleb";
broad_A = mkRegAdj "szeroki" "szerszy" "szeroko" "szerzej";
brother_N2 = mkN2 (nBrat "brat");
brown_A = mkCompAdj "brązowy" "brązowo";
butter_N = nTlo "masło";
camera_N = nSila "kamera";
cap_N = nMatka "czapka";
car_N = nOgrod "samochód";
carpet_N = nDym "dywan";
cat_N = nKot "kot";
ceiling_N = nSad "sufit";
chair_N = nTlo "krzesło";
cheese_N = nSer "ser";
child_N = nDziecko "dziecko";
correct_A = mkCompAdj "poprawny" "poprawnie";
church_N = nKosciol "kościół";
city_N = nGniazdo "miasto";
clean_A = mkRegAdj "czysty" "czystszy" "czysto" "czyściej";
clever_A = mkRegAdj "mądry" "mądrzejszy" "mądrze" "mądrzej";
coat_N = nWiersz "płaszcz";
cold_A = mkRegAdj "zimny" "zimniejszy" "zimno" "zimniej";
computer_N = nSer "komputer";
country_N = nGaj "kraj";
cousin_N = nFacet "kuzyn";
cow_N = nDoba "krowa";
dirty_A = mkRegAdj "brudny" "brudniejszy" "brudno" "brudniej";
doctor_N = nLekarz "lekarz";
dog_N = nPies "pies";
door_N = nDrzwi "drzwi";
dry_A = mkRegAdj "suchy" "suchszy" "sucho" "suszej";
dull_A = mkRegAdj "tępy" "tępszy" "tępo" "tępiej";
enemy_N = nWrog "wróg";
factory_N = nApteka "fabryka";
far_Adv = ss "daleko";
father_N2 = mkN2 (nOjciec "ojciec");
fish_N = nLiczba "ryba";
floor_N = nDroga "podłoga";
fridge_N = nMatka "lodówka";
friend_N = nPrzyjaciel "przyjaciel";
fruit_N = nGaj "owoc";
far_Adv = mkAdv "daleko";
full_A = mkRegAdj "pełny" "pełniejszy" "pełno" "pełniej";
garden_N = nOgrod "ogród";
girl_N = nLiczba "dziewczyna";
glove_N = nUlica "rękawica";
gold_N = nUdo "złoto";
good_A = mkRegAdj "dobry" "lepszy" "dobrze" "lepiej";
grammar_N = nApteka "gramatyka";
green_A = mkRegAdj "zielony" "zieleńszy" "zielono" "zieleniej";
harbour_N = nSad "port";
hat_N = nWiersz "kapelusz";
hill_N = nSerce "wzgórze";
horse_N = nKon "koń";
hot_A = mkRegAdj "gorący" "gorętszy" "gorąco" "goręcej";
house_N = nDom "dom";
important_A = mkRegAdj "ważny" "ważniejszy" "ważnie" "ważniej";
industry_N = nWal "przemysł";
iron_N = nPiwo "żelazo";
king_N = nKrol "król";
lake_N = nZero "jezioro";
lamp_N = nLiczba "lampa";
language_N = nKajak "język";
leather_N = nDoba "wątroba";
long_A = mkRegAdj "długi" "dłuższy" "długo" "dłużej";
love_N = nSiec "miłość";
man_N = nMezczyzna "mężczyzna";
meat_N = nPiwo "mięso";
milk_N = nWojsko "mleko";
moon_N = nWiersz "księżyc";
mother_N2 = mkN2 (nMatka "matka");
mountain_N = nSila "góra";
music_N = nApteka "muzyka";
narrow_A = mkRegAdj "wąski" "węższy" "wąsko" "węziej";
new_A = mkRegAdj "nowy" "nowszy" "nowo" "nowiej";
newspaper_N = nKobieta "gazeta";
oil_N = nGaj "olej";
old_A = mkRegAdj "stary" "starszy" "staro" "starzej";
paper_N = nWal "papier";
peace_N = nPokoj "pokój";
pen_N = nMlotek "ołówek";
planet_N = nKobieta "planeta";
-- paris_PN = mkPN (nKoc "Paryż");
plastic_N = nBrzeg "plastyk";
policeman_N = nFacet "policjant";
priest_N = nKsiadz "ksiądz";
queen_N = nKrolowa "królowa";
radio_N = nStudio "radio";
red_A = mkRegAdj "czerwony" "czerwieńszy" "czerwono" "czerwieniej";
religion_N = nLilia "religia";
restaurant_N = nLilia "restauracja";
river_N = nApteka "rzeka";
rock_N = nSila "skała";
roof_N = nDom "dach";
rubber_N = nMatka "gumka";
rule_N = nSila "reguła";
school_N = nSzkola "szkoła";
science_N = nApteka "nauka";
sea_N = nMorze "morze";
sheep_N = nOwca "owca";
ship_N = nStatek "statek";
shirt_N = nFala "koszula";
shoe_N = nBat "but";
shop_N = nDym "sklep";
short_A = mkRegAdj "krótki" "krótszy" "krótko" "krócej";
silver_N = nZebro "srebro";
sister_N = nSzkola "siostra";
small_A = mkRegAdj "mały" "mniejszy" "mało" "mniej";
snake_N = nWaz "wąż";
sock_N = nMatka "skarpetka";
star_N = nGwiazda "gwiazda";
steel_N = nKapiel "stal";
stone_N = nCien "kamień";
stove_N = nKoc "piec";
student_N = nFacet "student";
stupid_A = mkRegAdj "głupi" "głupszy" "głupio" "głupiej";
sun_N = nSerce "słońce";
table_N = nDol "stół";
teacher_N = nKowal "nauczyciel";
television_N = nLilia "telewizja";
thick_A = mkRegAdj "gruby" "grubszy" "grubo" "grubiej";
thin_A = mkRegAdj "cienki" "cieńszy" "cienko" "cieniej";
today_Adv = ss "dziś";
train_N = nBrzeg "pociąg";
tree_N = nPiwo "drzewo";
today_Adv = mkAdv "dziś";
ugly_A = mkRegAdj "brzydki" "brzydszy" "brzydko" "brzydziej";
university_N = nSad "uniwersytet";
village_N = nWies "wieś";
warm_A = mkRegAdj "ciepły" "cieplejszy" "ciepło" "cieplej";
war_N = nWojna "wojna";
water_N = nWoda "woda";
white_A = mkRegAdj "biały" "bielszy" "biało" "bielej";
window_N = nOkno "okno";
wine_N = nPiwo "wino";
woman_N = nKobieta "kobieta";
wood_N = nOkno "drewno";
yellow_A = mkRegAdj "żółty" "żółtszy" "żółto" "żółciej";
young_A = mkRegAdj "młody" "młodszy" "młodo" "młodziej";
now_Adv = ss "teraz";
already_Adv = ss "właśnie";
song_N = nMatka "piosenka";
number_N = nLiczba "liczba";
distance_N3 = mkN3 (nSiec "odległość") from_Prep to_Prep ;
now_Adv = mkAdv "teraz";
already_Adv = mkAdv "właśnie";
-- fun_AV = mkRegAdj "wesoły";
-- easy_A2V = mkRegAdj2 (mkRegAdj "łatwy") "dla" genitive ;
-- -- easy_A2V = mkRegAdj2 (mkRegAdj "łatwy") "dla" Gen ;
empty_A = mkRegAdj "pusty" "puściejszy" "pusto" "puściej";
married_A2 = addComplToAdj ( mkCompAdj "zaślubiony" ) "" Dat;
probable_AS = mkRegAdj "możliwy" "możliwszy" "możliwie" "możliwiej";
animal_N = nCiele "zwierzę";
ashes_N = nPopiol "popiół";
back_N = nDrzwi "plecy";
bark_N = nSila "kora";
belly_N = nMiech "brzuch";
bird_N = nPtak "ptak";
blood_N = nKonew "krew";
bone_N = nKosc "kość";
breast_N = nSiec "pierś";
cloud_N = nSila "chmura";
day_N = nDzien "dzień";
dust_N = nGaj "kurz";
ear_N = nUcho "ucho";
earth_N = nZiemia "ziemia";
egg_N = nJablko "jajko";
eye_N = nOko "oko";
fat_N = nKoc "tłuszsz";
feather_N = nLiczba "sprężyna";
fingernail_N = nPien "paznokieć";
fire_N = nPien "ogień";
fish_N = nLiczba "ryba";
flower_N = nKwiat "kwiat";
fog_N = nMgla "mgła";
foot_N = nDoba "stopa";
forest_N = nLas "las";
fruit_N = nGaj "owoc";
grass_N = nLiczba "trawa";
guts_N = nDrzwi "wnętrzności";
hair_N = nChleb "włos";
hand_N = nReka "ręka";
head_N = nDoba "głowa";
heart_N = nSerce "serce";
horn_N = nProg "róg";
husband_N = nMaz "mąż";
ice_N = nOgrod "lód";
knee_N = nPiwo "kolano";
lake_N = nZero "jezioro";
leaf_N = nLisc "liść";
leg_N = nDroga "noga";
liver_N = nDoba "wątroba";
louse_N = nWesz "wesz";
meat_N = nPiwo "mięso";
mountain_N = nSila "góra";
mouth_N = nDrzwi "usta";
name_N = nImie "imię";
neck_N = nLilia "szyja";
-- neck_N = nBrzeg "kark";
night_N = nNoc "noc";
nose_N = nChleb "nos";
person_N = nDoba "osoba";
question_N = nDanie "pytanie";
rain_N = nGaj "deszcz";
ready_A = mkCompAdj "gotowy";
reason_N = nOgrod "powód";
road_N = nDroga "droga";
root_N = nCien "korzeń";
rope_N = nLiczba "lina";
salt_N = nSul "sól";
sand_N = nStatek "piasek";
sea_N = nMorze "morze";
seed_N = nNasienie "nasienie";
skin_N = nSila "skóra";
sky_N = nNiebo "niebo";
smoke_N = nDym "dym";
snow_N = nBrzeg "śnieg";
star_N = nGwiazda "gwiazda";
stick_N = nKajak "patyk";
tail_N = nChleb "ogon";
tongue_N = nKajak "język";
tooth_N = nZab "ząb";
uncertain_A = mkCompAdj "niepewny" "niepewnie";
water_N = nWoda "woda";
wife_N = nLiczba "żona";
wind_N = nWiatr "wiatr";
wing_N = nTlo "skrzydło";
worm_N = nPtak "robak";
year_N = nRok "rok" "lata";
heavy_A = mkRegAdj "ciężki" "cięższy" "ciężko" "ciężej";
near_A = mkRegAdj "bliski" "bliższy" "blisko" "bliżej";
rotten_A = mkCompAdj "zepsuty";
@@ -265,123 +65,121 @@ lin
straight_A = mkRegAdj "prosty" "prostszy" "prosto" "prościej";
wet_A = mkCompAdj "mokry" "mokro";
wide_A = mkRegAdj "szeroki" "szerszy" "szeroko" "szerzej";
distance_N3 = mkN3 distance_N zGenPrep doPrep ;
mother_N2 = mkN2 mother_N;
brother_N2 = mkN2 brother_N;
father_N2 = mkN2 father_N;
right_Ord = { s = mkAtable (guess_model "prawy") };
left_Ord = { s = mkAtable (guess_model "lewy") };
rain_V0 = mkItVerb (mkMonoVerb "padać" conj98 Imperfective);
wonder_VQ = mkItVerb (mkReflVerb (mkV "zastanawiać" conj98 "zastanowić" conj77a));
fear_VS = mkReflVerb (mkMonoVerb "bać" conjbac Imperfective);
hope_VS = mkItVerb (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) "nadzieję");
know_VQ = mkMonoVerb "wiedzieć" conj103 Imperfective;
know_VS = mkMonoVerb "wiedzieć" conj103 Imperfective;
say_VS = mkV "mówić" conj72 "powiedzieć" conj103;
become_VA = (mkReflVerb (mkV "stawać" conj57 "stać" conj3)) ** {c={c=Nom;s="";adv=False}};
answer_V2S = mkV2 (mkV "odpowiadać" conj98 "odpowiedzieć" conj103) "" dative;
ask_V2Q = dirV2 (mkV "pytać" conj98 "spytać" conj98);
-- beg_V2V = mkV2 (mkV "prosić" conj83 Imperfective) "" "o" accusative accusative; -- no such verb in Polish; beg is V2S
paint_V2A = (mkV1 "malować" conj53 "pomalować" conj53) ** ({c={c=Nom;s="na";adv=True}; c2={c=AccNoPrep;s=""}});
rain_V0 = mkItVerb (mkMonoVerb "padać" conj98 Imperfective);
wonder_VQ = mkItVerb (mkReflVerb (mkV "zastanawiać" conj98 "zastanowić" conj77a));
fear_VS = mkReflVerb (mkMonoVerb "bać" conjbac Imperfective);
hope_VS = mkItVerb (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) "nadzieję");
know_VQ = mkMonoVerb "wiedzieć" conj103 Imperfective;
know_VS = mkMonoVerb "wiedzieć" conj103 Imperfective;
say_VS = mkV "mówić" conj72 "powiedzieć" conj103;
become_VA = (mkReflVerb (mkV "stawać" conj57 "stać" conj3)) ** {c={c=Nom;s="";adv=False}};
answer_V2S = mkV2 (mkV "odpowiadać" conj98 "odpowiedzieć" conj103) "" Dat;
ask_V2Q = dirV2 (mkV "pytać" conj98 "spytać" conj98);
-- beg_V2V = mkV2 (mkV "prosić" conj83 Imperfective) "" "o" Acc Acc; -- no such verb in Polish; beg is V2S
paint_V2A = (mkV1 "malować" conj53 "pomalować" conj53) ** ({c={c=Nom;s="na";adv=True}; c2={c=AccNoPrep;s=""}});
add_V3 = mkV3 (mkV "dodawać" conj57 "dodać" conj99) "" "do" accusative genitive;
sell_V3 = dirV3 (mkV "sprzedawać" conj57 "sprzedać" conj99);
send_V3 = mkV3 (mkV "wysyłać" conj98 "wysłać" conj67 ) "" "do" accusative genitive ;
talk_V3 = mkV3 (mkV "rozmawiać" conj98 "porozmawiać" conj98) "z" "о" instrumental locative;
give_V3 = mkV3 (mkV "dawać" conj57 "dać" conj99) "" "" Acc Dat;
fear_V2 = mkV2 (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) "" Gen;
hit_V2 = dirV2 (mkV "bić" conj51 "pobić" conj51);
cut_V2 = dirV2 (mkV "ciąć" conj23 "pociąć" conj23);
pull_V2 = dirV2 (mkV "ciągnąć" conj5 "pociągnąć" conj5);
wait_V2 = mkV2 (mkItVerb (mkV "czekać" conj98 "poczekać" conj98)) "na" accusative;
read_V2 = dirV2 (mkV "czytać" conj98 "przeczytać" conj98);
scratch_V2 = dirV2 (mkV "drapać" conj70 "podrapać" conj70);
split_V2 = dirV2 (mkV "dzielić" conj75 "podzielić" conj75);
stab_V2 = dirV2 (mkV "dźgać" conj98 "dźgnąć" conj5);
play_V2 = {-variants {-} mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "w" accusative;
-- mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "na" locative } ;
bite_V2 = dirV2 (mkV "gryźć" conj26a "ugryźć" conj26a);
lose_V2 = dirV2 (mkV "gubić" conj72 "zgubić" conj72);
eat_V2 = dirV2 (mkV "jeść" conj102 "zjeść" conj102);
put_V2 = dirV2 (mkV "kłaść" conj25 "położyć" conj88a);
love_V2 = dirV2 (mkMonoVerb "kochać" conj98 Imperfective);
buy_V2 = dirV2 (mkV "kupić" conj72 "kupować" conj53);
count_V2 = dirV2 (mkV "liczyć" conj87 "policzyć" conj87);
like_V2 = dirV2 (mkV "lubić" conj72em "polubić" conj72);
break_V2 = dirV2 (mkV "łamać" conj70 "złamać" conj70);
wash_V2 = dirV2 (mkV "myć" conj51 "umyć" conj51);
hate_V2 = dirV2 (mkV "nienawidzić" conj80 "znienwidzić" conj80);
watch_V2 = dirV2 (mkV "oglądać" conj98 "obejrzeć" conj94a);
leave_V2 = dirV2 (mkV "opuszczać" conj98 "opuścić" conj84);
open_V2 = dirV2 (mkV "otwierać" conj98 "otworzyć" conj88);
push_V2 = dirV2 (mkV "pchać" conj98 "pchnąć" conj5);
drink_V2 = dirV2 (mkV "pić" conj51 "wypić" conj51);
write_V2 = dirV2 (mkV "pisać" conj60 "napisać" conj60);
hunt_V2 = mkV2 (mkItVerb (mkMonoVerb "polować" conj53 Imperfective)) "na" accusative;
do_V2 = dirV2 (mkV "robić" conj77 "zrobić" conj77);
speak_V2 = mkV2 (mkMonoVerb "rozmawiać" conj98 Imperfective) "z" instrumental;
understand_V2 = dirV2 (mkV "rozumieć" conj101 "zrozumieć" conj101);
throw_V2 = dirV2 (mkV "rzucać" conj98 "rzucić" conj81);
listen_V2 = dirV2 (mkV "słuchać" conj98 "posłuchać" conj98);
hear_V2 = dirV2 (mkV "słyszeć" conj94 "usłyszeć" conj94);
suck_V2 = dirV2 (mkMonoVerb "ssać" conj65 Imperfective);
seek_V2 = dirV2 (mkMonoVerb "szukać" conj98 Imperfective);
wipe_V2 = dirV2 (mkV "wycierać" conj98 "trzeć" conj43); -- strange?!?!
squeeze_V2 = dirV2 (mkV "ściskać" conj98 "ścisnąć" conj6);
rub_V2 = dirV2 (mkMonoVerb "trzeć" conj43 Imperfective);
hold_V2 = dirV2 (mkMonoVerb "trzymać" conj98 Imperfective);
learn_V2 = dirV2 (mkReflVerb (mkV "uczyć" conj87 "nauczyć" conj87));
teach_V2 = dirV2 (mkV "uczyć" conj87 "nauczyć" conj87);
fight_V2 = mkV2 (mkItVerb (mkMonoVerb "walczyć" conj87 Imperfective)) "z" instrumental;
tie_V2 = dirV2 (mkMonoVerb "wiązać" conj59 Imperfective);
see_V2 = dirV2 (mkV "widzieć" conj92 "zobaczyć" conj87);
know_V2 = dirV2 (mkMonoVerb "wiedzieć" conj103 Imperfective);
switch8on_V2 = dirV2 (mkV "włączać" conj98 "włączyć" conj87);
win_V2 = dirV2 (mkV "wygrywać" conj98 "wygrać" conj98);
switch8off_V2 = dirV2 (mkV "wyłączać" conj98 "wyłączyć" conj87);
kill_V2 = dirV2 (mkV "zabijać" conj98 "zabić" conj51);
close_V2 = dirV2 (mkV "zamknąć" conj5 "zamykać" conj98);
forget_V2 = dirV2 (mkV "zapominać" conj98 "zapomnieć" conj91);
find_V2 = dirV2 (mkV "znaleźć" conj40 "znajdywać" conj54);
run_V = mkV1 "biec" conj15 "pobiec" conj15;
smell_V = mkV1 "czuć" conj51 "poczuć" conj51;
blow_V = mkV1 "dmuchać" conj98 "dmuchnąć" conj5;
float_V = mkV1 "dryfować" conj53 "zdryfować" conj53;
play_V = mkV1 "grać" conj98 "zagrać" conj98;
go_V = mkV1 "iść" conj41a "pójść" conj42;
lie_V = mkV1 "kłamać" conj70 "skłamać" conj70;
dig_V = mkV1 "wykopywać" conj54 "wykopać" conj70; --
fly_V = mkMonoVerb "latać" conj98 Imperfective;
think_V = mkV1 "myśleć" conj90 "pomyśleć" conj90;
turn_V = mkReflVerb (mkV1 "obracać" conj98 "obrócić" conj81);
breathe_V = mkV1 "oddychać" conj98 "odetchnąć" conj5;
burn_V = mkMonoVerb "palić" conj75 Imperfective;
spit_V = mkV1 "pluć" conj51 "plunąć" conj4;
flow_V = mkMonoVerb "płynąć" conj4 Imperfective;
swim_V = mkMonoVerb "pływać" conj98 Imperfective;
travel_V = mkMonoVerb "podróżować" conj53 Imperfective;
come_V = mkV1 "przyjść" conj41 "przychodzić" conj80;
swell_V = mkV1 "puchnąć" conj7 "spuchnąć" conj7;
vomit_V = mkV1 "rzygać" conj98 "rzygnąć" conj5;
sit_V = mkMonoVerb "siedzieć" conj92 Imperfective;
jump_V = mkV1 "skakać" conj61 "skoczyć" conj87;
walk_V = mkV1 "spacerować" conj53 "pospacerować" conj53;
sleep_V = mkMonoVerb "spać" conj96 Imperfective;
fall_V = mkV1 "spaść" conj17 "spadać" conj98;
laugh_V = mkReflVerb (mkV1 "śmiać" conj52 "roześmiać" conj52);
sing_V = mkV1 "śpiewać" conj98 "zaśpiewać" conj98;
stand_V = mkMonoVerb "stać" conj95 Imperfective;
sew_V = mkV1 "szyć" conj51 "uszyć" conj51;
die_V = mkV1 "umierać" conj98 "umrzeć" conj43;
freeze_V = mkV1 "zamarzać" conj98 "zamarznąć" conj7;
stop_V = mkV1 "zatrzymywać" conj54 "zatrzymać" conj98;
live_V = mkV1 "żyć" conj51 "pożyć" conj51;
john_PN = { nom = "Jan"; voc="Janie"; dep=table{GenPrep|GenNoPrep|AccPrep|AccNoPrep=>"Jana"; DatPrep|DatNoPrep=>"Janowi";
InstrC=>"Janem"; LocPrep=>"Janie"};
gn=MascPersSg; p=P3};
paris_PN = { nom = "Paryż"; voc="Paryżu"; dep=table{GenPrep|GenNoPrep=>"Paryża"; AccPrep|AccNoPrep=>"Paryż";
DatPrep|DatNoPrep=>"Paryżowi"; InstrC=>"Paryżem"; LocPrep=>"Paryżu"};
gn=MascPersSg; p=P3};
add_V3 = mkV3 (mkV "dodawać" conj57 "dodać" conj99) "" "do" Acc Gen;
sell_V3 = dirV3 (mkV "sprzedawać" conj57 "sprzedać" conj99);
send_V3 = mkV3 (mkV "wysyłać" conj98 "wysłać" conj67 ) "" "do" Acc Gen ;
talk_V3 = mkV3 (mkV "rozmawiać" conj98 "porozmawiać" conj98) "z" "о" Instr Loc;
give_V3 = mkV3 (mkV "dawać" conj57 "dać" conj99) "" "" Acc Dat;
fear_V2 = mkV2 (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) "" Gen;
hit_V2 = dirV2 (mkV "bić" conj51 "pobić" conj51);
cut_V2 = dirV2 (mkV "ciąć" conj23 "pociąć" conj23);
pull_V2 = dirV2 (mkV "ciągnąć" conj5 "pociągnąć" conj5);
wait_V2 = mkV2 (mkItVerb (mkV "czekać" conj98 "poczekać" conj98)) "na" Acc;
read_V2 = dirV2 (mkV "czytać" conj98 "przeczytać" conj98);
scratch_V2 = dirV2 (mkV "drapać" conj70 "podrapać" conj70);
split_V2 = dirV2 (mkV "dzielić" conj75 "podzielić" conj75);
stab_V2 = dirV2 (mkV "dźgać" conj98 "dźgnąć" conj5);
play_V2 = {-variants {-} mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "w" Acc;
-- mkV2 (mkItVerb (mkV "grać" conj98 "zagrać" conj98)) "na" Loc } ;
bite_V2 = dirV2 (mkV "gryźć" conj26a "ugryźć" conj26a);
lose_V2 = dirV2 (mkV "gubić" conj72 "zgubić" conj72);
eat_V2 = dirV2 (mkV "jeść" conj102 "zjeść" conj102);
put_V2 = dirV2 (mkV "kłaść" conj25 "położyć" conj88a);
love_V2 = dirV2 (mkMonoVerb "kochać" conj98 Imperfective);
buy_V2 = dirV2 (mkV "kupić" conj72 "kupować" conj53);
count_V2 = dirV2 (mkV "liczyć" conj87 "policzyć" conj87);
like_V2 = dirV2 (mkV "lubić" conj72em "polubić" conj72);
break_V2 = dirV2 (mkV "łamać" conj70 "złamać" conj70);
wash_V2 = dirV2 (mkV "myć" conj51 "umyć" conj51);
hate_V2 = dirV2 (mkV "nienawidzić" conj80 "znienwidzić" conj80);
watch_V2 = dirV2 (mkV "oglądać" conj98 "obejrzeć" conj94a);
leave_V2 = dirV2 (mkV "opuszczać" conj98 "opuścić" conj84);
open_V2 = dirV2 (mkV "otwierać" conj98 "otworzyć" conj88);
push_V2 = dirV2 (mkV "pchać" conj98 "pchnąć" conj5);
drink_V2 = dirV2 (mkV "pić" conj51 "wypić" conj51);
write_V2 = dirV2 (mkV "pisać" conj60 "napisać" conj60);
hunt_V2 = mkV2 (mkItVerb (mkMonoVerb "polować" conj53 Imperfective)) "na" Acc;
do_V2 = dirV2 (mkV "robić" conj77 "zrobić" conj77);
speak_V2 = mkV2 (mkMonoVerb "rozmawiać" conj98 Imperfective) "z" Instr;
understand_V2 = dirV2 (mkV "rozumieć" conj101 "zrozumieć" conj101);
throw_V2 = dirV2 (mkV "rzucać" conj98 "rzucić" conj81);
listen_V2 = dirV2 (mkV "słuchać" conj98 "posłuchać" conj98);
hear_V2 = dirV2 (mkV "słyszeć" conj94 "usłyszeć" conj94);
suck_V2 = dirV2 (mkMonoVerb "ssać" conj65 Imperfective);
seek_V2 = dirV2 (mkMonoVerb "szukać" conj98 Imperfective);
wipe_V2 = dirV2 (mkV "wycierać" conj98 "trzeć" conj43); -- strange?!?!
squeeze_V2 = dirV2 (mkV "ściskać" conj98 "ścisnąć" conj6);
rub_V2 = dirV2 (mkMonoVerb "trzeć" conj43 Imperfective);
hold_V2 = dirV2 (mkMonoVerb "trzymać" conj98 Imperfective);
learn_V2 = dirV2 (mkReflVerb (mkV "uczyć" conj87 "nauczyć" conj87));
teach_V2 = dirV2 (mkV "uczyć" conj87 "nauczyć" conj87);
fight_V2 = mkV2 (mkItVerb (mkMonoVerb "walczyć" conj87 Imperfective)) "z" Instr;
tie_V2 = dirV2 (mkMonoVerb "wiązać" conj59 Imperfective);
see_V2 = dirV2 (mkV "widzieć" conj92 "zobaczyć" conj87);
know_V2 = dirV2 (mkMonoVerb "wiedzieć" conj103 Imperfective);
switch8on_V2 = dirV2 (mkV "włączać" conj98 "włączyć" conj87);
win_V2 = dirV2 (mkV "wygrywać" conj98 "wygrać" conj98);
switch8off_V2 = dirV2 (mkV "wyłączać" conj98 "wyłączyć" conj87);
kill_V2 = dirV2 (mkV "zabijać" conj98 "zabić" conj51);
close_V2 = dirV2 (mkV "zamknąć" conj5 "zamykać" conj98);
forget_V2 = dirV2 (mkV "zapominać" conj98 "zapomnieć" conj91);
find_V2 = dirV2 (mkV "znaleźć" conj40 "znajdywać" conj54);
run_V = mkV1 "biec" conj15 "pobiec" conj15;
smell_V = mkV1 "czuć" conj51 "poczuć" conj51;
blow_V = mkV1 "dmuchać" conj98 "dmuchnąć" conj5;
float_V = mkV1 "dryfować" conj53 "zdryfować" conj53;
play_V = mkV1 "grać" conj98 "zagrać" conj98;
go_V = mkV1 "iść" conj41a "pójść" conj42;
lie_V = mkV1 "kłamać" conj70 "skłamać" conj70;
dig_V = mkV1 "wykopywać" conj54 "wykopać" conj70; --
fly_V = mkMonoVerb "latać" conj98 Imperfective;
think_V = mkV1 "myśleć" conj90 "pomyśleć" conj90;
turn_V = mkReflVerb (mkV1 "obracać" conj98 "obrócić" conj81);
breathe_V = mkV1 "oddychać" conj98 "odetchnąć" conj5;
burn_V = mkMonoVerb "palić" conj75 Imperfective;
spit_V = mkV1 "pluć" conj51 "plunąć" conj4;
flow_V = mkMonoVerb "płynąć" conj4 Imperfective;
swim_V = mkMonoVerb "pływać" conj98 Imperfective;
travel_V = mkMonoVerb "podróżować" conj53 Imperfective;
come_V = mkV1 "przyjść" conj41 "przychodzić" conj80;
swell_V = mkV1 "puchnąć" conj7 "spuchnąć" conj7;
vomit_V = mkV1 "rzygać" conj98 "rzygnąć" conj5;
sit_V = mkMonoVerb "siedzieć" conj92 Imperfective;
jump_V = mkV1 "skakać" conj61 "skoczyć" conj87;
walk_V = mkV1 "spacerować" conj53 "pospacerować" conj53;
sleep_V = mkMonoVerb "spać" conj96 Imperfective;
fall_V = mkV1 "spaść" conj17 "spadać" conj98;
laugh_V = mkReflVerb (mkV1 "śmiać" conj52 "roześmiać" conj52);
sing_V = mkV1 "śpiewać" conj98 "zaśpiewać" conj98;
stand_V = mkMonoVerb "stać" conj95 Imperfective;
sew_V = mkV1 "szyć" conj51 "uszyć" conj51;
die_V = mkV1 "umierać" conj98 "umrzeć" conj43;
freeze_V = mkV1 "zamarzać" conj98 "zamarznąć" conj7;
stop_V = mkV1 "zatrzymywać" conj54 "zatrzymać" conj98;
live_V = mkV1 "żyć" conj51 "pożyć" conj51;
} ;

View File

@@ -5,26 +5,56 @@
--
-- Ilona Nowak, Wintersemester 2007/08
--
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
--
-- This resource morphology contains definitions
-- of the lexical entries needed in the resource syntax.
-- It moreover contains copies of the most usual inflectional patterns.
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
-- I use the parameter types and word classes defined for morphology.
-- Description of the Polish morphology
resource MorphoPol =
ResPol,
VerbMorphoPol,
PronounMorphoPol,
AdjectiveMorphoPol,
NounMorphoPol ** open Prelude, (Predef=Predef) in {
NounMorphoPol ** {
flags coding=utf8;
oper
mkAdv : Str -> { s :Str };
mkAdv x = { s = x };
-- Nouns used as functions need a preposition. The most common is with Genitive.
mkN2 : CommNoun -> CommNoun2 ;
mkN2 n = mkFun n nullPrep ;
mkFun : CommNoun -> Complement -> CommNoun2;
mkFun f p = { s = f.s; g = f.g; c = { c = p.c; s=p.s}; lock_N2=<> } ;
mkN3 : CommNoun -> Complement -> Complement -> CommNoun3;
mkN3 f p r = { s = f.s; g = f.g; c = {s=p.s; c=p.c} ; c2 = {s=r.s; c=r.c}; lock_N3=<>};
-- Prepositions
-- The commonest cases are functions with Genitive.
nullPrep : Complement = mkPrep [] Gen; --{s = []; c= GenNoPrep; lock_Prep=<>};
nadPrep : Complement = mkPrep "nad" Instr;
zGenPrep : Complement = mkPrep "z" Gen;
zInstrPrep : Complement = mkPrep "z" Instr;
doPrep : Complement = mkPrep "do" Gen;
naAccPrep : Complement = mkPrep "na" Acc;
-- A preposition is formed from a string and a case.
mkPrep : Str -> Case -> Complement;
mkPrep s c = mkCompl s c ** {lock_Prep = <>};
-- definitions for structural objects
oper
wszyscy : NounPhrase = {
nom = "wszyscy" ;
voc = "wszyscy" ;

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:../prelude
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol in {

View File

@@ -1,6 +1,6 @@
--# -path=.:../abstract:../common:../prelude
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
concrete NumeralPol of Numeral = CatPol ** open ResPol,Prelude, AdjectiveMorphoPol in {
@@ -364,7 +364,11 @@ n9 = { unit = table {
pot01 = {
unit = table {
(<(Nom|VocP),Masc _>|<Acc,Masc Inanimate>) => "jeden";
<(Nom|Acc|VocP),Neut|NeutGr|Plur> => "jedno";
<(Nom|Acc|VocP),Neut|NeutGr> => "jedno";
<(Nom|Acc|VocP),Plur> => "jedne";
<(Gen|Loc),Plur> => "jednych";
<Dat,Plur> => "jednym";
<Instr,Plur> => "jednymi";
<(Nom|VocP),Fem> => "jedna";
<(Gen|Dat|Loc),Fem> => "jednej";
<(Acc|Instr),Fem> => "jedną";

View File

@@ -490,135 +490,6 @@
nDom = \s -> ch_End_dom_MI s ** {lock_N = <>};
-- Nominative, Genetive, Dative, Accusative, Instrumental, Locative and Vocative;
-- corresponding seven plural forms and the gender.
mkN : (nomSg, genSg, datSg, accSg, instrSg, locSg, vocSg,
nomPl, genPl, datPl, accPl, instrPl, locPl, vocPl: Str) -> Gender -> N;
mkN = \nomSg, genSg, datSg, accSg, instrSg, locSg, vocSg,
nomPl, genPl, datPl, accPl, instrPl, locPl, vocPl, g ->
{
s = table {
SF Sg Nom => nomSg;
SF Sg Gen => genSg;
SF Sg Dat => datSg;
SF Sg Acc => accSg;
SF Sg Instr => instrSg;
SF Sg Loc => locSg;
SF Sg VocP => vocSg;
SF Pl Nom => nomPl;
SF Pl Gen => genPl;
SF Pl Dat => datPl;
SF Pl Acc => accPl;
SF Pl Instr => instrPl;
SF Pl Loc => locPl;
SF Pl VocP => vocPl
};
g = g;
} ** {lock_N = <> } ;
-- Nouns used as functions need a preposition. The most common is with Genitive.
mkN2 : N -> N2 ;
mkN2 n = mkFun n nullPrep ;
mkFun : N -> Prep -> N2;
mkFun f p = { s = f.s; g = f.g; c = { c = p.c; s=p.s}; lock_N2=<> } ;
-- The commonest cases are functions with Genitive.
nullPrep : Prep = {s = []; c= GenNoPrep; lock_Prep=<>};
mkN3 : N -> Prep -> Prep -> N3;
mkN3 f p r = { s = f.s; g = f.g; c = {s=p.s; c=p.c} ; c2 = {s=r.s; c=r.c}; lock_N3=<>};
--6 Preposition
-- A preposition is formed from a string and a case.
mkPrep : Str -> Case -> Prep;
mkPrep s c = mkCompl s c ** {lock_Prep = <>};
-- Often just a case with the empty string is enough.
-- the directly following noun without a preposition
genPrep : Prep;
genPrep = mkPrep [] genitive;
datPrep : Prep;
datPrep = mkPrep [] dative;
accPrep : Prep;
accPrep = mkPrep [] accusative;
instrPrep : Prep;
instrPrep = mkPrep [] instrumental;
-- A great many of common prepositions are always with the genitive.
bez_Prep : Prep; --without
bez_Prep = mkPrep "bez" genitive;
dla_Prep : Prep; --for
dla_Prep = mkPrep "dla" genitive;
do_Prep : Prep; --to
do_Prep = mkPrep "do" genitive;
dookola_Prep : Prep; --(a)round
dookola_Prep = mkPrep "dookoła" genitive;
kolo_Prep : Prep; --near
kolo_Prep = mkPrep "koło" genitive;
obok_Prep : Prep; --beside, next to
obok_Prep = mkPrep "obok" genitive;
od_Prep : Prep; --from
od_Prep = mkPrep "od" genitive;
oprocz_Prep : Prep; --out of
oprocz_Prep = mkPrep "oprócz" genitive;
podczas_Prep : Prep; --during
podczas_Prep = mkPrep "podczas" genitive;
mimo_Prep : Prep; -- despite
mimo_Prep = mkPrep "mimo" genitive;
spod_Prep : Prep; --under
spod_Prep = mkPrep "spod" genitive;
u_Prep : Prep; --by, with (I was by Peter last sunday.)
u_Prep = mkPrep "u" genitive;
wzdluz_Prep : Prep; --along
wzdluz_Prep = mkPrep "wzdłuż" genitive;
z_Prep : Prep; --from (I come from Italy.), of/ from (The ring is made of silver.)
z_Prep = mkPrep "z" genitive;
zamiast_Prep : Prep; --instead of
zamiast_Prep = mkPrep "zamiast" genitive;
znad_Prep : Prep; --over, above
znad_Prep = mkPrep "znad" genitive;
zza_Prep : Prep; --behind
zza_Prep = mkPrep "zza" genitive;
-- Prepositions always with the dative.
dzieki_Prep : Prep; -- thanks for
dzieki_Prep = mkPrep "dzięki" dative;
przeciw_Prep : Prep; -- against
przeciw_Prep = mkPrep "przeciw" dative;
};

View File

@@ -3,7 +3,7 @@
-- Ilona Nowak Wintersemester 2007/08
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
-- 1 Polish auxiliary operations.
@@ -31,8 +31,8 @@
param
Gender = Masc Animacy | Fem | NeutGr | Neut | Plur ;
Animacy = Animate | Inanimate | Personal ;
Case = Nom | Gen | Dat | Acc | Instr | Loc | VocP ;
Animacy = Animate | Inanimate | Personal ;
Case = Nom | Gen | Dat | Acc | Instr | Loc | VocP ;
-- Nouns are declined according to number and case.
-- For the sake of shorter description, these parameters are
@@ -42,7 +42,10 @@
-- oper used in NounMorphoPol.gf
oper CommNoun = {s : SubstForm => Str; g : Gender};
-- type of N, _not_ CN
oper CommNoun = {s : SubstForm => Str; g : Gender};
oper CommNoun2 = CommNoun ** { c : Complement } ;
oper CommNoun3 = CommNoun2 ** { c2 : Complement } ;
--2 Verbs

View File

@@ -2,19 +2,19 @@
-- Ilona Nowak Wintersemester 2007/08
-- Adam Slaski, 2009 <adam.slaski@gmail.com>
-- Adam Slaski, 2009, 2010 <adam.slaski@gmail.com>
-- In Polish language they aren't determiners like in english or german.
concrete StructuralPol of Structural = CatPol **
open ResPol, MorphoPol, ParadigmsPol, Prelude in {
open ResPol, MorphoPol, Prelude in {
flags optimize=all; coding=utf8;
lin
above_Prep = mkPrep "nad" Instr;
above_Prep = nadPrep;
after_Prep = mkPrep "po" Loc;
all_Predet = { s=wszystek; np=wszystko; adj=True };
@@ -34,7 +34,7 @@ lin
by8means_Prep = mkPrep "przez" Acc;
can8know_VV = mkItVerb (mkMonoVerb "umieć" conj101 Imperfective);
can_VV = mkItVerb (mkMonoVerb "móc" conj27 Imperfective);
during_Prep = mkPrep "podczas" Gen; -- def. in ParadigmsPol
during_Prep = mkPrep "podczas" Gen;
either7or_DConj = {s1="albo"; s2="albo"; sent1="albo"; sent2=[", albo"]};
every_Det = kazdyDet;
everybody_NP = wszyscy ** {lock_NP=<>};
@@ -43,7 +43,7 @@ lin
except_Prep = mkPrep "z wyjątkiem" Acc;
few_Det = pareDet;
for_Prep = mkPrep "dla" Gen;
from_Prep = mkPrep "z" Gen; -- def. in ParadigmsPol
from_Prep = zGenPrep;
have_V2 = dirV2 (mkMonoVerb "mieć" conj100 Imperfective);
he_Pron = pronOn;
here_Adv = ss "tutaj";
@@ -94,7 +94,7 @@ lin
they_Pron = pronOni;-- pronOneFem; pronOneNeut};
this_Quant = demPronTen "ten";
through_Prep = mkPrep "przez" Acc;
to_Prep = mkPrep "do" Gen; -- def. in ParadigmsPol.gf
to_Prep = doPrep;
too_AdA = ss "za";
under_Prep = mkPrep "pod" Instr; -- with Acc too
very_AdA = ss "bardzo";
@@ -110,7 +110,7 @@ lin
whoSg_IP = kto;
why_IAdv = ss "dlaczego";
with_Prep = mkPrep "z" Instr;
without_Prep = mkPrep "bez" Gen; -- def. in ParadigmsPol.gf
without_Prep = mkPrep "bez" Gen;
youPl_Pron = pronWy;
yes_Utt = ss "tak";
youSg_Pron = pronTy;

View File

@@ -13,7 +13,7 @@ resource VerbMorphoPol = ResPol ** open Prelude, CatPol, (Predef=Predef), (Adj=A
-- According to "Czasownik polski. Odmiana. Slownik." by Zygmunt Saloni 2001
-- there are 106 schemes of verb inflection in Polish. I implement only
-- these, which are necessery. Numeration as in mentioned book.
-- these, which are necessery. Numeration as in the book mentioned above.
-- opers for the building of the whole paradigm of a verb
-- in all tenses