mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Turkish: some more nouns in the lexicon and some work on the paradigms. still not complete
This commit is contained in:
@@ -3,6 +3,9 @@
|
||||
concrete LexiconTur of Lexicon = CatTur **
|
||||
open ResTur, ParadigmsTur, Prelude in {
|
||||
|
||||
flags
|
||||
coding=utf8;
|
||||
|
||||
lin
|
||||
airplane_N = regN "uçak" ;
|
||||
apartment_N = regN "apartman" ;
|
||||
@@ -13,12 +16,54 @@ lin
|
||||
boot_N = regN "ayakkabı" ;
|
||||
boss_N = regN "şef" ;
|
||||
bread_N = regN "ekmek" ;
|
||||
brother_N2 = regN "kardeş" ;
|
||||
butter_N = regN "yağ" ;
|
||||
cap_N = regN "şapka" ;
|
||||
car_N = regN "araba" ;
|
||||
carpet_N = regN "kilim" ;
|
||||
cat_N = regN "kedi" ;
|
||||
child_N = regN "çocuk" ;
|
||||
city_N = regN "şehir" ;
|
||||
coat_N = regN "kazak" ;
|
||||
come_V = regV "gelmek" ;
|
||||
day_N = regN "gün" ;
|
||||
father_N2 = regN "baba" ;
|
||||
go_V = regV "gitmek" ;
|
||||
house_N = regN "ev" ;
|
||||
mother_N2 = regN "anne" ;
|
||||
pen_N = regN "kalem" ;
|
||||
run_V = regV "koşmek" ;
|
||||
stop_V = regV "durmak" ;
|
||||
table_N = regN "masa" ;
|
||||
television_N = regN "televizyon" ;
|
||||
tree_N = regN "ağaç" ;
|
||||
woman_N = regN "kadın" ;
|
||||
wood_N = regN "kereste" ;
|
||||
song_N = regN "şarkı" ;
|
||||
back_N = regN "sırt" ;
|
||||
belly_N = regN "göbek" ;
|
||||
day_N = regN "gün" ;
|
||||
ear_N = regN "kulak" ;
|
||||
egg_N = regN "yumurta" ;
|
||||
eye_N = regN "göz" ;
|
||||
fire_N = regN "ateş" ;
|
||||
flower_N = regN "çiçek" ;
|
||||
grass_N = regN "çimen" ;
|
||||
hand_N = regN "kol" ;
|
||||
head_N = regN "baş" ;
|
||||
heart_N = regN "kalp" ;
|
||||
husband_N = regN "eş" ;
|
||||
ice_N = regN "buz" ;
|
||||
leg_N = regN "bacak" ;
|
||||
mouth_N = regN "agız" ;
|
||||
name_N = regN "ad" ;
|
||||
night_N = regN "gece" ;
|
||||
nose_N = regN "burun" ;
|
||||
salt_N = regN "tuz" ;
|
||||
sand_N = regN "kum" ;
|
||||
snow_N = regN "kar" ;
|
||||
tail_N = regN "kuyruk" ;
|
||||
tooth_N = regN "diş" ;
|
||||
wife_N = regN "eş" ;
|
||||
year_N = regN "sene" ;
|
||||
reason_N = regN "mazaret" ;
|
||||
} ;
|
||||
|
||||
@@ -49,13 +49,16 @@ oper
|
||||
|
||||
regN : Str -> Noun = \base -> {
|
||||
s = \\n => table {
|
||||
Nom => add_number n base ;
|
||||
Acc => harmony4 (add_number n base) "i" ;
|
||||
Dat => harmony2 (add_number n base) "e" ;
|
||||
Gen => harmony4 (add_number n base) "in" ;
|
||||
Loc => harmony2 (add_number n base) "de" ;
|
||||
Ablat => add_number n base ;
|
||||
Abess => add_number n base
|
||||
Nom => add_number n base ;
|
||||
Acc => harmony4 (add_number n base) "i" ;
|
||||
Dat => harmony2 (add_number n base) "e" ;
|
||||
Gen => harmony4 (add_number n base) "in" ;
|
||||
Loc => harmony2 (add_number n base) "de" ;
|
||||
Ablat => harmony2 (add_number n base) "den" ;
|
||||
Abess p => case p of {
|
||||
Pos => harmony4 (add_number n base) "li" ;
|
||||
Neg => harmony4 (add_number n base) "siz"
|
||||
}
|
||||
} ;
|
||||
gen = \\n => table {
|
||||
{n=Sg; p=P1} => harmony4 (add_number n base) "im" ;
|
||||
|
||||
@@ -4,8 +4,11 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
||||
|
||||
--2 For $Noun$
|
||||
|
||||
flags
|
||||
coding=utf8 ;
|
||||
|
||||
param
|
||||
Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess ;
|
||||
Case = Nom | Acc | Dat | Gen | Loc | Ablat | Abess Polarity ;
|
||||
|
||||
Species = Indef | Def ;
|
||||
|
||||
@@ -60,48 +63,66 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
||||
|
||||
oper
|
||||
harmony4 : Str -> Str -> Str
|
||||
= \base,suffix0 ->
|
||||
let c : Str =
|
||||
case base of {
|
||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* => c ;
|
||||
_ => error "harmony4"
|
||||
} ;
|
||||
= \base0,suffix0 ->
|
||||
let buffer : Str =
|
||||
case dp 1 base0 + take 1 suffix0 of {
|
||||
("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => "y" ;
|
||||
_ => ""
|
||||
} ;
|
||||
h : Str =
|
||||
case c of {
|
||||
("ı"|"a") => "ı" ;
|
||||
("i"|"e") => "i" ;
|
||||
("u"|"o") => "u" ;
|
||||
("ü"|"ö") => "ü"
|
||||
case base0 of {
|
||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* =>
|
||||
case c of {
|
||||
("ı"|"a") => "ı" ;
|
||||
("i"|"e") => "i" ;
|
||||
("u"|"o") => "u" ;
|
||||
("ü"|"ö") => "ü"
|
||||
} ;
|
||||
_ => error ("harmony4")
|
||||
} ;
|
||||
base : Str =
|
||||
case dp 1 base0 + take 1 suffix0 of {
|
||||
("k")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => tk 1 base0 + "ğ" ;
|
||||
_ => base0
|
||||
} ;
|
||||
suffix : Str =
|
||||
case suffix0 of {
|
||||
s1@(("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")*)
|
||||
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")
|
||||
+ ("ı"|"i"|"u"|"ü")
|
||||
+s2 => s1+h+s2 ;
|
||||
s => s
|
||||
}
|
||||
in base + suffix ;
|
||||
in base + buffer + suffix ;
|
||||
|
||||
harmony2 : Str -> Str -> Str
|
||||
= \base,suffix0 ->
|
||||
let c : Str =
|
||||
let buffer : Str =
|
||||
case dp 1 base + take 1 suffix0 of {
|
||||
("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö") => "n" ;
|
||||
_ => ""
|
||||
} ;
|
||||
h : Str =
|
||||
case base of {
|
||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* => c ;
|
||||
("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* =>
|
||||
case c of {
|
||||
("a"|"ı"|"u"|"o") => "a" ;
|
||||
("e"|"i"|"ü"|"ö") => "e"
|
||||
} ;
|
||||
_ => error "harmony2"
|
||||
} ;
|
||||
h : Str =
|
||||
case c of {
|
||||
("a"|"ı"|"u"|"o") => "a" ;
|
||||
("e"|"i"|"ü"|"ö") => "e"
|
||||
} ;
|
||||
suffix : Str =
|
||||
suffix1 : Str =
|
||||
case suffix0 of {
|
||||
s1@(("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")*)
|
||||
+ ("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")
|
||||
+ ("a"|"e")
|
||||
+s2 => s1+h+s2 ;
|
||||
s => s
|
||||
}
|
||||
in base + suffix ;
|
||||
} ;
|
||||
suffix : Str =
|
||||
case dp 1 base + take 1 suffix1 of {
|
||||
("ç"|"p"|"ş"|"k"|"f")+("d") => "t"+drop 1 suffix1 ;
|
||||
_ => suffix1
|
||||
} ;
|
||||
in base + buffer + suffix ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user