From 7265c2f07de4b920a72536c890fe321c3e200a04 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 12 Jun 2014 13:55:39 +0000 Subject: [PATCH] DAP, Det with AP and its conjunction, in Eng and Scand ; not quite sure if this is possible in all languages --- lib/src/abstract/Cat.gf | 1 + lib/src/abstract/Conjunction.gf | 2 ++ lib/src/abstract/Noun.gf | 5 +++++ lib/src/dutch/DocumentationDutFunctor.gf | 4 ++-- lib/src/dutch/TerminologyDut.gf | 1 + lib/src/english/CatEng.gf | 1 + lib/src/english/ConjunctionEng.gf | 6 ++++++ lib/src/english/NounEng.gf | 7 +++++++ lib/src/scandinavian/CatScand.gf | 1 + lib/src/scandinavian/ConjunctionScand.gf | 11 +++++++++++ lib/src/scandinavian/NounScand.gf | 7 +++++++ 11 files changed, 44 insertions(+), 2 deletions(-) diff --git a/lib/src/abstract/Cat.gf b/lib/src/abstract/Cat.gf index 7c4bcf3f9..ae7745e7d 100644 --- a/lib/src/abstract/Cat.gf +++ b/lib/src/abstract/Cat.gf @@ -84,6 +84,7 @@ abstract Cat = Common ** { Num ; -- number determining element e.g. "seven" Card ; -- cardinal number e.g. "seven" Ord ; -- ordinal number (used in Det) e.g. "seventh" + DAP ; -- determiner with adjective e.g. "three small" --2 Numerals diff --git a/lib/src/abstract/Conjunction.gf b/lib/src/abstract/Conjunction.gf index c182d2e37..3bf4c6960 100644 --- a/lib/src/abstract/Conjunction.gf +++ b/lib/src/abstract/Conjunction.gf @@ -25,6 +25,7 @@ abstract Conjunction = Cat ** { ConjAdV : Conj -> [AdV] -> AdV ; ConjIAdv : Conj -> [IAdv] -> IAdv ; -- "where and with whom" ConjCN : Conj -> [CN] -> CN ; -- "man and woman" + ConjDet : Conj -> [DAP] -> Det ; -- "his or her" --2 Categories @@ -39,6 +40,7 @@ abstract Conjunction = Cat ** { [AP]{2} ; [IAdv]{2} ; [CN] {2} ; + [DAP] {2} ; --2 List constructors diff --git a/lib/src/abstract/Noun.gf b/lib/src/abstract/Noun.gf index f09bf1214..d3e666c94 100644 --- a/lib/src/abstract/Noun.gf +++ b/lib/src/abstract/Noun.gf @@ -146,4 +146,9 @@ abstract Noun = Cat ** { CountNP : Det -> NP -> NP ; -- three of them, some of the boys +--3 Conjoinable determiners and ones with adjectives + + AdjDAP : DAP -> AP -> DAP ; -- the large (one) + DetDAP : Det -> DAP ; -- this (or that) + } diff --git a/lib/src/dutch/DocumentationDutFunctor.gf b/lib/src/dutch/DocumentationDutFunctor.gf index 1e1e2644c..caae5dbd1 100644 --- a/lib/src/dutch/DocumentationDutFunctor.gf +++ b/lib/src/dutch/DocumentationDutFunctor.gf @@ -170,8 +170,8 @@ oper tr (th (heading imperative_Parameter ++ heading singular_Parameter) ++ td (vfin VImp2 ++ Predef.BIND ++ "," ++ vfin VImp3)) ++ tr (th (heading imperative_Parameter ++ heading plural_Parameter) ++ td (vfin (VImpPl))) ++ tr (th (heading infinitive_Parameter) ++ td (verb.s ! VInf)) ++ - tr (th (heading past_Parameter ++ heading participle_Parameter) ++ td (verb.s ! VPerf)) ++ - tr (th (heading present_Parameter ++ heading participle_Parameter) ++ td (verb.s ! VPresPart)) ++ + tr (th (heading perfect_Parameter ++ heading participle_Parameter) ++ td (verb.s ! VPerf)) ++ + tr (th (heading imperfect_Parameter ++ heading participle_Parameter) ++ td (verb.s ! VPresPart)) ++ tr (th (heading gerund_Parameter) ++ td (verb.s ! VGer)) ++ tr (th (heading aux_verb_Parameter) ++ td (case verb.aux of {VHebben => "hebben" ; VZijn => "zijn"})) ) ; diff --git a/lib/src/dutch/TerminologyDut.gf b/lib/src/dutch/TerminologyDut.gf index 908a2fb41..c49c5c5dd 100644 --- a/lib/src/dutch/TerminologyDut.gf +++ b/lib/src/dutch/TerminologyDut.gf @@ -50,6 +50,7 @@ lin future_Parameter = mkN "toekomend" ; conditional_Parameter = mkN "voorwaardelijk" ; perfect_Parameter = mkN "voltooid" ; + imperfect_Parameter = mkN "onvoltooid" ; participle_Parameter = mkN "deelwoord" ; aux_verb_Parameter = mkN "hulpwerkwoord" ; diff --git a/lib/src/english/CatEng.gf b/lib/src/english/CatEng.gf index d78a5e381..52894a7b7 100644 --- a/lib/src/english/CatEng.gf +++ b/lib/src/english/CatEng.gf @@ -75,6 +75,7 @@ concrete CatEng of Cat = CommonX - [Pol] ** open ResEng, Prelude in { Num = {s : Case => Str ; n : Number ; hasCard : Bool} ; Card = {s : Case => Str ; n : Number} ; Quant = {s : Bool => Number => Str ; sp : Bool => Number => NPCase => Str} ; + DAP = {s : Str ; n : Number} ; -- Numeral diff --git a/lib/src/english/ConjunctionEng.gf b/lib/src/english/ConjunctionEng.gf index 400c6169c..64aeed5f5 100644 --- a/lib/src/english/ConjunctionEng.gf +++ b/lib/src/english/ConjunctionEng.gf @@ -26,6 +26,8 @@ concrete ConjunctionEng of Conjunction = ConjCN co ns = conjunctDistrTable2 Number Case co ns ** {g = Neutr} ; --- gender? + ConjDet c xs = let cxs = (conjunctDistrSS c xs).s in {s = cxs ; sp = \\_ => cxs ++ "one" ; hasNum = False ; n = xs.n} ; + -- These fun's are generated from the list cat's. BaseS = twoSS ; @@ -44,6 +46,8 @@ concrete ConjunctionEng of Conjunction = ConsIAdv = consrSS comma ; BaseCN = twoTable2 Number Case ; ConsCN = consrTable2 Number Case comma ; + BaseDAP x y = twoSS x y ** {n = y.n} ; --- the last number decides: one big and two small cars + ConsDAP x xs = consrSS comma x xs ** {n = xs.n} ; lincat [S] = {s1,s2 : Str} ; @@ -54,5 +58,7 @@ concrete ConjunctionEng of Conjunction = [AP] = {s1,s2 : Agr => Str ; isPre : Bool} ; [RS] = {s1,s2 : Agr => Str ; c : NPCase} ; [CN] = {s1,s2 : Number => Case => Str} ; + [DAP] = {s1,s2 : Str ; n : Number} ; + } diff --git a/lib/src/english/NounEng.gf b/lib/src/english/NounEng.gf index b4b5261a5..877f0ba55 100644 --- a/lib/src/english/NounEng.gf +++ b/lib/src/english/NounEng.gf @@ -152,4 +152,11 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { a = agrP3 det.n } ; + AdjDAP det ap = { + s = det.s ++ ap.s ! agrgP3 det.n Masc ; --- post-ap's ? "this larger than life (movie)" + n = det.n ; + } ; + + DetDAP d = d ; -- forgetting sp and hasNumber + } diff --git a/lib/src/scandinavian/CatScand.gf b/lib/src/scandinavian/CatScand.gf index 724dd9fb0..1fc2e48f3 100644 --- a/lib/src/scandinavian/CatScand.gf +++ b/lib/src/scandinavian/CatScand.gf @@ -75,6 +75,7 @@ incomplete concrete CatScand of Cat = Num = {s : NGender => Str ; isDet : Bool ; n : Number} ; Card = {s : NGender => Str ; n : Number} ; Ord = {s : Str} ; + DAP = {s : Bool => NGender => Str ; n : Number ; det : DetSpecies} ; -- Numeral diff --git a/lib/src/scandinavian/ConjunctionScand.gf b/lib/src/scandinavian/ConjunctionScand.gf index ffbdc2207..68a366790 100644 --- a/lib/src/scandinavian/ConjunctionScand.gf +++ b/lib/src/scandinavian/ConjunctionScand.gf @@ -26,6 +26,12 @@ incomplete concrete ConjunctionScand of Conjunction = ConjCN co ns = conjunctDistrTable3 Number DetSpecies Case co ns ** {g = neutrum ; isMod = False} ; ---- + ConjDet conj ss = let css = (conjunctDistrTable2 Bool NGender conj ss).s in { + s,sp = css ; + n = ss.n ; + det = ss.det ; + } ; + -- These fun's are generated from the list cat's. @@ -50,6 +56,9 @@ incomplete concrete ConjunctionScand of Conjunction = BaseCN = twoTable3 Number DetSpecies Case ; ConsCN = consrTable3 Number DetSpecies Case comma ; + BaseDAP x y = twoTable2 Bool NGender x y ** {n = y.n ; det = y.det} ; + ConsDAP x xs = consrTable2 Bool NGender comma x xs ** {n = xs.n ; det = xs.det} ; + lincat [S] = {s1,s2 : Order => Str} ; [Adv] = {s1,s2 : Str} ; @@ -58,5 +67,7 @@ incomplete concrete ConjunctionScand of Conjunction = [AP] = {s1,s2 : AFormPos => Str ; isPre : Bool} ; [RS] = {s1,s2 : Agr => RCase => Str ; c : NPForm} ; [CN] = {s1,s2 : Number => DetSpecies => Case => Str} ; --- g : NGender ; isMod : Bool} ; + [DAP] = {s1,s2 : Bool => NGender => Str ; n : Number ; det : DetSpecies} ; + } diff --git a/lib/src/scandinavian/NounScand.gf b/lib/src/scandinavian/NounScand.gf index b03b81d9a..868cf03ca 100644 --- a/lib/src/scandinavian/NounScand.gf +++ b/lib/src/scandinavian/NounScand.gf @@ -228,5 +228,12 @@ incomplete concrete NounScand of Noun = a = agrP3 g det.n } ; + AdjDAP det ap = { + s = \\b,g => det.s ! b ! g ++ ap.s ! agrAdj (gennum (ngen2gen g) det.n) det.det ; + n = det.n ; + det = det.det ; + } ; + + DetDAP d = d ; -- forgetting sp }