mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-22 19:22:50 -06:00
fixed external case for countries in PhrasebookFin
This commit is contained in:
@@ -3,7 +3,9 @@ concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
|
|||||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
||||||
WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale,
|
WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale,
|
||||||
NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
|
NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
|
||||||
GObjectPlease
|
GObjectPlease,
|
||||||
|
NPNationality, mkNPNationality,
|
||||||
|
Country, PCountry
|
||||||
] with
|
] with
|
||||||
(Syntax = SyntaxFin),
|
(Syntax = SyntaxFin),
|
||||||
(Symbolic = SymbolicFin),
|
(Symbolic = SymbolicFin),
|
||||||
@@ -12,16 +14,21 @@ concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
|
|||||||
|
|
||||||
flags optimize = noexpand ;
|
flags optimize = noexpand ;
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Country = {np : NP ; isExternal : Bool} ;
|
||||||
|
lin
|
||||||
|
PCountry x = mkPhrase (mkUtt x.np) ;
|
||||||
oper
|
oper
|
||||||
|
NPNationality = {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} ;
|
||||||
NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
|
NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
|
||||||
CNPlace = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ;
|
CNPlace = {name : CN ; isExternal : Bool ; isPl : Bool} ;
|
||||||
|
|
||||||
placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
|
placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
|
||||||
let name : NP = mkNP det kind.name in {
|
let name : NP = mkNP det kind.name in {
|
||||||
name = name ;
|
name = name ;
|
||||||
at = mkAdv kind.at name ;
|
at = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.adessive P.inessive)) name ;
|
||||||
to = mkAdv kind.to name ;
|
to = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.allative P.illative)) name ;
|
||||||
from = mkAdv kind.from name
|
from = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.ablative P.elative)) name
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
School = mkPlace (mkN "koulu") lla ;
|
School = mkPlace (mkN "koulu") lla ;
|
||||||
|
|
||||||
CitRestaurant cit = {
|
CitRestaurant cit = {
|
||||||
name = mkCN cit (mkN "ravintola") ; at = casePrep inessive ; to = casePrep illative; from = casePrep elative ; isPl = False
|
name = mkCN cit (mkN "ravintola") ; isExternal = False ; isPl = False
|
||||||
} ;
|
} ;
|
||||||
Parking = mkPlace (mkN "pysäköinti" (mkN "alue")) lla ;
|
Parking = mkPlace (mkN "pysäköinti" (mkN "alue")) lla ;
|
||||||
Supermarket = mkPlace (mkN "supermarket") ssa ;
|
Supermarket = mkPlace (mkN "supermarket") ssa ;
|
||||||
@@ -88,7 +88,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
-- nationalities
|
-- nationalities
|
||||||
|
|
||||||
Belgian = mkA "belgialainen" ;
|
Belgian = mkA "belgialainen" ;
|
||||||
Belgium = mkNP (mkPN "Belgia") ;
|
Belgium = {np = mkNP (mkPN "Belgia") ; isExternal = False} ;
|
||||||
Bulgarian = mkNat (mkPN "bulgaria") (mkPN "Bulgaria") (mkA "bulgarialainen") ;
|
Bulgarian = mkNat (mkPN "bulgaria") (mkPN "Bulgaria") (mkA "bulgarialainen") ;
|
||||||
Catalan = mkNat (mkPN "katalaani") (mkPN "Katalonia") (mkA "katalonialainen") ;
|
Catalan = mkNat (mkPN "katalaani") (mkPN "Katalonia") (mkA "katalonialainen") ;
|
||||||
Danish = mkNat (mkPN "tanska") (mkPN "Tanska") (mkA "tanskalainen") ;
|
Danish = mkNat (mkPN "tanska") (mkPN "Tanska") (mkA "tanskalainen") ;
|
||||||
@@ -104,7 +104,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
Norwegian = mkNat (mkPN "norja") (mkPN "Norja") (mkA "norjalainen") ;
|
Norwegian = mkNat (mkPN "norja") (mkPN "Norja") (mkA "norjalainen") ;
|
||||||
Polish = mkNat (mkPN "puola") (mkPN "Puola") (mkA "puolalainen") ;
|
Polish = mkNat (mkPN "puola") (mkPN "Puola") (mkA "puolalainen") ;
|
||||||
Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ;
|
Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ;
|
||||||
Russian = mkNat (mkPN "venäjä") (mkPN "Venäjä") (mkA "venäläinen") ;
|
Russian = mkNatExternal (mkPN "venäjä") (mkPN "Venäjä") (mkA "venäläinen") ;
|
||||||
Spanish = mkNat (mkPN "espanja") (mkPN "Espanja") (mkA "espanjalainen") ;
|
Spanish = mkNat (mkPN "espanja") (mkPN "Espanja") (mkA "espanjalainen") ;
|
||||||
Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ;
|
Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ;
|
||||||
|
|
||||||
@@ -136,7 +136,7 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
AIll p = mkCl p.name (mkA "sairas") ;
|
AIll p = mkCl p.name (mkA "sairas") ;
|
||||||
AKnow p = mkCl p.name (mkV "tietää") ;
|
AKnow p = mkCl p.name (mkV "tietää") ;
|
||||||
ALike p item = mkCl p.name L.like_V2 item ;
|
ALike p item = mkCl p.name L.like_V2 item ;
|
||||||
ALive p co = mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv in_Prep co)) ;
|
ALive p co = mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv (casePrep (if_then_else Case co.isExternal adessive inessive)) co.np)) ;
|
||||||
ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ;
|
ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ;
|
||||||
AMarried p = mkCl p.name (ParadigmsFin.mkAdv "naimisissa") ;
|
AMarried p = mkCl p.name (ParadigmsFin.mkAdv "naimisissa") ;
|
||||||
AReady p = mkCl p.name (ParadigmsFin.mkA "valmis") ;
|
AReady p = mkCl p.name (ParadigmsFin.mkA "valmis") ;
|
||||||
@@ -228,10 +228,17 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
mkNat : PN -> PN -> A ->
|
mkNat : PN -> PN -> A ->
|
||||||
{lang : NP ; prop : A ; country : NP} = \nat,co,pro ->
|
{lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
|
||||||
{lang = mkNP nat ;
|
{lang = mkNP nat ;
|
||||||
prop = pro ;
|
prop = pro ;
|
||||||
country = mkNP co
|
country = {np = mkNP co ; isExternal = False}
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkNatExternal : PN -> PN -> A ->
|
||||||
|
{lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
|
||||||
|
{lang = mkNP nat ;
|
||||||
|
prop = pro ;
|
||||||
|
country = {np = mkNP co ; isExternal = True}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- using overloaded paradigms slows down compilation dramatically
|
---- using overloaded paradigms slows down compilation dramatically
|
||||||
@@ -242,11 +249,9 @@ concrete WordsFin of Words = SentencesFin **
|
|||||||
habitual = ParadigmsFin.mkAdv s
|
habitual = ParadigmsFin.mkAdv s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep; from : Prep ; isPl : Bool} = \p,e -> {
|
mkPlace : N -> Bool -> {name : CN ; isExternal : Bool ; isPl : Bool} = \p,e -> {
|
||||||
name = mkCN p ;
|
name = mkCN p ;
|
||||||
at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
|
isExternal = e ;
|
||||||
to = casePrep (if_then_else Case e allative illative) ;
|
|
||||||
from = casePrep (if_then_else Case e ablative elative) ;
|
|
||||||
isPl = False
|
isPl = False
|
||||||
} ;
|
} ;
|
||||||
ssa = False ;
|
ssa = False ;
|
||||||
|
|||||||
Reference in New Issue
Block a user