diff options
| author | Inari Listenmaa <inari.listenmaa@gmail.com> | 2018-04-30 16:38:20 +0200 |
|---|---|---|
| committer | Inari Listenmaa <inari.listenmaa@gmail.com> | 2018-04-30 16:38:20 +0200 |
| commit | ece39a887978b41c0f268de516c0a21e84c0d554 (patch) | |
| tree | d4ee04eb8e27415dea6f20b41214abfb2fc8deed | |
| parent | a0fc1dfddd4bda696ed84db918733b31b1eccc86 (diff) | |
Estonian Phrasebook: '<Nationality> restaurant' and 'NN is <Nationality>' use different forms
| -rw-r--r-- | examples/phrasebook/SentencesEst.gf | 22 | ||||
| -rw-r--r-- | examples/phrasebook/WordsEst.gf | 60 |
2 files changed, 45 insertions, 37 deletions
diff --git a/examples/phrasebook/SentencesEst.gf b/examples/phrasebook/SentencesEst.gf index 2615f7434..667880f33 100644 --- a/examples/phrasebook/SentencesEst.gf +++ b/examples/phrasebook/SentencesEst.gf @@ -1,7 +1,7 @@ concrete SentencesEst of Sentences = NumeralEst ** SentencesI - [NameNN, ObjMass, - NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl, - CitiNat, + NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl, NPNationality, mkNPNationality, + CitiNat, Citizenship, Nationality, ACitizen, PropCit, PCitizenship, GObjectPlease ] with (Syntax = SyntaxEst), @@ -11,9 +11,15 @@ concrete SentencesEst of Sentences = NumeralEst ** SentencesI - flags optimize = noexpand ; + lincat + Citizenship = ACitizenship ; + Nationality = NPNationality ; + oper - NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ; - CNPlace = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ; + NPPlace : Type = {name : NP ; at : Adv ; to : Adv ; from : Adv} ; + CNPlace : Type = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ; + ACitizenship : Type = { prop : A ; nat : A } ; + NPNationality : Type = ACitizenship ** {lang : NP ; country : NP} ; placeNP : Det -> CNPlace -> NPPlace = \det,kind -> let name : NP = mkNP det kind.name in { @@ -50,6 +56,8 @@ concrete SentencesEst of Sentences = NumeralEst ** SentencesI - GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "palun"))) ; - CitiNat n = n.prop ; - - } + CitiNat n = n ; -- keep just prop and nat fields + PropCit c = c.prop ; + PCitizenship c = mkPhrase (mkUtt (mkAP c.prop)) ; + ACitizen p n = mkCl p.name n.nat ; +} diff --git a/examples/phrasebook/WordsEst.gf b/examples/phrasebook/WordsEst.gf index 5d25e8b63..86c78e1c8 100644 --- a/examples/phrasebook/WordsEst.gf +++ b/examples/phrasebook/WordsEst.gf @@ -61,7 +61,7 @@ concrete WordsEst of Words = SentencesEst ** School = mkPlace (mkN "kool") ssa ; -- different in Fin CitRestaurant cit = { - name = mkCN cit (mkN "restoran") ; + name = mkCN cit.prop (mkN "restoran") ; at = casePrep inessive ; to = casePrep illative; from = casePrep elative ; @@ -94,32 +94,32 @@ concrete WordsEst of Words = SentencesEst ** Yuan = mkCN (mkN "jüään") ; -- Citizenship - Belgian = mkA "belgia" ; - Indian = mkA "india" ; + Belgian = { prop = invA "belgia" ; nat = mkA "belglane" } ; + Indian = { prop = invA "india" ; nat = mkA "indialane" } ; -- Country Belgium = mkNP (mkPN "Belgia") ; India = mkNP (mkPN "India") ; -- Nationality - Bulgarian = mkNat "bulgaaria" (mkPN "Bulgaaria") ; - Catalan = mkNat "katalaani" (mkPN "Kataloonia") ; - Chinese = mkNat "hiina" (mkPN "Hiina") ; - Danish = mkNat "taani" (mkPN "Taani") ; - Dutch = mkNat "hollandi" (mkPN "Holland") ; - English = mkNat "inglise" (mkPN "Inglismaa") ; - Finnish = mkNat "soome" (mkPN "Soome") ; + Bulgarian = mkNat "bulgaaria" "bulgaarlane" (mkPN "Bulgaaria") ; + Catalan = mkNat "katalaani" "kataloonlane" (mkPN "Kataloonia") ; + Chinese = mkNat "hiina" "hiinlane" (mkPN "Hiina") ; + Danish = mkNat "taani" "taanlane" (mkPN "Taani") ; + Dutch = mkNat "hollandi" "hollandlane" (mkPN "Holland") ; + English = mkNat "inglise" "inglane" (mkPN "Inglismaa") ; + Finnish = mkNat "soome" "soomlane" (mkPN "Soome") ; Flemish = mkNP (mkPN "flaami keel") ; -- Language Hindi = mkNP (mkPN "hindi keel") ; -- Language - French = mkNat "prantsuse" (mkPN "Prantsusmaa") ; - German = mkNat "saksa" (mkPN "Saksamaa") ; - Italian = mkNat "itaalia" (mkPN "Itaalia") ; - Norwegian = mkNat "norra" (mkPN "Norra") ; - Polish = mkNat "poola" (mkPN "Poola") ; - Romanian = mkNat "rumeenia" (mkPN "Rumeenia") ; - Russian = mkNat "vene" (mkPN "Venemaa") ; - Spanish = mkNat "hispaania" (mkPN "Hispaania") ; - Swedish = mkNat "rootsi" (mkPN "Rootsi") ; + French = mkNat "prantsuse" "prantslane" (mkPN "Prantsusmaa") ; + German = mkNat "saksa" "sakslane" (mkPN "Saksamaa") ; + Italian = mkNat "itaalia" "itaallane" (mkPN "Itaalia") ; + Norwegian = mkNat "norra" "norralane" (mkPN "Norra") ; + Polish = mkNat "poola" "poolapärane" (mkPN "Poola") ; -- Is there a -lane adjective for poola? Didn't find one at EKSS /IL2018 + Romanian = mkNat "rumeenia" "rumeenlane" (mkPN "Rumeenia") ; + Russian = mkNat "vene" "venelane" (mkPN "Venemaa") ; + Spanish = mkNat "hispaania" "hispaanlane" (mkPN "Hispaania") ; + Swedish = mkNat "rootsi" "rootslane" (mkPN "Rootsi") ; ---- it would be nice to have a capitalization Predef function @@ -153,7 +153,7 @@ concrete WordsEst of Words = SentencesEst ** ALive p co = mkCl p.name (mkVP (mkVP L.live_V) (SyntaxEst.mkAdv in_Prep co)) ; ALove p q = mkCl p.name L.love_V2 q.name ; AMarried p = mkCl p.name (ParadigmsEst.mkAdv "abielus") ; - AReady p = mkCl p.name (ParadigmsEst.mkA "valmis") ; + AReady p = mkCl p.name (ParadigmsEst.invA "valmis" ) ; -- Eng: I am scared -- Fin: Minua pelottaa (partitive) -- Est: Mina kardan (nominative) @@ -170,9 +170,7 @@ concrete WordsEst of Words = SentencesEst ** -- Est: Mina olen väsinud. -- ATired p = mkCl p.name (caseV partitive (mkV "väsitada")) ; ATired p = mkCl p.name (ParadigmsEst.mkA "väsinud") ; - -- TODO: better: aru saama / saan aru - -- AUnderstand p = mkCl p.name L.understand_V2 ; - AUnderstand p = mkCl p.name (mkV "mõistma") ; + AUnderstand p = mkCl p.name (mkV "aru" (mkV "saama")) ; AWant p obj = mkCl p.name (mkV2 "tahtma") obj ; AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; @@ -180,8 +178,8 @@ concrete WordsEst of Words = SentencesEst ** QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ; - HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "maksma"))) ; - ItCost item price = mkCl item (mkV2 (mkV "maksma")) price ; + HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item maksma_V)) ; + ItCost item price = mkCl item (mkV2 maksma_V) price ; PropOpen p = mkCl p.name open_Adv ; PropClosed p = mkCl p.name closed_Adv ; @@ -257,11 +255,13 @@ concrete WordsEst of Words = SentencesEst ** oper kroon : N = mkN "kroon" "krooni" "krooni" "krooni" "kroonide" "kroone" ; kroon2 : Str -> N = \taani -> mkN (taani + " ") kroon ; + maksma_V : V = mkV "maksma" "maksta" "maksab" ; - mkNat : Str -> PN -> - {lang : NP ; prop : A ; country : NP} = \pro,co -> - {lang = mkNP (mkCN (mkN pro (mkN "keel" "keele" "keelt" "keelde" "keelte" "keeli"))); - prop = mkA (mkN pro) R.Invariable ; + mkNat : Str -> Str -> PN -> NPNationality + = \attr,pred,co -> + {lang = mkNP (mkCN (mkN (attr + " ") (mkN "keel" "keele" "keelt" "keelde" "keelte" "keeli"))); + prop = invA attr ; + nat = mkA pred ; country = mkNP co } ; @@ -328,7 +328,7 @@ concrete WordsEst of Words = SentencesEst ** -------------------------------------------------- lin - Thai = mkNat ("tai") (mkPN "Tai") ; + Thai = mkNat ("tai") "tailane" (mkPN "Tai") ; Baht = mkCN (mkN "baht") ; Rice = mkCN (mkN "riis") ; |
