1
0
forked from GitHub/gf-core

some more functions added to Slv by guessing and using Morgan Nilsson's grammar book

This commit is contained in:
aarne
2016-10-04 16:17:07 +00:00
parent 3e6f1f05f2
commit a533fc70d3
7 changed files with 33 additions and 8 deletions

View File

@@ -4,6 +4,7 @@ lincat
-- Sentence -- Sentence
Cl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ; Cl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
Imp = {s : P.Polarity => Gender => Number => Str} ; Imp = {s : P.Polarity => Gender => Number => Str} ;
ClSlash = {s : P.Tense => P.Anteriority => P.Polarity => Str ; c2 : Prep} ; ----AR
-- Question -- Question
QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ; QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
@@ -36,11 +37,11 @@ lincat
Prep = {s : Str; c : Case} ; Prep = {s : Str; c : Case} ;
-- Open lexical classes, e.g. Lexicon -- Open lexical classes, e.g. Lexicon
V = {s : VForm => Str}; V = {s : VForm => Str ; p : Str}; ----AR: +p particle
VS = {s : VForm => Str}; VS = {s : VForm => Str ; p : Str};
VQ = {s : VForm => Str}; VQ = {s : VForm => Str};
VV = {s : VForm => Str}; VV = {s : VForm => Str};
V2 = {s : VForm => Str; c2 : Prep}; V2 = {s : VForm => Str; c2 : Prep ; p : Str}; ----AR: +p particle
A = {s : AForm => Str}; A = {s : AForm => Str};

View File

@@ -1,5 +1,5 @@
concrete ConstructionSlv of Construction = CatSlv ** concrete ConstructionSlv of Construction = CatSlv **
open ParadigmsSlv in { open ParadigmsSlv, ResSlv in {
flags flags
coding=utf8; coding=utf8;
@@ -33,4 +33,12 @@ lin
october_Month = mkN "oktober" "oktobra" "oktobru" "oktober" "oktobru" "oktobrom" "oktobra" "oktobrov" "oktobroma" "oktobra" "oktobrih" "oktobroma" "oktobri" "oktobrov" "oktobrom" "oktobre" "oktobrih" "oktobri" masculine ; october_Month = mkN "oktober" "oktobra" "oktobru" "oktober" "oktobru" "oktobrom" "oktobra" "oktobrov" "oktobroma" "oktobra" "oktobrih" "oktobroma" "oktobri" "oktobrov" "oktobrom" "oktobre" "oktobrih" "oktobri" masculine ;
november_Month = mkN "november" "novembra" "novembru" "november" "novembru" "novembrom" "novembra" "novembrov" "novembroma" "novembra" "novembrih" "novembroma" "novembri" "novembrov" "novembrom" "novembre" "novembrih" "novembri" masculine ; november_Month = mkN "november" "novembra" "novembru" "november" "novembru" "novembrom" "novembra" "novembrov" "novembroma" "novembra" "novembrih" "novembroma" "novembri" "novembrov" "novembrom" "novembre" "novembrih" "novembri" masculine ;
december_Month = mkN "december" "decembra" "decembru" "december" "decembru" "decembrom" "decembra" "decembrov" "decembroma" "decembra" "decembrih" "decembroma" "decembri" "decembrov" "decembrom" "decembre" "decembrih" "decembri" masculine ; december_Month = mkN "december" "decembra" "decembru" "december" "decembru" "decembrom" "decembra" "decembrov" "decembroma" "decembra" "decembrih" "decembroma" "decembri" "decembrov" "decembrom" "decembre" "decembrih" "decembri" masculine ;
weekdayPunctualAdv w = {s = "v" ++ w.s ! Acc ! Sg} ; ----AR
weekdayHabitualAdv w = {s = "ob" ++ w.s ! Loc ! Pl} ; ----AR
weekdayNextAdv w = {s = "naslednjo" ++ w.s ! Acc ! Sg} ; ----AR
weekdayLastAdv w = {s = "prejšnjo" ++ w.s ! Acc ! Sg} ; ----AR
monthAdv w = {s = "w" ++ w.s ! Loc ! Sg} ; ----AR
} }

View File

@@ -138,6 +138,8 @@ oper
mkV : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x25 : Str) -> V = worstV ; mkV : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x25 : Str) -> V = worstV ;
} ; } ;
particleV : V -> Str -> V = \v,p -> v ** {p = p} ;
-- Regular verbs are formed from two forms. Infinitive and 3rd person singular presens. -- Regular verbs are formed from two forms. Infinitive and 3rd person singular presens.
regV : (_,_ : Str) -> V = \hoditi,hodi -> regV : (_,_ : Str) -> V = \hoditi,hodi ->
@@ -209,7 +211,8 @@ oper
VImper2 Sg => imp2sg; VImper2 Sg => imp2sg;
VImper2 Dl => imp2dl; VImper2 Dl => imp2dl;
VImper2 Pl => imp2pl VImper2 Pl => imp2pl
} } ;
p = [] ; ----AR: +p
}; };
--Imperative forms are formed separetely. Pattern matching performed on thirdpersonsingular verbform. --Imperative forms are formed separetely. Pattern matching performed on thirdpersonsingular verbform.

View File

@@ -4,7 +4,11 @@ concrete QuestionSlv of Question = CatSlv ** open ResSlv,Prelude in {
lin lin
QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ; QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ;
QuestCl cl = {s = \\t,a,p => "ali" ++ cl.s ! t ! a ! p} ; QuestCl cl = {s = \\t,a,p => "ali" ++ cl.s ! t ! a ! p} ;
QuestSlash ip cls = {s = \\t,a,p => cls.c2.s ++ ip.s ! cls.c2.c ++ cls.s ! t ! a ! p} ;
QuestIAdv iadv cl = {s = \\t,a,p => iadv.s ++ cl.s ! t ! a ! p} ; QuestIAdv iadv cl = {s = \\t,a,p => iadv.s ++ cl.s ! t ! a ! p} ;
QuestIComp icomp np = mkClause icomp.s np.a np.isPron {s = copula ; s2 = \\_ => [] ; isCop = True} ;
CompIAdv a = a ;
CompIP p = ss (p.s ! Nom) ;
------AR END ------AR END

View File

@@ -7,6 +7,8 @@ lin
s = \\p,g,n => vp.s ! p ! VImper2 n ++ vp.s2 ! {g=g; n=n; p=P2} ; s = \\p,g,n => vp.s ! p ! VImper2 n ++ vp.s2 ! {g=g; n=n; p=P2} ;
} ; } ;
SlashVP np vp = mkClause (np.s ! Nom) np.a np.isPron vp ** {c2 = vp.c2} ;
UseCl t p cl = { UseCl t p cl = {
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
} ; } ;

View File

@@ -29,6 +29,7 @@ lin
"mòje" "mòjega" "mòjemu" "mòjo" "mòjem" "mòjim" "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ò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 ; "mòja" "mòjih" "mòjim" "mòja" "mòjih" "mòjimi" Masc Sg P1 ;
if_Subj = ss "če" ;
in_Prep = mkPrep "v" locative ; in_Prep = mkPrep "v" locative ;
it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím" 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ôv"|"njegòv") "njegôvega" "njegôvemu" ("njegôv"|"njegôvega") "njegôvem" "njegôvim"
@@ -41,6 +42,8 @@ lin
"njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima" "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 ; "njegôva" "njegôvih" "njegôvim" "njegôva" "njegôvih" "njegôvimi" Neut Sg P3 ;
must_VV = regV "morati" "mora" ; must_VV = regV "morati" "mora" ;
or_Conj = mkConj "ali" Sg ;
she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" ; 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èj" "njèj" "njó" ;
mkPron "ôna" "njó" "njé" "njì" "njì" "njó"} mkPron "ôna" "njó" "njé" "njì" "njì" "njó"}
@@ -81,6 +84,7 @@ lin
"tȏ" "tȇga" "tȇmu" "tȏ" "tȇm" "tȇm" "tȏ" "tȇga" "tȇmu" "tȏ" "tȇm" "tȇm"
"tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma"
"tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ; "tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ;
very_AdA = {s = "zelo"} ; ----AR
want_VV = regV "želeti" "želi"; want_VV = regV "želeti" "želi";
we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi" 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àš" "nášega" "nášemu" ("náši"|"nášega") "nášem" "nášim"
@@ -96,7 +100,7 @@ lin
when_Subj = {s="medtem ko"} ; when_Subj = {s="medtem ko"} ;
where_IAdv = {s="kje"} ; where_IAdv = {s="kje"} ;
whatSg_NP = mkNP "káj" "káj" "čésa" "čému" "čém" "čím" Neut Sg ; ----AR whatSg_IP = mkNP "káj" "káj" "čésa" "čému" "čém" "čím" Neut Sg ; ----AR
whoSg_IP = mkNP "kdó" "kóga" "kóga" "kómu" "kóm" "kóm" Masc Sg ; ----AR whoSg_IP = mkNP "kdó" "kóga" "kóga" "kómu" "kóm" "kóm" Masc Sg ; ----AR
why_IAdv = {s="zakaj"} ; why_IAdv = {s="zakaj"} ;

View File

@@ -3,13 +3,13 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in {
lin lin
UseV v = UseV v =
{ s = \\p,vform => ne ! p ++ v.s ! vform ; { s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\a => "" ; s2 = \\a => v.p ; ----AR: +p particle
isCop = False isCop = False
} ; } ;
SlashV2a v = SlashV2a v =
{ s = \\p,vform => ne ! p ++ v.s ! vform ; { s = \\p,vform => ne ! p ++ v.s ! vform ;
s2 = \\a => "" ; s2 = \\a => v.p ; ----AR: +p particle
c2 = v.c2 ; c2 = v.c2 ;
isCop = False isCop = False
} ; } ;
@@ -28,5 +28,8 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in {
CompAP ap = { CompAP ap = {
s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n
} ; } ;
CompAdv adv = {s = \\agr => adv.s} ; ----AR
CompNP np = {s = \\agr => np.s ! Nom} ; ----AR
} }