1
0
forked from GitHub/gf-core

Latvian: miscellaneous

This commit is contained in:
normundsg
2013-04-22 13:51:48 +00:00
parent 5aee2c4473
commit 591c487d2c
9 changed files with 92 additions and 57 deletions

View File

@@ -77,7 +77,7 @@ lincat
N3 = { s : Number => Case => Str ; g : Gender } ** { p1, p2 : ResLav.Prep ; isPre1, isPre2 : Bool } ;
PN = { s : Case => Str ; g : Gender ; n : Number } ;
A = { s : AForm => Str } ;
A = { s : ResLav.AForm => Str } ;
A2 = A ** { p : ResLav.Prep } ;
V, VA = Verb ;

View File

@@ -1,17 +1,27 @@
--# -path=.:../abstract:../common:../prelude
concrete ExtraLav of ExtraLavAbs = CatLav ** open
concrete ExtraLav of ExtraLavAbs = CatLav ** open
ParadigmsLav,
ParadigmsPronounsLav,
ResLav
ResLav,
Prelude
in {
flags
coding = utf8 ;
lin
to8uz_Prep = mkPrep "uz" Acc Dat ;
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 ;
@@ -21,7 +31,14 @@ lin
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} ;
@@ -31,5 +48,4 @@ lin
IAdvAdv adv = {s = "cik" ++ adv.s} ;
have_V3 = mkV3 (mkV "būt") nom_Prep dat_Prep Dat ;
}

View File

@@ -1,8 +1,17 @@
--# -path=.:../abstract:../common:../prelude
abstract ExtraLavAbs = Extra ** {
abstract ExtraLavAbs = Extra ** open ResLav, Prelude in {
fun
to8uz_Prep : Prep ; -- "to" in the sense of "uz" (direction)
aiz_Prep : Prep ;
ap_Prep : Prep ;
gar_Prep : Prep ;
kopsh_Prep : Prep ;
liidz_Prep : Prep ;
pa_Prep : Prep ;
par_Prep : Prep ;
paar_Prep : Prep ;
pie_Prep : Prep ;
pret_Prep : Prep ;
i8fem_Pron : Pron ;
we8fem_Pron : Pron ;
@@ -12,5 +21,7 @@ abstract ExtraLavAbs = Extra ** {
they8fem_Pron : Pron ;
it8fem_Pron : Pron ;
--empty_Det : Number -> Definite -> Bool -> Det ;
have_V3 : V3 ;
}

View File

@@ -3,6 +3,7 @@
concrete LexiconLav of Lexicon = CatLav ** open
ParadigmsLav,
StructuralLav,
ExtraLav,
ResLav,
Prelude
in {
@@ -13,8 +14,7 @@ flags
lin
airplane_N = mkN "lidmašīna" ;
answer_V2S = mkV2S (mkV "atbildēt" third_conjugation) dat_Prep that_Subj ;
-- toP = 'answer to [Person]' = 'atbildēt [kam?]'
answer_V2S = mkV2S (mkV "atbildēt" third_conjugation) dat_Prep that_Subj ; -- toP = 'answer to [Person]' = 'atbildēt [kam?]'
apartment_N = mkN "dzīvoklis" ;
apple_N = mkN "ābols" ;
art_N = mkN "māksla" ;
@@ -39,8 +39,7 @@ lin
bread_N = mkN "maize" ;
break_V2 = mkV2 (mkV "lauzt" "laužu" "lauzu") acc_Prep ;
broad_A = mkA "plats" ;
brother_N2 = mkN2 (mkN "brālis") gen_Prep True;
-- Ģenitīvs nav kā piederība, bet kā relācija: "Jāņa/tēva brālis", bet ne "mans brālis" (?)
brother_N2 = mkN2 (mkN "brālis") gen_Prep True; -- Ģenitīvs nav kā piederība, bet kā relācija: "Jāņa/tēva brālis", bet ne "mans brālis" (?)
brown_A = mkA "brūns" ;
butter_N = mkN "sviests" ;
buy_V2 = mkV2 (mkV "pirkt" "pērku" "pirku") acc_Prep ;
@@ -64,13 +63,13 @@ lin
computer_N = mkN "dators" ;
country_N = mkN "valsts" ;
cousin_N = mkN "brālēns" ; -- FIXME: brālēns/māsīca angļiem ir vienāds...
cow_N = mkN "govs" ;
cow_N = mkN "govs" feminine ;
die_V = mkV "nomirt" "nomirstu" "nomiru";
dirty_A = mkA "netīrs" ;
distance_N3 = mkN3 (mkN "attālums") from_Prep to_Prep ; -- no / līdz
doctor_N = mkN "ārsts" ;
dog_N = mkN "suns" ;
door_N = mkN "durvis" ;
door_N = mkN "durvis" feminine ;
drink_V2 = mkV2 (mkV "dzert" "dzeru" "dzēru") acc_Prep;
--easy_A2V = mkA2V (regA "easy") forP ; -- FIXME: nav tādas konstrukcijas latviešu val.
eat_V2 = mkV2 (mkV "ēst" "ēdu" "ēdu") acc_Prep ;
@@ -80,7 +79,7 @@ lin
father_N2 = mkN2 (mkN "tēvs") gen_Prep True ;
fear_VS = mkVS (mkV "baidīties" third_conjugation) that_Subj ;
find_V2 = mkV2 (mkV "atrast" "atrodi" "atradu") acc_Prep ;
fish_N = mkN "zivs" ;
fish_N = mkN "zivs" feminine ;
floor_N = mkN "grīda" ;
forget_V2 = mkV2 (mkV "aizmirst" "aizmirstu" "aizmirsu") acc_Prep ;
fridge_N = mkN "ledusskapis" ;
@@ -252,30 +251,30 @@ lin
back_N = mkN "mugura" ;
bark_N = mkN "miza" ;
belly_N = mkN "vēders" ;
blood_N = mkN "asinis" Fem ;
blood_N = mkN "asinis" feminine ;
bone_N = mkN "kauls" ;
breast_N = mkN "krūts" Fem ;
breast_N = mkN "krūts" feminine ;
cloud_N = mkN "mākonis" ;
day_N = mkN "diena" ;
dust_N = mkN "putekļi" ;
ear_N = mkN "auss" ;
ear_N = mkN "auss" feminine ;
earth_N = mkN "zeme" ;
egg_N = mkN "ola" ;
eye_N = mkN "acs" ;
eye_N = mkN "acs" feminine ;
fat_N = mkN "tauki" ;
feather_N = mkN "spalva" ;
fingernail_N = mkN "nags" ;
fire_N = mkN "uguns" ;
fire_N = mkN "uguns" feminine ;
flower_N = mkN "puķe" ;
fog_N = mkN "migla" ;
foot_N = mkN "pēda" ;
forest_N = mkN "mežs" ;
grass_N = mkN "zāle" ;
guts_N = mkN "zarnas" ; -- FIXME: no singular
guts_N = mkN "zarnas" ;
hair_N = mkN "mati" ;
hand_N = mkN "roka" ;
head_N = mkN "galva" ;
heart_N = mkN "sirds" ;
heart_N = mkN "sirds" feminine ;
horn_N = mkN "rags" ;
husband_N = mkN "vīrs" ; --TODO: kāpēc nav parametrs tāpat kā tēvam?
ice_N = mkN "ledus" ;
@@ -283,11 +282,11 @@ lin
leaf_N = mkN "lapa" ;
leg_N = mkN "kāja" ;
liver_N = mkN "aknas" ;
louse_N = mkN "uts" ;
louse_N = mkN "uts" feminine ;
mouth_N = mkN "mute" ;
name_N = mkN "vārds" ;
neck_N = mkN "kakls" ;
night_N = mkN "nakts" ;
night_N = mkN "nakts" feminine ;
nose_N = mkN "deguns" ;
person_N = mkN "persona" ;
rain_N = mkN "lietus" ;
@@ -373,7 +372,6 @@ lin
today_Adv = mkAdv "šodien" ;
uncertain_A = mkA "nepārliecināts" ;
oper
par_Prep = mkPrep "par" Acc Dat ;
--oper par_Prep = mkPrep "par" Acc Dat ;
}

View File

@@ -39,20 +39,20 @@ oper
-- Indeclinable adjective: theoretically, any #vowel ending
mkAdjective_Indecl : Str -> Adj = \lemma -> {
s = table{
AAdj Superl Indef _ _ _ => NON_EXISTENT;
AAdj _ _ _ _ _ => lemma ;
AAdv d => mkAdjective_Adverb lemma ! d-- TODO - notestēt šādu keisu
AAdj Superl Indef _ _ _ => NON_EXISTENT ;
AAdj _ _ _ _ _ => lemma ;
AAdv d => mkAdjective_Adverb lemma ! d-- TODO - notestēt šādu keisu
}
} ;
-- Qualitative adjective: -s, -š
mkAdjective_Qual : Str -> Adj = \lemma -> {
s = table {
AAdj Posit d g n c => mkAdjective_Pos lemma d ! g ! n ! c;
AAdj Compar d g n c => mkAdjective_Comp lemma d ! g ! n ! c;
AAdj Superl Def g n c => mkAdjective_Sup lemma ! g ! n ! c;
AAdj Superl Indef _ _ _ => NON_EXISTENT;
AAdv d => mkAdjective_Adverb lemma ! d
AAdj Posit d g n c => mkAdjective_Pos lemma d ! g ! n ! c ;
AAdj Compar d g n c => mkAdjective_Comp lemma d ! g ! n ! c ;
AAdj Superl Def g n c => mkAdjective_Sup lemma ! g ! n ! c ;
AAdj Superl Indef _ _ _ => NON_EXISTENT ;
AAdv d => mkAdjective_Adverb lemma ! d
}
} ;

View File

@@ -18,6 +18,9 @@ oper
singular : Number = Sg ;
plural : Number = Pl ;
masculine : Gender = Masc ;
feminine : Gender = Fem ;
second_conjugation : VerbConj = C2 ;
third_conjugation : VerbConj = C3 ;
@@ -27,6 +30,9 @@ oper
accusative : Case = Acc ;
locative : Case = Loc ;
active_voice : PartType = IsUsi ;
passive_voice : PartType = TsTa ;
mkN = overload {
mkN : (lemma : Str) -> N = \l -> lin N (mkNoun l) ;

View File

@@ -132,7 +132,7 @@ oper
Dat => stem + "am" ;
Acc => stem + "u" ;
Loc => stem + "ā" ;
Voc => stem
Voc => stem
} ;
Pl => table {
Nom => stem + "i" ;
@@ -140,7 +140,7 @@ oper
Dat => stem + "iem" ;
Acc => stem + "us" ;
Loc => stem + "os" ;
Voc => stem + "i"
Voc => stem + "i"
}
} ;
g = Masc
@@ -190,7 +190,7 @@ oper
Dat => stem + "um" ;
Acc => stem + "u" ;
Loc => stem + "ū" ;
Voc => stem + "u"
Voc => stem + "u"
} ;
Pl => table {
Nom => stem + "i" ;
@@ -198,7 +198,7 @@ oper
Dat => stem + "iem" ;
Acc => stem + "us" ;
Loc => stem + "os" ;
Voc => stem + "i"
Voc => stem + "i"
}
} ;
g = Masc
@@ -217,7 +217,7 @@ oper
Dat => case gend of {Fem => stem + "ai" ; Masc => stem + "am"} ;
Acc => stem + "u" ;
Loc => stem + "ā" ;
Vod => stem + "a"
Voc => stem + "a"
} ;
Pl => table {
Nom => stem + "as" ;
@@ -225,7 +225,7 @@ oper
Dat => stem + "ām" ;
Acc => stem + "as" ;
Loc => stem + "ās" ;
Voc => stem + "as"
Voc => stem + "as"
}
} ;
g = gend
@@ -244,7 +244,7 @@ oper
Dat => case gend of {Fem => stem + "ei" ; Masc => stem + "em"} ;
Acc => stem + "i" ;
Loc => stem + "ē" ;
Voc => stem + "e"
Voc => stem + "e"
} ;
Pl => table {
Nom => stem + "es" ;
@@ -252,7 +252,7 @@ oper
Dat => stem + "ēm" ;
Acc => stem + "es" ;
Loc => stem + "ēs" ;
Voc => stem + "es"
Voc => stem + "es"
}
} ;
g = gend
@@ -273,7 +273,7 @@ oper
Dat => case gend of {Fem => stem + "ij" ; Masc => stem + "im"} ;
Acc => stem + "i" ;
Loc => stem + "ī" ;
Voc => stem + "s"
Voc => stem + "s"
}
} ;
Pl => table {
@@ -282,7 +282,7 @@ oper
Dat => stem + "īm" ;
Acc => stem + "is" ;
Loc => stem + "īs" ;
Voc => stem + "is"
Voc => stem + "is"
}
} ;
g = gend
@@ -300,7 +300,7 @@ oper
Dat => NON_EXISTENT ;
Acc => stem + "šanos" ;
Loc => NON_EXISTENT ;
Voc => stem + "šanās"
Voc => stem + "šanās"
} ;
Pl => table {
Nom => stem + "šanās" ;
@@ -308,7 +308,7 @@ oper
Dat => NON_EXISTENT ;
Acc => stem + "šanās" ;
Loc => NON_EXISTENT ;
Voc => stem + "šanās"
Voc => stem + "šanās"
}
} ;
g = Fem

View File

@@ -15,7 +15,6 @@ flags
lin
language_title_Utt = ss "latviešu valoda" ;
-- TODO: kā ar loģikā lietotajiem 'visi', 'katrs' ?
every_Det = {
s = (\\g,c => (mkPronoun_Gend "ikviens").s ! g ! Sg ! c) ;
n = Sg ;
@@ -112,24 +111,23 @@ lin
above_Prep = mkPrep "virs" Gen Dat ;
after_Prep = mkPrep "pēc" Gen Dat ;
before_Prep = mkPrep "pirms" Gen Dat ;
behind_Prep = mkPrep "aiz" Gen Dat ;
behind_Prep = mkPrep "aiz" Gen Dat ; -- taču "aiz" nav viennozīmīgi "behind"
between_Prep = mkPrep "starp" Acc Dat ;
for_Prep = mkPrep "priekš" Gen Dat ;
from_Prep = mkPrep "no" Gen Dat ;
on_Prep = mkPrep "uz" Gen Dat ;
with_Prep = mkPrep "ar" Acc Dat ; -- ar sievu, ar sievām
in_Prep = mkPrep Loc ;
to_Prep = mkPrep "līdz" Dat Dat ; -- See also: ExtraLav.to8uz_Prep
to_Prep = mkPrep "uz" Acc Dat ; -- See also: ExtraLav.liidz_Prep, pie_Prep
possess_Prep = mkPrep Gen ; -- FIXME: vajadzētu vārdu secību otrādi - pirms paskaidrojamā vārda likt
under_Prep = mkPrep "zem" Gen Dat ;
with_Prep = mkPrep "ar" Acc Dat ;
without_Prep = mkPrep "bez" Gen Dat ;
by8agent_Prep = nom_Prep ; -- TODO: should get rid of this Prep
by8agent_Prep = nom_Prep ; -- TODO: should get rid of this Prep; taču tas parādās Eng2Abs kokos... -- FIXME: nom_Prep vs. dat_Prep/accPrep
by8means_Prep = mkPrep "ar" Acc Dat ;
during_Prep = mkPrep "laikā" Gen Gen ; -- FIXME: laikam postfix 'X laikā' jāliek
during_Prep = mkPrep Loc ;
in8front_Prep = mkPrep "priekšā" Dat Dat ;
--part_Prep = mkPrep Gen ; --FIXME - vajadzētu vārdu secību otrādi - pirms paskaidrojamā vārda likt
through_Prep = mkPrep "cauri" Dat Dat ;
part_Prep = mkPrep Gen ; --FIXME - vajadzētu vārdu secību otrādi - pirms paskaidrojamā vārda likt
through_Prep = mkPrep "caur" Acc Dat ;
except_Prep = mkPrep "izņemot" Acc Acc ;
very_AdA = mkAdA "ļoti" ;
@@ -277,17 +275,18 @@ oper
lai_Subj = ss "lai" ;
kameer_Subj = ss "kamēr" ;
emptyPl_Det = { -- TODO: pašlaik netiek izmantots, jāpārnes uz ExtraLav(?) kā dsk. alternatīva a_Art, the_Art, no_Quant, every_Det
{- Netiek izmantoti; to vietā sk. ExtraLav
emptyPl_Det = {
s : Gender => Case => Str = \\_,_ => [] ;
n = Pl ;
d = Indef
} ;
emptySg_Det = { -- TODO: analoģiski kā emptyPl_Det
s : Gender => Case => Str = \\_,_ => [] ;
n = Sg ;
d = Indef
} ;
-}
no_Utt = ss "nē" ;

View File

@@ -170,6 +170,7 @@ lin
objNeg = False
} ;
-- TODO: vai VP nevajag papildlauku isPass?
PassV2 v2 = {
v = v2 ;
compl = \\_ => [] ;
@@ -177,6 +178,10 @@ lin
objNeg = False -- FIXME: inherit from the object
} ;
-- TODO: šajā brīdī ir jāignorē prep (by8agent_Prep); tas jāaizstāj ar v2.topic
-- Tad varēs dzēst ārā komentāru pie StructuralLav.by8agent_Prep
VPSlashPrep vp prep = vp ** {p = prep} ;
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
AdVVP adv vp = insertObjPre (\\_ => adv.s) vp ;