mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-28 04:16:30 -06:00
minor Estonian additions from last summer (#51)
* add two new nominal modifiers of type NP -> CN -> CN * change married_A2 to invariant adjective * rename CommonNoun to Noun * change type of relPron * merge CompAP and ICompAP using the same oper ; fix reflPron (ise, enda, ...) and add a helper function fixPlNom * minor cleanup * change in who_RP, reflecting the change of relative pronouns in ResEst * Add new functions to ExtendEst ; update comments in ResEst
This commit is contained in:
+41
-19
@@ -28,6 +28,7 @@ concrete ExtendEst of Extend =
|
||||
Coordination,
|
||||
Prelude,
|
||||
MorphoEst,
|
||||
LexiconEst,
|
||||
ParadigmsEst in {
|
||||
|
||||
lin
|
||||
@@ -44,7 +45,7 @@ concrete ExtendEst of Extend =
|
||||
|
||||
-- : Num -> CN -> RP ; -- whose car
|
||||
GenRP num cn = {
|
||||
s = \\n,c => let k = npform2case num.n c in relPron ! n ! Gen ++ cn.s ! NCase num.n k ;
|
||||
s = \\n,c => let k = npform2case num.n c in relPron ! NCase n Gen ++ cn.s ! NCase num.n k ;
|
||||
a = RNoAg
|
||||
} ;
|
||||
|
||||
@@ -115,26 +116,34 @@ concrete ExtendEst of Extend =
|
||||
mkVPI : VP -> VPI = \vp -> lin VPI {} ;
|
||||
|
||||
-----
|
||||
|
||||
lin
|
||||
ICompAP ap = {} ; ---- IComp should have agr!
|
||||
|
||||
IAdvAdv adv = {} ;
|
||||
-}
|
||||
|
||||
-- : VP -> AP ; -- (the man) looking at Mary / filme vaatav (mees)
|
||||
lin
|
||||
-- : AP -> IComp ; -- "how old"
|
||||
ICompAP ap = icompAP "kui" ap ;
|
||||
|
||||
-- : Adv -> IAdv ; -- "how often"
|
||||
IAdvAdv adv = { s = "kui" ++ adv.s } ;
|
||||
|
||||
-- : VP -> AP ; -- (the man) looking at Mary / filme vaatav (mees)
|
||||
PresPartAP vp = {
|
||||
s = \\_,_ => vp2adv vp True VIPresPart ;
|
||||
infl = Invariable
|
||||
} ;
|
||||
|
||||
{- TODO: need to change VP to get this to work properly:
|
||||
{- TODO: need to change VP to get the following 3 functions to work properly:
|
||||
1) Add "mine" form into VP (or switch to a BIND solution and just add a stem)
|
||||
2) Change s2 in VP so that we can manipulate the complement to be in genitive!
|
||||
-- : VP -> SC ; -- looking at Mary (is fun) / filmide vaatamine (on tore)
|
||||
EmbedPresPart vp =
|
||||
let vpGen = vp ; --** { s2 = \\_,_,_ => vp.s2 ! True ! Pos ! }
|
||||
{s = vp2adv vp True VI } ;
|
||||
|
||||
-- : VP -> CN -- publishing of the document (can get a determiner)
|
||||
GerundCN vp = {} ;
|
||||
|
||||
-- : VP -> NP -- publishing the document (by nature definite)
|
||||
GerundNP vp = {} ;
|
||||
-}
|
||||
|
||||
-- : VPSlash -> AP ; -- täna leitud
|
||||
@@ -147,13 +156,7 @@ concrete ExtendEst of Extend =
|
||||
s = \\_,_ => np.s ! NPCase Gen ++ "poolt"
|
||||
++ vp2adv vp True (VIPass Past) ;
|
||||
infl = Invariable } ;
|
||||
{-
|
||||
-- : VP -> CN -- publishing of the document (can get a determiner)
|
||||
GerundCN vp = {} ;
|
||||
|
||||
-- : VP -> NP -- publishing the document (by nature definite)
|
||||
GerundNP vp = {} ;
|
||||
-}
|
||||
-- : VP -> Adv
|
||||
GerundAdv vp =
|
||||
{ s = vp2adv vp True (VIInf InfDes) } ;
|
||||
@@ -192,22 +195,38 @@ lin
|
||||
ComplBareVS v s = insertExtra s.s (predV v) ;
|
||||
SlashBareV2S v s = insertExtrac s.s (predVc v) ;
|
||||
-}
|
||||
|
||||
-- : N -> N -> N ; -- control system / controls system / control-system
|
||||
CompoundN noun cn = lin N {
|
||||
s = \\nf => noun.s ! NCase Sg Gen ++ BIND ++ cn.s ! nf ---- AR genitive best?
|
||||
s = \\nf => noun.s ! NCase Sg Gen ++ BIND ++ cn.s ! nf
|
||||
} ;
|
||||
{-
|
||||
-- : N -> A -> AP ; -- language independent / language-independent
|
||||
CompoundAP noun adj = {} ;
|
||||
|
||||
FrontExtPredVP np vp = {} ;
|
||||
|
||||
InvFrontExtPredVP np vp = {} ;
|
||||
-- : VS -> Utt -> VP ; -- say: "today"
|
||||
ComplDirectVS vs utt = {} ;
|
||||
-- : VQ -> Utt -> VP ; -- ask: "when"
|
||||
ComplDirectVQ vq utt = {} ;
|
||||
|
||||
-- : NP -> VS -> Utt -> Cl ; -- "I am here", she said
|
||||
FrontComplDirectVS np vs utt = {} ;
|
||||
-- : NP -> VQ -> Utt -> Cl ; -- "where", she asked
|
||||
FrontComplDirectVQ np vq utt = {} ;
|
||||
-}
|
||||
|
||||
-- : AP -> VP -> Cl ; -- it is good to walk / on hea kõndida
|
||||
PredAPVP ap vp =
|
||||
let heaOllaVP : VP = insertObj (\\_,_ => ap.s) vp ; -- puts AP into the s2 field
|
||||
heaOllaComp : Comp = CompVP ASimul PPos heaOlla ; -- chooses InfDa, fixes word order
|
||||
heaOlla : VP = UseComp heaOllaComp -- looks silly, but I want to reuse the abstract syntax funs :-P
|
||||
in existClause noSubj (agrP3 Sg) heaOlla ;
|
||||
|
||||
oper
|
||||
testCl = PredAPVP (PositA good_A) (UseV walk_V) ;
|
||||
|
||||
lin
|
||||
-}
|
||||
|
||||
-- : AP -> CN ; -- a green one ; en grön (Swe)
|
||||
AdjAsCN ap = { s = ap.s ! True } ; -- True = it's a modifier, not a predicate
|
||||
|
||||
@@ -224,7 +243,10 @@ lin
|
||||
|
||||
lin
|
||||
ReflRNP vps rnp = insertObjPre (\\a => vps.c2 ++ rnp.s ! a) vps ;
|
||||
|
||||
-- : RNP
|
||||
ReflPron = {s = reflPron} ;
|
||||
|
||||
ReflPoss num cn = {s = \\a => possPron ! a ++ num.s ! Nom ++ cn.s ! num.n ! Nom} ;
|
||||
PredetRNP predet rnp = {s = \\a => predet.s ++ rnp.s ! a} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user