| ''' |
| Created on ูขูจโ/ู ูคโ/ูขู ูกู |
| |
| @Created by: Muhammad Altabba |
| ''' |
| from ...Lexicon.RootAndPatterns.Root import *; |
| from ...Lexicon.RootAndPatterns.VoweledPattern import *; |
| from ...Tagging.POSTags.VerbalPOS import *; |
|
|
|
|
| class VoweledVerbalPattern(VoweledPattern): |
| """ |
| # PyUML: Do not remove this line! # XMI_ID:_qz4WZ435Ed-gg8GOK1TmhA |
| """ |
| ''' |
| classdocs |
| ''' |
| |
| |
| def __init__(self, id, voweledForm, canonicForm): |
| ''' |
| Constructor |
| ''' |
| self.ID = id; |
| self.VoweledForm = voweledForm; |
| self.CanonicForm = canonicForm; |
| |
| self.POS = VerbalPOS(); |
| self.POS.MainClass = VerbalPOSConstants.MainClass.Verb; |
| |
| |
| pass |
|
|
| def AssignFromAlKhalilDB(self, type, cas, ncg, aug, trans): |
| if type == "ู
ู
": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Perfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Active; |
| elif type == "ู
ุฌ": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Perfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Passive; |
| elif type == "ุถู
": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Active; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Unasserted; |
| elif type == "ุถุกู
": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Active; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Asserted; |
| elif type == "ุถุฌ": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Passive; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Unasserted; |
| elif type == "ุถุกุฌ": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperfective; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.Passive; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Asserted; |
| elif type == "ุฃ": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperative; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Unasserted; |
| elif type == "ุฃุก": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.Imperative; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.Asserted; |
| |
| elif type == "#": |
| |
| self.POS.Aspect = VerbalPOSConstants.Aspect.all_Cases; |
| self.POS.Activeness = VerbalPOSConstants.Activeness.all_Cases; |
| self.POS.Asserted = VerbalPOSConstants.Asserted.all_Cases; |
| else: |
| raise Exception('This [type] for Verbal Pattern is unknown!, ['+str(type)+']'); |
| |
| |
| if cas == "ุฑ": |
| |
| self.POS.CaseAndMood = VerbalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif cas == "ู": |
| |
| self.POS.CaseAndMood = VerbalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif cas == "ุฌ": |
| |
| self.POS.CaseAndMood = VerbalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif cas == "": |
| |
| if(self.POS.Aspect == VerbalPOSConstants.Aspect.Imperative or \ |
| self.POS.Aspect == VerbalPOSConstants.Aspect.Perfective): |
| self.POS.CaseAndMood = VerbalPOSConstants.CaseAndMood.Inapplicable; |
| else: |
| self.POS.CaseAndMood = VerbalPOSConstants.CaseAndMood.Unprocessed; |
| |
| |
| |
| else: |
| raise Exception('This [cas] for Verbal Pattern is unknown!, ['+cas+']'); |
|
|
|
|
| |
| if ncg.isnumeric() or (ncg[0] == '-' and ncg[1:].isnumeric()): |
| ncg = int(ncg); |
| if ncg == 1: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.all_Cases; |
| self.POS.Person = VerbalPOSConstants.Person.First_Person; |
| elif ncg == 2: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Plural; |
| self.POS.Gender = VerbalPOSConstants.Gender.all_Cases; |
| self.POS.Person = VerbalPOSConstants.Person.First_Person; |
| elif ncg == 3: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Second_Person; |
| elif ncg == 4: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.Feminine; |
| self.POS.Person = VerbalPOSConstants.Person.Second_Person; |
| elif ncg == 5: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Dual; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Second_Person; |
| elif ncg == 6: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Plural; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Second_Person; |
| elif ncg == 7: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Plural; |
| self.POS.Gender = VerbalPOSConstants.Gender.Feminine; |
| self.POS.Person = VerbalPOSConstants.Person.Second_Person; |
| elif ncg == 8: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == 9: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.Feminine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == 10: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Dual; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == 11: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Dual; |
| self.POS.Gender = VerbalPOSConstants.Gender.Feminine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == 12: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Plural; |
| self.POS.Gender = VerbalPOSConstants.Gender.Masculine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == 13: |
| |
| self.POS.Number = VerbalPOSConstants.Number.Singular; |
| self.POS.Gender = VerbalPOSConstants.Gender.Feminine; |
| self.POS.Person = VerbalPOSConstants.Person.Third_Person; |
| elif ncg == "#": |
| self.POS.Number = VerbalPOSConstants.Number.all_Cases; |
| self.POS.Gender = VerbalPOSConstants.Gender.all_Cases; |
| self.POS.Person = VerbalPOSConstants.CaseAndMood.all_Cases; |
| else: |
| raise Exception('This [ncg] for Verbal Pattern is unknown!, ['+str(ncg)+']'); |
| |
| |
| |
| if (aug == "ุฌุฑ"): |
| |
| self.POS.IsAugmented = False; |
| elif (aug == "ุฒู"): |
| |
| self.POS.IsAugmented = True; |
| elif (aug == "#"): |
| self.POS.IsAugmented = None; |
| else: |
| raise Exception('This [aug] for Verbal Pattern is unknown!, ['+str(aug)+']'); |
| |
|
|
| |
| if (trans == "ู"): |
| |
| self.POS.Transitive = VerbalPOSConstants.Transitive.Intransitive; |
| elif (trans == "ู
"): |
| |
| self.POS.Transitive = 0; |
| self.POS.Transitive += VerbalPOSConstants.Transitive.Transitive_for_1; |
| self.POS.Transitive += VerbalPOSConstants.Transitive.Transitive_for_2; |
| self.POS.Transitive += VerbalPOSConstants.Transitive.Transitive_for_3; |
| elif (trans == "ู"): |
| |
| self.POS.Transitive = VerbalPOSConstants.Transitive.all_Cases; |
| else: |
| raise Exception('This [trans] for Verbal Pattern is unknown!, ['+str(trans)+']'); |
|
|
| self.POS.Perfectness = VerbalPOSConstants.Perfectness.Unprocessed; |
| pass |
| |
|
|