nounless determiner NPs added; started Backward module - both in exper so far

This commit is contained in:
aarne
2008-04-19 14:34:52 +00:00
parent 45d2af0eb9
commit c4ae27bb53
12 changed files with 131 additions and 72 deletions

View File

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

View File

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

View File

@@ -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].

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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 {
-- ---- <n.size,n.last>
-- } ;
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 = {

View File

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

View File

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

View File

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