mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-11 22:09:32 -06:00
nounless determiner NPs added; started Backward module - both in exper so far
This commit is contained in:
33
lib/resource/exper/abstract/Backward.gf
Normal file
33
lib/resource/exper/abstract/Backward.gf
Normal 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 ;
|
||||
|
||||
}
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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].
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
--.
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
}
|
||||
|
||||
49
lib/resource/exper/english/BackwardEng.gf
Normal file
49
lib/resource/exper/english/BackwardEng.gf
Normal 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 ;
|
||||
|
||||
}
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
}
|
||||
|
||||
{-
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user