forked from GitHub/gf-core
nationalities and languages in WordsBul and SentencesBul
This commit is contained in:
@@ -1,4 +1,48 @@
|
||||
concrete SentencesBul of Sentences = NumeralBul ** SentencesI with
|
||||
concrete SentencesBul of Sentences =
|
||||
NumeralBul ** SentencesI - [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale,
|
||||
YouPolFemale, ACitizen, Citizenship, PCitizenship,
|
||||
LangNat, CitiNat, CountryNat, PropCit,
|
||||
Nationality, Country, Language, PLanguage, PCountry] with
|
||||
(Syntax = SyntaxBul),
|
||||
(Symbolic = SymbolicBul),
|
||||
(Lexicon = LexiconBul) ;
|
||||
(Lexicon = LexiconBul) ** open ExtraBul, (R = ResBul) in {
|
||||
|
||||
lincat
|
||||
Citizenship = {s1 : R.Gender => R.NForm => Str; -- there are two nouns for every citizenship - one for males and one for females
|
||||
s2 : A -- furthermore, adjective for Property
|
||||
} ;
|
||||
Nationality = {s1 : R.Gender => R.NForm => Str; -- there are two nouns for every citizenship - one for males and one for females
|
||||
s2 : A; -- furthermore, adjective for Property
|
||||
s3 : PN -- country name
|
||||
} ;
|
||||
Language = A ;
|
||||
Country = PN ;
|
||||
|
||||
lin IMale = mkPerson i_Pron ;
|
||||
IFemale = mkPerson i8fem_Pron ;
|
||||
|
||||
lin YouFamMale = mkPerson youSg_Pron ;
|
||||
YouFamFemale = mkPerson youSg8fem_Pron ;
|
||||
YouPolMale = mkPerson youPol_Pron ;
|
||||
YouPolFemale = mkPerson youPol8fem_Pron ;
|
||||
|
||||
lin ACitizen p cit =
|
||||
let noun : N
|
||||
= case p.name.a.gn of {
|
||||
R.GSg g => lin N {s = \\nf => cit.s1 ! g ! nf; g = case g of {R.Masc=>R.AMasc R.Human; R.Fem=>R.AFem; R.Neut=>R.ANeut}} ;
|
||||
R.GPl => lin N {s = \\nf => cit.s1 ! R.Masc ! nf; g = R.AMasc R.Human}
|
||||
} ;
|
||||
in mkCl p.name noun ;
|
||||
|
||||
PCitizenship cit =
|
||||
mkPhrase (mkUtt (mkAP cit.s2)) ;
|
||||
|
||||
LangNat n = n.s2 ;
|
||||
CitiNat n = n ;
|
||||
CountryNat n = n.s3 ;
|
||||
PropCit cit = cit.s2 ;
|
||||
|
||||
PLanguage x = mkPhrase (mkUtt (mkAP x)) ;
|
||||
PCountry x = mkPhrase (mkUtt (mkNP x)) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -91,15 +91,24 @@ concrete WordsBul of Words = SentencesBul **
|
||||
|
||||
-- Nationalities
|
||||
|
||||
Belgian = mkA078 "белгийски" ;
|
||||
-- Belgium = mkNP (mkPN "Белгия" Fem) ;
|
||||
-- English = mkA078 "английски" ;
|
||||
-- Finnish = mkNat "Finnish" "Finland" ;
|
||||
-- Flemish = mkNP (mkPN "Flemish") ;
|
||||
-- French = mkNat "French" "France" ;
|
||||
-- Italian = mkNat "Italian" "Italy" ;
|
||||
-- Romanian = mkNat "Romanian" "Romania" ;
|
||||
-- Swedish = mkNat "Swedish" "Sweden" ;
|
||||
Belgian = mkCitizenship (mkN013 "белгиец") (mkN041 "белгийка") (mkA078 "белгийски") ;
|
||||
Belgium = mkPN "Белгия" R.Fem ;
|
||||
Bulgarian = mkNat (mkN018 "българин") (mkN041 "българка") (mkA078 "български") (mkPN "България" R.Fem) ;
|
||||
Catalan = mkNat (mkN008a "каталонец") (mkN041 "каталонка") (mkA078 "каталонски") (mkPN "Каталуния" R.Fem) ;
|
||||
Danish = mkNat (mkN018 "датчанин") (mkN041 "датчанка") (mkA078 "датски") (mkPN "Дания" R.Fem) ;
|
||||
Dutch = mkNat (mkN008a "холандец") (mkN041 "холандка") (mkA078 "холандски") (mkPN "Холандия" R.Fem) ;
|
||||
English = mkNat (mkN018 "англичанин") (mkN041 "англичанка") (mkA078 "английски") (mkPN "Англия" R.Fem) ;
|
||||
Finnish = mkNat (mkN008a "финландец") (mkN041 "финландка") (mkA078 "финландски") (mkPN "Финландия" R.Fem) ;
|
||||
Flemish = mkA078 "фламандски" ;
|
||||
French = mkNat (mkN018 "французин") (mkN041 "французойка") (mkA078 "френски") (mkPN "Франция" R.Fem) ;
|
||||
German = mkNat (mkN008a "германец") (mkN041 "германка") (mkA078 "немски") (mkPN "Германия" R.Fem) ;
|
||||
Italian = mkNat (mkN008a "италианец") (mkN041 "италианка") (mkA078 "италиански") (mkPN "Италия" R.Fem) ;
|
||||
Norwegian = mkNat (mkN008a "норвежец") (mkN041 "норвежка") (mkA078 "норвежки") (mkPN "Норвегия" R.Fem) ;
|
||||
Polish = mkNat (mkN014 "поляк") (mkN047 "полякиня") (mkA078 "полски") (mkPN "Полша" R.Fem) ;
|
||||
Romanian = mkNat (mkN008a "румънец") (mkN041 "румънка") (mkA078 "румънски") (mkPN "Румъния" R.Fem) ;
|
||||
Russian = mkNat (mkN014 "руснак") (mkN047 "рускиня") (mkA078 "руски") (mkPN "Русия" R.Fem) ;
|
||||
Swedish = mkNat (mkN007 "швед") (mkN041 "шведка") (mkA078 "шведски") (mkPN "Швеция" R.Fem) ;
|
||||
Spanish = mkNat (mkN008a "испанец") (mkN041 "испанка") (mkA078 "испански") (mkPN "Испания" R.Fem) ;
|
||||
|
||||
-- Actions: the predication patterns are very often language-dependent.
|
||||
|
||||
@@ -173,9 +182,11 @@ concrete WordsBul of Words = SentencesBul **
|
||||
-- auxiliaries
|
||||
|
||||
oper
|
||||
mkCitizenship : N -> N -> A -> Citizenship
|
||||
= \male, female, adj -> lin Citizenship {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj} ;
|
||||
|
||||
-- mkNat : Str -> Str -> NPNationality = \nat,co ->
|
||||
-- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
|
||||
mkNat : N -> N -> A -> PN -> Nationality
|
||||
= \male, female, adj, country -> lin Nationality {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj; s3 = country} ;
|
||||
|
||||
-- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
|
||||
-- let day = mkNP (mkPN d) in
|
||||
|
||||
Reference in New Issue
Block a user