forked from GitHub/gf-rgl
(Ara) VV and related functions
This commit is contained in:
@@ -84,7 +84,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
|
|||||||
V2, V2A = ResAra.Verb ** {c2 : Str} ;
|
V2, V2A = ResAra.Verb ** {c2 : Str} ;
|
||||||
V2V, V2S, V2Q = ResAra.Verb ** {c2 : Str} ; --- AR
|
V2V, V2S, V2Q = ResAra.Verb ** {c2 : Str} ; --- AR
|
||||||
V3 = ResAra.Verb ** {c2, c3 : Str} ;
|
V3 = ResAra.Verb ** {c2, c3 : Str} ;
|
||||||
VV = ResAra.Verb ** {isAux : Bool} ; --- IL
|
VV = ResAra.Verb ** {c2 : Str ; isAux : Bool} ; --- IL
|
||||||
-- VV = {s : VVForm => Str ; isAux : Bool} ;
|
-- VV = {s : VVForm => Str ; isAux : Bool} ;
|
||||||
|
|
||||||
A = ResAra.Adj ;
|
A = ResAra.Adj ;
|
||||||
|
|||||||
@@ -219,7 +219,10 @@ resource ParadigmsAra = open
|
|||||||
mkV0 : V -> V0 ;
|
mkV0 : V -> V0 ;
|
||||||
mkVS : V -> VS ;
|
mkVS : V -> VS ;
|
||||||
mkV2S : V -> Str -> V2S ;
|
mkV2S : V -> Str -> V2S ;
|
||||||
mkVV : V -> VV ;
|
mkVV = overload {
|
||||||
|
mkVV : V -> VV = regVV ;
|
||||||
|
mkVV : V -> Str -> VV = c2VV
|
||||||
|
} ;
|
||||||
mkV2V : V -> Str -> Str -> V2V ;
|
mkV2V : V -> Str -> Str -> V2V ;
|
||||||
mkVA : V -> VA ;
|
mkVA : V -> VA ;
|
||||||
mkV2A : V -> Str -> V2A ;
|
mkV2A : V -> Str -> V2A ;
|
||||||
@@ -514,7 +517,8 @@ resource ParadigmsAra = open
|
|||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|
||||||
mkVV v = lin VV v ** {isAux = False} ;
|
regVV : V -> VV = \v -> lin VV v ** {isAux = False; c2 = []} ;
|
||||||
|
c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = prep} ;
|
||||||
|
|
||||||
V0 : Type = V ;
|
V0 : Type = V ;
|
||||||
---- V2S, V2V, V2Q, V2A : Type = V2 ;
|
---- V2S, V2V, V2Q, V2A : Type = V2 ;
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ concrete PhraseAra of Phrase = CatAra ** open
|
|||||||
|
|
||||||
UttCN cn = {s = \\_ => cn.s ! Sg ! Def ! Nom} ; --IL
|
UttCN cn = {s = \\_ => cn.s ! Sg ! Def ! Nom} ; --IL
|
||||||
UttNP np = {s = \\_ => np.s ! Nom} ;
|
UttNP np = {s = \\_ => np.s ! Nom} ;
|
||||||
UttVP vp = {s = \\_ => linVP vp} ; --IL
|
UttVP vp = {s = \\g => (compVP vp).s ! {g=g ; n=Sg} ! Nom} ; --IL
|
||||||
UttS,
|
UttS,
|
||||||
UttAdv,
|
UttAdv,
|
||||||
UttIAdv = \s -> {s = \\_ => s.s} ; ---- OK? AR
|
UttIAdv = \s -> {s = \\_ => s.s} ; ---- OK? AR
|
||||||
|
|||||||
@@ -1054,11 +1054,16 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
s2 : Str
|
s2 : Str
|
||||||
};
|
};
|
||||||
|
|
||||||
linVP : VP -> Str = \vp -> --used for the first dummy implementation of ComplVV --IL
|
-- For complements of VV.
|
||||||
vp.s ! Per3 Masc Sg ! VPPerf ++ vp.s2 ++
|
-- TODO: does verbal complement agree with the noun
|
||||||
case vp.isPred of {
|
compVP : VP -> Comp = \vp -> ---- IL
|
||||||
True => vp.pred.s ! {g=Masc ; n=Sg} ! Acc ;
|
{ s = table {
|
||||||
False => vp.obj.s } ;
|
aagr@{g=g ; n=n} => \\c =>
|
||||||
|
vp.s ! Per3 g n ! VPImpf Ind ---- IL guesswork + https://arabic.desert-sky.net/g_modals.html
|
||||||
|
++ vp.s2
|
||||||
|
++ vp.pred.s ! aagr ! Acc
|
||||||
|
++ vp.obj.s }
|
||||||
|
} ;
|
||||||
|
|
||||||
predV : Verb -> VP = \v ->
|
predV : Verb -> VP = \v ->
|
||||||
{ s = \\pgn,vf =>
|
{ s = \\pgn,vf =>
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- more_CAdv = ss "مْري" ;
|
-- more_CAdv = ss "مْري" ;
|
||||||
most_Predet = mkPredet "أَكثَر" True ;
|
most_Predet = mkPredet "أَكثَر" True ;
|
||||||
much_Det = mkDet "الكَثِير مِنَ" Pl Const ;
|
much_Det = mkDet "الكَثِير مِنَ" Pl Const ;
|
||||||
-- must_VV = {
|
must_VV = mkVV (v1 "وجب" a i) "أن" ;
|
||||||
-- s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ;
|
-- s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ;
|
||||||
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
||||||
-- isAux = True
|
-- isAux = True
|
||||||
|
|||||||
@@ -17,9 +17,13 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
|
|||||||
a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME
|
a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME
|
||||||
(predV v) ;-}
|
(predV v) ;-}
|
||||||
|
|
||||||
-- First dummy implementation / IL 2018-09-06
|
ComplVV vv vp = --- IL
|
||||||
ComplVV v vp = insertStr (linVP vp) (predV v) ;
|
predV vv ** {
|
||||||
--
|
s2 = vv.c2 ; -- add the preposition of the VV. TODO: do we need a separate field in the VP?
|
||||||
|
pred = compVP vp ; -- add VP complement in pred. TODO: what agreement features are needed?
|
||||||
|
isPred = False } ; {- Despite verb complement being in pred, it's not predicative.
|
||||||
|
Changing this to True causes PredVP to not include the verb. -}
|
||||||
|
|
||||||
-- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
|
-- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
|
||||||
-- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
-- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||||
--
|
--
|
||||||
|
|||||||
Reference in New Issue
Block a user