diff --git a/lib/resource-1.0/abstract/Cat.gf b/lib/resource-1.0/abstract/Cat.gf index 97745746a..752e0de00 100644 --- a/lib/resource-1.0/abstract/Cat.gf +++ b/lib/resource-1.0/abstract/Cat.gf @@ -68,8 +68,9 @@ abstract Cat = Tense ** { Pron ; -- personal pronoun e.g. "she" Det ; -- determiner phrase e.g. "all the seven" Predet; -- predeterminer (prefixed Quant) e.g. "all" - QuantSg;-- quantifier ('nucleus' of sing. Det) e.g. "this" - QuantPl;-- quantifier ('nucleus' of plur. Det) e.g. "these" + QuantSg;-- quantifier ('nucleus' of sing. Det) e.g. "every" + QuantPl;-- quantifier ('nucleus' of plur. Det) e.g. "many" + Quant ; -- quantifier with both sg and pl e.g. "this/these" Num ; -- cardinal number (used with QuantPl) e.g. "seven" Ord ; -- ordinal number (used in Det) e.g. "seventh" diff --git a/lib/resource-1.0/abstract/Noun.gf b/lib/resource-1.0/abstract/Noun.gf index b49b3041d..e588c1ee0 100644 --- a/lib/resource-1.0/abstract/Noun.gf +++ b/lib/resource-1.0/abstract/Noun.gf @@ -32,12 +32,16 @@ abstract Noun = Cat ** { DetSg : QuantSg -> Ord -> Det ; -- this best man DetPl : QuantPl -> Num -> Ord -> Det ; -- these five best men +-- Quantifiers that have both forms can be used in both ways. + + SgQuant : Quant -> QuantSg ; -- this + PlQuant : Quant -> QuantPl ; -- these + -- Pronouns have possessive forms. Genitives of other kinds -- of noun phrases are not given here, since they are not possible -- in e.g. Romance languages. - PossSg : Pron -> QuantSg ; -- my (house) - PossPl : Pron -> QuantPl ; -- my (houses) + PossPron : Pron -> Quant ; -- my (house) -- All parts of the determiner can be empty, except $Quant$, which is -- the "kernel" of a determiner. @@ -70,16 +74,14 @@ abstract Noun = Cat ** { -- neatly distinct words (Spanish "un, unos ; el, los") but also without -- any particular word (Finnish; Swedish definites). - DefSg : QuantSg ; -- the (house) - DefPl : QuantPl ; -- the (houses) - IndefSg : QuantSg ; -- a (house) - IndefPl : QuantPl ; -- (houses) + DefArt : Quant ; -- the (house), the (houses) + IndefArt : Quant ; -- a (house), (houses) -- Nouns can be used without an article as mass nouns. The resource does -- not distinguish mass nouns from other common nouns, which can result -- in semantically odd expressions. - MassDet : QuantSg ; -- (beer) + MassDet : QuantSg ; -- (beer) -- Other determiners are defined in [Structural Structural.html]. diff --git a/lib/resource-1.0/abstract/Structural.gf b/lib/resource-1.0/abstract/Structural.gf index c56cf7173..477f969f7 100644 --- a/lib/resource-1.0/abstract/Structural.gf +++ b/lib/resource-1.0/abstract/Structural.gf @@ -73,19 +73,17 @@ abstract Structural = Cat ** { somebody_NP : NP ; something_NP : NP ; somewhere_Adv : Adv ; - that_Quant : QuantSg ; + that_Quant : Quant ; that_NP : NP ; there_Adv : Adv ; there7to_Adv : Adv ; there7from_Adv : Adv ; therefore_PConj : PConj ; these_NP : NP ; - these_Quant : QuantPl ; they_Pron : Pron ; - this_Quant : QuantSg ; + this_Quant : Quant ; this_NP : NP ; those_NP : NP ; - those_Quant : QuantPl ; through_Prep : Prep ; to_Prep : Prep ; too_AdA : AdA ; diff --git a/lib/resource-1.0/english/CatEng.gf b/lib/resource-1.0/english/CatEng.gf index 8b9359eda..b1b729c18 100644 --- a/lib/resource-1.0/english/CatEng.gf +++ b/lib/resource-1.0/english/CatEng.gf @@ -51,6 +51,7 @@ concrete CatEng of Cat = TenseX ** open ResEng, Prelude in { NP, Pron = {s : Case => Str ; a : Agr} ; Det = {s : Str ; n : Number} ; Predet, QuantSg, QuantPl, Num, Ord = {s : Str} ; + Quant = {s : Number => Str} ; -- Adverb diff --git a/lib/resource-1.0/english/NounEng.gf b/lib/resource-1.0/english/NounEng.gf index f2731153b..c11d97fb1 100644 --- a/lib/resource-1.0/english/NounEng.gf +++ b/lib/resource-1.0/english/NounEng.gf @@ -25,8 +25,10 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { n = Pl } ; - PossSg p = {s = p.s ! Gen} ; - PossPl p = {s = p.s ! Gen} ; + SgQuant quant = {s = quant.s ! Sg} ; + PlQuant quant = {s = quant.s ! Pl} ; + + PossPron p = {s = \\_ => p.s ! Gen} ; NoNum, NoOrd = {s = []} ; @@ -40,11 +42,14 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { OrdSuperl a = {s = a.s ! AAdj Superl} ; - DefSg = {s = artDef ; n = Sg} ; - DefPl = {s = artDef ; n = Pl} ; + DefArt = {s = \\_ => artDef} ; - IndefSg = {s = artIndef ; n = Sg} ; - IndefPl = {s = [] ; n = Pl} ; + IndefArt = { + s = table { + Sg => artIndef ; + Pl => [] + } + } ; MassDet = {s = [] ; n = Sg} ; diff --git a/lib/resource-1.0/english/StructuralEng.gf b/lib/resource-1.0/english/StructuralEng.gf index 07a2cba11..b75cdc554 100644 --- a/lib/resource-1.0/english/StructuralEng.gf +++ b/lib/resource-1.0/english/StructuralEng.gf @@ -63,19 +63,16 @@ concrete StructuralEng of Structural = CatEng ** somePl_Det = mkDeterminer Pl "some" ; something_NP = regNP "something" Sg ; somewhere_Adv = ss "somewhere" ; - that_Quant = mkDeterminer Sg "that" ; + that_Quant = mkQuant "that" "those" ; that_NP = regNP "that" Sg ; there_Adv = ss "there" ; there7to_Adv = ss "there" ; there7from_Adv = ss ["from there"] ; therefore_PConj = ss "therefore" ; - these_NP = regNP "these" Pl ; - these_Quant = mkDeterminer Pl "these" ; they_Pron = mkNP "they" "them" "their" Pl P3 ; - this_Quant = mkDeterminer Sg "this" ; + this_Quant = mkQuant "this" "these" ; this_NP = regNP "this" Sg ; those_NP = regNP "those" Pl ; - those_Quant = mkDeterminer Pl "those" ; through_Prep = ss "through" ; too_AdA = ss "too" ; to_Prep = ss "to" ; @@ -100,5 +97,10 @@ concrete StructuralEng of Structural = CatEng ** youPl_Pron = mkNP "you" "you" "your" Pl P2 ; youPol_Pron = mkNP "you" "you" "your" Sg P2 ; +oper + mkQuant : Str -> Str -> {s : Number => Str} = \x,y -> { + s = table Number [x ; y] + } ; + } diff --git a/lib/resource-1.0/french/StructuralFre.gf b/lib/resource-1.0/french/StructuralFre.gf index bc847f10b..06b9e888a 100644 --- a/lib/resource-1.0/french/StructuralFre.gf +++ b/lib/resource-1.0/french/StructuralFre.gf @@ -80,21 +80,29 @@ lin someSg_Det = {s = \\_,c => prepCase c ++ elision "quelqu" ; n = Sg} ; something_NP = pn2np (mkPN ["quelque chose"] Masc) ; somewhere_Adv = ss ["quelque part"] ; --- ne - pas - that_Quant = {s = \\g,c => prepCase c ++ genForms "ce" "cette" ! g} ; ---- cet + that_Quant = {s = + table { + Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; là + Pl => \\_,_ => "ces" + } + } ; that_NP = mkNP ["ceci"] Masc Sg ; there7from_Adv = ss ["de là"] ; there7to_Adv = ss "là" ; --- y there_Adv = ss "là" ; therefore_PConj = ss "donc" ; these_NP = mkNP ["celles-ci"] Fem Pl ; - these_Quant = {s = \\_,c => prepCase c ++ "ces"} ; ---- ci they_Pron = mkPronoun "elles" "les" "leur" "eux" "leur" "leur" "leurs" Fem Pl P3 Clit1 ; - this_Quant = {s = \\g,c => prepCase c ++ genForms "ce" "cette" ! g} ; ---- cet + this_Quant = {s = + table { + Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; ci + Pl => \\_,_ => "ces" + } + } ; this_NP = pn2np (mkPN ["ceci"] Masc) ; those_NP = mkNP ["celles-là"] Fem Pl ; - those_Quant = {s = \\_,c => prepCase c ++ "ces"} ; ---- là through_Prep = mkPreposition "par" ; too_AdA = ss "trop" ; to_Prep = complDat ; diff --git a/lib/resource-1.0/german/CatGer.gf b/lib/resource-1.0/german/CatGer.gf index b3850a323..4ce1c587a 100644 --- a/lib/resource-1.0/german/CatGer.gf +++ b/lib/resource-1.0/german/CatGer.gf @@ -50,6 +50,7 @@ concrete CatGer of Cat = TenseX ** open ResGer, Prelude in { Pron = {s : NPForm => Str ; a : Agr} ; Det = {s : Gender => Case => Str ; n : Number ; a : Adjf} ; QuantSg, QuantPl = {s : Gender => Case => Str ; a : Adjf} ; + Quant = {s : Number => Gender => Case => Str ; a : Adjf} ; Predet = {s : Number => Gender => Case => Str} ; Num = {s : Str} ; Ord = {s : AForm => Str} ; diff --git a/lib/resource-1.0/german/NounGer.gf b/lib/resource-1.0/german/NounGer.gf index 1b63a9c25..14803b1a0 100644 --- a/lib/resource-1.0/german/NounGer.gf +++ b/lib/resource-1.0/german/NounGer.gf @@ -42,16 +42,18 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in { a = a } ; - PossSg p = { - s = \\g,c => p.s ! NPPoss (gennum g Sg) c ; - n = Sg ; - a = Strong + SgQuant q = { + s = q.s ! Sg ; + a = q.a + } ; + PlQuant q = { + s = q.s ! Pl ; + a = q.a } ; - PossPl p = { - s = \\g,c => p.s ! NPPoss (gennum g Pl) c ; - n = Pl ; - a = Weak + PossPron p = { + s = \\n,g,c => p.s ! NPPoss (gennum g n) c ; + a = Strong --- need separately weak for Pl ? } ; NoNum = {s = []} ; @@ -67,25 +69,16 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in { OrdSuperl a = {s = a.s ! Superl} ; - DefSg = { - s = \\g,c => artDef ! GSg g ! c ; - n = Sg ; - a = Weak - } ; - DefPl = { - s = \\_,c => artDef ! GPl ! c ; - n = Pl ; + DefArt = { + s = \\n,g,c => artDef ! gennum g n ! c ; a = Weak } ; - IndefSg = { - s = \\g,c => "ein" + pronEnding ! GSg g ! c ; - n = Sg ; - a = Strong - } ; - IndefPl = { - s = \\_,_ => [] ; - n = Pl ; + IndefArt = { + s = table { + Sg => \\g,c => "ein" + pronEnding ! GSg g ! c ; + Pl => \\_,_ => [] + } ; a = Strong } ; @@ -95,7 +88,6 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in { a = Strong } ; - UseN, UseN2, UseN3 = \n -> { s = \\_ => n.s ; g = n.g diff --git a/lib/resource-1.0/german/StructuralGer.gf b/lib/resource-1.0/german/StructuralGer.gf index b2cb10084..ea5158668 100644 --- a/lib/resource-1.0/german/StructuralGer.gf +++ b/lib/resource-1.0/german/StructuralGer.gf @@ -82,19 +82,17 @@ concrete StructuralGer of Structural = CatGer ** } ; something_NP = nameNounPhrase {s = \\_ => "etwas"} ; somewhere_Adv = ss "irgendwo" ; - that_Quant = detLikeAdj Sg "jen" ; + that_Quant = {s = \\n => (detLikeAdj n "jen").s ; a = Weak} ; that_NP = nameNounPhrase {s = caselist "das" "das" "denem" "dessen"} ; ---- there_Adv = ss "da" ; there7to_Adv = ss "dahin" ; there7from_Adv = ss ["daher"] ; therefore_PConj = ss "deshalb" ; these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ; - these_Quant = detLikeAdj Pl "dies" ; they_Pron = mkPronPers "sie" "sie" "ihnen" "ihrer" "ihr" Pl P3 ; - this_Quant = detLikeAdj Sg "dies" ; + this_Quant = {s = \\n => (detLikeAdj n "dies").s ; a = Weak} ; this_NP = nameNounPhrase {s = caselist "dies" "dies" "diesem" "dieses"} ; ---- those_NP = {s = caselist "jene" "jene" "jenen" "jener" ; a = agrP3 Pl} ; - those_Quant = detLikeAdj Pl "jen" ; through_Prep = mkPrep "durch" Acc ; too_AdA = ss "zu" ; to_Prep = mkPrep "nach" Dat ; diff --git a/lib/resource-1.0/italian/StructuralIta.gf b/lib/resource-1.0/italian/StructuralIta.gf index 082a46e70..d519b4bca 100644 --- a/lib/resource-1.0/italian/StructuralIta.gf +++ b/lib/resource-1.0/italian/StructuralIta.gf @@ -79,21 +79,29 @@ lin someSg_Det = {s = \\_,c => prepCase c ++ "qualche" ; n = Sg} ; something_NP = pn2np (mkPN ["qualche cosa"] Masc) ; somewhere_Adv = ss ["qualche parte"] ; - that_Quant = {s = \\g,c => prepCase c ++ genForms "quello" "quella" ! g} ; + that_Quant = { + s = table { + Sg => \\g,c => prepCase c ++ genForms "quello" "quella" ! g ; + Pl => \\g,c => prepCase c ++ genForms "quelli" "quelle" ! g ---- quegli + } + } ; that_NP = mkNP ["questo"] Masc Sg ; there7from_Adv = ss ["di là"] ; there7to_Adv = ss "là" ; --- ci there_Adv = ss "là" ; therefore_PConj = ss "quindi" ; these_NP = mkNP ["queste"] Fem Pl ; - these_Quant = {s = \\g,c => prepCase c ++ genForms "questo" "questa" ! g} ; they_Pron = mkPronoun "loro" "loro" "li" "loro" "loro" "loro" "loro" "loro" Fem Pl P3 Clit1 ; - this_Quant = {s = \\g,c => prepCase c ++ genForms "questo" "questa" ! g} ; + this_Quant = { + s = table { + Sg => \\g,c => prepCase c ++ genForms "questo" "questa" ! g ; + Pl => \\g,c => prepCase c ++ genForms "questi" "queste" ! g + } + } ; this_NP = pn2np (mkPN ["questo"] Masc) ; those_NP = mkNP ["quelle"] Fem Pl ; - those_Quant = {s = \\g,c => prepCase c ++ genForms "quelli" "quelle" ! g} ; --- quegli through_Prep = mkPreposition "per" ; too_AdA = ss "troppo" ; to_Prep = complDat ; diff --git a/lib/resource-1.0/mathematical/PredicationI.gf b/lib/resource-1.0/mathematical/PredicationI.gf index 38f34729d..00ca9b8f4 100644 --- a/lib/resource-1.0/mathematical/PredicationI.gf +++ b/lib/resource-1.0/mathematical/PredicationI.gf @@ -17,19 +17,21 @@ lin predAComp a x y = PredVP x (UseComp (CompAP (ComparA a y))) ; predAColl a x y = PredVP (ConjNP and_Conj (BaseNP x y)) (UseComp (CompAP (PositA a))) ; - predN n x = PredVP x (UseComp (CompNP (DetCN (DetSg IndefSg NoOrd) (UseN n)))) ; + predN n x = + PredVP x (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (UseN n)))) ; predN2 n x y = - PredVP x (UseComp (CompNP (DetCN (DetSg IndefSg NoOrd) (ComplN2 n y)))) ; + PredVP x (UseComp (CompNP (DetCN (DetSg (SgQuant IndefArt) NoOrd) (ComplN2 n y)))) ; predNColl n x y = PredVP (ConjNP and_Conj (BaseNP x y)) - (UseComp (CompNP (DetCN (DetPl IndefPl NoNum NoOrd) (UseN n)))) ; + (UseComp (CompNP (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) (UseN n)))) ; predAdv a x = PredVP x (UseComp (CompAdv a)) ; predPrep p x y = PredVP x (UseComp (CompAdv (PrepNP p y))) ; --2 Individual-valued function applications - appN2 n x = DetCN (DetSg DefSg NoOrd) (ComplN2 n x) ; - appN3 n x y = DetCN (DetSg DefSg NoOrd) (ComplN2 (ComplN3 n x) y) ; - appColl n x y = DetCN (DetSg DefSg NoOrd) (ComplN2 n (ConjNP and_Conj (BaseNP x y))) ; + appN2 n x = DetCN (DetSg (SgQuant DefArt) NoOrd) (ComplN2 n x) ; + appN3 n x y = DetCN (DetSg (SgQuant DefArt) NoOrd) (ComplN2 (ComplN3 n x) y) ; + appColl n x y = + DetCN (DetSg (SgQuant DefArt) NoOrd) (ComplN2 n (ConjNP and_Conj (BaseNP x y))) ; --2 Families of types @@ -43,6 +45,6 @@ lin -- This is similar to a family except that the argument is a type. - typN2 f n = ComplN2 f (DetCN (DetPl IndefPl NoNum NoOrd) n) ; + typN2 f n = ComplN2 f (DetCN (DetPl (PlQuant IndefArt) NoNum NoOrd) n) ; } diff --git a/lib/resource-1.0/multimodal/DemonstrativeI.gf b/lib/resource-1.0/multimodal/DemonstrativeI.gf index 722c03d42..3032eaf46 100644 --- a/lib/resource-1.0/multimodal/DemonstrativeI.gf +++ b/lib/resource-1.0/multimodal/DemonstrativeI.gf @@ -82,9 +82,9 @@ incomplete concrete DemonstrativeI of Demonstrative = Cat ** that_MNP = mkDem NP that_NP ; thisDet_MNP cn = - mkDem NP (DetCN (DetSg this_Quant NoOrd) cn) ; + mkDem NP (DetCN (DetSg (SgQuant this_Quant) NoOrd) cn) ; thatDet_MNP cn = - mkDem NP (DetCN (DetSg that_Quant NoOrd) cn) ; + mkDem NP (DetCN (DetSg (SgQuant that_Quant) NoOrd) cn) ; here_MAdv = mkDem Adv here_Adv ; here7from_MAdv = mkDem Adv here7from_Adv ; diff --git a/lib/resource-1.0/norwegian/StructuralNor.gf b/lib/resource-1.0/norwegian/StructuralNor.gf index a9ce1d367..16261a5e3 100644 --- a/lib/resource-1.0/norwegian/StructuralNor.gf +++ b/lib/resource-1.0/norwegian/StructuralNor.gf @@ -67,20 +67,28 @@ concrete StructuralNor of Structural = CatNor ** something_NP = regNP "noe" "noes" SgNeutr ; somewhere_Adv = ss ["et eller annet sted"] ; ---- ? that_Quant = - {s = \\_ => genderForms ["den der"] ["det der"] ; n = Sg ; det = DDef Def} ; + {s = table { + Sg => \\_ => genderForms ["den der"] ["det der"] ; + Pl => \\_,_ => ["de der"] + } ; + det = DDef Def + } ; that_NP = regNP ["det der"] ["det ders"] SgNeutr ; there_Adv = ss "der" ; there7to_Adv = ss "dit" ; there7from_Adv = ss "derfra" ; therefore_PConj = ss "derfor" ; these_NP = regNP ["de her"] ["det hers"] Plg ; - these_Quant = {s = \\_,_ => ["de her"] ; n = Pl ; det = DDef Def} ; they_Pron = MorphoNor.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ; this_Quant = - {s = \\_ => genderForms ["den her"] ["det her"] ; n = Sg ; det = DDef Def} ; + {s = table { + Sg => \\_ => genderForms ["den her"] ["det her"] ; + Pl => \\_,_ => ["de her"] + } ; + det = DDef Def + } ; this_NP = regNP ["det her"] ["det hers"] SgNeutr ; those_NP = regNP ["de der"] ["de ders"] Plg ; - those_Quant = {s = \\_,_ => ["de der"] ; n = Pl ; det = DDef Def} ; through_Prep = ss "gjennom" ; too_AdA = ss "for" ; to_Prep = ss "til" ; diff --git a/lib/resource-1.0/romance/CatRomance.gf b/lib/resource-1.0/romance/CatRomance.gf index d83f3fd8a..e90f33469 100644 --- a/lib/resource-1.0/romance/CatRomance.gf +++ b/lib/resource-1.0/romance/CatRomance.gf @@ -50,6 +50,7 @@ incomplete concrete CatRomance of Cat = Det = {s : Gender => Case => Str ; n : Number} ; QuantSg = {s : Gender => Case => Str} ; QuantPl = {s : Gender => Case => Str} ; + Quant = {s : Number => Gender => Case => Str} ; Predet = {s : AAgr => Case => Str ; c : Case} ; -- la plupart de... Num = {s : Gender => Str} ; Ord = {s : AAgr => Str} ; diff --git a/lib/resource-1.0/romance/NounRomance.gf b/lib/resource-1.0/romance/NounRomance.gf index de1e28d19..753e02ef5 100644 --- a/lib/resource-1.0/romance/NounRomance.gf +++ b/lib/resource-1.0/romance/NounRomance.gf @@ -34,13 +34,11 @@ incomplete concrete NounRomance of Noun = n = Pl } ; - PossSg p = { - s = \\g,c => prepCase c ++ p.s ! Poss (aagr g Sg) ; - n = Sg - } ; - PossPl p = { - s = \\g,c => prepCase c ++ p.s ! Poss (aagr g Pl) ; - n = Pl + SgQuant q = {s = q.s ! Sg} ; + PlQuant q = {s = q.s ! Pl} ; + + PossPron p = { + s = \\n,g,c => prepCase c ++ p.s ! Poss (aagr g n) ---- il mio! } ; NoNum = {s = \\_ => []} ; @@ -56,22 +54,12 @@ incomplete concrete NounRomance of Noun = OrdSuperl adj = {s = \\a => adj.s ! Superl ! AF a.g a.n} ; - DefSg = { - s = \\g,c => artDef g Sg c ; - n = Sg - } ; - DefPl = { - s = \\g,c => artDef g Pl c ; - n = Pl + DefArt = { + s = \\n,g,c => artDef g n c } ; - IndefSg = { - s = \\g,c => artIndef g Sg c ; - n = Sg - } ; - IndefPl = { - s = \\g,c => artIndef g Pl c ; - n = Pl + IndefArt = { + s = \\n,g,c => artIndef g n c } ; MassDet = { diff --git a/lib/resource-1.0/scandinavian/CatScand.gf b/lib/resource-1.0/scandinavian/CatScand.gf index 226327ed7..678517fd2 100644 --- a/lib/resource-1.0/scandinavian/CatScand.gf +++ b/lib/resource-1.0/scandinavian/CatScand.gf @@ -66,6 +66,7 @@ incomplete concrete CatScand of Cat = Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ; QuantSg = {s : Bool => Gender => Str ; det : DetSpecies} ; QuantPl = {s : Bool => Gender => Str ; det : DetSpecies} ; + Quant = {s : Number => Bool => Gender => Str ; det : DetSpecies} ; Predet = {s : GenNum => Str} ; Num = {s : Gender => Str ; isDet : Bool} ; Ord = {s : Str ; isDet : Bool} ; diff --git a/lib/resource-1.0/scandinavian/NounScand.gf b/lib/resource-1.0/scandinavian/NounScand.gf index 1b46df831..c229c9004 100644 --- a/lib/resource-1.0/scandinavian/NounScand.gf +++ b/lib/resource-1.0/scandinavian/NounScand.gf @@ -39,14 +39,19 @@ incomplete concrete NounScand of Noun = det = quant.det } ; - PossSg p = { - s = \\_,g => p.s ! NPPoss (gennum g Sg) ; + SgQuant quant = { + s = quant.s ! Sg ; n = Sg ; - det = DDef Indef + det = quant.det } ; - PossPl p = { - s = \\_,_ => p.s ! NPPoss Plg ; + PlQuant quant = { + s = quant.s ! Pl ; n = Pl ; + det = quant.det + } ; + + PossPron p = { + s = \\n,_,g => p.s ! NPPoss (gennum g n) ; det = DDef Indef } ; @@ -63,19 +68,18 @@ incomplete concrete NounScand of Noun = OrdSuperl a = {s = a.s ! AF (ASuperl SupWeak) Nom ; isDet = True} ; - DefSg = { - s = \\b,g => if_then_Str b (artDef (gennum g Sg)) [] ; - n = Sg ; - det = DDef detDef - } ; - DefPl = { - s = \\b,_ => if_then_Str b (artDef Plg) [] ; - n = Pl ; + DefArt = { + s = \\n,b,g => if_then_Str b (artDef (gennum g n)) [] ; det = DDef detDef } ; - IndefSg = {s = \\_ => artIndef ; n = Sg ; det = DIndef} ; - IndefPl = {s = \\_,_ => [] ; n = Pl ; det = DIndef} ; + IndefArt = { + s = table { + Sg => \\_ => artIndef ; + Pl => \\_,_ => [] + } ; + det = DIndef + } ; MassDet = {s = \\_,_ => [] ; n = Sg ; det = DIndef} ; diff --git a/lib/resource-1.0/swedish/StructuralSwe.gf b/lib/resource-1.0/swedish/StructuralSwe.gf index e94300b08..60b871d07 100644 --- a/lib/resource-1.0/swedish/StructuralSwe.gf +++ b/lib/resource-1.0/swedish/StructuralSwe.gf @@ -66,20 +66,28 @@ concrete StructuralSwe of Structural = CatSwe ** something_NP = regNP "något" "någots" SgNeutr ; somewhere_Adv = ss "någonstans" ; that_Quant = - {s = \\_ => genderForms ["den där"] ["det där"] ; n = Sg ; det = DDef Def} ; + {s = table { + Sg => \\_ => genderForms ["den där"] ["det där"] ; + Pl => \\_,_ => ["de där"] + } ; + det = DDef Def + } ; that_NP = regNP ["det där"] ["det därs"] SgNeutr ; there_Adv = ss "där" ; there7to_Adv = ss "dit" ; there7from_Adv = ss "därifrån" ; therefore_PConj = ss "därför" ; these_NP = regNP ["de här"] ["det härs"] Plg ; - these_Quant = {s = \\_,_ => ["de här"] ; n = Pl ; det = DDef Def} ; they_Pron = MorphoSwe.mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ; this_Quant = - {s = \\_ => genderForms ["den här"] ["det här"] ; n = Sg ; det = DDef Def} ; + {s = table { + Sg => \\_ => genderForms ["den här"] ["det här"] ; + Pl => \\_,_ => ["de här"] + } ; + det = DDef Def + } ; this_NP = regNP ["det här"] ["det härs"] SgNeutr ; those_NP = regNP ["de där"] ["det därs"] Plg ; - those_Quant = {s = \\_,_ => ["de där"] ; n = Pl ; det = DDef Def} ; through_Prep = ss "genom" ; too_AdA = ss "för" ; to_Prep = ss "till" ;