diff --git a/lib/src/chunk/ChunkFin.gf b/lib/src/chunk/ChunkFin.gf index eb17ba684..c853ee345 100644 --- a/lib/src/chunk/ChunkFin.gf +++ b/lib/src/chunk/ChunkFin.gf @@ -1,5 +1,5 @@ concrete ChunkFin of Chunk = CatFin, ExtensionsFin [VPS,VPI] ** - ChunkFunctor with (Syntax = SyntaxFin), (Extensions = ExtensionsFin) ** + ChunkFunctor - [Prep_Chunk] with (Syntax = SyntaxFin), (Extensions = ExtensionsFin) ** open SyntaxFin, (E = ExtensionsFin), Prelude, ResFin, (P = ParadigmsFin) in { @@ -7,6 +7,10 @@ concrete ChunkFin of Chunk = CatFin, ExtensionsFin [VPS,VPI] ** oper emptyNP = mkNP (lin PN {s = \\_ => []}) ; +-- overridden, to avoid the generation of dangling case endings +lin + Prep_Chunk prep = mkAdv prep something_NP ; + lin NP_Acc_Chunk np = ss (np.s ! NPAcc) ; NP_Gen_Chunk np = ss (np.s ! NPCase Gen) ; diff --git a/lib/src/finnish/StructuralFin.gf b/lib/src/finnish/StructuralFin.gf index 341de8bd7..12c1f94a6 100644 --- a/lib/src/finnish/StructuralFin.gf +++ b/lib/src/finnish/StructuralFin.gf @@ -289,13 +289,13 @@ lin if_then_Conj = {s1 = "jos" ; s2 = "niin" ; n = Sg} ; nobody_NP = { - s = \\c => kukaanPron ! Sg ! npform2case Sg c ; -- requires negative or question polarity + s = \\c => kukaanPron ! Sg ! npform2case Sg c ; --- requires negative polarity a = agrP3 Sg ; isPron = False ; isNeg = True } ; nothing_NP = { - s = \\c => mikaanPron ! Sg ! npform2case Sg c ; --- requires negative or question polarity + s = \\c => mikaanPron ! Sg ! npform2case Sg c ; --- requires negative polarity a = agrP3 Sg ; isPron = False ; isNeg = True } ; diff --git a/lib/src/translator/DictionaryFin.gf b/lib/src/translator/DictionaryFin.gf index a1789666b..d564d140e 100644 --- a/lib/src/translator/DictionaryFin.gf +++ b/lib/src/translator/DictionaryFin.gf @@ -19122,7 +19122,7 @@ lin finnish_A = mkWA (k38 "suomalainen") ; --UNCHK lin finnish_N = mkWN (k7 "suomi") ; --UNCHK lin fiord_N = mkWN (k1 "vuono") ; --UNCHK lin fipple_N = mkWN (k10A "nokka") ; --UNCHK -lin fir_N = mkWN (kH1 "kuusi") ; --UNCHK +lin fir_N = mkN "kuusi" "kuusia" ; lin fir_cone_N = mkWN (compoundN "kuusen" (k1A "käpy")) ; --UNCHK lin fire_1_N = mkN "tuli" "tulia" ; lin fire_2_N = mkN "tulipalo" | mkN "palo" ; @@ -23410,8 +23410,8 @@ lin hewn_A = mkWA (compoundA "käsi" (k1 "nhakattu")) ; --UNCHK lin hex_N = mkWN (k9A "taika") ; --UNCHK lin hexachlorophene_N = mkWN (k5 "heksaklorofeeni") ; --UNCHK lin hexadecimal_A = mkWA (compoundA "heksa" (k38 "desimaalinen")) ; --UNCHK -lin hexagon_N = mkWN (k5 "heksagoni") ; --UNCHK -lin hexagonal_A = mkWA (k38 "heksagoninen") ; --UNCHK +lin hexagon_N = mkN "kuusikulmio" "kuusikulmioita" ; +lin hexagonal_A = mkA "kuusikulmainen" ; lin hexagram_N = mkWN (compoundN "kuusi" (k9A "kanta")) ; --UNCHK lin hexahedron_N = mkWN (k5 "heksaedri") ; --UNCHK lin hexameter_N = mkWN (k5 "heksametri") ; --UNCHK @@ -29504,7 +29504,7 @@ lin lysosome_N = mkWN "lysosomi" ; --UNCHK lin lysozyme_N = mkWN (compoundN "muramid" (k5 "aasi")) ; --UNCHK lin lyssavirus_N = mkWN (compoundN "vesikauhu" (k39 "virus")) ; --UNCHK lin ma'am_N = mkWN (k5 "daami") ; --UNCHK -lin ma_N = mkWN (k6 "maisteri") "filosofian" ; --UNCHK +lin ma_N = mkN "äiti" "äitejä" ; ---- split MA WN (k6 "maisteri") "filosofian" ; --UNCHK lin maar_N = mkWN "maari" ; --UNCHK lin mac_N = mkWN (compoundN "sade" (k5A "takki")) ; --UNCHK lin macabre_A = mkWA (k10 "kamala") ; --UNCHK @@ -33319,8 +33319,8 @@ lin nitwitted_A = mkWA (k34A "älytön") ; --UNCHK lin nix_N = mkWN (k101 "mikään") "ei" ; --UNCHK lin nix_V2 = mkWV2 (k53A "käyttää") "veto-oikeuttaan" ; --UNCHK lin no_Adv = mkWAdv (k99 "ei") ; --UNCHK -lin no_Interj = mkInterj "ei" ; -lin no_Quant = S.no_Quant ; +lin no_Interj = mkInterj "ei" | mkInterj "en" ; +lin no_Quant = S.no_Quant ** {s1 = \\n,c => "ei" ++ S.no_Quant.s1 ! n ! c} ; ---- proper handling of polarity wanted lin no_Utt = S.no_Utt ; lin no_ball_N = mkWN (k34A "laiton") ; --UNCHK lin no_fewer_than_AdN = mkAdN "peräti" ; @@ -33334,7 +33334,7 @@ lin noble_A = mkA "jalo" ; lin nobleman_N = mkWN (k38 "aatelinen") ; --UNCHK lin noblesse_N = mkWN (k2 "ylhäisö") ; --UNCHK lin noblesse_oblige_N = mkWN (k48A "velvoite") "aateluuden" ; --UNCHK -lin nobody_NP = S.nobody_NP ; +lin nobody_NP = S.nobody_NP ** {s = \\c => "ei" ++ S.nobody_NP.s ! c} ; lin nocent_A = mkWA "harmeja" "aiheuttava" ; --UNCHK lin nociceptive_A = mkWA (compoundA "nosi" (k38 "septinen")) ; --UNCHK lin noctambulist_N = mkWN (compoundN "unissa" (k12 "kävelijä")) ; --UNCHK @@ -33462,7 +33462,7 @@ lin nondisposable_A = mkWA "kestokäyttö-" ; --UNCHK lin nondriver_N = mkWN "autoton" ; --UNCHK lin none_A = mkWA (k99 "yhtään") "ei" ; --UNCHK lin none_Adv = mkWAdv (k99 "lainkaan") "ei" ; --UNCHK -lin none_NP = S.nothing_NP ; +lin none_NP = S.nothing_NP ** {s = \\c => "ei" ++ S.nothing_NP.s ! c} ; lin nonechoic_A = mkWA (compoundA "ei-kaiku" (k38 "mainen")) ; --UNCHK lin noneffervescent_A = mkWA "kuohumaton" ; --UNCHK lin nonelective_A = mkWA "vaaleihin" "perustumaton" ; --UNCHK @@ -33757,7 +33757,7 @@ lin notepaper_N = mkWN (compoundN "kirje" (k6 "paperi")) ; --UNCHK lin noteworthy_A = mkWA (k10 "huomattava") ; --UNCHK lin nothing_Adv = mkWAdv (k99 "ensinkään") "ei" ; --UNCHK lin nothing_N = mkWN (k101 "mikään") "ei" ; --UNCHK -lin nothing_NP = S.nothing_NP ; +lin nothing_NP = S.nothing_NP ** {s = \\c => "ei" ++ S.nothing_NP.s ! c} ; lin nothingness_N = mkWN (k48 "puhe") "turha" ; --UNCHK lin nothosaur_N = mkWN "nothosaurus" ; --UNCHK lin notice_N = mkWN (k1A "havainto") ; --UNCHK @@ -45042,12 +45042,12 @@ lin sewer_rat_N = mkWN (compoundN "viemäri" (k10A "rotta")) ; --UNCHK lin sewerage_N = mkWN (k5A "kloaakki") ; --UNCHK lin sewing_N = mkWN (k9A "harsinta") ; --UNCHK lin sewing_machine_N = mkWN (compoundN "ompelu" (k48 "kone")) ; --UNCHK -lin sex_N = mkN "seksi" | mkN "sukupuoli" ; ---- split +lin sex_N = mkN "seksi" | mkN "sukupuoli" "sukupuolia" ; ---- split lin sex_V2 = mkWV2 (k53A "määrittää") "sukupuoli" ; --UNCHK lin sex_up_V2 = mkWV2 (k62 "erotisoida") ; --UNCHK -lin sexagenarian_A = mkWA (compoundA "kuu" (k38 "sikymppinen")) ; --UNCHK +lin sexagenarian_A = mkWA (compoundA "kuusi" (k38 "kymppinen")) ; --UNCHK lin sexagenarian_N = mkWN "kuusikymmenvuotias" ; --UNCHK -lin sexagesimal_A = mkWA "kuusikymmenjärjestelmän" ; --UNCHK +lin sexagesimal_A = mkWA "kuusikymmenjärjestelmäpohjainen" ; --UNCHK lin sexcapade_N = mkWN (compoundN "syrjä" (k1A "hyppy")) ; --UNCHK lin sexism_N = mkWN (k5 "seksismi") ; --UNCHK lin sexist_A = mkWA (k38 "seksistinen") ; --UNCHK @@ -47763,7 +47763,7 @@ lin sprout_V = mkWV (k52 "versoa") ; --UNCHK lin sprout_V2 = mkWV2 (k52 "versoa") ; --UNCHK lin sprout_up_V = mkV "ilmestyä" ; lin spruce_A = mkWA (k15 "upea") ; --UNCHK -lin spruce_N = mkWN (kH1 "kuusi") ; --UNCHK +lin spruce_N = mkN "kuusi" "kuusia" ; lin spruce_V = mkWV (k52A "kaunistautua") ; --UNCHK lin spruce_V2 = mkWV2 (k52A "kaunistautua") ; --UNCHK lin spruce_up_V2 = mkWV2 (k52A "kaunistautua") ; --UNCHK diff --git a/lib/src/translator/DictionarySwe.gf b/lib/src/translator/DictionarySwe.gf index 885e9af4e..23aa1e7d4 100644 --- a/lib/src/translator/DictionarySwe.gf +++ b/lib/src/translator/DictionarySwe.gf @@ -21472,7 +21472,7 @@ lin finnish_N = mkN "finska" ; -- comment=2 lin fiona_PN = variants {} ; -- status=guess lin fiord_N = variants {} ; -- status=guess lin fipple_N = variants {} ; -- status=guess -lin fir_N = mkN "gran" neutrum; -- comment=2 +lin fir_N = mkN "gran" ; lin fir_cone_N = variants {} ; -- status=guess lin fire_1_N = L.fire_N; lin fire_2_N = mkN "brand" "bränder" ;