this_Quant and that_Quant. inflected possesive pronouns in Slovenian

This commit is contained in:
krasimir
2016-08-15 20:52:37 +00:00
parent 3609202c52
commit 16ce566c7a
5 changed files with 191 additions and 23 deletions

View File

@@ -20,12 +20,12 @@ lincat
CN = {s : Species => Case => Number => Str; g : Gender} ;
NP = {s : Case => Str ; a : Agr} ;
Pron = {s : Case => Str; poss : Str; a : Agr} ;
Pron = {s : Case => Str; poss : Gender => Case => Number => Str; a : Agr} ;
Det = {s : Gender => Case => Str; spec : Species; n : NumAgr} ;
Num = {s : Gender => Case => Str ; n : NumAgr} ;
Card = {s : Gender => Case => Str ; n : NumAgr} ;
Quant = {s : Str; spec : Species} ;
Quant = {s : Gender => Case => Number => Str; spec : Species} ;
-- Numeral
Numeral = {s : Gender => Case => Str ; n : NumAgr} ;

View File

@@ -19,7 +19,7 @@ concrete NounSlv of Noun = CatSlv ** open ResSlv in {
UsePron p = p ;
DetQuant quant num = {
s = \\c,g => quant.s ++ num.s ! c ! g;
s = \\g,c => quant.s ! g ! c ! (numAgr2num ! num.n) ++ num.s ! g ! c;
spec = quant.spec ;
n = num.n ;
} ;
@@ -42,12 +42,12 @@ concrete NounSlv of Noun = CatSlv ** open ResSlv in {
NumNumeral numeral = {s = numeral.s; n = numeral.n} ;
DefArt = {
s = "" ;
s = \\_,_,_ => "" ;
spec = Def
} ;
IndefArt = {
s = "" ;
s = \\_,_,_ => "" ;
spec = Indef
} ;

View File

@@ -289,19 +289,85 @@ oper
mkAdA : Str -> AdA = \s -> lin AdA {s=s} ;
mkPron : (_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron =
\nom,acc,gen,dat,loc,instr,poss,g,n,p ->
lin Pron {s = table {
Nom => nom;
mkPron : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron =
\nom,acc,gen,dat,loc,instr,
mSgNom,mSgGen,mSgDat,mSgAcc,mSgLoc,mSgInstr,
mDlNom,mDlGen,mDlDat,mDlAcc,mDlLoc,mDlInstr,
mPlNom,mPlGen,mPlDat,mPlAcc,mPlLoc,mPlInstr,
fSgNom,fSgGen,fSgDat,fSgAcc,fSgLoc,fSgInstr,
fDlNom,fDlGen,fDlDat,fDlAcc,fDlLoc,fDlInstr,
fPlNom,fPlGen,fPlDat,fPlAcc,fPlLoc,fPlInstr,
nSgNom,nSgGen,nSgDat,nSgAcc,nSgLoc,nSgInstr,
nDlNom,nDlGen,nDlDat,nDlAcc,nDlLoc,nDlInstr,
nPlNom,nPlGen,nPlDat,nPlAcc,nPlLoc,nPlInstr,g,n,p -> lin Pron {
s = table { Nom => nom;
Acc => acc;
Gen => gen;
Dat => dat;
Loc => loc;
Instr=>instr
} ;
poss = poss ;
a = {g=g; n=n; p=p}
} ;
poss = table {
Masc => table {Nom => table Number [mSgNom; mDlNom; mPlNom];
Gen => table Number [mSgGen; mDlGen; mPlGen];
Dat => table Number [mSgDat; mDlDat; mPlDat];
Acc => table Number [mSgAcc; mDlAcc; mPlAcc];
Loc => table Number [mSgLoc; mDlLoc; mPlLoc];
Instr => table Number [mSgInstr; mDlInstr; mPlInstr]
};
Fem => table {Nom => table Number [fSgNom; fDlNom; fPlNom];
Gen => table Number [fSgGen; fDlGen; fPlGen];
Dat => table Number [fSgDat; fDlDat; fPlDat];
Acc => table Number [fSgAcc; fDlAcc; fPlAcc];
Loc => table Number [fSgLoc; fDlLoc; fPlLoc];
Instr => table Number [fSgInstr; fDlInstr; fPlInstr]
};
Neut => table {Nom => table Number [nSgNom; nDlNom; nPlNom];
Gen => table Number [nSgGen; nDlGen; nPlGen];
Dat => table Number [nSgDat; nDlDat; nPlDat];
Acc => table Number [nSgAcc; nDlAcc; nPlAcc];
Loc => table Number [nSgLoc; nDlLoc; nPlLoc];
Instr => table Number [nSgInstr; nDlInstr; nPlInstr]
}
} ;
a = {g=g; n=n; p=p}
} ;
mkQuant : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Species -> Quant =
\mSgNom,mSgGen,mSgDat,mSgAcc,mSgLoc,mSgInstr,
mDlNom,mDlGen,mDlDat,mDlAcc,mDlLoc,mDlInstr,
mPlNom,mPlGen,mPlDat,mPlAcc,mPlLoc,mPlInstr,
fSgNom,fSgGen,fSgDat,fSgAcc,fSgLoc,fSgInstr,
fDlNom,fDlGen,fDlDat,fDlAcc,fDlLoc,fDlInstr,
fPlNom,fPlGen,fPlDat,fPlAcc,fPlLoc,fPlInstr,
nSgNom,nSgGen,nSgDat,nSgAcc,nSgLoc,nSgInstr,
nDlNom,nDlGen,nDlDat,nDlAcc,nDlLoc,nDlInstr,
nPlNom,nPlGen,nPlDat,nPlAcc,nPlLoc,nPlInstr,spec -> lin Quant {
s = table {
Masc => table {Nom => table Number [mSgNom; mDlNom; mPlNom];
Gen => table Number [mSgGen; mDlGen; mPlGen];
Dat => table Number [mSgDat; mDlDat; mPlDat];
Acc => table Number [mSgAcc; mDlAcc; mPlAcc];
Loc => table Number [mSgLoc; mDlLoc; mPlLoc];
Instr => table Number [mSgInstr; mDlInstr; mPlInstr]
};
Fem => table {Nom => table Number [fSgNom; fDlNom; fPlNom];
Gen => table Number [fSgGen; fDlGen; fPlGen];
Dat => table Number [fSgDat; fDlDat; fPlDat];
Acc => table Number [fSgAcc; fDlAcc; fPlAcc];
Loc => table Number [fSgLoc; fDlLoc; fPlLoc];
Instr => table Number [fSgInstr; fDlInstr; fPlInstr]
};
Neut => table {Nom => table Number [nSgNom; nDlNom; nPlNom];
Gen => table Number [nSgGen; nDlGen; nPlGen];
Dat => table Number [nSgDat; nDlDat; nPlDat];
Acc => table Number [nSgAcc; nDlAcc; nPlAcc];
Loc => table Number [nSgLoc; nDlLoc; nPlLoc];
Instr => table Number [nSgInstr; nDlInstr; nPlInstr]
}
} ;
spec = spec
};
mkNP : (_,_,_,_,_,_ : Str) -> Gender -> Number -> NP =
\nom,acc,gen,dat,loc,instr,g,n ->

View File

@@ -96,5 +96,8 @@ oper
insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> vp ** {
s2 = \\a => vp.s2 ! a ++ obj ! a ;
} ;
numAgr2num : NumAgr => Number =
table {UseNum n => n; UseGen => Pl} ;
}

View File

@@ -2,17 +2,116 @@ concrete StructuralSlv of Structural = CatSlv ** open ResSlv, ParadigmsSlv in {
lin
and_Conj = mkConj "in" ;
he_Pron = mkPron "òn" "njêga" "njêga" "njêmu" "njêm" "njím" "njegôv" Masc Sg P3 ;
i_Pron = mkPron "jàz" "méne" "méne" "méni" "méni" ("menój"|"máno") "mój" Masc Sg P1 ;
it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím" ("njegôv"|"njegòv") Neut Sg P3 ;
she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" "njén" Fem Sg P3 ;
mkPron "ôna" "njó" "njé" "njèj" "njèj" "njó" "njén" Fem Sg P3 ;
mkPron "ôna" "njó" "njé" "njì" "njì" "njó" "njén" Fem Sg P3 } ;
they_Pron = mkPron "ôni" "njìh" "njìh" "njìm" "njìh" "njími" "njíhov" Masc Pl P3 ;
we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi" "nàš" Masc Pl P1 ;
youSg_Pron = mkPron "tí" "tébe" "tébe" "tébi" "tébi" ("tebój"|"tábo") "tvój" Masc Sg P2 ;
youPl_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" "vàš" Masc Pl P2 ;
youPol_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" "vàš" Masc Pl P2 ;
he_Pron = mkPron "òn" "njêga" "njêga" "njêmu" "njêm" "njím"
"njegôv" "njegôvega" "njegôvemu" ("njegôv"|"njegôvega") "njegôvem" "njegôvim"
"njegôva" "njegôvih" "njegôvima" "njegôva" "njegôvih" "njegôvima"
"njegôvi" "njegôvih" "njegôvim" "njegôve" "njegôvih" "njegôvimi"
"njegôva" "njegôve" "njegôvi" "njegôvo" "njegôvi" "njegôvo"
"njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima"
"njegôve" "njegôvih" "njegôvim" "njegôve" "njegôvih" "njegôvimi"
"njegôve" "njegôvega" "njegôvemu" "njegôvo" "njegôvem" "njegôvim"
"njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima"
"njegôva" "njegôvih" "njegôvim" "njegôva" "njegôvih" "njegôvimi" Masc Sg P3 ;
i_Pron = mkPron "jàz" "méne" "méne" "méni" "méni" ("menój"|"máno")
"mój" "mòjega" "mòjemu" ("mòj"|"mòjega") "mòjem" "mòjim"
"mòja" "mòjih" "mòjima" "mòja" "mòjih" "mòjima"
"mòji" "mòjih" "mòjim" "mòje" "mòjih" "mòjimi"
"mòja" "mòje" "mòji" "mòjo" "mòji" "mòjo"
"mòji" "mòjih" "mòjima" "mòji" "mòjih" "mòjima"
"mòje" "mòjih" "mòjim" "mòje" "mòjih" "mòjimi"
"mòje" "mòjega" "mòjemu" "mòjo" "mòjem" "mòjim"
"mòji" "mòjih" "mòjima" "mòji" "mòjih" "mòjima"
"mòja" "mòjih" "mòjim" "mòja" "mòjih" "mòjimi" Masc Sg P1 ;
it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím"
("njegôv"|"njegòv") "njegôvega" "njegôvemu" ("njegôv"|"njegôvega") "njegôvem" "njegôvim"
"njegôva" "njegôvih" "njegôvima" "njegôva" "njegôvih" "njegôvima"
"njegôvi" "njegôvih" "njegôvim" "njegôve" "njegôvih" "njegôvimi"
"njegôva" "njegôve" "njegôvi" "njegôvo" "njegôvi" "njegôvo"
"njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima"
"njegôve" "njegôvih" "njegôvim" "njegôve" "njegôvih" "njegôvimi"
"njegôve" "njegôvega" "njegôvemu" "njegôvo" "njegôvem" "njegôvim"
"njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima"
"njegôva" "njegôvih" "njegôvim" "njegôva" "njegôvih" "njegôvimi" Neut Sg P3 ;
she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" ;
mkPron "ôna" "njó" "njé" "njèj" "njèj" "njó" ;
mkPron "ôna" "njó" "njé" "njì" "njì" "njó"}
"njén" "njénega" "njénemu" ("njéni"|"njénega") "njénem" "njénim"
"njéna" "njénih" "njénima" "njéna" "njénih" "njénima"
"njéni" "njénih" "njénim" "njéne" "njénih" "njénimi"
"njéna" "njéne" "njéni" "njéno" "njéni" "njéno"
"njéni" "njénih" "njénima" "njéni" "njénih" "njénima"
"njéne" "njénih" "njénim" "njéne" "njénih" "njénimi"
"njéno" "njénega" "njénemu" "njéne" "njénem" "njénim"
"njéni" "njénih" "njénima" "njéni" "njénih" "njénima"
"njéna" "njénih" "njénim" "njéna" "njénih" "njénimi" Fem Sg P3 ;
that_Quant = mkQuant "tîsti" "tîstega" "tîstemu" ("tîsti"|"tîstega") "tîstem" "tîstim"
"tîstȃ" "tîstih" "tîstima" "tîstȃ" "tîstih" "tîstima"
"tîsti" "tîstih" "tîstim" "tîste" "tîstih" "tîstimi"
"tîsta" "tîste" "tîsti" "tîsto" "tîsti" "tîsto"
"tîsti" "tîstih" "tîstima" "tîsti" "tîstih" "tîstima"
"tîste" "tîstih" "tîstim" "tîste" "tîstih" "tîstimi"
"tîsto" "tîstega" "tîstemu" "tîsto" "tîstem" "tîstim"
"tîsti" "tîstih" "tîstima" "tîsti" "tîstih" "tîstima"
"tîsta" "tîstih" "tîstim" "tîsta" "tîstih" "tîstimi" Def ;
they_Pron = mkPron "ôni" "njìh" "njìh" "njìm" "njìh" "njími"
"njíhov" "njíhovega" "njíhovemu" ("njíhov"|"njíhovega") "njíhovem" "njíhovim"
"njíhova" "njíhovih" "njíhovima" "njíhova" "njíhovih" "njíhovima"
"njíhovi" "njíhovih" "njíhovim" "njíhove" "njíhovih" "njíhovimi"
"njíhova" "njíhove" "njíhovi" "njíhovo" "njíhovi" "njíhovo"
"njíhovi" "njíhovih" "njíhovima" "njíhovi" "njíhovih" "njíhovima"
"njíhove" "njíhovih" "njíhovim" "njíhove" "njíhovih" "njíhovimi"
"njíhove" "njíhovega" "njíhovemu" "njíhovo" "njíhovem" "njíhovim"
"njíhovi" "njíhovih" "njíhovima" "njíhovi" "njíhovih" "njíhovima"
"njíhova" "njíhovih" "njíhovim" "njíhova" "njíhovih" "njíhovimi" Masc Pl P3 ;
this_Quant = mkQuant "tȃ" "tȇga" "tȇmu" ("tȃ"|"tȇga") "tȇm" "tȇm"
"tȃ" "tȇh" "tȇma" "tȃ" "tȇh" "tȇma"
"tî" "tȇh" "tȇm" "tȇ" "tȇh" "tȇmi"
"tȃ" "té" "tȇj" "tȏ" "tȇj" "tȏ"
"tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma"
"tȇ" "tȇh" "tȇm" "tȇ" "tȇh" "tȇmi"
"tȏ" "tȇga" "tȇmu" "tȏ" "tȇm" "tȇm"
"tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma"
"tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ;
we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi"
"nàš" "nášega" "nášemu" ("náši"|"nášega") "nášem" "nášim"
"náša" "náših" "nášima" "náša" "náših" "nášima"
"náši" "náših" "nášim" "náše" "náših" "nášimi"
"náša" "náše" "náši" "nášo" "náši" "nášo"
"náši" "náših" "nášima" "náši" "náših" "nášima"
"náše" "náših" "nášim" "náše" "náših" "nášimi"
"náše" "nášega" "nášemu" "náše" "nášem" "nášim"
"náši" "náših" "nášima" "náši" "náših" "nášima"
"náša" "náših" "nášim" "náša" "náših" "nášimi" Masc Pl P1 ;
youSg_Pron = mkPron "tí" "tébe" "tébe" "tébi" "tébi" ("tebój"|"tábo")
"tvój" "tvòjega" "tvòjemu" ("tvòj"|"tvòjega") "tvòjem" "tvòjim"
"tvòja" "tvòjih" "tvòjima" "tvòja" "tvòjih" "tvòjima"
"tvòji" "tvòjih" "tvòjim" "tvòje" "tvòjih" "tvòjimi"
"tvòja" "tvòje" "tvòji" "tvòjo" "tvòji" "tvòjo"
"tvòji" "tvòjih" "tvòjima" "tvòji" "tvòjih" "tvòjima"
"tvòje" "tvòjih" "tvòjim" "tvòje" "tvòjih" "tvòjimi"
"tvòje" "tvòjega" "tvòjemu" "tvòjo" "tvòjem" "tvòjim"
"tvòji" "tvòjih" "tvòjima" "tvòji" "tvòjih" "tvòjima"
"tvòja" "tvòjih" "tvòjim" "tvòja" "tvòjih" "tvòjimi" Masc Sg P2 ;
youPl_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi"
"vàš" "vášega" "vášemu" ("váši"|"vášega") "vášem" "vášim"
"váša" "váših" "vášima" "váša" "váših" "vášima"
"váši" "váših" "vášim" "váše" "váših" "vášimi"
"váša" "váše" "váši" "vášo" "váši" "vášo"
"váši" "váših" "vášima" "váši" "váših" "vášima"
"váše" "váših" "vášim" "váše" "váših" "vášimi"
"váše" "vášega" "vášemu" "váše" "vášem" "vášim"
"váši" "váših" "vášima" "váši" "váših" "vášima"
"váša" "váših" "vášim" "váša" "váših" "vášimi" Masc Pl P2 ;
youPol_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi"
"vàš" "vášega" "vášemu" ("váši"|"vášega") "vášem" "vášim"
"váša" "váših" "vášima" "váša" "váših" "vášima"
"váši" "váših" "vášim" "váše" "váših" "vášimi"
"váša" "váše" "váši" "vášo" "váši" "vášo"
"váši" "váših" "vášima" "váši" "váših" "vášima"
"váše" "váših" "vášim" "váše" "váših" "vášimi"
"váše" "vášega" "vášemu" "váše" "vášem" "vášim"
"váši" "váših" "vášima" "váši" "váših" "vášima"
"váša" "váših" "vášim" "váša" "váših" "vášimi" Masc Pl P2 ;
somebody_NP = mkNP "nekdo" "nekóga" "nekóga" "nekómu" "nekóm" "nekóm" Masc Sg ;
something_NP = mkNP "nekaj" "nekaj" "nečésa" "nečému" "nečém" "nečīm" Neut Sg ;
nobody_NP = mkNP "nihčè" "nikȏgar" "nikȏgar" "nikȏmur" "nikȏmer" "nikȏmer" Masc Sg ;