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