Files
gf-rgl/src/polish/LexiconNounPol.gf
T
aarnerantaandClaude Opus 4.8 8c4cd58bd1 polish: complete the RGL enough to build an application grammar
Adding Polish to informath (grammars/next) exposed a set of gaps. Unlike
Czech, StructuralPol was already complete; what was missing was a handful
of lins, a way to govern the nominative, and some outright mistakes.

Missing lins, all reached as qualified Grammar.X by the application's
functors and so not shimmable from the application side:

  AdjectivePol  AdvAP
  SentencePol   SSubjS
  IdiomPol      ImpP3
  StructuralPol that_Subj
  MarkupPol     new module (Markup is not part of the RGL build script,
                so it is compiled on demand, as MarkupCze is)
  ParadigmsPol  mkAdv (every other ParadigmsX has it; the application
                interfaces reach it as Paradigms.mkAdv)

ImpP3 has no third-person imperative to use, so it takes the standard
"niech" periphrasis. The copula takes the future ("niech x będzie grupą")
and every other verb the present ("niech x należy do A"): być is the only
Polish verb with a synthetic future, and imienne marks exactly the copular
VPs.

NomPrep: ComplCase had no nominative at all, so "jako", "niż" and
"zdefiniowany jako" -- all of which govern the nominative -- came out
locative ("mniejszy niż liczbie"). mkCompl now maps Nom to a new NomPrep,
and the dep tables of the pronouns, nounPN, mkPN and the structural NPs
cover it. LexiconNounPol is marked DO NOT EDIT, but paris_PN and john_PN
inline their own dep tables and so had to be extended too.

Two corrections:

  VerbPol.CompCN used the nominative for a predicative noun, giving
  "x jest grupa"; Polish uses the instrumental, as CompNP right below it
  already does.

  ExtendPol.ExistsNP inherited ExistNP from ExtendFunctor, giving
  "jest macierz". Polish distinguishes the two: "there exists" is istnieć,
  which is what mathematical prose uses.

ParadigmsPol.guess_paradigm_basic never matched -ość, the productive
feminine abstract suffix, so sprzeczność took a masculine declension
(*sprzeczności/a, *sprzecznościowi) despite being tagged feminine. It now
routes to the kość paradigm.

Also documents, without changing, why the 2-string mkN throws its genitive
away: guess_paradigm's 2-string table is unsound (its first branch matches
every noun in -a, and its branches disagree about whether mkNTable* takes
the nominative or the bare stem), so passing sggen to it turns
"liczba"/"liczby" into *liczbaa. The 1-string guesser is the sound path
until that table is repaired.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 19:22:24 +02:00

222 lines
12 KiB
Plaintext

--# -path=.:../prelude:../common
--# -coding=utf8
-- This file is automaticaly generated by generate_lexicon.
-- That program copies part of its source code to the output,
-- therefore this file is covered by LGPLv3 as well as the
-- program ifself.
-- This file may be also affected by license of the program's input.
-- For details see http://www.mimuw.edu.pl/~asl/tabeleusz/ .
-- Be careful not to violate the copyright low!
-- DO NOT EDIT THIS FILE
incomplete concrete LexiconNounPol of Lexicon = CatPol **
open NounMorphoPol, ResPol in {
flags coding=utf8;
lin airplane_N = mkN (mkNTable0231 "samolot") (Masc Inanimate) ;
lin animal_N = mkN (mkNTable0379 "zwierzę") (NeutGr) ;
lin apartment_N = mkN (mkNTable0402 "mieszkanie") (Neut) ;
lin apple_N = mkN (mkNTable0199 "jabłko") (Neut) ;
lin art_N = mkN (mkNTable0027 "sztuka") (Fem) ;
lin ashes_N = mkN (mkNTable0939 "popiół") (Masc Inanimate) ;
lin baby_N = mkN (mkNTable0379 "niemowlę") (NeutGr) ;
lin back_N = mkN (mkNTable0050 "plecy") (Plur) ;
lin bank_N = mkN (mkNTable0171 "bank") (Masc Inanimate) ;
lin bark_N = mkN (mkNTable0099 "kora") (Fem) ;
lin beer_N = mkN (mkNTable0488 "piwo") (Neut) ;
lin belly_N = mkN (mkNTable0570 "brzuch") (Masc Inanimate) ;
lin bike_N = mkN (mkNTable0117 "rower") (Masc Inanimate) ;
lin bird_N = mkN (mkNTable0173 "ptak") (Masc Animate) ;
lin blood_N = mkN (mkNTable0801 "krew") (Fem) ;
lin boat_N = mkN (mkNTable0745 "łódź") (Fem) ;
lin bone_N = mkN (mkNTable0814 "kość") (Fem) ;
lin book_N = mkN (mkNTable0006 "książka") (Fem) ;
lin boot_N = mkN (mkNTable0502 "but") (Masc Inanimate) ;
lin boss_N = mkN (mkNTable0002 "szef") (Masc Personal) ;
lin boy_N = mkN (mkNTable0640 "chłopiec") (Masc Personal) ;
lin bread_N = mkN (mkNTable0131 "chleb") (Masc Inanimate) ;
lin breast_N = mkN (mkNTable0887 "pierś") (Fem) ;
lin butter_N = mkN (mkNTable0299 "masło") (Neut) ;
lin camera_N = mkN (mkNTable0099 "kamera") (Fem) ;
lin cap_N = mkN (mkNTable0006 "czapka") (Fem) ;
lin car_N = mkN (mkNTable0610 "samochód") (Masc Inanimate) ;
lin carpet_N = mkN (mkNTable0096 "dywan") (Masc Inanimate) ;
lin cat_N = mkN (mkNTable0659 "kot") (Masc Animate) ;
lin ceiling_N = mkN (mkNTable0231 "sufit") (Masc Inanimate) ;
lin chair_N = mkN (mkNTable0299 "krzesło") (Neut) ;
lin cheese_N = mkN (mkNTable0181 "ser") (Masc Inanimate) ;
lin child_N = mkN (mkNTable0703 "dziecko") (NeutGr) ;
lin church_N = mkN (mkNTable0813 "kościół") (Masc Inanimate) ;
lin city_N = mkN (mkNTable0461 "miasto") (Neut) ;
lin cloud_N = mkN (mkNTable0099 "chmura") (Fem) ;
lin coat_N = mkN (mkNTable0176 "płaszcz") (Masc Inanimate) ;
lin computer_N = mkN (mkNTable0181 "komputer") (Masc Inanimate) ;
lin country_N = mkN (mkNTable0129 "kraj") (Masc Inanimate) ;
lin cousin_N = mkN (mkNTable0002 "kuzyn") (Masc Personal) ;
lin cow_N = mkN (mkNTable0520 "krowa") (Fem) ;
lin day_N = mkN (mkNTable0707 "dzień") (Masc Inanimate) ;
lin doctor_N = mkN (mkNTable0503 "lekarz") (Masc Personal) ;
lin dog_N = mkN (mkNTable0934 "pies") (Masc Animate) ;
lin door_N = mkN (mkNTable0516 "drzwi") (Plur) ;
lin dust_N = mkN (mkNTable0129 "kurz") (Masc Inanimate) ;
lin ear_N = mkN (mkNTable1007 "ucho") (NeutGr) ;
lin earth_N = mkN (mkNTable0490 "ziemia") (Fem) ;
lin egg_N = mkN (mkNTable0199 "jajko") (Neut) ;
lin enemy_N = mkN (mkNTable0193 "wróg") (Masc Personal) ;
lin eye_N = mkN (mkNTable0898 "oko") (NeutGr) ;
lin factory_N = mkN (mkNTable0027 "fabryka") (Fem) ;
lin fat_N = mkN (mkNTable0129 "tłuszcz") (Masc Inanimate) ;
lin feather_N = mkN (mkNTable0021 "sprężyna") (Fem) ;
lin fingernail_N = mkN (mkNTable0927 "paznokieć") (Masc Inanimate) ;
lin fire_N = mkN (mkNTable0563 "ogień") (Masc Inanimate) ;
lin fish_N = mkN (mkNTable0021 "ryba") (Fem) ;
lin floor_N = mkN (mkNTable0689 "podłoga") (Fem) ;
lin flower_N = mkN (mkNTable0559 "kwiat") (Masc Inanimate) ;
lin fog_N = mkN (mkNTable0632 "mgła") (Fem) ;
lin foot_N = mkN (mkNTable0985 "stopa") (Fem) ;
lin forest_N = mkN (mkNTable0830 "las") (Masc Inanimate) ;
lin fridge_N = mkN (mkNTable0006 "lodówka") (Fem) ;
lin friend_N = mkN (mkNTable0881 "przyjaciel") (Masc Personal) ;
lin fruit_N = mkN (mkNTable0129 "owoc") (Masc Inanimate) ;
lin garden_N = mkN (mkNTable0610 "ogród") (Masc Inanimate) ;
lin girl_N = mkN (mkNTable0021 "dziewczyna") (Fem) ;
lin glove_N = mkN (mkNTable0175 "rękawica") (Fem) ;
lin gold_N = mkN (mkNTable0511 "złoto") (Neut) ;
lin grammar_N = mkN (mkNTable0027 "gramatyka") (Fem) ;
lin grass_N = mkN (mkNTable0021 "trawa") (Fem) ;
lin guts_N = mkN (mkNTable0516 "wnętrzności") (Plur) ;
lin hair_N = mkN (mkNTable0131 "włos") (Masc Inanimate) ;
lin hand_N = mkN (mkNTable0974 "ręka") (Fem) ;
lin harbour_N = mkN (mkNTable0231 "port") (Masc Inanimate) ;
lin hat_N = mkN (mkNTable0243 "kapelusz") (Masc Inanimate) ;
lin head_N = mkN (mkNTable0520 "głowa") (Fem) ;
lin heart_N = mkN (mkNTable0553 "serce") (Neut) ;
lin hill_N = mkN (mkNTable0553 "wzgórze") (Neut) ;
lin horn_N = mkN (mkNTable0399 "róg") (Masc Inanimate) ;
lin horse_N = mkN (mkNTable0815 "koń") (Masc Animate) ;
lin house_N = mkN (mkNTable0247 "dom") (Masc Inanimate) ;
lin husband_N = mkN (mkNTable0870 "mąż") (Masc Personal) ;
lin ice_N = mkN (mkNTable0610 "lód") (Masc Inanimate) ;
lin industry_N = mkN (mkNTable0685 "przemysł") (Masc Inanimate) ;
lin iron_N = mkN (mkNTable0488 "żelazo") (Neut) ;
lin king_N = mkN (mkNTable0003 "król") (Masc Personal) ;
lin knee_N = mkN (mkNTable0488 "kolano") (Neut) ;
lin lake_N = mkN (mkNTable0521 "jezioro") (Neut) ;
lin lamp_N = mkN (mkNTable0021 "lampa") (Fem) ;
lin language_N = mkN (mkNTable0271 "język") (Masc Inanimate) ;
lin leaf_N = mkN (mkNTable0838 "liść") (Masc Inanimate) ;
lin leather_N = mkN (mkNTable0099 "skóra") (Fem) ;
lin leg_N = mkN (mkNTable0689 "noga") (Fem) ;
lin liver_N = mkN (mkNTable0636 "wątroba") (Fem) ;
lin louse_N = mkN (mkNTable1016 "wesz") (Fem) ;
lin love_N = mkN (mkNTable0475 "miłość") (Fem) ;
lin man_N = mkN (mkNTable0873 "mężczyzna") (Masc Personal) ;
lin meat_N = mkN (mkNTable0488 "mięso") (Neut) ;
lin milk_N = mkN (mkNTable0265 "mleko") (Neut) ;
lin moon_N = mkN (mkNTable0176 "księżyc") (Masc Inanimate) ;
lin mountain_N = mkN (mkNTable0099 "góra") (Fem) ;
lin mouth_N = mkN (mkNTable0189 "usta") (Plur) ;
lin music_N = mkN (mkNTable0027 "muzyka") (Fem) ;
lin name_N = mkN (mkNTable0604 "imię") (NeutGr) ;
lin neck_N = mkN (mkNTable0241 "szyja") (Fem) ;
lin newspaper_N = mkN (mkNTable0026 "gazeta") (Fem) ;
lin night_N = mkN (mkNTable0550 "noc") (Fem) ;
lin nose_N = mkN (mkNTable0131 "nos") (Masc Inanimate) ;
lin number_N = mkN (mkNTable0021 "liczba") (Fem) ;
lin oil_N = mkN (mkNTable0129 "olej") (Masc Inanimate) ;
lin paper_N = mkN (mkNTable0117 "papier") (Masc Inanimate) ;
lin peace_N = mkN (mkNTable0526 "pokój") (Masc Inanimate) ;
lin pen_N = mkN (mkNTable0435 "ołówek") (Masc Inanimate) ;
lin person_N = mkN (mkNTable0636 "osoba") (Fem) ;
lin planet_N = mkN (mkNTable0026 "planeta") (Fem) ;
lin plastic_N = mkN (mkNTable0171 "plastik") (Masc Inanimate) ;
lin policeman_N = mkN (mkNTable0190 "policjant") (Masc Personal) ;
lin priest_N = mkN (mkNTable0821 "ksiądz") (Masc Personal) ;
lin queen_N = mkN (mkNTable0504 "królowa") (Fem) ;
lin question_N = mkN (mkNTable0402 "pytanie") (Neut) ;
lin radio_N = mkN (mkNTable0509 "radio") (Neut) ;
lin rain_N = mkN (mkNTable0677 "deszcz") (Masc Inanimate) ;
lin reason_N = mkN (mkNTable0610 "powód") (Masc Inanimate) ;
lin religion_N = mkN (mkNTable0060 "religia") (Fem) ;
lin restaurant_N = mkN (mkNTable0094 "restauracja") (Fem) ;
lin river_N = mkN (mkNTable0027 "rzeka") (Fem) ;
lin road_N = mkN (mkNTable0689 "droga") (Fem) ;
lin rock_N = mkN (mkNTable0152 "skała") (Fem) ;
lin roof_N = mkN (mkNTable0247 "dach") (Masc Inanimate) ;
lin root_N = mkN (mkNTable0468 "korzeń") (Masc Inanimate) ;
lin rope_N = mkN (mkNTable0021 "lina") (Fem) ;
lin rubber_N = mkN (mkNTable0006 "gumka") (Fem) ;
lin rule_N = mkN (mkNTable0152 "reguła") (Fem) ;
lin salt_N = mkN (mkNTable0763 "sól") (Fem) ;
lin sand_N = mkN (mkNTable0463 "piasek") (Masc Inanimate) ;
lin school_N = mkN (mkNTable0910 "szkoła") (Fem) ;
lin science_N = mkN (mkNTable0027 "nauka") (Fem) ;
lin sea_N = mkN (mkNTable0861 "morze") (Neut) ;
lin seed_N = mkN (mkNTable0878 "nasienie") (Neut) ;
lin sheep_N = mkN (mkNTable0912 "owca") (Fem) ;
lin ship_N = mkN (mkNTable0463 "statek") (Masc Inanimate) ;
lin shirt_N = mkN (mkNTable0055 "koszula") (Fem) ;
lin shoe_N = mkN (mkNTable0502 "but") (Masc Inanimate) ;
lin shop_N = mkN (mkNTable0096 "sklep") (Masc Inanimate) ;
lin silver_N = mkN (mkNTable0537 "srebro") (Neut) ;
lin sister_N = mkN (mkNTable0978 "siostra") (Fem) ;
lin skin_N = mkN (mkNTable0099 "skóra") (Fem) ;
lin sky_N = mkN (mkNTable0488 "niebo") (Neut) ;
lin smoke_N = mkN (mkNTable0096 "dym") (Masc Inanimate) ;
lin snake_N = mkN (mkNTable1029 "wąż") (Masc Animate) ;
lin snow_N = mkN (mkNTable0171 "śnieg") (Masc Inanimate) ;
lin sock_N = mkN (mkNTable0006 "skarpetka") (Fem) ;
lin song_N = mkN (mkNTable0006 "piosenka") (Fem) ;
lin star_N = mkN (mkNTable0748 "gwiazda") (Fem) ;
lin steel_N = mkN (mkNTable0583 "stal") (Fem) ;
lin stick_N = mkN (mkNTable0271 "patyk") (Masc Inanimate) ;
lin stone_N = mkN (mkNTable0468 "kamień") (Masc Inanimate) ;
lin stove_N = mkN (mkNTable0176 "piec") (Masc Inanimate) ;
lin student_N = mkN (mkNTable0190 "student") (Masc Personal) ;
lin sun_N = mkN (mkNTable0553 "słońce") (Neut) ;
lin table_N = mkN (mkNTable0653 "stół") (Masc Inanimate) ;
lin tail_N = mkN (mkNTable0131 "ogon") (Masc Inanimate) ;
lin teacher_N = mkN (mkNTable0191 "nauczyciel") (Masc Personal) ;
lin television_N = mkN (mkNTable0094 "telewizja") (Fem) ;
lin tongue_N = mkN (mkNTable0271 "język") (Masc Inanimate) ;
lin tooth_N = mkN (mkNTable0706 "ząb") (Masc Inanimate) ;
lin train_N = mkN (mkNTable0171 "pociąg") (Masc Inanimate) ;
lin tree_N = mkN (mkNTable0488 "drzewo") (Neut) ;
lin university_N = mkN (mkNTable0231 "uniwersytet") (Masc Inanimate) ;
lin village_N = mkN (mkNTable0960 "wieś") (Fem) ;
lin war_N = mkN (mkNTable0615 "wojna") (Fem) ;
lin water_N = mkN (mkNTable0293 "woda") (Fem) ;
lin wife_N = mkN (mkNTable0021 "żona") (Fem) ;
lin wind_N = mkN (mkNTable0895 "wiatr") (Masc Inanimate) ;
lin window_N = mkN (mkNTable0555 "okno") (Neut) ;
lin wine_N = mkN (mkNTable0488 "wino") (Neut) ;
lin wing_N = mkN (mkNTable0492 "skrzydło") (Neut) ;
lin woman_N = mkN (mkNTable0026 "kobieta") (Fem) ;
lin wood_N = mkN (mkNTable0555 "drewno") (Neut) ;
lin worm_N = mkN (mkNTable0173 "robak") (Masc Animate) ;
lin year_N = mkN (mkNTable0171 "rok") (Masc Inanimate) ;
oper distance_N = mkN (mkNTable0475 "odległość") (Fem) ;
oper mother_N = mkN (mkNTable0006 "matka") (Fem) ;
oper brother_N = mkN (mkNTable0599 "brat") (Masc Personal) ;
oper father_N = mkN (mkNTable0897 "ojciec") (Masc Personal) ;
lin paris_PN =
{ nom = (mkNTable0045 "Paryż")!SF Sg Nom; voc = (mkNTable0045 "Paryż")!SF Sg VocP;
dep = let forms = (mkNTable0045 "Paryż") in table {
NomPrep=>forms!SF Sg Nom; GenPrep|GenNoPrep=>forms!SF Sg Gen; AccPrep|AccNoPrep=>forms!SF Sg Acc;
DatPrep|DatNoPrep=>forms!SF Sg Dat; InstrC=>forms!SF Sg Instr;
LocPrep=>forms!SF Sg Loc};
gn= MascInaniSg ; p=P3
} ;
lin john_PN =
{ nom = (mkNTable0002 "Jan")!SF Sg Nom; voc = (mkNTable0002 "Jan")!SF Sg VocP;
dep = let forms = (mkNTable0002 "Jan") in table {
NomPrep=>forms!SF Sg Nom; GenPrep|GenNoPrep=>forms!SF Sg Gen; AccPrep|AccNoPrep=>forms!SF Sg Acc;
DatPrep|DatNoPrep=>forms!SF Sg Dat; InstrC=>forms!SF Sg Instr;
LocPrep=>forms!SF Sg Loc};
gn= MascPersSg ; p=P3
} ;
}