Boulbaba's picture
Upload 210 files
21baa2f verified
'''
Created on ٠٢‏/٠٧‏/٢٠١٠
@Created by: Muhammad Altabba
'''
from ...Morphology.Cliticlization.CliticsGrammers import CliticsGrammers;
from ...Morphology.Cliticlization.ProcliticGrammer import ProcliticGrammer;
from ....Models.Lexicon.LettersConstants import DiacriticsConstants;
from ....Models.Tagging.POSTags.ParticlePOS import ParticlePOSConstants;
from ....Models.Tagging.POSTags.POS import POSConstants;
from ....Models.Tagging.POSTags.CliticlessPOS import CliticlessPOSConstants;
from ....Models.Tagging.POSTags.VerbalPOS import VerbalPOSConstants;
from ....Models.Tagging.POSTags.NominalPOS import NominalPOSConstants;
class ProcliticsGrammers(CliticsGrammers):
"""
# PyUML: Do not remove this line! # XMI_ID:_hUUgWo34Ed-gg8GOK1TmhA
"""
'''
classdocs
'''
GrammersDict = {};
def __init__(self):
'''
Constructor
'''
# ProcliticGrammer parameters:
# Particle SubClass
# nextMainClass = POSConstants.MainClass.all_Cases, \
# nextCaseAndMood = CliticlessPOSConstants.CaseAndMood.all_Cases, \
# nextNounSubClass = NominalPOSConstants.SubClass.all_Cases, \
# nextVerbAspect = VerbalPOSConstants.Aspect.all_Cases, \
# nextDefiniteness = NominalPOSConstants.Definiteness.all_Cases, \
# comesAsLast = False):
#العطف
conjunction = ProcliticGrammer(ParticlePOSConstants.SubClass.Conjunction);
#الاستئناف
resumption = ProcliticGrammer(ParticlePOSConstants.SubClass.Resumption);
#الاستفهام
interrogative = ProcliticGrammer(ParticlePOSConstants.SubClass.Interrogative, \
POSConstants.MainClass.all_Cases, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.Perfective + VerbalPOSConstants.Aspect.Imperfective\
);
#جر
preposition = ProcliticGrammer(ParticlePOSConstants.SubClass.Preposition, \
POSConstants.MainClass.Noun, \
CliticlessPOSConstants.CaseAndMood.GenitiveOrJussive, \
NominalPOSConstants.SubClass.all_Cases);
#قسم - القسم يدخل فقط على الاسم الظاهر - الاسم الظاهر هو كل اسم عدا الضمير
jurative = ProcliticGrammer(ParticlePOSConstants.SubClass.Jurative, \
POSConstants.MainClass.Noun, \
CliticlessPOSConstants.CaseAndMood.GenitiveOrJussive, \
NominalPOSConstants.SubClass.all_Cases - NominalPOSConstants.SubClass.Nominative_Pronoun - NominalPOSConstants.SubClass.Accusative_or_Genitive_Pronoun , \
VerbalPOSConstants.Aspect.all_Cases, \
NominalPOSConstants.Definiteness.all_Cases,
True);
#نصب الفعل المضارع
accusative = ProcliticGrammer(ParticlePOSConstants.SubClass.Accusative, \
POSConstants.MainClass.Verb, \
CliticlessPOSConstants.CaseAndMood.AccusativeOrSubjunctive, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.Imperfective);
#لام الأمر
imperative = ProcliticGrammer(ParticlePOSConstants.SubClass.Imperative, \
POSConstants.MainClass.Verb, \
CliticlessPOSConstants.CaseAndMood.GenitiveOrJussive, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.Imperfective);
#لام الإبتداء وتأتي للتوكيد
emphasisStarter = ProcliticGrammer(ParticlePOSConstants.SubClass.EmphasisStarter, \
POSConstants.MainClass.Noun + POSConstants.MainClass.Verb, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.Imperfective+VerbalPOSConstants.Aspect.Perfective);
#سين المستقبل القريب
forthcomingFuturity = ProcliticGrammer(ParticlePOSConstants.SubClass.ForthcomingFuturity, \
POSConstants.MainClass.Verb, \
CliticlessPOSConstants.CaseAndMood.NominativeOrIndicative, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.Imperfective);
#ال التعريف
definite = ProcliticGrammer(ParticlePOSConstants.SubClass.Appendix, \
POSConstants.MainClass.Noun, \
CliticlessPOSConstants.CaseAndMood.all_Cases, \
NominalPOSConstants.SubClass.all_Cases, \
VerbalPOSConstants.Aspect.all_Cases,\
NominalPOSConstants.Definiteness.Definite_by_Itself,\
True);
#حرف زائد - كالواو في بعض الأحيان
appendix = ProcliticGrammer(ParticlePOSConstants.SubClass.Appendix);
self.GrammersDict = {};
self.GrammersDict['ب'] = {};
self.GrammersDict['ب'][DiacriticsConstants.Kasra] = [preposition, jurative];
self.GrammersDict['ك'] = {};
self.GrammersDict['ك'][DiacriticsConstants.Fatha] = [preposition];
self.GrammersDict['ل'] = {};
self.GrammersDict['ل'][DiacriticsConstants.Kasra] = [preposition, imperative];
self.GrammersDict['ل'][DiacriticsConstants.Fatha] = [emphasisStarter, accusative];
self.GrammersDict['س'] = {};
self.GrammersDict['س'][DiacriticsConstants.Fatha] = [forthcomingFuturity];
self.GrammersDict['و'] = {};
self.GrammersDict['و'][DiacriticsConstants.Fatha] = [conjunction, preposition, jurative, appendix];
self.GrammersDict['ف'] = {};
self.GrammersDict['ف'][DiacriticsConstants.Fatha] = [conjunction, resumption];
self.GrammersDict['أ'] = {};
self.GrammersDict['أ'][DiacriticsConstants.Fatha] = [interrogative];
self.GrammersDict['ال'] = {};
self.GrammersDict['ال'][DiacriticsConstants.Fatha, DiacriticsConstants.Sukoon] = [definite];