1
0
forked from GitHub/gf-core

constructors PossNP, PartNP, CountNP to separete "of" constructions

This commit is contained in:
aarne
2013-03-13 13:42:41 +00:00
parent 05c9934af0
commit 31b4b13b65
2 changed files with 23 additions and 3 deletions

View File

@@ -134,5 +134,15 @@ abstract Noun = Cat ** {
ApposCN : CN -> NP -> CN ; -- city Paris (, numbers x and y)
--2 Possessive and partitive constructs
-- (New 13/3/2013 AR; Structural.possess_Prep and part_Prep should be deprecated in favour of these.)
PossNP : CN -> NP -> CN ; -- house of Paris, house of mine
PartNP : CN -> NP -> CN ; -- glass of wine
-- This is different from the partitive, as shown by many languages.
CountNP : Det -> NP -> NP ; -- three of them, some of the boys
}

View File

@@ -42,20 +42,21 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in {
} ;
DetQuantOrd quant num ord = {
s = quant.s ! num.hasCard ! num.n ++ num.s ! Nom ++ ord.s ! Nom;
s = quant.s ! num.hasCard ! num.n ++ num.s ! Nom ++ ord.s ! Nom;
sp = \\c => quant.sp ! num.hasCard ! num.n ! npNom ++ num.s ! Nom ++ ord.s ! npcase2case c ;
n = num.n ;
hasNum = True
} ;
DetNP det = {
s = case det.hasNum of {True => \\_ => det.s ; _ => \\c => det.sp ! c} ;
-- s = case det.hasNum of {True => \\_ => det.s ; _ => \\c => det.sp ! c} ;
s = det.sp ;
a = agrP3 det.n
} ;
PossPron p = {
s = \\_,_ => p.s ! NCase Gen ;
sp = \\_,_,c => p.sp ! npcase2case c
sp = \\_,_,c => p.sp ! Gen
} ;
NumSg = {s = \\c => []; n = Sg ; hasCard = False} ;
@@ -137,4 +138,13 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in {
ApposCN cn np = {s = \\n,c => cn.s ! n ! Nom ++ np.s ! NCase c ; g = cn.g} ;
PossNP cn np = {s = \\n,c => cn.s ! n ! c ++ "of" ++ np.s ! NPNomPoss ; g = cn.g} ;
PartNP cn np = {s = \\n,c => cn.s ! n ! c ++ "of" ++ np.s ! NPAcc ; g = cn.g} ;
CountNP det np = {
s = \\c => det.sp ! c ++ "of" ++ np.s ! NPAcc ;
a = agrP3 det.n
} ;
}