restored V2V, V2S, V2Q as categories in RG

This commit is contained in:
aarne
2008-04-16 13:41:59 +00:00
parent 04da53c7e8
commit 49c7d3221b
12 changed files with 64 additions and 45 deletions

View File

@@ -108,8 +108,11 @@ abstract Cat = Common ** {
V3 ; -- three-place verb e.g. "show"
VV ; -- verb-phrase-complement verb e.g. "want"
VS ; -- sentence-complement verb e.g. "claim"
VQ ; -- question-complement verb e.g. "ask"
VQ ; -- question-complement verb e.g. "wonder"
VA ; -- adjective-complement verb e.g. "look"
V2V ; -- verb with NP and V complement e.g. "cause"
V2S ; -- verb with NP and S complement e.g. "tell"
V2Q ; -- verb with NP and Q complement e.g. "ask"
V2A ; -- verb with NP and AP complement e.g. "paint"
A ; -- one-place adjective e.g. "warm"

View File

@@ -4,12 +4,12 @@ fun
airplane_N : N ;
already_Adv : Adv ;
animal_N : N ;
answer_V2S : V2 ;
answer_V2S : V2S ;
apartment_N : N ;
apple_N : N ;
art_N : N ;
ashes_N : N ;
ask_V2Q : V2 ;
ask_V2Q : V2Q ;
baby_N : N ;
back_N : N ;
bad_A : A ;
@@ -18,7 +18,7 @@ fun
beautiful_A : A ;
become_VA : VA ;
beer_N : N ;
beg_V2V : V2 ;
beg_V2V : V2V ;
belly_N : N ;
big_A : A ;
bike_N : N ;

View File

@@ -14,10 +14,14 @@ abstract Verb = Cat ** {
ComplVV : VV -> VP -> VP ; -- want to run
ComplVS : VS -> S -> VP ; -- know that she runs
ComplVQ : VQ -> QS -> VP ; -- ask if she runs
ComplVQ : VQ -> QS -> VP ; -- wonder if she runs
ComplVA : VA -> AP -> VP ; -- look red
ComplV2A : V2A -> NP -> AP -> VP ; -- paint the house red
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
--2 Other ways of forming verb phrases

View File

@@ -271,12 +271,11 @@ oper
mkAV : A -> AV ;
mkA2V : A -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, 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$.
-- Notice: categories $AS, A2S, AV, A2V$ are just $A$,
-- and the second argument is given as an adverb..
-- $V0$ is just $V$.
V0, V2S, V2V, V2Q : Type ;
V0 : Type ;
AS, A2S, AV, A2V : Type ;
--.
@@ -431,7 +430,7 @@ oper
mkVS v = v ** {lock_VS = <>} ;
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
mkVV v = v ** {c2 = "å" ; lock_VV = <>} ;
mkV2V v p t = mk2V2 v p ** {s3 = t ; lock_V2V = <>} ;
mkV2V v p t = mk2V2 v p ** {c3 = "att" ; lock_V2V = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
mkVQ v = v ** {lock_VQ = <>} ;
@@ -443,7 +442,6 @@ oper
mkA2V v p = mkA2 v p ** {lock_A = <>} ;
V0 : Type = V ;
V2S, V2V, V2Q : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;

View File

@@ -65,9 +65,10 @@ concrete CatEng of Cat = CommonX ** open ResEng, Prelude in {
-- Open lexical classes, e.g. Lexicon
V, VS, VQ, VA = Verb ; -- = {s : VForm => Str} ;
V2, V2A = Verb ** {c2 : Str} ;
V2, V2A, V2Q, V2S = Verb ** {c2 : Str} ;
V3 = Verb ** {c2, c3 : Str} ;
VV = {s : VVForm => Str ; isAux : Bool} ;
V2V = Verb ** {c2 : Str ; isAux : Bool} ;
A = {s : AForm => Str} ;
A2 = {s : AForm => Str ; c2 : Str} ;

View File

@@ -268,12 +268,10 @@ oper
mkAV : A -> AV ;
mkA2V : A -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, 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$.
-- Notice: Categories $V0, AS, A2S, AV, A2V$ are just $A$.
-- $V0$ is just $V$; the second argument is treated as adverb.
V0, V2S, V2V, V2Q : Type ;
V0 : Type ;
AS, A2S, AV, A2V : Type ;
--.
@@ -457,16 +455,16 @@ oper
mkVQ v = v ** {lock_VQ = <>} ;
V0 : Type = V ;
V2S, V2V, V2Q : Type = V2 ;
-- V2S, V2V, V2Q : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;
mkV0 v = v ** {lock_V = <>} ;
mkV2S v p = prepV2 v p ** {lock_V2 = <>} ;
mkV2V v p t = prepV2 v p ** {s4 = t ; lock_V2 = <>} ;
mkV2S v p = prepV2 v p ** {lock_V2S = <>} ;
mkV2V v p t = prepV2 v p ** {isAux = False ; lock_V2V = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = prepV2 v p ** {lock_V2A = <>} ;
mkV2Q v p = prepV2 v p ** {lock_V2 = <>} ;
mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ;
mkAS v = v ** {lock_A = <>} ;
mkA2S v p = mkA2 v p ** {lock_A = <>} ;

View File

@@ -9,11 +9,19 @@ concrete VerbEng of Verb = CatEng ** open ResEng in {
insertObj (\\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc) (predV v) ;
ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV 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) ;
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) ;

View File

@@ -259,12 +259,10 @@ oper
mkAV : A -> AV ;
mkA2V : A -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, 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$.
-- Notice: categories $AS, A2S, AV, A2V$ are just $A$.
-- $V0$ is just $V$.
V0, V2S, V2V, V2Q : Type ;
V0 : Type ;
AS, A2S, AV, A2V : Type ;
@@ -417,7 +415,7 @@ oper
mkVS v = v ** {lock_VS = <>} ;
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
mkVV v = v ** {c2 = "å" ; lock_VV = <>} ;
mkV2V v p t = mk2V2 v p ** {s3 = t ; lock_V2V = <>} ;
mkV2V v p t = mk2V2 v p ** {c3 = "att" ; lock_V2V = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
mkVQ v = v ** {lock_VQ = <>} ;
@@ -429,7 +427,6 @@ oper
mkA2V v p = mkA2 v p ** {lock_A = <>} ;
V0 : Type = V ;
V2S, V2V, V2Q : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;

View File

@@ -82,8 +82,8 @@ incomplete concrete CatScand of Cat =
-- Open lexical classes, e.g. Lexicon
V, VS, VQ, VA = Verb ;
V2, VV, V2A = Verb ** {c2 : Str} ;
V3 = Verb ** {c2,c3 : Str} ;
V2, VV, V2Q, V2S, V2A = Verb ** {c2 : Str} ;
V3,V2V = Verb ** {c2,c3 : Str} ;
A = Adjective ** {isComp : Bool} ;
-- {s : AForm => Str} ;

View File

@@ -13,12 +13,24 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i
ComplVV v vp = insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ;
ComplVS v s = insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ;
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
ComplVA v ap =
insertObj (\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ;
ComplV2V v np vp =
insertObj
(\\a => v.c3 ++ infVP vp a)
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
ComplV2S v np s =
insertObj
(\\_ => conjThat ++ s.s ! Sub)
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
ComplV2Q v np q =
insertObj
(\\_ => q.s ! QIndir)
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
ComplV2A v np ap =
insertAdv
(ap.s ! agrAdj np.a.gn DIndef)
insertObj
(\\_ => ap.s ! agrAdj np.a.gn DIndef)
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
UseComp comp = insertObj (\\a => comp.s ! agrAdj a.gn DIndef) (predV verbBe) ;

View File

@@ -19,7 +19,7 @@ lin
beautiful_A = mk3A "vacker" "vackert" "vackra" ;
become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ;
beer_N = regGenN "öl" neutrum ;
beg_V2V = mkV2V (mkV "be" "ber""be" "blad" "bett" "bedd") noPrep (mkPrep "att") ;
beg_V2V = mkV2V (mkV "be" "ber""be" "bad" "bett" "bedd") noPrep (mkPrep "att") ;
big_A = irregA "stor" "större" "störst";
bike_N = mk2N "cykel" "cyklar" ;
bird_N = mk2N "fågel" "fåglar" ;

View File

@@ -283,12 +283,10 @@ oper
mkAV : A -> AV ;
mkA2V : A -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, 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$.
-- Notice: categories $AS, A2S, AV, A2V$ are just $A$.
-- $V0$ is just $V$.
V0, V2S, V2V, V2Q : Type ;
V0 : Type ;
AS, A2S, AV, A2V : Type ;
--.
@@ -596,13 +594,13 @@ oper
mkV2A v p = mmkV2 v p ** {lock_V2A = <>} ;
V0 : Type = V ;
V2S, V2V, V2Q : Type = V2 ;
-- V2S, V2V, V2Q : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;
mkV2S v p = mmkV2 v p ** {lock_V2 = <>} ;
mkV2V v p t = mmkV2 v p ** {s3 = t ; lock_V2 = <>} ;
mkV2Q v p = mmkV2 v p ** {lock_V2 = <>} ;
mkV2S v p = mmkV2 v p ** {lock_V2S = <>} ;
mkV2V v p t = mmkV2 v p ** {c3 = "att" ; lock_V2V = <>} ;
mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ;
mkAS v = v ** {lock_A = <>} ;
mkA2S v p = mkA2 v p ** {lock_A = <>} ;