From c4ae27bb53e91eb33ed48ead63711c9528e751b0 Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 19 Apr 2008 14:34:52 +0000 Subject: [PATCH] nounless determiner NPs added; started Backward module - both in exper so far --- lib/resource/exper/abstract/Backward.gf | 33 ++++++++++++++ lib/resource/exper/abstract/Cat.gf | 1 + lib/resource/exper/abstract/Noun.gf | 33 ++++++++------ lib/resource/exper/abstract/Sentence.gf | 5 --- lib/resource/exper/abstract/Structural.gf | 4 -- lib/resource/exper/abstract/Verb.gf | 9 ---- lib/resource/exper/english/BackwardEng.gf | 49 +++++++++++++++++++++ lib/resource/exper/english/CatEng.gf | 2 +- lib/resource/exper/english/NounEng.gf | 31 +++++++++++-- lib/resource/exper/english/SentenceEng.gf | 15 ------- lib/resource/exper/english/StructuralEng.gf | 4 -- lib/resource/exper/english/VerbEng.gf | 17 ------- 12 files changed, 131 insertions(+), 72 deletions(-) create mode 100644 lib/resource/exper/abstract/Backward.gf create mode 100644 lib/resource/exper/english/BackwardEng.gf diff --git a/lib/resource/exper/abstract/Backward.gf b/lib/resource/exper/abstract/Backward.gf new file mode 100644 index 000000000..dfc98775d --- /dev/null +++ b/lib/resource/exper/abstract/Backward.gf @@ -0,0 +1,33 @@ +--1 Obsolete constructs included for backward-compatibility + +abstract Backward = Cat ** { + +fun + +-- from Verb 19/4/2008 + + ComplV2 : V2 -> NP -> VP ; -- use it + ComplV3 : V3 -> NP -> NP -> VP ; -- send a message to her + ComplV2V : V2V -> NP -> VP -> VP ; -- cause it to burn + ComplV2S : V2S -> NP -> S -> VP ; -- tell me that it rains + ComplV2Q : V2Q -> NP -> QS -> VP ; -- ask me who came + ComplV2A : V2A -> NP -> AP -> VP ; -- paint it red + +-- from Sentence 19/4/2008 + + SlashV2 : NP -> V2 -> Slash ; -- (whom) he sees + SlashVVV2 : NP -> VV -> V2 -> Slash; -- (whom) he wants to see + +-- from Noun 19/4/2008 + + NumInt : Int -> Num ; -- 51 + OrdInt : Int -> Ord ; -- 51st (DEPRECATED) + +-- from Structural 19/4/2008 + + that_NP : NP ; + these_NP : NP ; + this_NP : NP ; + those_NP : NP ; + +} diff --git a/lib/resource/exper/abstract/Cat.gf b/lib/resource/exper/abstract/Cat.gf index 35e59d78a..12f4760bc 100644 --- a/lib/resource/exper/abstract/Cat.gf +++ b/lib/resource/exper/abstract/Cat.gf @@ -80,6 +80,7 @@ abstract Cat = Common ** { Det ; -- determiner phrase e.g. "those seven" Predet ; -- predeterminer (prefixed Quant) e.g. "all" Quant ; -- quantifier ('nucleus' of Det) e.g. "this/these" + Art ; -- article (non-independent Quant) e.g. "the" Num ; -- cardinal number (used with QuantPl) e.g. "seven" Ord ; -- ordinal number (used in Det) e.g. "seventh" diff --git a/lib/resource/exper/abstract/Noun.gf b/lib/resource/exper/abstract/Noun.gf index a97799647..4b630d7ca 100644 --- a/lib/resource/exper/abstract/Noun.gf +++ b/lib/resource/exper/abstract/Noun.gf @@ -35,24 +35,27 @@ abstract Noun = Cat ** { -- (This is modified from CLE by further dividing their $Num$ into -- cardinal and ordinal.) - DetSg : Quant -> Ord -> Det ; -- this best man - DetPl : Quant -> Num -> Ord -> Det ; -- these five best men + DetSg : Art -> Ord -> Det ; -- the best man + DetPl : Art -> Num -> Ord -> Det ; -- the five best men -- Notice that $DetPl$ can still result in a singular determiner, because -- "one" is a numeral: "this one man". --- Quantifiers that have both forms can be used in both ways. +-- Quantifiers can form noun phrases directly. ---- DEPRECATED: no longer needed ---- SgQuant : Quant -> QuantSg ; -- this ---- PlQuant : Quant -> QuantPl ; -- these + DetSgNP : Quant -> Ord -> NP ; -- this + DetPlNP : Quant -> Num -> Ord -> NP ; -- these five + +-- Quantifiers can also be used in the same way as articles. + + ArtQuant : Quant -> Art ; -- 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. They can be found in -- [``Extra`` ../abstract/Extra.gf]. - PossPron : Pron -> Quant ; -- my (house) + PossPron : Pron -> Art ; -- my (house) -- All parts of the determiner can be empty, except $Quant$, which is -- the "kernel" of a determiner. @@ -62,7 +65,6 @@ abstract Noun = Cat ** { -- $Num$ consists of either digits or numeral words. - NumInt : Int -> Num ; -- 51 (DEPRECATED) NumDigits : Digits -> Num ; -- 51 NumNumeral : Numeral -> Num ; -- fifty-one @@ -74,27 +76,32 @@ abstract Noun = Cat ** { -- $Ord$ consists of either digits or numeral words. - OrdInt : Int -> Ord ; -- 51st (DEPRECATED) OrdDigits : Digits -> Ord ; -- 51st OrdNumeral : Numeral -> Ord ; -- fifty-first -- Superlative forms of adjectives behave syntactically in the same way as -- ordinals. - OrdSuperl : A -> Ord ; -- largest + OrdSuperl : A -> Ord ; -- largest + +-- Ordinals and cardinals can be used as noun phrases alone. + + OrdSuperlNP : A -> NP ; -- the largest + OrdNumeralNP : Numeral -> NP ; -- the fiftieth + NumNumeralNP : Numeral -> NP ; -- fifty -- Definite and indefinite constructions are sometimes realized as -- neatly distinct words (Spanish "un, unos ; el, los") but also without -- any particular word (Finnish; Swedish definites). - DefArt : Quant ; -- the (house), the (houses) - IndefArt : Quant ; -- a (house), (houses) + DefArt : Art ; -- the (house), the (houses) + IndefArt : Art ; -- 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 : Quant ; -- (beer) + MassDet : Art ; -- (beer) -- Other determiners are defined in [Structural Structural.html]. diff --git a/lib/resource/exper/abstract/Sentence.gf b/lib/resource/exper/abstract/Sentence.gf index a9b13408b..7541a2976 100644 --- a/lib/resource/exper/abstract/Sentence.gf +++ b/lib/resource/exper/abstract/Sentence.gf @@ -66,11 +66,6 @@ abstract Sentence = Cat ** { AdvS : Adv -> S -> S ; -- today, I will go home ---- Obsolete - - SlashV2 : NP -> V2 -> Slash ; -- (whom) he sees - SlashVVV2 : NP -> VV -> V2 -> Slash; -- (whom) he wants to see - } --. diff --git a/lib/resource/exper/abstract/Structural.gf b/lib/resource/exper/abstract/Structural.gf index 511416346..41a3e66a5 100644 --- a/lib/resource/exper/abstract/Structural.gf +++ b/lib/resource/exper/abstract/Structural.gf @@ -75,16 +75,12 @@ abstract Structural = Cat ** { something_NP : NP ; somewhere_Adv : Adv ; that_Quant : Quant ; - that_NP : NP ; there_Adv : Adv ; there7to_Adv : Adv ; there7from_Adv : Adv ; therefore_PConj : PConj ; - these_NP : NP ; they_Pron : Pron ; this_Quant : Quant ; - this_NP : NP ; - those_NP : NP ; through_Prep : Prep ; to_Prep : Prep ; too_AdA : AdA ; diff --git a/lib/resource/exper/abstract/Verb.gf b/lib/resource/exper/abstract/Verb.gf index 6ba7ae089..99c410567 100644 --- a/lib/resource/exper/abstract/Verb.gf +++ b/lib/resource/exper/abstract/Verb.gf @@ -77,13 +77,4 @@ abstract Verb = Cat ** { UseVQ : VQ -> V2 ; -- ask (a question) UseVS : VS -> V2 ; -- know (a secret) ---- Obsolete - - ComplV2 : V2 -> NP -> VP ; -- use it - ComplV3 : V3 -> NP -> NP -> VP ; -- send a message to her - ComplV2V : V2V -> NP -> VP -> VP ; -- cause it to burn - ComplV2S : V2S -> NP -> S -> VP ; -- tell me that it rains - ComplV2Q : V2Q -> NP -> QS -> VP ; -- ask me who came - ComplV2A : V2A -> NP -> AP -> VP ; -- paint it red - } diff --git a/lib/resource/exper/english/BackwardEng.gf b/lib/resource/exper/english/BackwardEng.gf new file mode 100644 index 000000000..2e39582e6 --- /dev/null +++ b/lib/resource/exper/english/BackwardEng.gf @@ -0,0 +1,49 @@ +concrete BackwardEng of Backward = CatEng ** open ResEng in { + + flags optimize=all_subs ; + + lin + +-- A repository of obsolete constructs, needed for backward compatibility. +-- They create spurious ambiguities if used in combination with Lang. + +-- from Verb 19/4/2008 + + ComplV2 v np = insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v) ; + ComplV3 v np np2 = + insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ; + ComplV2V v np vp = + insertObj (\\a => infVP v.isAux vp a) + (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; + ComplV2S v np s = + insertObj (\\_ => conjThat ++ s.s) + (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; + ComplV2Q v np q = + insertObj (\\_ => q.s ! QIndir) + (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; + ComplV2A v np ap = + insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ; + +-- from Sentence 19/4/2008 + + SlashV2 np v2 = + mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ; + + SlashVVV2 np vv v2 = + mkClause (np.s ! Nom) np.a + (insertObj (\\a => infVP vv.isAux (predV v2) a) (predVV vv)) ** + {c2 = v2.c2} ; + +-- from Noun 19/4/2008 + + NumInt n = {s = n.s ; n = Pl} ; + OrdInt n = {s = n.s ++ "th"} ; --- DEPRECATED + +-- from Structural 19/4/2008 + + that_NP = regNP "that" Sg ; + these_NP = regNP "these" Pl ; + this_NP = regNP "this" Sg ; + those_NP = regNP "those" Pl ; + +} diff --git a/lib/resource/exper/english/CatEng.gf b/lib/resource/exper/english/CatEng.gf index afceff993..f72109448 100644 --- a/lib/resource/exper/english/CatEng.gf +++ b/lib/resource/exper/english/CatEng.gf @@ -49,7 +49,7 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in { Det = {s : Str ; n : Number} ; Predet, Ord = {s : Str} ; Num = {s : Str; n : Number } ; - Quant = {s : Number => Str} ; + Quant, Art = {s : Number => Str} ; -- Numeral diff --git a/lib/resource/exper/english/NounEng.gf b/lib/resource/exper/english/NounEng.gf index c282c16b0..d77c36cbf 100644 --- a/lib/resource/exper/english/NounEng.gf +++ b/lib/resource/exper/english/NounEng.gf @@ -7,6 +7,7 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { s = \\c => det.s ++ cn.s ! det.n ! c ; a = agrP3 det.n } ; + UsePN pn = pn ** {a = agrP3 Sg} ; UsePron p = p ; @@ -35,8 +36,17 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { n = num.n } ; ---- SgQuant quant = {s = quant.s ! Sg} ; DEPRECATED ---- PlQuant quant = {s = quant.s ! Pl} ; + DetSgNP quant ord = { + s = \\c => quant.s ! Sg ++ ord.s ; ---- case + a = agrP3 Sg + } ; + + DetPlNP quant num ord = { + s = \\c => quant.s ! num.n ++ num.s ++ ord.s ; ---- case + a = agrP3 num.n + } ; + + ArtQuant q = q ; PossPron p = {s = \\_ => p.s ! Gen} ; @@ -45,7 +55,6 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { NumDigits n = {s = n.s ! NCard ; n = n.n} ; - NumInt n = {s = n.s ; n = Pl} ; --table (Predef.Ints 1 * Predef.Ints 9) { -- <0,1> => Sg ; -- _ => Pl -- DEPRECATED @@ -53,7 +62,6 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { -- ---- -- } ; - OrdInt n = {s = n.s ++ "th"} ; --- DEPRECATED OrdDigits n = {s = n.s ! NOrd} ; NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ; @@ -63,6 +71,21 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { OrdSuperl a = {s = a.s ! AAdj Superl} ; + NumNumeralNP num = { + s = \\c => num.s ! NCard ; ---- case + a = agrP3 num.n + } ; + + OrdNumeralNP ord = { + s = \\c => "the" ++ ord.s ! NOrd ; ---- case + a = agrP3 Sg + } ; + + OrdSuperlNP a = { + s = \\c => "the" ++ a.s ! AAdj Superl ; ---- case + a = agrP3 Sg + } ; + DefArt = {s = \\_ => artDef} ; IndefArt = { diff --git a/lib/resource/exper/english/SentenceEng.gf b/lib/resource/exper/english/SentenceEng.gf index 6089cd74b..971ec9b88 100644 --- a/lib/resource/exper/english/SentenceEng.gf +++ b/lib/resource/exper/english/SentenceEng.gf @@ -25,11 +25,6 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { SlashVP np vp = mkClause (np.s ! Nom) np.a vp ** {c2 = vp.c2} ; - SlashVVV2 np vv v2 = - mkClause (np.s ! Nom) np.a - (insertObj (\\a => infVP vv.isAux (predV v2) a) (predVV vv)) ** - {c2 = v2.c2} ; - AdvSlash slash adv = { s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ; c2 = slash.c2 @@ -66,16 +61,6 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in { oper ctr = contrNeg True ; -- contracted negations --- obsolete - lin - SlashV2 np v2 = - mkClause (np.s ! Nom) np.a (predV v2) ** {c2 = v2.c2} ; - - SlashVVV2 np vv v2 = - mkClause (np.s ! Nom) np.a - (insertObj (\\a => infVP vv.isAux (predV v2) a) (predVV vv)) ** - {c2 = v2.c2} ; - } {- diff --git a/lib/resource/exper/english/StructuralEng.gf b/lib/resource/exper/english/StructuralEng.gf index 0b19685c5..78e466ed0 100644 --- a/lib/resource/exper/english/StructuralEng.gf +++ b/lib/resource/exper/english/StructuralEng.gf @@ -87,16 +87,12 @@ concrete StructuralEng of Structural = CatEng ** something_NP = regNP "something" Sg ; somewhere_Adv = ss "somewhere" ; 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 ; they_Pron = mkNP "they" "them" "their" Pl P3 ; this_Quant = mkQuant "this" "these" ; - this_NP = regNP "this" Sg ; - those_NP = regNP "those" Pl ; through_Prep = ss "through" ; too_AdA = ss "too" ; to_Prep = ss "to" ; diff --git a/lib/resource/exper/english/VerbEng.gf b/lib/resource/exper/english/VerbEng.gf index 3ab2ec29f..6a65e6533 100644 --- a/lib/resource/exper/english/VerbEng.gf +++ b/lib/resource/exper/english/VerbEng.gf @@ -47,21 +47,4 @@ concrete VerbEng of Verb = CatEng ** open ResEng in { CompNP np = {s = \\_ => np.s ! Acc} ; CompAdv a = {s = \\_ => a.s} ; --- obsolete, just creating spurious ambiguity now - - ComplV2 v np = insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v) ; - ComplV3 v np np2 = - insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ; - ComplV2V v np vp = - insertObj (\\a => infVP v.isAux vp a) - (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; - ComplV2S v np s = - insertObj (\\_ => conjThat ++ s.s) - (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; - ComplV2Q v np q = - insertObj (\\_ => q.s ! QIndir) - (insertObj (\\_ => v.c2 ++ np.s ! Acc) (predV v)) ; - ComplV2A v np ap = - insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ; - }