verb subcat patterns

This commit is contained in:
aarne
2005-12-02 13:58:36 +00:00
parent ef504a4cbe
commit eb361d8941
12 changed files with 95 additions and 44 deletions

View File

@@ -11,7 +11,9 @@ abstract Adverb = Cat ** {
AdAdv : AdA -> Adv -> Adv ;
SubjS : Subj -> S -> Adv ;
AdvSC : SC -> Adv ;
AdnCAdv : CAdv -> AdN ;
}

View File

@@ -1,18 +1,18 @@
abstract Basic = Cat ** {
fun
airplane_N : N ;
-- answer_V2S : V2S ;
answer_V2S : V2 ;
apartment_N : N ;
apple_N : N ;
art_N : N ;
-- ask_V2Q : V2Q ;
ask_V2Q : V2 ;
baby_N : N ;
bad_A : A ;
bank_N : N ;
beautiful_A : A ;
-- become_VA : VA ;
become_VA : VA ;
beer_N : N ;
-- beg_V2V : V2V ;
beg_V2V : V2 ;
big_A : A ;
bike_N : N ;
bird_N : N ;
@@ -58,7 +58,7 @@ abstract Basic = Cat ** {
dog_N : N ;
door_N : N ;
drink_V2 : V2 ;
-- easy_A2V : A2V ;
easy_A2V : A2 ;
eat_V2 : V2 ;
enemy_N : N ;
empty_A : A ;
@@ -72,7 +72,7 @@ abstract Basic = Cat ** {
fridge_N : N ;
friend_N : N ;
fruit_N : N ;
-- fun_AV : AV ;
fun_AV : A ;
garden_N : N ;
girl_N : N ;
glove_N : N ;
@@ -121,7 +121,7 @@ abstract Basic = Cat ** {
oil_N : N ;
old_A : A ;
open_V2 : V2 ;
-- paint_V2A : V2A ;
paint_V2A : V2A ;
paper_N : N ;
peace_N : N ;
pen_N : N ;
@@ -130,10 +130,10 @@ abstract Basic = Cat ** {
play_V2 : V2 ;
policeman_N : N ;
priest_N : N ;
-- probable_AS : AS ;
probable_AS : A ;
queen_N : N ;
radio_N : N ;
-- rain_V0 : V0 ;
rain_V0 : V ;
read_V2 : V2 ;
red_A : A ;
religion_N : N ;

View File

@@ -22,12 +22,18 @@ abstract Cat = {
V ;
V2 ;
V3 ;
VV ;
VS ;
VQ ;
VA ;
V2A ;
AP ;
Comp ;
SC ;
A ;
A2 ;

View File

@@ -2,13 +2,14 @@ abstract Sentence = Cat ** {
fun
PredVP : NP -> VP -> Cl ;
PredVP : NP -> VP -> Cl ;
PredSCVP : SC -> VP -> Cl ;
ImpVP : VP -> Imp ;
ImpVP : VP -> Imp ;
SlashV2 : NP -> V2 -> Slash ;
SlashVVV2 : NP -> VV -> V2 -> Slash ;
AdvSlash : Slash -> Adv -> Slash ;
SlashPrep : Cl -> Prep -> Slash ;
}

View File

@@ -4,24 +4,33 @@ abstract Verb = Cat ** {
UseV : V -> VP ;
ComplV2 : V2 -> NP -> VP ;
ComplV3 : V3 -> NP -> NP -> VP ;
ComplVV : VV -> VP -> VP ;
ComplVS : VS -> S -> VP ;
ComplVQ : VQ -> QS -> VP ;
ReflV2 : V2 -> VP ;
PassV2 : V2 -> Comp ; --- overgen (V2 with prep)
ComplVA : VA -> AP -> VP ;
ComplV2A : V2A -> NP -> AP -> VP ;
ReflV2 : V2 -> VP ;
PassV2 : V2 -> Comp ; --- overgen (V2 with prep)
UseComp : Comp -> VP ;
AdvVP : VP -> Adv -> VP ; -- here
AdVVP : AdV -> VP -> VP ; -- always
UseVV : VV -> V2 ;
UseVQ : VQ -> V2 ;
UseVS : VS -> V2 ;
CompAP : AP -> Comp ;
CompNP : NP -> Comp ;
CompAdv : Adv -> Comp ;
UseVV : VV -> V2 ;
UseVQ : VQ -> V2 ;
UseVS : VS -> V2 ;
EmbedS : S -> SC ;
EmbedQS : QS -> SC ;
EmbedVP : VP -> SC ;
}

View File

@@ -14,6 +14,7 @@ concrete AdverbEng of Adverb = CatEng ** open ResEng, Prelude in {
AdAdv = cc2 ;
SubjS = cc2 ;
AdvSC s = s ;
AdnCAdv cadv = {s = cadv.s ++ "than"} ;

View File

@@ -8,18 +8,18 @@ flags
lin
airplane_N = regN "airplane" ;
-- answer_V2S = mkV2S (regV "answer") "to" ;
answer_V2S = mkV2S (regV "answer") "to" ;
apartment_N = regN "apartment" ;
apple_N = regN "apple" ;
art_N = regN "art" ;
-- ask_V2Q = mkV2Q (regV "ask") [] ;
ask_V2Q = mkV2Q (regV "ask") [] ;
baby_N = regN "baby" ;
bad_A = regADeg "bad" ;
bank_N = regN "bank" ;
beautiful_A = regADeg "beautiful" ;
-- become_VA = mkVA (irregV "become" "became" "become") ;
become_VA = mkVA (irregV "become" "became" "become") ;
beer_N = regN "beer" ;
-- beg_V2V = mkV2V (regDuplV "beg") [] "to" ;
beg_V2V = mkV2V (regDuplV "beg") [] "to" ;
big_A = regADeg "big" ;
bike_N = regN "bike" ;
bird_N = regN "bird" ;
@@ -65,7 +65,7 @@ lin
dog_N = regN "dog" ;
door_N = regN "door" ;
drink_V2 = dirV2 (irregV "drink" "drank" "drunk") ;
-- easy_A2V = mkA2V (regA "easy") "for" ;
easy_A2V = mkA2V (regA "easy") "for" ;
eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ;
empty_A = regADeg "empty" ;
enemy_N = regN "enemy" ;
@@ -79,7 +79,7 @@ lin
fridge_N = regN "fridge" ;
friend_N = regN "friend" ;
fruit_N = regN "fruit" ;
-- fun_AV = mkAV (regA "fun") ;
fun_AV = mkAV (regA "fun") ;
garden_N = regN "garden" ;
girl_N = regN "girl" ;
glove_N = regN "glove" ;
@@ -128,7 +128,7 @@ lin
oil_N = regN "oil" ;
old_A = regADeg "old" ;
open_V2 = dirV2 (regV "open") ;
-- paint_V2A = mkV2A (regV "paint") [] ;
paint_V2A = mkV2A (regV "paint") [] ;
paper_N = regN "paper" ;
peace_N = regN "peace" ;
pen_N = regN "pen" ;
@@ -137,10 +137,10 @@ lin
play_V2 = dirV2 (regV "play") ;
policeman_N = regN "policeman" ;
priest_N = regN "priest" ;
-- probable_AS = mkAS (regA "probable") ;
probable_AS = mkAS (regA "probable") ;
queen_N = regN "queen" ;
radio_N = regN "radio" ;
-- rain_V0 = mkV0 (regV "rain") ;
rain_V0 = mkV0 (regV "rain") ;
read_V2 = dirV2 (irregV "read" "read" "read") ;
red_A = regADeg "red" ;
religion_N = regN "religion" ;

View File

@@ -20,13 +20,15 @@ concrete CatEng of Cat = open ResEng, Prelude, (R = ParamX) in {
s2 : Agr => Str
} ;
V, VS, VQ = Verb ; -- = {s : VForm => Str} ;
V2, VV = Verb ** {c2 : Str} ;
V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
V2, VV, V2A = Verb ** {c2 : Str} ;
V3 = Verb ** {c2, c3 : Str} ;
AP = {s : Agr => Str ; isPre : Bool} ;
Comp = {s : Agr => Str} ;
SC = {s : Str} ;
A = {s : AForm => Str} ;
A2 = {s : AForm => Str ; c2 : Str} ;

View File

@@ -258,8 +258,6 @@ oper
-- Verbs and adjectives can take complements such as sentences,
-- questions, verb phrases, and adjectives.
V0, V2S, V2V, VA, V2A, V2Q : Type ; ----
mkV0 : V -> V0 ;
mkVS : V -> VS ;
mkV2S : V -> Str -> V2S ;
@@ -270,13 +268,19 @@ oper
mkVQ : V -> VQ ;
mkV2Q : V -> Str -> V2Q ;
AS, A2S, AV, A2V : Type ; ----
mkAS : A -> AS ;
mkA2S : A -> Str -> A2S ;
mkAV : A -> AV ;
mkA2V : A -> Str -> A2V ;
-- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated
-- just as synonyms of $V2$, and the second argument is given
-- as an adverb. Likewise $AS, A2S, AV, A2V$ are just $A$.
-- $V0$ is just $V$.
V0, V2S, V2V, V2A, V2Q : Type ;
AS, A2S, AV, A2V : Type ;
--2 Definitions of paradigms
--
@@ -431,18 +435,21 @@ oper
mkVV v = v ** {c2 = "to" ; lock_VV = <>} ;
mkVQ v = v ** {lock_VQ = <>} ;
{-
mkV0 v = v ** {lock_V0 = <>} ;
mkV2S v p = mkV2 v p ** {lock_V2S = <>} ;
mkV2V v p t = mkV2 v p ** {s4 = t ; lock_V2V = <>} ;
V0 : Type = V ;
V2S, V2V, V2Q, V2A : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;
mkV0 v = v ** {lock_V = <>} ;
mkV2S v p = mkV2 v p ** {lock_V2 = <>} ;
mkV2V v p t = mkV2 v p ** {s4 = t ; lock_V2 = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = mkV2 v p ** {lock_V2A = <>} ;
mkV2Q v p = mkV2 v p ** {lock_V2Q = <>} ;
mkV2Q v p = mkV2 v p ** {lock_V2 = <>} ;
mkAS v = v ** {lock_AS = <>} ;
mkA2S v p = mkA2 v p ** {lock_A2S = <>} ;
mkAV v = v ** {lock_AV = <>} ;
mkA2V v p = mkA2 v p ** {lock_A2V = <>} ;
-}
mkAS v = v ** {lock_A = <>} ;
mkA2S v p = mkA2 v p ** {lock_A = <>} ;
mkAV v = v ** {lock_A = <>} ;
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
} ;

View File

@@ -17,6 +17,20 @@ concrete SentenceEng of Sentence = CatEng ** open ResEng in {
}
} ;
PredSCVP sc vp = {
s = \\t,a,b,o =>
let
agr = (agrP3 Sg).a ;
verb = vp.s ! t ! a ! b ! o ! agr ;
subj = sc.s ;
compl = vp.s2 ! agr
in
case o of {
ODir => subj ++ verb.fin ++ verb.inf ++ compl ;
OQuest => verb.fin ++ subj ++ verb.inf ++ compl
}
} ;
ImpVP vp = {
s = \\pol,n =>
let

View File

@@ -1,4 +1,4 @@
--# -path=.:prelude
--# -path=.:../abstract:../common:prelude
concrete TestEng of Test =
NounEng,

View File

@@ -7,10 +7,15 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
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) ;
ComplVV v vp = insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ;
ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
ComplVA v ap = insertObj (ap.s) (predV v) ;
ComplV2A v np ap =
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ ap.s ! np.a) (predV v) ;
UseComp comp = insertObj comp.s (predAux auxBe) ;
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
@@ -26,4 +31,8 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
CompNP np = {s = \\_ => np.s ! Acc} ;
CompAdv a = {s = \\_ => a.s} ;
EmbedS s = {s = conjThat ++ s.s} ;
EmbedQS qs = {s = qs.s ! QIndir} ;
EmbedVP vp = {s = infVP vp (agrP3 Sg).a} ; --- agr
}