mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 08:58:55 -06:00
[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} ;
|
||||
|
||||
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 ** open ResTur, Prelude in {
|
||||
concrete CatTur of Cat = CommonX - [CAdv,AdN] ** open ResTur, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lincat
|
||||
|
||||
S = {s : Gerundification => Str} ;
|
||||
|
||||
-- TODO: parameterize by tense.
|
||||
Cl = {s : Gerundification => Str} ;
|
||||
|
||||
|
||||
-- Noun
|
||||
CN = {s : Number => Case => Str; gen : Number => Agr => Str} ;
|
||||
NP = {s : Case => Str ; a : Agr} ;
|
||||
@@ -22,6 +26,8 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
|
||||
Prep = {s : Str; c : Case} ;
|
||||
PrepNP = {s : 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} ;
|
||||
Digits = {s : CardOrd => Number => Case => Str ; n : Number; tail : DTail} ;
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
concrete ConjunctionTur of Conjunction =
|
||||
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,
|
||||
RelativeTur,
|
||||
ConjunctionTur,
|
||||
TextX,
|
||||
TextX - [CAdv, AdN],
|
||||
StructuralTur,
|
||||
PhraseTur,
|
||||
IdiomTur,
|
||||
TenseX
|
||||
TenseX - [CAdv, AdN]
|
||||
** {
|
||||
|
||||
flags startcat = Phr ;
|
||||
|
||||
@@ -100,7 +100,7 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
||||
} ;
|
||||
|
||||
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 = {
|
||||
|
||||
@@ -257,12 +257,18 @@ resource ParadigmsTur = open
|
||||
lin V {
|
||||
s =
|
||||
table {
|
||||
VProg agr => addSuffix progBase progHar (verbSuffixes ! agr) ;
|
||||
VPast agr => addSuffix pastBase pastHar (verbSuffixes ! agr) ;
|
||||
VFuture agr => addSuffix futureTable futHar (verbSuffixes ! agr) ;
|
||||
VAorist agr => addSuffix aoristBase aorHar (verbSuffixes ! agr) ;
|
||||
VImperative => base ;
|
||||
VInfinitive => inf ;
|
||||
VProg agr =>
|
||||
addSuffix progBase progHar (verbSuffixes ! agr) ;
|
||||
VPast agr =>
|
||||
addSuffix pastBase pastHar (verbSuffixes ! agr) ;
|
||||
VFuture agr =>
|
||||
addSuffix futureTable futHar (verbSuffixes ! agr) ;
|
||||
VAorist agr =>
|
||||
addSuffix aoristBase aorHar (verbSuffixes ! agr) ;
|
||||
VImperative =>
|
||||
base ;
|
||||
VInfinitive =>
|
||||
inf ;
|
||||
Gerund _ Acc =>
|
||||
case aorHar.vow of {
|
||||
Ih_Har => mek + "si" ;
|
||||
@@ -270,8 +276,29 @@ resource ParadigmsTur = open
|
||||
U_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
|
||||
|
||||
@@ -19,7 +19,7 @@ concrete PhraseTur of Phrase = CatTur ** open Prelude, ResTur in {
|
||||
UttVP vp = {s = vp.s ! VInfinitive} ;
|
||||
UttAP ap = {s = ap.s ! Sg ! Nom} ;
|
||||
UttCN n = {s = n.s ! Sg ! Nom} ;
|
||||
UttS s = s ;
|
||||
UttS s = {s = s.s ! None} ;
|
||||
UttAdv adv = adv ;
|
||||
|
||||
NoPConj = {s = []} ;
|
||||
|
||||
@@ -38,8 +38,11 @@ resource ResTur = ParamX ** open Prelude, Predef, HarmonyTur in {
|
||||
| VImperative
|
||||
| VInfinitive
|
||||
| Gerund Number Case
|
||||
| VNoun Number Case
|
||||
;
|
||||
|
||||
param Gerundification = None | SubordSuffixDik ;
|
||||
|
||||
param ConjType = Infix | Mixfix ;
|
||||
|
||||
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} =
|
||||
\noun, n, p -> {s = noun.s ! n; a = {n = n; p = p}} ;
|
||||
|
||||
mkClause : Str -> Agr -> Verb -> {s : Str} =
|
||||
\np, a, v -> ss (np ++ v.s ! VProg a) ;
|
||||
mkClause : Str -> Agr -> Verb -> {s : Gerundification => Str} =
|
||||
\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} =
|
||||
\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.
|
||||
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 ;
|
||||
every_Det = mkDet "her" Sg NoGen ;
|
||||
all_Predet = {s = "her"} ;
|
||||
almost_AdA = {s = "neredeyse"} ;
|
||||
almost_AdN = {s = "neredeyse"} ;
|
||||
almost_AdA = {s = "neredeyse"; c = Nom} ;
|
||||
almost_AdN = {s = "neredeyse"; c = Nom} ;
|
||||
|
||||
by8agent_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"} ;
|
||||
|
||||
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"} ;
|
||||
|
||||
@@ -270,10 +272,10 @@ concrete StructuralTur of Structural = CatTur **
|
||||
|
||||
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" ;
|
||||
p2PlVerbalSuffix : Suffix = regSuffix21 "siniz" "niz" ;
|
||||
p3PlVerbalSuffix : Suffix = regSuffix "ler" "ler" ;
|
||||
subordSuffixDik : Suffix = regSuffix2 "dik" "dikler" ;
|
||||
softSubordSuffixDik : Suffix = regSuffix2 "diğ" "dikler" ;
|
||||
|
||||
-- Ordinal suffix for numbers
|
||||
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 ;
|
||||
} ;
|
||||
|
||||
-- TODO: test this and fix.
|
||||
ComplVS vs s = {
|
||||
s = \\vf => s.s ! SubordSuffixDik ++ vs.s ! vf
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user