1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/arabic/IdiomAra.gf
T
Inari Listenmaa f32e49ca92 (Ara) Fix bug in ImpersCl
ImpersCl (VP -> Cl) used to check whether the VP is predicative, and
in the positive case, force the dummy subject to not be a pronoun.
This has been wrong since the time I changed prodrop rules in PredVP.

The error that followed manifested when the Cl was put in subordinate
position: the subject pronoun did not attach to the conjunction.
An example follows.

Lang: SubjS that_Subj (UseCl (TTAnt TPres ASimul) PPos (ImpersCl (UseComp (CompNP (DetCN (DetQuant IndefArt NumSg) (UseN girl_N))))))
LangEng: that it is a girl

Old LangAra: أنَّ ها بِنتٌ (wrong)
New LangAra: أنَّ &+ ها بِنتٌ (correct)
2019-01-04 13:39:58 +02:00

64 lines
1.9 KiB
Plaintext

concrete IdiomAra of Idiom = CatAra ** open
Prelude,
ResAra,
VerbAra,
ParadigmsAra
in {
lin
-- : VP -> Cl ; -- it is hot
-- "it is a girl" becomes "she is a girl";
-- "it is twins" becomes "they<dual> are<dual> twins".
ImpersCl vp = -- if no obj, default Per3 Masc Sg
let it : ResAra.NP = gn2pron vp.obj.a.gn ;
in predVP it vp ;
-- : VP -> Cl ; -- one sleeps
GenericCl = predVP (regNP "المَرْء" Sg Def) ;
-- : NP -> RS -> Cl ; -- it is I who did it
--CleftNP np rs =
-- : Adv -> S -> Cl ; -- it is here she slept
CleftAdv adv s =
let comp : Comp = CompAdv (lin Adv {s = adv.s ++ s.s ! Verbal}) ; -- no idea about word order /IL
pass_V = mkV "مضي" va vi ; -- switch to copula or some other verb if better /IL
in predVP emptyNP (UseV pass_V ** {isPred=True ; pred=comp}) ; -- very hacky /IL
-- : NP -> Cl ; -- there is a house
ExistNP np =
predVP (emptyNP ** {s=\\c=>"هُنَاكَ"}) (UseComp (CompNP np)) ; -- IL
-- ExistIP : IP -> QCl ; -- which houses are there
-- 7/12/2012 generalizations of these
-- : NP -> Adv -> Cl ; -- there is a house in Paris
ExistNPAdv np adv =
predVP (emptyNP ** {s=\\c=>"هُنَاكَ"}) (AdvVP (UseComp (CompNP np)) adv) ; -- IL
-- ExistIPAdv : IP -> Adv -> QCl ; -- which houses are there in Paris
-- ProgrVP : VP -> VP ; -- be sleeping
-- ImpPl1 : VP -> Utt ; -- let's go
-- ImpP3 : NP -> VP -> Utt ; -- let John walk
-- 3/12/2013 non-reflexive uses of "self"
-- : VP -> VP ; -- is at home himself; is himself at home
SelfAdvVP,
SelfAdVVP = \vp -> vp ** {
s = \\pgn,vf => vp.s ! pgn ! vf ++ reflPron Nom pgn
} ;
-- : NP -> NP ; -- the president himself (is at home)
SelfNP np = np ** {
s = \\c => np.s ! c ++ reflPron c (np.a.pgn)
} ;
}