mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
restored V2V, V2S, V2Q as categories in RG
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
@@ -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 = <>} ;
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
@@ -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) ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
@@ -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 = <>} ;
|
||||
|
||||
Reference in New Issue
Block a user