mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
some fragments of Turkish noun morphology
This commit is contained in:
@@ -5,9 +5,11 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
|
|||||||
lincat
|
lincat
|
||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
NP, Pron = {s : Case => Str ; a : Agr} ;
|
NP = {s : Case => Str ; a : Agr} ;
|
||||||
|
Pron = ResTur.Pron ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
V, VS, VQ, VA = Verb ;
|
V, VS, VQ, VA = Verb ;
|
||||||
N = {s : Number => Case => Str} ;
|
N = Noun ;
|
||||||
|
N2 = Noun ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
--# -path=.:../abstract:../common:prelude
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
concrete GrammarTur of Grammar =
|
concrete GrammarTur of Grammar =
|
||||||
NumeralTur
|
NumeralTur,
|
||||||
|
StructuralTur
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||||
|
|||||||
@@ -4,8 +4,21 @@ concrete LexiconTur of Lexicon = CatTur **
|
|||||||
open ResTur, ParadigmsTur, Prelude in {
|
open ResTur, ParadigmsTur, Prelude in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
airplane_N = regN "uçak" ;
|
||||||
|
apartment_N = regN "apartman" ;
|
||||||
|
art_N = regN "sanat" ;
|
||||||
|
beer_N = regN "bira" ;
|
||||||
|
boat_N = regN "gemi" ;
|
||||||
|
book_N = regN "kitap" ;
|
||||||
|
boot_N = regN "ayakkabı" ;
|
||||||
|
boss_N = regN "şef" ;
|
||||||
|
bread_N = regN "ekmek" ;
|
||||||
come_V = regV "gelmek" ;
|
come_V = regV "gelmek" ;
|
||||||
|
day_N = regN "gün" ;
|
||||||
|
father_N2 = regN "baba" ;
|
||||||
go_V = regV "gitmek" ;
|
go_V = regV "gitmek" ;
|
||||||
|
house_N = regN "ev" ;
|
||||||
|
mother_N2 = regN "anne" ;
|
||||||
run_V = regV "koşmek" ;
|
run_V = regV "koşmek" ;
|
||||||
stop_V = regV "durmak" ;
|
stop_V = regV "durmak" ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -40,4 +40,30 @@ oper
|
|||||||
VInfinitive => inf
|
VInfinitive => inf
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
add_number : Number -> Str -> Str = \n,base ->
|
||||||
|
case n of {
|
||||||
|
Sg => base ;
|
||||||
|
Pl => harmony2 base "ler"
|
||||||
|
} ;
|
||||||
|
|
||||||
|
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
|
||||||
|
} ;
|
||||||
|
gen = \\n => table {
|
||||||
|
{n=Sg; p=P1} => harmony4 (add_number n base) "im" ;
|
||||||
|
{n=Sg; p=P2} => harmony4 (add_number n base) "in" ;
|
||||||
|
{n=Sg; p=P3} => harmony4 (add_number n base) "i" ;
|
||||||
|
{n=Pl; p=P1} => harmony4 (add_number n base) "imiz" ;
|
||||||
|
{n=Pl; p=P2} => harmony4 (add_number n base) "iniz" ;
|
||||||
|
{n=Pl; p=P3} => harmony4 (add_number n base) "i"
|
||||||
|
}
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
@@ -9,6 +9,14 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
|||||||
|
|
||||||
Species = Indef | Def ;
|
Species = Indef | Def ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
Agr = {n : Number ; p : Person} ;
|
||||||
|
Noun = {s : Number => Case => Str; gen : Number => Agr => Str} ;
|
||||||
|
Pron = {s : Case => Str; a : Agr} ;
|
||||||
|
|
||||||
|
-- For $Verb$.
|
||||||
|
|
||||||
|
param
|
||||||
VForm =
|
VForm =
|
||||||
VPres Number Person
|
VPres Number Person
|
||||||
| VPast Number Person
|
| VPast Number Person
|
||||||
@@ -19,10 +27,6 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
|||||||
;
|
;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
Agr = {n : Number ; p : Person} ;
|
|
||||||
|
|
||||||
-- For $Verb$.
|
|
||||||
|
|
||||||
Verb : Type = {
|
Verb : Type = {
|
||||||
s : VForm => Str
|
s : VForm => Str
|
||||||
} ;
|
} ;
|
||||||
@@ -41,14 +45,13 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
|||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkNP : (ben,beni,bana,banin,bende,benden:Str) -> Number -> Person ->
|
mkPron : (ben,beni,bana,banin,bende,benden:Str) -> Number -> Person -> Pron =
|
||||||
{s : Case => Str ; a : Agr} =
|
\ben,beni,bana,benim,bende,benden,n,p -> {
|
||||||
\ben,beni,bana,banin,bende,benden,n,p -> {
|
|
||||||
s = table {
|
s = table {
|
||||||
Nom => ben ;
|
Nom => ben ;
|
||||||
Acc => beni ;
|
Acc => beni ;
|
||||||
Dat => bana ;
|
Dat => bana ;
|
||||||
Gen => banin ;
|
Gen => benim ;
|
||||||
Loc => bende ;
|
Loc => bende ;
|
||||||
Abl => benden
|
Abl => benden
|
||||||
} ;
|
} ;
|
||||||
@@ -86,14 +89,12 @@ resource ResTur = ParamX ** open Prelude, Predef in {
|
|||||||
case base of {
|
case base of {
|
||||||
_+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
|
_+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")* => c ;
|
||||||
_ => error "harmony4"
|
_ => error "harmony2"
|
||||||
} ;
|
} ;
|
||||||
h : Str =
|
h : Str =
|
||||||
case c of {
|
case c of {
|
||||||
("ı"|"a") => "ı" ;
|
("a"|"ı"|"u"|"o") => "a" ;
|
||||||
("i"|"e") => "i" ;
|
("e"|"i"|"ü"|"ö") => "e"
|
||||||
("u"|"o") => "u" ;
|
|
||||||
("ü"|"ö") => "ü"
|
|
||||||
} ;
|
} ;
|
||||||
suffix : Str =
|
suffix : Str =
|
||||||
case suffix0 of {
|
case suffix0 of {
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
concrete StructuralTur of Structural = CatTur ** {
|
concrete StructuralTur of Structural = CatTur **
|
||||||
|
open ResTur in {
|
||||||
|
|
||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
he_Pron = mkNP "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
he_Pron = mkPron "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
||||||
i_Pron = mkNP "ben" "beni" "bana" "banim" "bende" "benden" Sg P1 ;
|
i_Pron = mkPron "ben" "beni" "bana" "benim" "bende" "benden" Sg P1 ;
|
||||||
it_Pron = mkNP "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
it_Pron = mkPron "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
||||||
she_Pron = mkNP "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
she_Pron = mkPron "o" "onu" "ona" "onun" "onda" "ondan" Sg P3 ;
|
||||||
they_Pron = mkNP "onlar" "onları" "onlara" "onların" "onlarda" "onlardan" Pl P3 ;
|
they_Pron = mkPron "onlar" "onları" "onlara" "onların" "onlarda" "onlardan" Pl P3 ;
|
||||||
we_Pron = mkNP "biz" "bizi" "bize" "bizim" "bizde" "bizden" Pl P1 ;
|
we_Pron = mkPron "biz" "bizi" "bize" "bizim" "bizde" "bizden" Pl P1 ;
|
||||||
youSg_Pron = mkNP "sen" "seni" "sana" "senin" "sende" "senden" Sg P2 ;
|
youSg_Pron = mkPron "sen" "seni" "sana" "senin" "sende" "senden" Sg P2 ;
|
||||||
youPl_Pron = mkNP "siz" "sizi" "size" "sizin" "sizde" "sizden" Pl P2 ;
|
youPl_Pron = mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" Pl P2 ;
|
||||||
youPol_Pron = mkNP "siz" "sizi" "size" "sizin" "sizde" "sizden" Pl P2 ;
|
youPol_Pron = mkPron "siz" "sizi" "size" "sizin" "sizde" "sizden" Pl P2 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user