1
0
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:
Ayberk Tosun
2019-03-11 08:06:57 +01:00
committed by Krasimir Angelov
parent 6d01c96c5e
commit 7790defb9e
12 changed files with 107 additions and 23 deletions

View File

@@ -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} ;
} }

View File

@@ -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} ;

View File

@@ -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
} ;
} }

View File

@@ -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 ;

View File

@@ -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 = {

View File

@@ -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,8 +276,29 @@ 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

View File

@@ -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 = []} ;

View File

@@ -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} ;

View File

@@ -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} ;
} }

View File

@@ -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} ;
} }

View File

@@ -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" ;

View File

@@ -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
} ;
} }