mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-08 06:36:32 -06:00
Extends the previously introduced support for specifying the verb valence (verb-dependent subject and object cases), involving functions up to PredVP and RelVP.
In Latvian, the passive voice is not used if the agent (subject) is known; to preserve the information structure (i.e. the word order), a clause like 'A is <done> by B' is linearized in the active voice ('A <does> B') where A has the object case (e.g. Acc), and B - the subject case (e.g. Nom). Thus, the verb valence patterns are swapped on-the-fly.
This is still a rather quick & dirty implementation: parameters and linearization types have to be optimized (VerbLav), the use of PassV2 in AdvVP is problematic as it doesn't apply VPSlashPrep / ComplSlash, etc.
52 lines
1.2 KiB
Plaintext
52 lines
1.2 KiB
Plaintext
--# -path=.:../abstract:../common:../prelude
|
|
|
|
concrete ExtraLav of ExtraLavAbs = CatLav ** open
|
|
ParadigmsLav,
|
|
ParadigmsPronounsLav,
|
|
ResLav,
|
|
Prelude
|
|
in {
|
|
|
|
flags
|
|
coding = utf8 ;
|
|
|
|
lin
|
|
aiz_Prep = mkPrep "aiz" Gen Dat ;
|
|
ap_Prep = mkPrep "ap" Acc Dat ;
|
|
gar_Prep = mkPrep "gar" Acc Dat ;
|
|
kopsh_Prep = mkPrep "kopš" Gen Dat ;
|
|
liidz_Prep = mkPrep "līdz" Dat Dat ;
|
|
pa_Prep = mkPrep "pa" Acc Dat ;
|
|
--par_Prep = mkPrep "par" Acc Dat ;
|
|
paar_Prep = mkPrep "pār" Acc Dat ;
|
|
pie_Prep = mkPrep "pie" Gen Dat ;
|
|
pret_Prep = mkPrep "pret" Acc Dat ;
|
|
|
|
i8fem_Pron = mkPronoun_I Fem ;
|
|
we8fem_Pron = mkPronoun_We Fem ;
|
|
|
|
youSg8fem_Pron = mkPronoun_You_Sg Fem ;
|
|
youPol8fem_Pron = mkPronoun_You_Pol Fem ;
|
|
youPl8fem_Pron = mkPronoun_You_Pl Fem ;
|
|
|
|
they8fem_Pron = mkPronoun_They Fem ;
|
|
it8fem_Pron = mkPronoun_It_Sg Fem ;
|
|
|
|
{-empty_Det num def neg = \num,def,neg -> {
|
|
s = \\_,_ => [] ;
|
|
n = num ;
|
|
d = def ;
|
|
isNeg = neg
|
|
} ;-}
|
|
|
|
-- Zemāk esošās f-cijas nav ExtraLavAbs, tās ir abstract/Extra.gf
|
|
|
|
GenNP np = {s = \\_,_,_ => np.s ! Gen ; d = Def ; isNeg = np.isNeg} ;
|
|
|
|
--ICompAP ap = {s = \\g,n => "cik" ++ ap.s ! Indef ! g ! n ! Nom } ;
|
|
|
|
IAdvAdv adv = {s = "cik" ++ adv.s} ;
|
|
|
|
have_V3 = mkV3 (mkV "būt") nom_Prep dat_Prep Dat ;
|
|
}
|