Merge pull request #110 from inariksit/arabic

Arabic
This commit is contained in:
Inari Listenmaa
2018-12-26 14:40:35 +01:00
committed by GitHub
7 changed files with 16 additions and 13 deletions

View File

@@ -29,11 +29,10 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in {
-- isPre = False -- isPre = False
-- } ; -- } ;
-- --
-- SentAP ap sc = { SentAP ap sc = ap ** {
-- s = \\a => ap.s ! a ++ sc.s ; s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ sc.s ;
-- isPre = False } ;
-- } ;
--
AdAP ada ap = { AdAP ada ap = {
s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s
} ; } ;

View File

@@ -77,10 +77,11 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
-- Open lexical classes, e.g. Lexicon -- Open lexical classes, e.g. Lexicon
V, VS, VQ, VA = ResAra.Verb ; -- = {s : VForm => Str} ; V, VQ, VA = ResAra.Verb ; -- = {s : VForm => Str} ;
V2, V2A = ResAra.Verb2 ; V2, V2A = ResAra.Verb2 ;
VV = ResAra.Verb2 ** {sc : Preposition} ; -- c2 is for verb VV = ResAra.Verb2 ** {sc : Preposition} ; -- c2 is for verb
V2S, V2Q = ResAra.Verb2 ; V2S, V2Q = ResAra.Verb2 ;
VS = ResAra.Verb ** {o : Order} ;
V3 = ResAra.Verb3 ; V3 = ResAra.Verb3 ;
V2V = ResAra.Verb3 ** {sc : Preposition} ; -- c3 is for verb, c2 is for dir.obj V2V = ResAra.Verb3 ** {sc : Preposition} ; -- c3 is for verb, c2 is for dir.obj

View File

@@ -22,7 +22,6 @@ oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ;
oper ProgrVP : VP -> VP = notYet "ProgrVP" ; oper ProgrVP : VP -> VP = notYet "ProgrVP" ;
oper ReflA2 : A2 -> AP = notYet "ReflA2" ; oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ; oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
oper SentAP : AP -> SC -> AP = notYet "SentAP" ;
oper SentCN : CN -> SC -> CN = notYet "SentCN" ; oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ; oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ; oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;

View File

@@ -6,8 +6,11 @@ flags optimize = all ;--noexpand;
oper oper
mkDet : Str -> Number -> State -> Det mkDet : Str -> Number -> State -> Det
= \word,num,state -> baseQuant ** = mkDetDecl True ;
{ s = \\_,_,c => word + caseTbl ! c ;
mkDetDecl : Bool -> Str -> Number -> State -> Det
= \decl,word,num,state -> baseQuant **
{ s = \\_,_,c => word + if_then_Str decl (caseTbl ! c) [] ;
n = numberToSize num; n = numberToSize num;
d = state; --only Const is used now. check StructuralAra d = state; --only Const is used now. check StructuralAra
} ; } ;

View File

@@ -362,7 +362,7 @@ resource ParadigmsAra = open
mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural
= brkN ; = brkN ;
mkN : N -> (attr : Str) -> N -- Compound nouns with noninflecting attribute mkN : N -> (attr : Str) -> N -- Compound nouns with noninflecting attribute
= \n,attr -> n ** {s2 = \\n,s,c => attr} ; = \n,attr -> n ** {s2 = \\num,s,c => n.s2 ! num ! s ! c ++ attr} ;
mkN : N -> N -> N -- Compound nouns where attribute inflects in state and case but not number mkN : N -> N -> N -- Compound nouns where attribute inflects in state and case but not number
= attrN Sg ; = attrN Sg ;
mkN : Number -> N -> N -> N -- Compound nouns where attribute inflects in state, case and number mkN : Number -> N -> N -> N -- Compound nouns where attribute inflects in state, case and number
@@ -723,8 +723,8 @@ resource ParadigmsAra = open
dirdirV3 v = dirV3 v (casePrep acc) ; dirdirV3 v = dirV3 v (casePrep acc) ;
mkVS v = v ** {lock_VS = <>} ; mkVS v = lin VS (v ** {o = Subord}) ;
mkVQ v = v ** {lock_VQ = <>} ; mkVQ v = lin VQ v ;
regVV : V -> VV = \v -> lin VV v ** {c2 = mkPreposition "أَنْ" ; sc = noPrep} ; regVV : V -> VV = \v -> lin VV v ** {c2 = mkPreposition "أَنْ" ; sc = noPrep} ;
c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = mkPreposition prep ; sc = noPrep} ; c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = mkPreposition prep ; sc = noPrep} ;

View File

@@ -1759,6 +1759,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
s = \\_pgn,vf => v.s ! np.a.pgn ! vf -- so we can throw away subject's pgn s = \\_pgn,vf => v.s ! np.a.pgn ! vf -- so we can throw away subject's pgn
} ; } ;
-- TODO: what to do with vp.c2 if there is no object /IL
complClSlash = overload { complClSlash = overload {
complClSlash : NP -> ClSlash -> Cl = \obj,cls -> complClSlash : NP -> ClSlash -> Cl = \obj,cls ->
predVP (subj2np cls.subj) (insertObj obj cls) ; predVP (subj2np cls.subj) (insertObj obj cls) ;

View File

@@ -51,7 +51,7 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in {
-- : VS -> S -> VP ; -- say that she runs -- : VS -> S -> VP ; -- say that she runs
ComplVS vs s = predV vs ** { -- IL ComplVS vs s = predV vs ** { -- IL
obj = emptyObj ** {s = s.s ! Subord} obj = emptyObj ** {s = s.s ! vs.o}
} ; } ;
-- : VQ -> QS -> VP ; -- wonder who runs -- : VQ -> QS -> VP ; -- wonder who runs