forked from GitHub/gf-rgl
(Som) Add reflexives
This commit is contained in:
@@ -168,7 +168,9 @@ param
|
|||||||
|
|
||||||
param
|
param
|
||||||
Preposition = U | Ku | Ka | La | NoPrep ;
|
Preposition = U | Ku | Ka | La | NoPrep ;
|
||||||
PrepositionPlus = P Preposition | Passive ; -- Hack: RGL only supports V2s as passive, so I can reuse V2's preposition slot for passives as well, and save >200 parameters. (Don't ask.)
|
PrepositionPlus = P Preposition
|
||||||
|
| Passive ; -- Hack: RGL only supports V2s as passive, so I can reuse V2's preposition slot for passives as well, and save >200 parameters. (Don't ask.)
|
||||||
|
|
||||||
PrepCombination = Ugu | Uga | Ula | Kaga | Kula | Kala
|
PrepCombination = Ugu | Uga | Ula | Kaga | Kula | Kala
|
||||||
| Single PrepositionPlus ;
|
| Single PrepositionPlus ;
|
||||||
|
|
||||||
@@ -194,7 +196,7 @@ oper
|
|||||||
z => z } ;
|
z => z } ;
|
||||||
|
|
||||||
pp2prep : PrepositionPlus -> Preposition = \pp ->
|
pp2prep : PrepositionPlus -> Preposition = \pp ->
|
||||||
case pp of {P p => p ; Passive => NoPrep} ;
|
case pp of {P p => p ; _ => NoPrep} ;
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Verbs
|
-- Verbs
|
||||||
|
|
||||||
|
|||||||
@@ -639,6 +639,7 @@ oper
|
|||||||
obj2 : {s : Str ; a : AgreementPlus} ;
|
obj2 : {s : Str ; a : AgreementPlus} ;
|
||||||
secObj : Str ; -- if two overt pronoun objects
|
secObj : Str ; -- if two overt pronoun objects
|
||||||
vComp : Str ; -- VV complement
|
vComp : Str ; -- VV complement
|
||||||
|
refl : Str ; -- reflexive is put here, if the verb has an obj2.
|
||||||
miscAdv : Str ; -- dump for any other kind of adverb, that isn't
|
miscAdv : Str ; -- dump for any other kind of adverb, that isn't
|
||||||
} ; -- in a closed class of particles or made with PrepNP.
|
} ; -- in a closed class of particles or made with PrepNP.
|
||||||
|
|
||||||
@@ -647,7 +648,7 @@ oper
|
|||||||
useV : Verb -> VerbPhrase = \v -> v ** {
|
useV : Verb -> VerbPhrase = \v -> v ** {
|
||||||
comp = \\_ => <[],[]> ;
|
comp = \\_ => <[],[]> ;
|
||||||
pred = NoPred ;
|
pred = NoPred ;
|
||||||
vComp,berri,miscAdv = [] ;
|
vComp,berri,miscAdv,refl = [] ;
|
||||||
c2 = P NoPrep ;
|
c2 = P NoPrep ;
|
||||||
c3 = NoPrep ;
|
c3 = NoPrep ;
|
||||||
obj2 = {s = [] ; a = Unassigned} ;
|
obj2 = {s = [] ; a = Unassigned} ;
|
||||||
@@ -667,13 +668,19 @@ oper
|
|||||||
comp = \\agr => let cmp = vps.comp ! agr in
|
comp = \\agr => let cmp = vps.comp ! agr in
|
||||||
{p1 = np.s ++ cmp.p1 ; -- if object is a noun, it will come before verb in the sentence.
|
{p1 = np.s ++ cmp.p1 ; -- if object is a noun, it will come before verb in the sentence.
|
||||||
-- if object is a pronoun, np.s is empty.
|
-- if object is a pronoun, np.s is empty.
|
||||||
p2 = cmp.p2 ++ compl np.a vps} -- object combines with the preposition of the verb.
|
p2 = cmp.p2 ++ vps.refl ++ compl np.a vps} -- object combines with the preposition of the verb.
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
compl : AgreementPlus -> VerbPhrase -> Str = \a,vp ->
|
compl : AgreementPlus -> VerbPhrase -> Str = \a,vp ->
|
||||||
let agr = case a of {IsPron x => x ; _ => Pl3} ;
|
let agr = case a of {IsPron x => x ; _ => Pl3} ;
|
||||||
in prepCombTable ! agr ! combine vp.c2 vp.c3 ;
|
in prepCombTable ! agr ! combine vp.c2 vp.c3 ;
|
||||||
|
|
||||||
|
insertRefl : VPSlash -> VPSlash = \vps ->
|
||||||
|
case <vps.c2,vps.c3> of {
|
||||||
|
<P NoPrep,NoPrep> => vps ** {refl = "is"} ; -- not bound
|
||||||
|
_ => vps ** {refl = "is" ++ BIND}
|
||||||
|
} ;
|
||||||
|
|
||||||
insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np ->
|
insertComp : VPSlash -> NounPhrase -> VerbPhrase = \vp,np ->
|
||||||
let noun : Str = case <np.isPron,np.a> of {
|
let noun : Str = case <np.isPron,np.a> of {
|
||||||
<False,_> => np.s ! Abs ;
|
<False,_> => np.s ! Abs ;
|
||||||
@@ -760,7 +767,7 @@ oper
|
|||||||
} where {
|
} where {
|
||||||
vp = case vps.c2 of {
|
vp = case vps.c2 of {
|
||||||
Passive => complSlash (insertComp vps np) ;
|
Passive => complSlash (insertComp vps np) ;
|
||||||
_ => complSlash vps } ;
|
_ => complSlash vps } ;
|
||||||
subj = case vps.c2 of {Passive => impersNP ; _ => np} ;
|
subj = case vps.c2 of {Passive => impersNP ; _ => np} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ lin
|
|||||||
-- : V2 -> VP ; -- be loved
|
-- : V2 -> VP ; -- be loved
|
||||||
PassV2 = ResSom.passV2 ;
|
PassV2 = ResSom.passV2 ;
|
||||||
|
|
||||||
|
-- : VPSlash -> VP ;
|
||||||
|
ReflVP = ResSom.insertRefl ;
|
||||||
|
|
||||||
-- : VV -> VP -> VP ;
|
-- : VV -> VP -> VP ;
|
||||||
ComplVV vv vp = useV vv ** { -- check Sayeed p. 169
|
ComplVV vv vp = useV vv ** { -- check Sayeed p. 169
|
||||||
vComp = infVP vp
|
vComp = infVP vp
|
||||||
@@ -67,14 +70,8 @@ lin
|
|||||||
post = vps.post ;
|
post = vps.post ;
|
||||||
iobj = np ** { s = np.s ! Dat } } ;
|
iobj = np ** { s = np.s ! Dat } } ;
|
||||||
|
|
||||||
--2 Other ways of forming verb phrases
|
|
||||||
|
|
||||||
-- Verb phrases can also be constructed reflexively and from
|
|
||||||
-- copula-preceded complements.
|
|
||||||
|
|
||||||
-- : VPSlash -> VP ;
|
|
||||||
ReflVP vps = ;
|
|
||||||
-}
|
-}
|
||||||
|
|
||||||
-- : Comp -> VP ;
|
-- : Comp -> VP ;
|
||||||
UseComp comp = UseCopula ** comp ;
|
UseComp comp = UseCopula ** comp ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user