diff --git a/lib/src/estonian/ExtraEst.gf b/lib/src/estonian/ExtraEst.gf index d1b67f89d..f53d8c2f4 100644 --- a/lib/src/estonian/ExtraEst.gf +++ b/lib/src/estonian/ExtraEst.gf @@ -11,17 +11,27 @@ concrete ExtraEst of ExtraEstAbs = CatEst ** GenCN n1 n2 = {s = \\nf => n1.s ! NPCase Gen ++ n2.s ! nf} ; - lincat - VPI = {s : Str} ; - [VPI] = {s1,s2 : Str} ; - lin - BaseVPI = twoSS ; - ConsVPI = consrSS comma ; + GenIP ip = {s = \\_,_ => ip.s ! NPCase Gen} ; - MkVPI vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp InfDa} ; - ConjVPI = conjunctDistrSS ; + GenRP num cn = { + s = \\n,c => let k = npform2case num.n c in relPron ! n ! Gen ++ cn.s ! NCase num.n k ; + a = RNoAg +--- a = RAg (agrP3 num.n) + } ; + + lincat + VPI = {s : InfForm => Str} ; + [VPI] = {s1,s2 : InfForm => Str} ; + -- VPI = {s : Str} ; + -- [VPI] = {s1,s2 : Str} ; + lin + BaseVPI = twoTable InfForm ; + ConsVPI = consrTable InfForm comma ; + + MkVPI vp = {s = \\i => infVP (NPCase Nom) Pos (agrP3 Sg) vp i} ; + ConjVPI = conjunctDistrTable InfForm ; ComplVPIVV vv vpi = - insertObj (\\_,_,_ => vpi.s) (predV vv) ; + insertObj (\\_,_,_ => vpi.s ! vv.vi) (predV vv) ; lincat VPS = { @@ -57,6 +67,18 @@ concrete ExtraEst of ExtraEstAbs = CatEst ** s = subjForm np vps.sc Pos ++ vps.s ! np.a } ; + PassVPSlash vp = vp ; --passVP vp vp.c2 ; + + + PassAgentVPSlash vp np = vp ; + {- + s = {s = vp.s.s ; h = vp.s.h ; p = vp.s.p ; sc = npform2subjcase vp.c2.c} ; + s2 = \\b,p,a => np.s ! NPCase Nom ++ vp.s2 ! b ! p ! a ; + adv = vp.adv ; + ext = vp.ext ; + vptyp = vp.vptyp ; + } ; -} + AdvExistNP adv np = mkClause (\_ -> adv.s) np.a (insertObj (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlema ** {sc = NPCase Nom}))) ; diff --git a/lib/src/estonian/ExtraEstAbs.gf b/lib/src/estonian/ExtraEstAbs.gf index ffe4946c5..71794b5ff 100644 --- a/lib/src/estonian/ExtraEstAbs.gf +++ b/lib/src/estonian/ExtraEstAbs.gf @@ -1,5 +1,6 @@ abstract ExtraEstAbs = Extra [ - GenNP, + GenNP,GenIP,GenRP, + PassVPSlash, PassAgentVPSlash, VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI, VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,ConjVPS,Tense,Temp,Pol,S, VV,VP,Conj,NP,Quant,IAdv,IComp,ICompAP,IAdvAdv,Adv,AP, Pron, ProDrop] ** { diff --git a/lib/src/estonian/NounEst.gf b/lib/src/estonian/NounEst.gf index 66405bbed..a2167f415 100644 --- a/lib/src/estonian/NounEst.gf +++ b/lib/src/estonian/NounEst.gf @@ -112,6 +112,8 @@ concrete NounEst of Noun = CatEst ** open ResEst, HjkEst, MorphoEst, Prelude in isDef = True --- "minun kolme autoani ovat" ; thus "...on" is missing } ; + PossNP cn np = {s = \\nf => np.s ! NPCase Gen ++ cn.s ! nf }; + NumSg = {s = \\_,_ => [] ; isNum = False ; n = Sg} ; NumPl = {s = \\_,_ => [] ; isNum = False ; n = Pl} ; diff --git a/lib/src/estonian/TerminologyEst.gf b/lib/src/estonian/TerminologyEst.gf new file mode 100644 index 000000000..0373b2c67 --- /dev/null +++ b/lib/src/estonian/TerminologyEst.gf @@ -0,0 +1,97 @@ +--# -path=.:../abstract:../common + +concrete TerminologyEst of Terminology = CatEst ** open + ResEst, + ParadigmsEst, + (G = GrammarEst), + (S = SyntaxEst), + (L = LexiconEst), + Prelude, + HTML +in { +flags coding=utf8 ; + + +lincat + Category = G.N ; + ParameterType = G.N ; + Parameter = G.N ; + Modifier = G.A ; + + Heading = {s : Str} ; + + +lin + noun_Category = mkN "käändsõna" ; + adjective_Category = mkN "omadussõna" ; + verb_Category = mkN "pöördsõna" ; + adverb_Category = mkN "määrsõna" ; + preposition_Category = mkN "eessõna" ; + + finite_form_ParameterType = mkN "pöördvorm" ; ---- ??? + nominal_form_ParameterType = mkN "käändeline vorm" ; + + singular_Parameter = mkN "ainsus" ; + plural_Parameter = mkN "mitmus" ; + + masculine_Parameter = mkN "maskuliin" ; ---- + feminine_Parameter = mkN "feminiin" ; ---- + neuter_Parameter = mkN "neutri" ; ---- + + nominative_Parameter = mkN "nimetav" ; + genitive_Parameter = mkN "omastav" ; + dative_Parameter = mkN "daativ" ; + accusative_Parameter = mkN "akusatiiv" | mkN "sihitav" ; + + partitive_Parameter = mkN "osastav" ; + translative_Parameter = mkN "saav" ; + essive_Parameter = mkN "olev" ; + inessive_Parameter = mkN "seesütlev" ; + elative_Parameter = mkN "seestütlev" ; + illative_Parameter = mkN "sisseütlev" ; + adessive_Parameter = mkN "alalütlev" ; + ablative_Parameter = mkN "alaltütlev" ; + allative_Parameter = mkN "alaleütlev" ; + abessive_Parameter = mkN "ilmaütlev" ; + comitative_Parameter = mkN "kaasaütlev" ; + instructive_Parameter = mkN "viisiütlev" ; + terminative_Parameter = mkN "rajav" ; + + active_Parameter = mkN "isikuline tegumood" ; + passive_Parameter = mkN "umbsikuline tegumood" ; + + imperative_Parameter = mkN "käskiv" ; + indicative_Parameter = mkN "kindel" ; + conjunctive_Parameter = mkN "konjunktiivi" ; + infinitive_Parameter = mkN "infinitiivi" ; + + present_Parameter = mkN "olevik" ; + past_Parameter = mkN "lihtminevik" ; + future_Parameter = mkN "futuur" ; ---- ??? + conditional_Parameter = mkN "tingiv" ; + perfect_Parameter = mkN "täisminevik" ; + quotative_Parameter = mkN "kaudne" ; + + participle_Parameter = mkN "kesksõna" ; + aux_verb_Parameter = mkN "abi" (mkN "verb") ; + agent_Parameter = mkN "tegevussubjekt" ; + + positive_Parameter = mkN "algvõrre" | mkN "positiiv" ; + comparative_Parameter = mkN "keskvõrre" | mkN "komparatiiv" ; + superlative_Parameter = mkN "ülivõrre" | mkN "superlatiiv" ; + predicative_Parameter = mkN "öeldistäide" | mkN "predikatiiv" ; + negative_Parameter = mkN "eitav kõne" ; + positivePol_Parameter = mkN "jaatav kõne" ; + + long_Parameter = mkN "pikk" ; + short_Parameter = mkN "lühike" ; + + finite_Modifier = mkA "finiitne" ; + + nounHeading n = ss (n.s ! NCase Sg Nom) ; + nounPluralHeading n = ss (n.s ! NCase Pl Nom) ; + + formGF_N = mkN "vorm" ; + exampleGr_N = mkN "näide" ; + +}