forked from GitHub/gf-rgl
[WIP] Round of updates to Turkish (#15)
* Add linearization for `AdAdv` which is just `cc2` * Add rudimentary linearization for `AdnCAdv` * Add rudimentary linearization for `UseCl` * Add trivial linearization for `SubjS` * Add forgotten semicolon * Override the lintype of CAdv from CommonX * Add cases for `CAdv`s * Augment the linearization of `AdnCAdv` with case information coming from the `CAdv` * Override the lintype for `AdN` * Implement linearizations for `AdN` and `AdnCAdv` * Fix the linearization for `more_CAdv` * Implment the linearization for `ComparAdvAdj` * Add a rudimentary linearizations for `ComparAdvAdjS` * Add rudimentary linearization for `BaseAP` * Add linearization for `BaseAdV` * Add linearization for `BaseAdv` * Add a new param `Gerundification` * Add a new `VForm` `VNoun` for verbal nouns * Parameterize the lintypes of S and Cl by the new `Gerundification` param * Update everything to work with the `Gerundification` parameterization * Account for the `VNoun` case in `makeVerb` * Revise the TODO for `ComparAdvAdjS` * Add the subordination suffix dik in SuffixTur (not used yet) * Formatting * Start implementing the suffix -dik in `makeVerb` * Add TODO for `ComplVS` * Fix `mkClause` * Implement a rudimentary linearization for `ComplVS`
This commit is contained in:
committed by
Krasimir Angelov
parent
6d01c96c5e
commit
7790defb9e
@@ -3,4 +3,20 @@ concrete AdverbTur of Adverb = CatTur ** open ResTur, Prelude in {
|
|||||||
PrepNP prep np = {s = np.s ! prep.c ++ prep.s} ;
|
PrepNP prep np = {s = np.s ! prep.c ++ prep.s} ;
|
||||||
|
|
||||||
always_AdV = {s = "her zaman"} ;
|
always_AdV = {s = "her zaman"} ;
|
||||||
|
|
||||||
|
AdAdv = cc2 ;
|
||||||
|
|
||||||
|
-- TODO: test this later; depends on less_CAdv.
|
||||||
|
AdnCAdv cadv = { s = cadv.s; c = cadv.c } ;
|
||||||
|
|
||||||
|
ComparAdvAdj cadv a np = {
|
||||||
|
s = np.s ! cadv.c ++ cadv.s ++ a.s ! Sg ! cadv.c
|
||||||
|
} ;
|
||||||
|
|
||||||
|
-- TODO: inflect the subject to genitive.
|
||||||
|
ComparAdvAdjS cadv a s = {
|
||||||
|
s = s.s ! SubordSuffixDik ++ cadv.s ++ a.s ! Sg ! Nom
|
||||||
|
} ;
|
||||||
|
|
||||||
|
SubjS s1 s2 = {s = s1.s ++ s2.s ! SubordSuffixDik} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
--# -path=.:../abstract:../common:../../prelude
|
concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, Prelude in {
|
||||||
|
|
||||||
concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
|
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
|
|
||||||
|
S = {s : Gerundification => Str} ;
|
||||||
|
|
||||||
|
-- TODO: parameterize by tense.
|
||||||
|
Cl = {s : Gerundification => Str} ;
|
||||||
|
|
||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
CN = {s : Number => Case => Str; gen : Number => Agr => Str} ;
|
CN = {s : Number => Case => Str; gen : Number => Agr => Str} ;
|
||||||
NP = {s : Case => Str ; a : Agr} ;
|
NP = {s : Case => Str ; a : Agr} ;
|
||||||
@@ -22,6 +26,8 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
|
|||||||
Prep = {s : Str; c : Case} ;
|
Prep = {s : Str; c : Case} ;
|
||||||
PrepNP = {s : Str} ;
|
PrepNP = {s : Str} ;
|
||||||
DAP = {s : Number => Case => Str} ;
|
DAP = {s : Number => Case => Str} ;
|
||||||
|
CAdv = {s : Str; p : Str; c : Case} ;
|
||||||
|
AdN = {s : Str; c : Case} ;
|
||||||
|
|
||||||
Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ;
|
Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ;
|
||||||
Digits = {s : CardOrd => Number => Case => Str ; n : Number; tail : DTail} ;
|
Digits = {s : CardOrd => Number => Case => Str ; n : Number; tail : DTail} ;
|
||||||
|
|||||||
@@ -1,4 +1,19 @@
|
|||||||
concrete ConjunctionTur of Conjunction =
|
concrete ConjunctionTur of Conjunction =
|
||||||
CatTur ** open ResTur, Coordination, Prelude in {
|
CatTur ** open ResTur, Coordination, Prelude in {
|
||||||
|
|
||||||
|
lin
|
||||||
|
|
||||||
|
-- TODO: ap2.s seems to irrelevant; investigate why.
|
||||||
|
BaseAP ap1 ap2 = {
|
||||||
|
s = ap1.s ! Sg ! Nom
|
||||||
|
} ;
|
||||||
|
|
||||||
|
BaseAdV adv1 adv2 = {
|
||||||
|
s = adv1.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
BaseAdv adv1 adv2 = {
|
||||||
|
s = adv1.s
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ concrete GrammarTur of Grammar =
|
|||||||
QuestionTur,
|
QuestionTur,
|
||||||
RelativeTur,
|
RelativeTur,
|
||||||
ConjunctionTur,
|
ConjunctionTur,
|
||||||
TextX,
|
TextX - [CAdv, AdN],
|
||||||
StructuralTur,
|
StructuralTur,
|
||||||
PhraseTur,
|
PhraseTur,
|
||||||
IdiomTur,
|
IdiomTur,
|
||||||
TenseX
|
TenseX - [CAdv, AdN]
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ;
|
flags startcat = Phr ;
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdNum adn num = {
|
AdNum adn num = {
|
||||||
s = \\n,c => adn.s ++ num.s ! n ! c
|
s = \\n,c => num.s ! n ! adn.c ++ adn.s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdjDAP det ap = {
|
AdjDAP det ap = {
|
||||||
|
|||||||
@@ -257,12 +257,18 @@ resource ParadigmsTur = open
|
|||||||
lin V {
|
lin V {
|
||||||
s =
|
s =
|
||||||
table {
|
table {
|
||||||
VProg agr => addSuffix progBase progHar (verbSuffixes ! agr) ;
|
VProg agr =>
|
||||||
VPast agr => addSuffix pastBase pastHar (verbSuffixes ! agr) ;
|
addSuffix progBase progHar (verbSuffixes ! agr) ;
|
||||||
VFuture agr => addSuffix futureTable futHar (verbSuffixes ! agr) ;
|
VPast agr =>
|
||||||
VAorist agr => addSuffix aoristBase aorHar (verbSuffixes ! agr) ;
|
addSuffix pastBase pastHar (verbSuffixes ! agr) ;
|
||||||
VImperative => base ;
|
VFuture agr =>
|
||||||
VInfinitive => inf ;
|
addSuffix futureTable futHar (verbSuffixes ! agr) ;
|
||||||
|
VAorist agr =>
|
||||||
|
addSuffix aoristBase aorHar (verbSuffixes ! agr) ;
|
||||||
|
VImperative =>
|
||||||
|
base ;
|
||||||
|
VInfinitive =>
|
||||||
|
inf ;
|
||||||
Gerund _ Acc =>
|
Gerund _ Acc =>
|
||||||
case aorHar.vow of {
|
case aorHar.vow of {
|
||||||
Ih_Har => mek + "si" ;
|
Ih_Har => mek + "si" ;
|
||||||
@@ -270,9 +276,30 @@ resource ParadigmsTur = open
|
|||||||
U_Har => "TODO" ;
|
U_Har => "TODO" ;
|
||||||
Uh_Har => "TODO"
|
Uh_Har => "TODO"
|
||||||
} ;
|
} ;
|
||||||
Gerund _ _ => mek
|
Gerund _ _ => mek ;
|
||||||
|
VNoun n Gen =>
|
||||||
|
case aorHar.vow of {
|
||||||
|
Ih_Har => base + "tiği" ;
|
||||||
|
I_Har => base + "tığı" ;
|
||||||
|
U_Har => base + "duğu" ;
|
||||||
|
Uh_Har => base + "düğü"
|
||||||
|
} ;
|
||||||
|
VNoun n Ablat =>
|
||||||
|
case aorHar.vow of {
|
||||||
|
Ih_Har => base + "tıktan" ;
|
||||||
|
I_Har => base + "tıktan" ;
|
||||||
|
U_Har => base + "duktan" ;
|
||||||
|
Uh_Har => base + "dükten"
|
||||||
|
} ;
|
||||||
|
VNoun n _ =>
|
||||||
|
case aorHar.vow of {
|
||||||
|
Ih_Har => base + "(TODO: makeVerb)" ;
|
||||||
|
I_Har => base + "(TODO: makeVerb)" ;
|
||||||
|
U_Har => base + "(TODO: makeVerb)" ;
|
||||||
|
Uh_Har => base + "(TODO: makeVerb)"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
} ;
|
||||||
|
|
||||||
-- Implementation of noun paradigms
|
-- Implementation of noun paradigms
|
||||||
mkNoun sn sa sd sg sl sabl sgabPos sgabNeg sgs pln har =
|
mkNoun sn sa sd sg sl sabl sgabPos sgabNeg sgs pln har =
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ concrete PhraseTur of Phrase = CatTur ** open Prelude, ResTur in {
|
|||||||
UttVP vp = {s = vp.s ! VInfinitive} ;
|
UttVP vp = {s = vp.s ! VInfinitive} ;
|
||||||
UttAP ap = {s = ap.s ! Sg ! Nom} ;
|
UttAP ap = {s = ap.s ! Sg ! Nom} ;
|
||||||
UttCN n = {s = n.s ! Sg ! Nom} ;
|
UttCN n = {s = n.s ! Sg ! Nom} ;
|
||||||
UttS s = s ;
|
UttS s = {s = s.s ! None} ;
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
|
|
||||||
NoPConj = {s = []} ;
|
NoPConj = {s = []} ;
|
||||||
|
|||||||
@@ -38,8 +38,11 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
|
|||||||
| VImperative
|
| VImperative
|
||||||
| VInfinitive
|
| VInfinitive
|
||||||
| Gerund Number Case
|
| Gerund Number Case
|
||||||
|
| VNoun Number Case
|
||||||
;
|
;
|
||||||
|
|
||||||
|
param Gerundification = None | SubordSuffixDik ;
|
||||||
|
|
||||||
param ConjType = Infix | Mixfix ;
|
param ConjType = Infix | Mixfix ;
|
||||||
|
|
||||||
UseGen = NoGen | YesGen Agr | UseIndef ;
|
UseGen = NoGen | YesGen Agr | UseIndef ;
|
||||||
@@ -79,8 +82,13 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
|
|||||||
mkNP : Noun -> Number -> Person -> {s : Case => Str; a : Agr} =
|
mkNP : Noun -> Number -> Person -> {s : Case => Str; a : Agr} =
|
||||||
\noun, n, p -> {s = noun.s ! n; a = {n = n; p = p}} ;
|
\noun, n, p -> {s = noun.s ! n; a = {n = n; p = p}} ;
|
||||||
|
|
||||||
mkClause : Str -> Agr -> Verb -> {s : Str} =
|
mkClause : Str -> Agr -> Verb -> {s : Gerundification => Str} =
|
||||||
\np, a, v -> ss (np ++ v.s ! VProg a) ;
|
\np, a, v -> {
|
||||||
|
s = table {
|
||||||
|
None => np ++ v.s ! VProg a ;
|
||||||
|
SubordSuffixDik => np ++ v.s ! VNoun a.n Nom
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
mkDet : Str -> Number -> UseGen -> {s : Str; n : Number; useGen : UseGen} =
|
mkDet : Str -> Number -> UseGen -> {s : Str; n : Number; useGen : UseGen} =
|
||||||
\s, n, ug -> {s = s; n = n; useGen = ug} ;
|
\s, n, ug -> {s = s; n = n; useGen = ug} ;
|
||||||
|
|||||||
@@ -7,4 +7,7 @@ concrete SentenceTur of Sentence = CatTur ** open Prelude, ResTur in {
|
|||||||
-- TODO: Check how correct this is.
|
-- TODO: Check how correct this is.
|
||||||
EmbedVP vp = {s = (vp.s ! Gerund Sg Acc)} ;
|
EmbedVP vp = {s = (vp.s ! Gerund Sg Acc)} ;
|
||||||
|
|
||||||
|
-- TODO: rudimentary implementation; revise this.
|
||||||
|
UseCl temp pol cl = {s = cl.s} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,8 +114,8 @@ concrete StructuralTur of Structural = CatTur **
|
|||||||
many_Det = mkDet "birçok" Sg NoGen ;
|
many_Det = mkDet "birçok" Sg NoGen ;
|
||||||
every_Det = mkDet "her" Sg NoGen ;
|
every_Det = mkDet "her" Sg NoGen ;
|
||||||
all_Predet = {s = "her"} ;
|
all_Predet = {s = "her"} ;
|
||||||
almost_AdA = {s = "neredeyse"} ;
|
almost_AdA = {s = "neredeyse"; c = Nom} ;
|
||||||
almost_AdN = {s = "neredeyse"} ;
|
almost_AdN = {s = "neredeyse"; c = Nom} ;
|
||||||
|
|
||||||
by8agent_Prep = mkPrep "tarafından" Gen ;
|
by8agent_Prep = mkPrep "tarafından" Gen ;
|
||||||
by8means_Prep = mkPrep "tarafından" Gen ;
|
by8means_Prep = mkPrep "tarafından" Gen ;
|
||||||
@@ -191,7 +191,9 @@ concrete StructuralTur of Structural = CatTur **
|
|||||||
|
|
||||||
language_title_Utt = {s = "Türkçe"} ;
|
language_title_Utt = {s = "Türkçe"} ;
|
||||||
|
|
||||||
more_CAdv = {s = "daha"; p = "daha"} ;
|
more_CAdv = {s = "fazla"; p = "fazla"; c = Ablat} ;
|
||||||
|
|
||||||
|
less_CAdv = {s = "az"; p = "az"; c = Ablat} ;
|
||||||
|
|
||||||
most_Predet = {s = "en çok"} ;
|
most_Predet = {s = "en çok"} ;
|
||||||
|
|
||||||
@@ -270,10 +272,10 @@ concrete StructuralTur of Structural = CatTur **
|
|||||||
|
|
||||||
part_Prep = { s = "(TODO: part_Prep)" ; c = Nom } ;
|
part_Prep = { s = "(TODO: part_Prep)" ; c = Nom } ;
|
||||||
|
|
||||||
at_most_AdN = ss "en fazla" ;
|
at_most_AdN = { s = "en fazla"; c = Nom } ;
|
||||||
|
|
||||||
at_least_AdN = ss "en az" ;
|
at_least_AdN = { s = "en az"; c = Nom } ;
|
||||||
|
|
||||||
as_CAdv = {s = "kadar"; p = "kadar"} ;
|
as_CAdv = {s = "kadar"; p = "kadar"; c = Nom} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,6 +95,8 @@ resource SuffixTur = open Prelude, Predef, ResTur, HarmonyTur in {
|
|||||||
p1PlVerbalSuffix : Suffix = regSuffix "iz" "k" ;
|
p1PlVerbalSuffix : Suffix = regSuffix "iz" "k" ;
|
||||||
p2PlVerbalSuffix : Suffix = regSuffix21 "siniz" "niz" ;
|
p2PlVerbalSuffix : Suffix = regSuffix21 "siniz" "niz" ;
|
||||||
p3PlVerbalSuffix : Suffix = regSuffix "ler" "ler" ;
|
p3PlVerbalSuffix : Suffix = regSuffix "ler" "ler" ;
|
||||||
|
subordSuffixDik : Suffix = regSuffix2 "dik" "dikler" ;
|
||||||
|
softSubordSuffixDik : Suffix = regSuffix2 "diğ" "dikler" ;
|
||||||
|
|
||||||
-- Ordinal suffix for numbers
|
-- Ordinal suffix for numbers
|
||||||
ordNumSuffix : Suffix = regSuffix21 "inci" "nci" ;
|
ordNumSuffix : Suffix = regSuffix21 "inci" "nci" ;
|
||||||
|
|||||||
@@ -8,4 +8,9 @@ concrete VerbTur of Verb = CatTur ** open ResTur in {
|
|||||||
s = \\ vf => vps.c.s ++ np.s ! vps.c.c ++ vps.s ! vf ;
|
s = \\ vf => vps.c.s ++ np.s ! vps.c.c ++ vps.s ! vf ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
-- TODO: test this and fix.
|
||||||
|
ComplVS vs s = {
|
||||||
|
s = \\vf => s.s ! SubordSuffixDik ++ vs.s ! vf
|
||||||
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user