More improvements to the Latvian resource grammar (motivated by PhrasebookLav)

- Few bug-fixes (agreement between Pron and ComplAP; C1 verb paradigm; how8much_IAdv / how8many_IDet).
- Differentiation between male and female pronouns.
- Irregular verbs now can have prefixes.
- Code refactoring.
This commit is contained in:
Normunds Gruzitis
2012-08-18 04:56:33 +00:00
parent 20d3862b17
commit 3aa95e3fe9
12 changed files with 297 additions and 285 deletions

View File

@@ -1,11 +1,27 @@
--# -path=.:../abstract:../common:../prelude --# -path=.:../abstract:../common:../prelude
concrete ExtraLav of ExtraLavAbs = CatLav ** open ResLav in { concrete ExtraLav of ExtraLavAbs = CatLav ** open
ParadigmsLav,
ParadigmsPronounsLav,
ResLav
in {
flags flags
coding = utf8 ; coding = utf8 ;
lin lin
to8uz_Prep = mkPrep "uz" 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 ;
GenNP np = {s = \\_,_,_ => np.s ! Gen ; d = Def} ; GenNP np = {s = \\_,_,_ => np.s ! Gen ; d = Def} ;
--ICompAP ap = {s = \\g,n => "cik" ++ ap.s ! Indef ! g ! n ! Nom } ; --ICompAP ap = {s = \\g,n => "cik" ++ ap.s ! Indef ! g ! n ! Nom } ;

View File

@@ -1,3 +1,14 @@
--# -path=.:../abstract:../common:../prelude --# -path=.:../abstract:../common:../prelude
abstract ExtraLavAbs = Extra ** {} abstract ExtraLavAbs = Extra ** {
fun
to8uz_Prep : Prep ; -- "to" in the sense of "uz" (direction)
i8fem_Pron : Pron ;
we8fem_Pron : Pron ;
youSg8fem_Pron : Pron ;
youPol8fem_Pron : Pron ;
youPl8fem_Pron : Pron ;
they8fem_Pron : Pron ;
it8fem_Pron : Pron ;
}

View File

@@ -53,7 +53,7 @@ lin
ProgrVP v = v ; ProgrVP v = v ;
ImpPl1 vp = ImpPl1 vp =
let a = AgP1 Pl let a = AgP1 Pl Masc
in { in {
s = s =
vp.v.s ! Pos ! (Indicative P1 Pl Pres) ++ -- Verb vp.v.s ! Pos ! (Indicative P1 Pl Pres) ++ -- Verb

View File

@@ -12,7 +12,7 @@ flags
lin lin
UseN n = { s = \\_ => n.s ; g = n.g } ; UseN n = { s = \\_ => n.s ; g = n.g } ;
UsePN pn = { s = pn.s ; a = agrgP3 Sg pn.g } ; UsePN pn = { s = pn.s ; a = agrgP3 pn.n pn.g } ;
UsePron p = p ; UsePron p = p ;
PredetNP pred np = { PredetNP pred np = {
@@ -21,7 +21,7 @@ lin
} ; } ;
UseN2 n = { s = \\_ => n.s ; g = n.g } ; UseN2 n = { s = \\_ => n.s ; g = n.g } ;
UseN3 n = n ; --UseN3 n = n ;
ComplN2 f x = { ComplN2 f x = {
s = \\_,n,c => preOrPost f.isPre (f.p.s ++ x.s ! (f.p.c ! (fromAgr x.a).n)) (f.s ! n ! c) ; s = \\_,n,c => preOrPost f.isPre (f.p.s ++ x.s ! (f.p.c ! (fromAgr x.a).n)) (f.s ! n ! c) ;

View File

@@ -69,15 +69,20 @@ oper
} }
}; };
-- TODO: Vai vajag iznest polaritāti ārpusē lai ir noliegtie kā atsevišķi īpašībasvārdi?
-- Praksē lielākoties pietiek ar palīgverba noliegumu?
-- TODO: Jāpieliek parametrs Tense: present = ziedošs, izsalkstošs; past = ziedējis, izsalcis.
-- Vai arī jāpadod Str "-is"/"-ošs" un pa tiešo jāizsauc mkParticiple, bet
-- kā šis mkA(Str) atšķirsies no citiem mkA(Str)?
mkAdjective_Participle : Verb -> Adj = \v -> { mkAdjective_Participle : Verb -> Adj = \v -> {
s = table { s = table {
AAdj Posit Indef g n c => v.s ! Pos !(Participle g n c); --FIXME - iznest polaritāti ārpusē lai ir noliegtie kā atsevišķi īpašībasvārdi AAdj Posit Indef g n c => v.s ! Pos ! (Participle g n c) ;
_ => NON_EXISTENT --FIXME - salikt arī tās divdabja formas _ => NON_EXISTENT
} }
}; };
-- Positive degree: -s, -š (Indef and Def); -ais (Def only) -- Positive degree: -s, -š (Indef and Def); -ais (Def only)
-- TODO - atsaukties uz lietvārdu locīšanas tabulām? -- TODO: atsaukties uz lietvārdu locīšanas tabulām?
mkAdjective_Pos : Str -> Definite -> Gender => Number => Case => Str = \lemma,defin -> mkAdjective_Pos : Str -> Definite -> Gender => Number => Case => Str = \lemma,defin ->
let stem : Str = case lemma of { let stem : Str = case lemma of {
s + "ais" => s ; s + "ais" => s ;

View File

@@ -11,8 +11,8 @@ flags
coding = utf8 ; coding = utf8 ;
oper oper
Noun : Type = {s : Number => Case => Str ; g : Gender} ; Noun : Type = { s : Number => Case => Str ; g : Gender } ;
ProperNoun : Type = {s : Case => Str; g : Gender; n : Number} ; ProperNoun : Type = { s : Case => Str ; g : Gender ; n : Number } ;
masculine : Gender = Masc ; masculine : Gender = Masc ;
feminine : Gender = Fem ; feminine : Gender = Fem ;
@@ -24,9 +24,7 @@ oper
mkProperNoun : Str -> Number -> ProperNoun = \lemma,number -> mkProperNoun : Str -> Number -> ProperNoun = \lemma,number ->
let noun = mkNoun lemma let noun = mkNoun lemma
in { in {
s = table { s = \\c => noun.s ! number ! c ;
c => noun.s ! number ! c
} ;
g = noun.g ; g = noun.g ;
n = number n = number
} ; } ;
@@ -78,7 +76,8 @@ oper
s + "s" => case gend of {Masc => D1 ; Fem => D6} ; s + "s" => case gend of {Masc => D1 ; Fem => D6} ;
s + "a" => D4 ; s + "a" => D4 ;
s + "e" => D5 ; s + "e" => D5 ;
s + #vowel => D0 s + #vowel => D0 ;
_ => D0
} }
in mkNounByGendDeclPal lemma gend decl pal ; in mkNounByGendDeclPal lemma gend decl pal ;

View File

@@ -8,13 +8,165 @@ resource ParadigmsPronounsLav = open
in { in {
flags flags
coding = utf8; coding = utf8 ;
oper oper
PronGend : Type = {s : Gender => Number => Case => Str} ; PronGend : Type = { s : Gender => Number => Case => Str } ;
Pron : Type = { s : Case => Str ; a : ResLav.Agr ; possessive : Gender => Number => Case => Str } ;
-- PRONOUNS (incl. 'determiners') -- PRONOUNS (incl. 'determiners')
mkPronoun_I : Gender -> Pron = \g -> {
s = table {
Nom => "es" ;
Gen => "manis" ;
Dat => "man" ;
Acc => "mani" ;
Loc => "manī" ;
ResLav.Voc => NON_EXISTENT
} ;
a = AgP1 Sg g ;
possessive = table {
Masc => table {
Sg => table {
Nom => "mans" ;
Gen => "mana" ;
Dat => "manam" ;
Acc => "manu" ;
Loc => "manā" ;
ResLav.Voc => "mans"
} ;
Pl => table {
Nom => "mani" ;
Gen => "manu" ;
Dat => "maniem" ;
Acc => "manus" ;
Loc => "manos" ;
ResLav.Voc => "mani"
}
} ;
Fem => table {
Sg => table {
Nom => "mana" ;
Gen => "manas" ;
Dat => "manai" ;
Acc => "manu" ;
Loc => "manā" ;
ResLav.Voc => "mana"
} ;
Pl => table {
Nom => "manas" ;
Gen => "manu" ;
Dat => "manām" ;
Acc => "manas" ;
Loc => "manās" ;
ResLav.Voc => "manas"
}
}
}
} ;
mkPronoun_We : Gender -> Pron = \g -> {
s = table {
Nom => "mēs" ;
Gen => "mūsu" ;
Dat => "mums" ;
Acc => "mūs" ;
Loc => "mūsos" ;
ResLav.Voc => NON_EXISTENT
} ;
a = AgP1 Pl g ;
possessive = \\_,_,_ => "mūsu"
} ;
mkPronoun_You_Sg : Gender -> Pron = \g -> {
s = table {
Nom => "tu" ;
Gen => "tevis" ;
Dat => "tev" ;
Acc => "tevi" ;
Loc => "tevī" ;
ResLav.Voc => "tu"
} ;
a = AgP2 Sg g ;
possessive = table {
Masc => table {
Sg => table {
Nom => "tavs" ;
Gen => "tava" ;
Dat => "tavam" ;
Acc => "tavu" ;
Loc => "tavā" ;
ResLav.Voc => "tavs"
};
Pl => table {
Nom => "tavi" ;
Gen => "tavu" ;
Dat => "taviem" ;
Acc => "tavus" ;
Loc => "tavos" ;
ResLav.Voc => "tavi"
}
} ;
Fem => table {
Sg => table {
Nom => "tava" ;
Gen => "tavas" ;
Dat => "tavai" ;
Acc => "tavu" ;
Loc => "tavā" ;
ResLav.Voc => "tava"
};
Pl => table {
Nom => "tavas" ;
Gen => "tavu" ;
Dat => "tavām" ;
Acc => "tavas" ;
Loc => "tavās" ;
ResLav.Voc => "tavas"
}
}
}
} ;
mkPronoun_You_Pol : Gender -> Pron = \g -> {
s = table {
Nom => "jūs" ;
Gen => "jūsu" ;
Dat => "jums" ;
Acc => "jūs" ;
Loc => "jūsos" ;
ResLav.Voc => "jūs"
} ;
a = AgP2 Pl g ; -- FIXME: in the case of a predicate nominal: copula=Pl, complement=Sg
possessive = \\_,_,_ => "jūsu"
} ;
mkPronoun_You_Pl : Gender -> Pron = \g -> {
s = table {
Nom => "jūs" ;
Gen => "jūsu" ;
Dat => "jums" ;
Acc => "jūs" ;
Loc => "jūsos" ;
ResLav.Voc => "jūs"
} ;
a = AgP2 Pl g ;
possessive = \\_,_,_ => "jūsu"
} ;
mkPronoun_They : Gender -> Pron = \g -> {
s = \\c => (mkPronoun_Gend "viņš").s ! g ! Pl ! c ;
a = AgP3 Pl g ;
possessive = \\_,_,_ => "viņu"
} ;
mkPronoun_It_Sg : Gender -> Pron = \g -> {
s = \\c => (mkPronoun_ThisThat That).s ! g ! Sg ! c;
a = AgP3 Sg g ;
possessive = \\_,_,_ => case g of { Masc => "tā" ; Fem => "tās" }
} ;
-- Gender=>Number=>Case P3 pronouns -- Gender=>Number=>Case P3 pronouns
-- Expected ending of a lemma: -s or -š (Masc=>Sg=>Nom) -- Expected ending of a lemma: -s or -š (Masc=>Sg=>Nom)
-- Examples: -- Examples:

View File

@@ -356,9 +356,11 @@ oper
mkVerb_Irreg : Str -> Verb = \lemma -> mkVerb_Irreg : Str -> Verb = \lemma ->
case lemma of { case lemma of {
"būt" => mkVerb_Irreg_Be ; "būt" => mkVerb_Irreg_Be ;
"iet" => mkVerb_Irreg_Walk ; "iet" => mkVerb_Irreg_Go ;
"gulēt" => mkVerb_Irreg_Sleep #prefix + "iet" => mkVerb_Irreg_Go_Prefix (Predef.tk 3 lemma) ;
-- TODO: dot, ..? "gulēt" => mkVerb_Irreg_Sleep -- FIXME: Should be treated as a regular verb (C3: gulēt, sēdēt etc.)
-- TODO: add "dot"/Give (+prefix, +refl)
-- TODO: multiple prefixes
-- TODO: move to IrregLav? -- TODO: move to IrregLav?
} ; } ;
@@ -387,18 +389,20 @@ oper
} }
} ; } ;
mkVerb_Irreg_Walk : Verb = { mkVerb_Irreg_Go : Verb = mkVerb_Irreg_Go_Prefix "" ;
mkVerb_Irreg_Go_Prefix : Str -> Verb = \pref -> {
s = table { s = table {
Pos => table { Pos => table {
Indicative P3 _ Pres => "iet" ; Indicative P3 _ Pres => pref + "iet" ;
Debitive => "jāiet" ; Debitive => "jā" + pref + "iet" ;
x => (mkVerb_C1 "iet" "eju" "gāju" ).s ! x x => (mkVerb_C1 (pref + "iet") (pref + "eju") (pref + "gāju")).s ! x
} ; } ;
Neg => table { Neg => table {
Indicative P3 _ Pres => "neiet" ; Indicative P3 _ Pres => "ne" + pref + "iet" ;
Debitive => NON_EXISTENT ; Debitive => NON_EXISTENT ;
DebitiveRelative => NON_EXISTENT ; DebitiveRelative => NON_EXISTENT ;
x => (mkVerb_C1 "neiet" "neeju" "negāju" ).s ! x x => (mkVerb_C1 ("ne" + pref + "iet") ("ne" + pref + "eju") ("ne" + pref + "gāju")).s ! x
} }
} }
} ; } ;
@@ -409,7 +413,7 @@ oper
Indicative P2 Sg Pres => (mkVerb_C3 "gulēt").s ! Indicative P2 Sg Pres ; Indicative P2 Sg Pres => (mkVerb_C3 "gulēt").s ! Indicative P2 Sg Pres ;
Indicative p n Pres => (mkVerb_C3 "guļēt").s ! Indicative p n Pres ; Indicative p n Pres => (mkVerb_C3 "guļēt").s ! Indicative p n Pres ;
-- Here and there: the incorrect 'guļēt' contains intentional palatalization -- FIXME: Here and there, the incorrect 'guļēt' contains intentional palatalization
Relative Pres => (mkVerb_C3 "guļēt").s ! Relative Pres ; Relative Pres => (mkVerb_C3 "guļēt").s ! Relative Pres ;
@@ -489,6 +493,7 @@ oper
pal_C1_4 : Str -> Str = \stem -> pal_C1_4 : Str -> Str = \stem ->
case stem of { case stem of {
s + "k" => s + "c" ; s + "k" => s + "c" ;
s + "t" => s + "ti" ;
_ => stem _ => stem
} ; } ;
@@ -545,6 +550,7 @@ oper
-- Declinable participles: syntactic function - attribute => category - adjective -- Declinable participles: syntactic function - attribute => category - adjective
-- TODO: declinable participles => adjectives -- TODO: declinable participles => adjectives
-- TODO: -ot, -am, -ām; -dams/dama, -damies/damās; -ošs/oša, -ams/ama, -āms/āma, -ts/ta -- TODO: -ot, -am, -ām; -dams/dama, -damies/damās; -ošs/oša, -ams/ama, -āms/āma, -ts/ta
-- Nē, -ošs/oša ir tikai adjektīvi! Divdabji - tikai verbālās formas! (sk. Baibas sarakstu)
mkParticiple : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_IsUsi g n c stem stem ; mkParticiple : Gender -> Number -> Case -> Str -> Str = \g,n,c,stem -> mkParticiple_IsUsi g n c stem stem ;

View File

@@ -45,9 +45,9 @@ param
VerbConj = C2 | C3 ; VerbConj = C2 | C3 ;
--Agr = Ag Gender Number ; -- TODO: Kāpēc Gender ir tikai P3? Lokāmo divdabju dēļ?
-- TODO: kāpēc P3 jāsaskaņo Gender? divdabju dēļ? -- Dzimte jāsaskaņo vienmēr - nominālo izteicēju dēļ...
Agr = AgP1 Number | AgP2 Number | AgP3 Number Gender ; Agr = AgP1 Number Gender | AgP2 Number Gender | AgP3 Number Gender ;
ThisOrThat = This | That ; ThisOrThat = This | That ;
CardOrd = NCard | NOrd ; CardOrd = NCard | NOrd ;
@@ -61,6 +61,8 @@ oper
sonantCons : pattern Str = #("l"|"m"|"n"|"r"|"ļ"|"ņ") ; sonantCons : pattern Str = #("l"|"m"|"n"|"r"|"ļ"|"ņ") ;
doubleCons : pattern Str = #("ll"|"ln"|"nn"|"sl"|"sn"|"st"|"zl"|"zn") ; doubleCons : pattern Str = #("ll"|"ln"|"nn"|"sl"|"sn"|"st"|"zl"|"zn") ;
prefix : pattern Str = #("aiz"|"ap"|"at"|"ie"|"iz"|"no"|"pa"|"pār"|"pie"|"sa"|"uz") ;
NON_EXISTENT : Str = "NON_EXISTENT" ; NON_EXISTENT : Str = "NON_EXISTENT" ;
Verb : Type = { s : Polarity => VerbForm => Str } ; Verb : Type = { s : Polarity => VerbForm => Str } ;
@@ -77,15 +79,15 @@ oper
toAgr : Number -> Person -> Gender -> Agr = \n,p,g -> toAgr : Number -> Person -> Gender -> Agr = \n,p,g ->
case p of { case p of {
P1 => AgP1 n ; P1 => AgP1 n g ;
P2 => AgP2 n ; P2 => AgP2 n g ;
P3 => AgP3 n g P3 => AgP3 n g
} ; } ;
fromAgr : Agr -> { n : Number ; p : Person ; g : Gender } = \a -> fromAgr : Agr -> { n : Number ; p : Person ; g : Gender } = \a ->
case a of { case a of {
AgP1 n => { n = n ; p = P1 ; g = Masc } ; -- FIXME: 'es esmu skaista' AgP1 n g => { n = n ; p = P1 ; g = g } ;
AgP2 n => { n = n ; p = P2 ; g = Masc } ; -- FIXME: 'tu esi skaista' AgP2 n g => { n = n ; p = P2 ; g = g } ;
AgP3 n g => { n = n ; p = P3 ; g = g } AgP3 n g => { n = n ; p = P3 ; g = g }
} ; } ;

View File

@@ -14,7 +14,7 @@ lin
PredSCVP sc vp = mkClauseSC sc vp ; PredSCVP sc vp = mkClauseSC sc vp ;
ImpVP vp = { s = \\pol, n => vp.v.s ! pol ! (Imperative n) ++ vp.s2 ! (AgP2 n) } ; ImpVP vp = { s = \\pol,n => vp.v.s ! pol ! (Imperative n) ++ vp.s2 ! (AgP2 n Masc) } ;
SlashVP np vp = mkClause np vp ** { p = vp.p } ; SlashVP np vp = mkClause np vp ** { p = vp.p } ;

View File

@@ -62,244 +62,61 @@ lin
d = Def d = Def
} ; } ;
-- P1
i_Pron = { i_Pron = mkPronoun_I Masc ; -- See also: ExtraLav.i8fem_Pron
s = table {
Nom => "es";
Gen => "manis";
Dat => "man";
Acc => "mani";
Loc => "manī";
ResLav.Voc => NON_EXISTENT
} ;
possessive = table {
Masc => table {
Sg => table {
Nom => "mans";
Gen => "mana";
Dat => "manam";
Acc => "manu";
Loc => "manā";
ResLav.Voc => "mans"
};
Pl => table {
Nom => "mani";
Gen => "manu";
Dat => "maniem";
Acc => "manus";
Loc => "manos";
ResLav.Voc => "mani"
}
} ;
Fem => table {
Sg => table {
Nom => "mana";
Gen => "manas";
Dat => "manai";
Acc => "manu";
Loc => "manā";
ResLav.Voc => "mana"
};
Pl => table {
Nom => "manas";
Gen => "manu";
Dat => "manām";
Acc => "manas";
Loc => "manās";
ResLav.Voc => "manas"
}
}
} ;
a = AgP1 Sg ;
} ;
we_Pron = { we_Pron = mkPronoun_We Masc ; -- See also: ExtraLav.we8fem_Pron
s = table {
Nom => "mēs";
Gen => "mūsu";
Dat => "mums";
Acc => "mūs";
Loc => "mūsos";
ResLav.Voc => NON_EXISTENT
} ;
possessive = table {
_ => table {
_ => table {
_ => "mūsu"
}
}
} ;
a = AgP1 Pl ;
} ;
youSg_Pron = { -- P2
s = table {
Nom => "tu";
Gen => "tevis";
Dat => "tev";
Acc => "tevi";
Loc => "tevī";
ResLav.Voc => "tu"
} ;
possessive = table {
Masc => table {
Sg => table {
Nom => "tavs";
Gen => "tava";
Dat => "tavam";
Acc => "tavu";
Loc => "tavā" ;
ResLav.Voc => "tavs"
};
Pl => table {
Nom => "tavi";
Gen => "tavu";
Dat => "taviem";
Acc => "tavus";
Loc => "tavos";
ResLav.Voc => "tavi"
}
} ;
Fem => table {
Sg => table {
Nom => "tava";
Gen => "tavas";
Dat => "tavai";
Acc => "tavu";
Loc => "tavā";
ResLav.Voc => "tava"
};
Pl => table {
Nom => "tavas";
Gen => "tavu";
Dat => "tavām";
Acc => "tavas";
Loc => "tavās";
ResLav.Voc => "tavas"
}
}
} ;
a = AgP2 Sg ;
} ;
youPl_Pron = { youSg_Pron = mkPronoun_You_Sg Masc ; -- See also: ExtraLav.youSg8fem_Pron
s = table {
Nom => "jūs";
Gen => "jūsu";
Dat => "jums";
Acc => "jūs";
Loc => "jūsos";
ResLav.Voc => "jūs"
} ;
possessive = table {
_ => table {
_ => table {
_ => "jūsu"
}
}
} ;
a = AgP2 Pl ;
} ;
youPol_Pron = { youPol_Pron = mkPronoun_You_Pol Masc ; -- See also: ExtraLav.youPol8fem_Pron
s = table {
Nom => "jūs"; youPl_Pron = mkPronoun_You_Pl Masc ; -- See also: ExtraLav.youPl8fem_Pron
Gen => "jūsu";
Dat => "jums"; -- P3
Acc => "jūs";
Loc => "jūsos";
ResLav.Voc => "jūs"
} ;
possessive = table {
_ => table {
_ => table {
_ => "jūsu"
}
}
} ;
a = AgP2 Pl ;
} ;
he_Pron = { he_Pron = {
s = (\\c => (mkPronoun_Gend "viņš").s ! Masc ! Sg ! c) ; s = \\c => (mkPronoun_Gend "viņš").s ! Masc ! Sg ! c ;
possessive = table {
_ => table {
_ => table {
_ => "viņa"
}
}
} ;
a = AgP3 Sg Masc ; a = AgP3 Sg Masc ;
possessive = \\_,_,_ => "viņa"
} ; } ;
she_Pron = { she_Pron = {
s = (\\c => (mkPronoun_Gend "viņš").s ! Fem ! Sg ! c) ; s = \\c => (mkPronoun_Gend "viņš").s ! Fem ! Sg ! c ;
possessive = table {
_ => table {
_ => table {
_ => "viņas"
}
}
} ;
a = AgP3 Sg Fem ; a = AgP3 Sg Fem ;
possessive = \\_,_,_ => "viņas"
} ; } ;
they_Pron = { they_Pron = mkPronoun_They Masc ; -- See also: ExtraLav.they8fem_Pron
s = (\\c => (mkPronoun_Gend "viņš").s ! Masc ! Pl ! c) ;
possessive = table {
_ => table {
_ => table {
_ => "viņu"
}
}
} ;
a = AgP3 Pl Masc ;
} |
{
s = (\\c => (mkPronoun_Gend "viņš").s ! Fem ! Pl ! c) ;
possessive = table {
_ => table {
_ => table {
_ => "viņu"
}
}
} ;
a = AgP3 Pl Fem ;
} ;
it_Pron = { it_Pron = mkPronoun_It_Sg Masc ; -- See also: ExtraLav.it8fem_Pron
s = \\c => (mkPronoun_ThisThat That).s ! Masc ! Sg ! c;
possessive = table { _ => table { _ => table { _ => "tā" }}};
a = AgP3 Sg Masc
} | {
s = \\c => (mkPronoun_ThisThat That).s ! Fem ! Sg ! c;
possessive = table { _ => table { _ => table { _ => "tās" }}};
a = AgP3 Sg Fem
};
-- manuprāt prievārdi tomēr ir valodas-specifiski un nebūtu tieši 1-pret-1 jātulko -- manuprāt prievārdi tomēr ir valodas-specifiski un nebūtu tieši 1-pret-1 jātulko
above_Prep = mkPrep "virs" Gen Dat; above_Prep = mkPrep "virs" Gen Dat ;
after_Prep = mkPrep "pēc" Gen Dat; after_Prep = mkPrep "pēc" Gen Dat ;
before_Prep = mkPrep "pirms" Gen Dat; before_Prep = mkPrep "pirms" Gen Dat ;
behind_Prep = mkPrep "aiz" Gen Dat; behind_Prep = mkPrep "aiz" Gen Dat ;
between_Prep = mkPrep "starp" Acc Dat; between_Prep = mkPrep "starp" Acc Dat ;
for_Prep = mkPrep "priekš" Gen Dat; for_Prep = mkPrep "priekš" Gen Dat ;
from_Prep = mkPrep "no" Gen Dat; from_Prep = mkPrep "no" Gen Dat ;
on_Prep = mkPrep "uz" Gen Dat; on_Prep = mkPrep "uz" Gen Dat ;
with_Prep = mkPrep "ar" Acc Dat; -- ar sievu, ar sievām with_Prep = mkPrep "ar" Acc Dat ; -- ar sievu, ar sievām
in_Prep = mkPrep Loc ; in_Prep = mkPrep Loc ;
to_Prep = mkPrep "līdz" Dat Dat; --FIXME - ļoti dažādi tulkojas to_Prep = mkPrep "līdz" Dat Dat ; -- See also: ExtraLav.to8uz_Prep
possess_Prep = mkPrep Gen ; --FIXME - reku vajadzētu vārdu secību otrādi, ka pirms paskaidrojamā vārda likt possess_Prep = mkPrep Gen ; -- FIXME: reku vajadzētu vārdu secību otrādi, ka pirms paskaidrojamā vārda likt
under_Prep = mkPrep "zem" Gen Dat; under_Prep = mkPrep "zem" Gen Dat ;
with_Prep = mkPrep "ar" Acc Dat; with_Prep = mkPrep "ar" Acc Dat ;
without_Prep = mkPrep "bez" Gen Dat; without_Prep = mkPrep "bez" Gen Dat ;
by8agent_Prep = nom_Prep; --- A was attacked by B -> A-Dat uzbruka B-Nom by8agent_Prep = nom_Prep ; -- A was attacked by B -> A-Dat uzbruka B-Nom
by8means_Prep = mkPrep "ar" Acc Dat; by8means_Prep = mkPrep "ar" Acc Dat ;
during_Prep = mkPrep "laikā" Gen Gen; --FIXME nevaru saprast. laikam postfix 'X laikā' jāliek during_Prep = mkPrep "laikā" Gen Gen ; -- FIXME: nevaru saprast; laikam postfix 'X laikā' jāliek
in8front_Prep = mkPrep "priekšā" Dat Dat; in8front_Prep = mkPrep "priekšā" Dat Dat ;
part_Prep = mkPrep Gen ; --FIXME - reku vajadzētu vārdu secību otrādi, ka pirms paskaidrojamā vārda likt part_Prep = mkPrep Gen ; --FIXME - reku vajadzētu vārdu secību otrādi, ka pirms paskaidrojamā vārda likt
through_Prep = mkPrep "cauri" Dat Dat; through_Prep = mkPrep "cauri" Dat Dat ;
except_Prep = mkPrep "izņemot" Acc Acc; except_Prep = mkPrep "izņemot" Acc Acc ;
very_AdA = mkAdA "ļoti" ; very_AdA = mkAdA "ļoti" ;
almost_AdA = mkAdA "gandrīz" ; almost_AdA = mkAdA "gandrīz" ;
@@ -380,7 +197,7 @@ lin
why_IAdv = ss "kāpēc" ; why_IAdv = ss "kāpēc" ;
how_IAdv = ss "kā" ; how_IAdv = ss "kā" ;
how8much_IAdv = ss "cik daudz" ; how8much_IAdv = ss "cik" ;
when_IAdv = ss "kad" ; when_IAdv = ss "kad" ;
where_IAdv = ss "kur" ; where_IAdv = ss "kur" ;
@@ -414,7 +231,11 @@ lin
always_AdV = mkAdV "vienmēr" ; always_AdV = mkAdV "vienmēr" ;
how8many_IDet = { s = table { _ => "cik"}; n = Sg }; --TODO jātestē kā to pielieto un vai nevajag vēl kaut ko -- TODO: jātestē kā to pielieto un vai nevajag vēl kaut ko
how8many_IDet = {
s = table { _ => "cik" } ;
n = Pl
} ;
everybody_NP = DetCN emptyPl_Det (UseN (mkN "visi")); everybody_NP = DetCN emptyPl_Det (UseN (mkN "visi"));