forked from GitHub/gf-core
some Fin determiners from Penn
This commit is contained in:
@@ -872,7 +872,9 @@ resource MorphoFin = ResFin ** open Prelude in {
|
||||
caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
\\c => cn.s ! NCase n c ;
|
||||
|
||||
mkDet : Number -> CommonNoun -> {
|
||||
mkDet = mkDetPol False ;
|
||||
|
||||
mkDetPol : Bool -> Number -> CommonNoun -> {
|
||||
s1,sp : Case => Str ; -- minun kolme
|
||||
s2 : Harmony => Str ; -- -ni ; nsa/nsä
|
||||
n : Number ; -- Pl (agreement feature for verb)
|
||||
@@ -880,13 +882,13 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
isPoss : Bool ; -- True (a possessive suffix is present)
|
||||
isDef : Bool ; -- True (verb agrees in Pl, Nom is not Part)
|
||||
isNeg : Bool
|
||||
} = \n, noun -> heavyDet {
|
||||
} = \pol,n, noun -> heavyDet {
|
||||
s1 = \\c => noun.s ! NCase n c ;
|
||||
s2 = \\_ => [] ;
|
||||
n = n ;
|
||||
isNum, isPoss = False ;
|
||||
isDef = True ; --- does this hold for all new dets?
|
||||
isNeg = False
|
||||
isNeg = pol
|
||||
} ;
|
||||
|
||||
-- Here we define personal and relative pronouns.
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
concrete DictEngFin of DictEngAbs = CatFin ** open ParadigmsFin,
|
||||
(S = StructuralFin),
|
||||
(L = LexiconFin),
|
||||
--MANUAL10 -- SyntaxFin,
|
||||
MorphoFin, ParadigmsFin, Kotus, WNKotus, StemFin, Prelude in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
@@ -59321,29 +59320,33 @@ familiar_with_A2 = mkA2 (mkA "perehtynyt") (mkPrep illative) ; --MAN
|
||||
|
||||
some_Quant = heavyQuant {s1 = S.jokinPron ; s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False} ; --MAN
|
||||
anyPl_Det = {s1,sp = S.mikaInt ! Pl ; s2 = \\_ => "tahansa" ; isNum,isPoss,isNeg,isDef = False ; n = Pl} ; --MAN
|
||||
both_Det = mkDet Pl (snoun2nounBind (nforms2snoun (dSuurempi "molempi"))) ; --MAN
|
||||
most_Det = mkDet Pl (snoun2nounBind (nforms2snoun (dSuurin "usein"))) ; --MAN
|
||||
little_Det = mkDet False Sg (exceptNomN (mkN "vähä") "vähän") partitive ; --MAN
|
||||
both_Det = mkDet Pl (mkN "molempi" "molamman" "molempia") ; --MAN
|
||||
most_Det = mkDet Pl (mkN "usein" "useimman" "useimpia") ; --MAN
|
||||
several_Num = {s = \\n,c => (snoun2nounBind (mkN "usea")).s ! NCase n c ; n = Sg ; isNum = True} ; --suspect --MAN
|
||||
another_Quant = heavyQuant {s1 = \\n,c => (snoun2nounBind (mkN "toinen")).s ! NCase n c ; s2 = \\_ => [] ; isNum,isPoss,isNeg,isDef = False} ; --MAN
|
||||
neither_Det = mkDet Sg {s = \\nf => (snoun2nounBind (nforms2snoun (dSuurempi "kumpi"))).s ! nf + "kaan" ; h = Back} ; --MAN
|
||||
neither_Det = MorphoFin.mkDetPol True Sg {s = table NForm {nf => (snoun2nounBind (nforms2snoun (dSuurempi "kumpi"))).s ! nf + "kaan"} ; h = Back} ; --MAN
|
||||
either_Det = MorphoFin.mkDetPol False Sg {s = table NForm {nf => (snoun2nounBind (nforms2snoun (dSuurempi "kumpi"))).s ! nf ++ "tahansa"} ; h = Back} ; --MAN
|
||||
anyone_NP = {s = table {NPAcc => "kenet" ++ "tahansa" ; c => S.kukaInt ! Sg ! npform2case Sg c ++ "tahansa"} ; a = agrP3 Sg ; isPron, isNeg = False} ;
|
||||
anybody_NP = {s = table {NPAcc => "kenet" ++ "tahansa" ; c => S.kukaInt ! Sg ! npform2case Sg c ++ "tahansa"} ; a = agrP3 Sg ; isPron, isNeg = False} ;
|
||||
draw_V2 = mkV2 "vetää" ; --MAN
|
||||
aware_of_A2 = mkA2 (mkA "tietoinen") (mkPrep elative) ; --MAN
|
||||
each_Det = mkDet Pl (snoun2nounBind (mkN "jokainen")) ; --MAN
|
||||
each_Det = mkDet Pl (mkN "jokainen") ; --MAN
|
||||
start_V2 = mkV2 "aloittaa" ; --MAN
|
||||
few_Num = {s = \\n,c => (snoun2nounBind (mkN "harva")).s ! NCase n c ; n = Sg ; isNum = True} ; --suspect --MAN
|
||||
--MANUAL blame_V2 = mkV2 "syyttää" ; --MAN
|
||||
feel_VA = mkVA (caseV elative (mkV "tuntua")) (mkPrep ablative) ; --MAN
|
||||
anything_NP = {s = \\c => S.mikaInt ! Sg ! (npform2case Sg c) ++ "tahansa" ; a = agrP3 Sg ; isPron, isNeg = False} ; --MAN
|
||||
anySg_Det = {s1,sp = S.mikaInt ! Sg ; s2 = \\_ => "tahansa" ; isNum,isPoss,isNeg,isDef = False ; n = Sg} ; --MAN
|
||||
moreSg_Det = mkDet Sg (snoun2nounBind (nforms2snoun (dSuurempi "useampi"))) ; --MAN
|
||||
moreSg_Det = mkDet Sg (exceptNomN (mkN "enempä") "enemmän") ; --MAN
|
||||
lack_V2 = mkV2 (caseV ablative (mkV "puuttua")) ; --MAN
|
||||
exceed_V2 = mkV2 "ylittää" ; --MAN
|
||||
everyone_NP = S.everybody_NP ; --MAN
|
||||
begin_V2 = mkV2 "aloittaa" ; --MAN
|
||||
withdraw_V2 = mkV2 (mkV (mkV "vetää") "pois") ; --MAN
|
||||
survivor_N = mkN "selviytyjä" ; --MAN
|
||||
morePl_Det = mkDet Pl (snoun2nounBind (nforms2snoun (dSuurempi "useampi"))) ; --MAN
|
||||
less_Det = mkDet Sg (snoun2nounBind (nforms2snoun (dSuurempi "vähempi"))) ; --MAN
|
||||
morePl_Det = mkDet Pl (mkN "useampi" "useamman" "useampia") ; --MAN
|
||||
less_Det = mkDet Sg (exceptNomN (mkN "vähempä") "vähemmän") ; --MAN
|
||||
enjoy_V2 = mkV2 (mkV "nauttia") partitive ;
|
||||
enforce_V2 = mkV2 "pakottaa" ;
|
||||
|
||||
|
||||
@@ -296,9 +296,17 @@ mkVS = overload {
|
||||
= \x,y,n -> {s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
|
||||
} ;
|
||||
|
||||
mkDet = overload {
|
||||
mkDet : Number -> N -> Det
|
||||
= \nu,noun -> MorphoFin.mkDet nu (snoun2nounBind noun) ;
|
||||
mkDet : (isNeg : Bool) -> Number -> N -> Det -- use this with True to create a negative determiner
|
||||
= \isNeg,nu,noun -> MorphoFin.mkDetPol isNeg nu (snoun2nounBind noun) ;
|
||||
mkDet : (isNeg : Bool) -> Number -> N -> Case -> Det -- paljon + False + partitive, ei yhtään + True + partitive
|
||||
= \isNeg,nu,noun,_ -> MorphoFin.mkDetPol isNeg nu (snoun2nounBind noun) ;
|
||||
} ;
|
||||
|
||||
--.
|
||||
-- The definitions should not bother the user of the API. So they are
|
||||
-- THE definitions should not bother the user of the API. So they are
|
||||
-- hidden from the document.
|
||||
|
||||
Case = MorphoFin.Case ;
|
||||
|
||||
@@ -33,11 +33,11 @@ concrete StructuralFin of Structural = CatFin **
|
||||
during_Prep = postGenPrep "aikana" ;
|
||||
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
|
||||
everybody_NP = makeNP (snoun2nounBind (mkN "jokainen")) Sg ;
|
||||
every_Det = mkDet Sg (snoun2nounBind (mkN "jokainen")) ;
|
||||
every_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "jokainen")) ;
|
||||
everything_NP = makeNP (((snoun2nounBind (mkN "kaikki" "kaiken" "kaikkena"))) **
|
||||
{lock_N = <>}) Sg ;
|
||||
everywhere_Adv = ss "kaikkialla" ;
|
||||
few_Det = mkDet Sg (snoun2nounBind (mkN "harva")) ;
|
||||
few_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "harva")) ;
|
||||
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
|
||||
for_Prep = casePrep allative ;
|
||||
from_Prep = casePrep elative ;
|
||||
@@ -59,14 +59,14 @@ concrete StructuralFin of Structural = CatFin **
|
||||
isPron = False
|
||||
} ;
|
||||
less_CAdv = X.mkCAdv "vähemmän" "kuin" ;
|
||||
many_Det = mkDet Sg (snoun2nounBind (mkN "moni" "monia")) ;
|
||||
many_Det = MorphoFin.mkDet Sg (snoun2nounBind (mkN "moni" "monia")) ;
|
||||
more_CAdv = X.mkCAdv "enemmän" "kuin" ;
|
||||
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
|
||||
much_Det = mkDet Sg {s = \\_ => "paljon" ; h = Back} ; --Harmony not relevant, it's just a CommonNoun
|
||||
much_Det = MorphoFin.mkDet Sg {s = \\_ => "paljon" ; h = Back} ; --Harmony not relevant, it's just a CommonNoun
|
||||
must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
|
||||
no_Utt = ss "ei" ;
|
||||
on_Prep = casePrep adessive ;
|
||||
--- one_Quant = mkDet Sg DEPREC
|
||||
--- one_Quant = MorphoFin.mkDet Sg DEPREC
|
||||
only_Predet = {s = \\_,_ => "vain"} ;
|
||||
or_Conj = {s1 = [] ; s2 = "tai" ; n = Sg} ;
|
||||
otherwise_PConj = ss "muuten" ;
|
||||
|
||||
Reference in New Issue
Block a user