summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-05-26 14:11:23 +0000
committeraarne <aarne@chalmers.se>2010-05-26 14:11:23 +0000
commit231c63aa419dfb442a9225126bca064b5287666f (patch)
treed21c9625f5de1ccfaa5a4debdd9087d4d36b7705
parent0f82695c310d571b5cce8e806581acd604508551 (diff)
Ita and Fre superlatives, Ita possessives, in Phrasebook
-rw-r--r--examples/phrasebook/SentencesFre.gf5
-rw-r--r--examples/phrasebook/SentencesIta.gf22
-rw-r--r--examples/phrasebook/WordsDan.gf2
-rw-r--r--examples/phrasebook/WordsFre.gf35
-rw-r--r--examples/phrasebook/WordsIta.gf32
5 files changed, 62 insertions, 34 deletions
diff --git a/examples/phrasebook/SentencesFre.gf b/examples/phrasebook/SentencesFre.gf
index cbc6db8c4..84d7b8cf0 100644
--- a/examples/phrasebook/SentencesFre.gf
+++ b/examples/phrasebook/SentencesFre.gf
@@ -1,7 +1,8 @@
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
QProp,
IFemale, YouFamFemale, YouPolFemale,
- PYesToNo
+ PYesToNo,
+ Superlative
]
with
(Syntax = SyntaxFre),
@@ -9,6 +10,8 @@ concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
(Lexicon = LexiconFre) **
open SyntaxFre, ExtraFre, Prelude in {
+ lincat
+ Superlative = {s : Ord ; isPre : Bool} ;
lin
QProp a =
lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
diff --git a/examples/phrasebook/SentencesIta.gf b/examples/phrasebook/SentencesIta.gf
index 93b8355ff..d76107579 100644
--- a/examples/phrasebook/SentencesIta.gf
+++ b/examples/phrasebook/SentencesIta.gf
@@ -1,5 +1,6 @@
concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
+ IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
+ mkPerson, Superlative
]
with
(Syntax = SyntaxIta),
@@ -9,21 +10,21 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
lincat
Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
-
-
+ Superlative = {s : A ; isPre : Bool} ;
+
lin
IFemale =
- {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
+ {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
YouFamFemale =
- {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
+ {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
YouPolFemale =
- {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
+ {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron};
IMale =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
+ {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
YouFamMale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
+ {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
YouPolMale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
+ {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron} ;
oper
@@ -42,7 +43,8 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
to = mkAdv kind.to name
} ;
-
+ mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p ->
+ {name = mkNP p ; isPron = True ; poss = PossFamQuant p} ;
}
diff --git a/examples/phrasebook/WordsDan.gf b/examples/phrasebook/WordsDan.gf
index 619c1b40e..97d7a6467 100644
--- a/examples/phrasebook/WordsDan.gf
+++ b/examples/phrasebook/WordsDan.gf
@@ -140,7 +140,7 @@ concrete WordsDan of Words = SentencesDan **
ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDan.mkAdv in_Prep co)) ;
ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
AMarried p = mkCl p.name (mkA "gift") ;
- AReady p = mkCl p.name (mkA "fardig") ;
+ AReady p = mkCl p.name (mkA "færdig") ;
AScared p = mkCl p.name (mkA "bange") ;
ASpeak p lang = mkCl p.name (mkV2 (mkV "tale")) lang ;
AThirsty p = mkCl p.name (mkA "tørstig") ;
diff --git a/examples/phrasebook/WordsFre.gf b/examples/phrasebook/WordsFre.gf
index 9b6bbe0bf..7f65bcde6 100644
--- a/examples/phrasebook/WordsFre.gf
+++ b/examples/phrasebook/WordsFre.gf
@@ -199,15 +199,27 @@ lin
-- modifiers of places
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; isPre = False ; lock_A = <>}) ;
- TheMostExpensive = mkSuperl (mkA "cher") ;
- TheMostPopular = mkSuperl (mkA "populair") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
+ TheBest = mkSuperl True L.good_A ;
+ TheClosest = mkSuperl False L.near_A ;
+ TheCheapest = mkSuperl False
+ (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ;
+ isPre = False ; lock_A = <>}) ; ----
+ TheMostExpensive = mkSuperl False (mkA "cher") ;
+ TheMostPopular = mkSuperl False (mkA "populaire") ;
+ TheWorst = mkSuperl True L.bad_A ;
+
+ SuperlPlace sup kind =
+ let
+ det : Det = mkDet the_Art sup.s ;
+ name : NP = case sup.isPre of {
+ True => mkNP det kind.name ; -- le meilleur bar
+ False => mkNP the_Art (mkCN kind.name (mkNP det)) -- le bar le plus cher
+ }
+ in {
+ name = name ;
+ at = SyntaxFre.mkAdv kind.at name ;
+ to = SyntaxFre.mkAdv kind.to name
+ } ;
-- transports
@@ -252,8 +264,9 @@ lin
en_Prep = mkPrep "en" ;
par_Prep = mkPrep "par" ;
- mkSuperl : A -> Det = \a -> SyntaxFre.mkDet the_Art (SyntaxFre.mkOrd a) ;
-
+ mkSuperl : Bool -> A -> {s : Ord ; isPre : Bool} = \b,a ->
+ {s = SyntaxFre.mkOrd a ; isPre = b} ;
+
far_IAdv = ss "loin" ;
distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
diff --git a/examples/phrasebook/WordsIta.gf b/examples/phrasebook/WordsIta.gf
index 8e5cd75dc..b350642bc 100644
--- a/examples/phrasebook/WordsIta.gf
+++ b/examples/phrasebook/WordsIta.gf
@@ -219,15 +219,25 @@ lin
-- modifiers of places
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "economico") ;
- TheMostExpensive = mkSuperl (mkA "costoso") ;
- TheMostPopular = mkSuperl (mkA "alla moda") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
+ TheBest = mkSuperl True L.good_A ;
+ TheClosest = mkSuperl False L.near_A ;
+ TheCheapest = mkSuperl False (mkA (mkA "economico") (mkA "meno caro")) ;
+ TheMostExpensive = mkSuperl False (mkA "costoso") ;
+ TheMostPopular = mkSuperl False (mkA "alla moda") ;
+ TheWorst = mkSuperl True L.bad_A ;
+
+ SuperlPlace sup kind =
+ let
+ det : Det = mkDet the_Art (mkOrd sup.s) ;
+ name : NP = case sup.isPre of {
+ True => mkNP det kind.name ; -- il migliore bar
+ False => mkNP the_Art (mkCN (mkAP (mkOrd sup.s)) kind.name) -- il bar più caro
+ }
+ in {
+ name = name ;
+ at = SyntaxIta.mkAdv kind.at name ;
+ to = SyntaxIta.mkAdv kind.to name
+ } ;
-- auxiliaries
@@ -249,10 +259,10 @@ lin
by = E.PrepCN P.in_Prep n
} ;
- mkSuperl : A -> Det = \a -> SyntaxIta.mkDet the_Art (SyntaxIta.mkOrd a) ;
+ mkSuperl : Bool -> A -> {s : A ; isPre : Bool} = \b,a ->
+ {s = a ; isPre = b} ;
open_A = mkA "aperto" ;
closed_A = mkA "chiuso" ;
-
}