Ita and Fre superlatives, Ita possessives, in Phrasebook

This commit is contained in:
aarne
2010-05-26 14:11:23 +00:00
parent 1ff6d92b17
commit 45a0bf22ee
5 changed files with 60 additions and 32 deletions

View File

@@ -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} ;

View File

@@ -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} ;
}

View File

@@ -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") ;

View File

@@ -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) ;

View File

@@ -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" ;
}