forked from GitHub/gf-rgl
115 lines
2.1 KiB
Plaintext
115 lines
2.1 KiB
Plaintext
concrete VerbGla of Verb = CatGla ** open ResGla, AdverbGla, Prelude in {
|
|
|
|
|
|
lin
|
|
|
|
-----
|
|
-- VP
|
|
-- : V -> VP
|
|
-- NB. assumes that lincat V = lincat VP
|
|
-- This will most likely change when you start working with VPs
|
|
UseV v = v ;
|
|
|
|
{-
|
|
-- : V2 -> VP ;
|
|
PassV2 v2 =
|
|
|
|
-- : VPSlash -> VP ;
|
|
ReflVP vps =
|
|
|
|
-- : VV -> VP -> VP ;
|
|
ComplVV vv vp =
|
|
|
|
-- : VS -> S -> VP ;
|
|
ComplVS vs s =
|
|
|
|
-- : VQ -> QS -> VP ;
|
|
ComplVQ vq qs =
|
|
|
|
-- : VA -> AP -> VP ;
|
|
ComplVA va ap =
|
|
|
|
-- : Comp -> VP ;
|
|
UseComp comp =
|
|
-}
|
|
--------
|
|
-- Slash
|
|
{-
|
|
-- : V2 -> VPSlash
|
|
SlashV2a v2 =
|
|
|
|
-- : V3 -> NP -> VPSlash ; -- give it (to her)
|
|
Slash2V3 v3 dobj =
|
|
|
|
-- : V3 -> NP -> VPSlash ; -- give (it) to her
|
|
Slash3V3 v3 iobj =
|
|
|
|
SlashV2A v2 adj =
|
|
|
|
-- : V2S -> S -> VPSlash ; -- answer (to him) that it is good
|
|
SlashV2S v2s s =
|
|
|
|
-- : V2V -> VP -> VPSlash ; -- beg (her) to go
|
|
SlashV2V v2v vp = ;
|
|
|
|
-- : V2Q -> QS -> VPSlash ; -- ask (him) who came
|
|
SlashV2Q v2q qs = ;
|
|
|
|
-- : V2A -> AP -> VPSlash ; -- paint (it) red
|
|
SlashV2A v2a ap = ;
|
|
|
|
|
|
-- : VPSlash -> NP -> VP
|
|
-- Often VPSlash has a field called c2, which is used to pick right form of np complement
|
|
ComplSlash vps np = vps ** {
|
|
compl = np.s ! vps.c2
|
|
} ;
|
|
|
|
-- : VV -> VPSlash -> VPSlash ;
|
|
SlashVV vv vps = ComplVV vv vps ** {
|
|
} ;
|
|
|
|
-- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy
|
|
SlashV2VNP v2v np vps =
|
|
|
|
-- : VP -> Adv -> VP ; -- sleep here
|
|
AdvVP vp adv =
|
|
|
|
-- : AdV -> VP -> VP ; -- always sleep
|
|
AdVVP adv vp =
|
|
|
|
-- : VPSlash -> Adv -> VPSlash ; -- use (it) here
|
|
AdvVPSlash = insertAdv ;
|
|
|
|
-- : VP -> Adv -> VP ; -- sleep , even though ...
|
|
ExtAdvVP vp adv = ;
|
|
|
|
-- : AdV -> VPSlash -> VPSlash ; -- always use (it)
|
|
AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ;
|
|
|
|
-- : VP -> Prep -> VPSlash ; -- live in (it)
|
|
VPSlashPrep vp prep = vp ** {c2 = prep} ;
|
|
|
|
|
|
--2 Complements to copula
|
|
|
|
-- Adjectival phrases, noun phrases, and adverbs can be used.
|
|
|
|
-- : AP -> Comp ;
|
|
CompAP ap =
|
|
|
|
-- : CN -> Comp ;
|
|
CompCN cn =
|
|
|
|
-- NP -> Comp ;
|
|
CompNP np =
|
|
|
|
-- : Adv -> Comp ;
|
|
CompAdv adv =
|
|
|
|
-- : VP -- Copula alone;
|
|
UseCopula =
|
|
-}
|
|
|
|
}
|