|
|
| ''' |
| Created on ٢٨/٠٤/٢٠١٠ |
| |
| @Created by: Muhammad Altabba |
| ''' |
| from ...Lexicon.RootAndPatterns.Root import *; |
| from ...Lexicon.RootAndPatterns.VoweledPattern import VoweledPattern; |
| from ...Tagging.POSTags.NominalPOS import NominalPOSConstants, NominalPOS; |
|
|
| class VoweledNominalPattern: |
| """ |
| # PyUML: Do not remove this line! # XMI_ID:_qz4WI435Ed-gg8GOK1TmhA |
| """ |
| ''' |
| classdocs |
| ''' |
| |
| |
| def __init__(self, id, voweledForm, canonicForm): |
| ''' |
| Constructor |
| ''' |
| self.ID = id; |
| self.VoweledForm = voweledForm; |
| self.CanonicForm = canonicForm; |
| |
| self.POS = NominalPOS(); |
| self.POS.MainClass = NominalPOSConstants.MainClass.Noun; |
| |
| pass |
| |
| def AssignFromAlKhalilDB(self, type, cas, ncg): |
| if type == "": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Unprocessed; |
| elif type == "فا": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Active_Participle; |
| elif type == "مف" : |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Passive_Participle; |
| elif type == "مفا": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Exaggeration_Active_Participle; |
| elif type == "آ": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Instrumental_Noun; |
| elif type == "زمك": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Noun_of_Place; |
| self.POS.SubClass += NominalPOSConstants.SubClass.Noun_of_Time; |
| elif type == "فض" : |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Elative_Noun; |
| elif type == "وش": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Assimilate_Adjective; |
| elif type == "صأ": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Gerund; |
| elif type == "صم": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Meem_Gerund; |
| elif type == "صه": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Quality_Gerund; |
| elif type == "صر": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Nomen_Vicis; |
| elif type == "جا": |
| |
| self.POS.SubClass = NominalPOSConstants.SubClass.Indeclinable_Noun; |
| elif type == "#": |
| self.POS.SubClass = NominalPOSConstants.SubClass.all_Cases; |
| |
| else: |
| raise Exception('This [type] for Nominal Pattern id: ('+str(self.ID)+') is unknown!, ['+type+']'); |
| |
| if cas == "": |
| |
| self.POS.Definiteness = NominalPOSConstants.Definiteness.Unprocessed; |
| elif cas == "إض": |
| |
| self.POS.Definiteness = NominalPOSConstants.Definiteness.Definite_by_Itself + \ |
| NominalPOSConstants.Definiteness.Definite_by_Another; |
| elif cas == "نك": |
| |
| self.POS.Definiteness = NominalPOSConstants.Definiteness.Indefinite; |
| elif cas == "#": |
| |
| self.POS.Definiteness = NominalPOSConstants.Definiteness.all_Cases; |
| else: |
| raise Exception('This [cas] for Nominal Pattern is unknown!, ['+cas+']'); |
| |
| |
| if ncg.isnumeric() or (ncg[0] == '-' and ncg[1:].isnumeric()): |
| ncg = int(ncg); |
| if ncg == 0: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.all_Cases; |
| elif ncg == -1: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.all_Cases; |
| elif ncg == -2: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.all_Cases; |
| elif ncg == -3: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.all_Cases; |
| elif ncg == 1: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 2: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 3: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 4: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 5: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 6: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.NominativeOrIndicative; |
| elif ncg == 7: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 8: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 9: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 10: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 11: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 12: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.AccusativeOrSubjunctive; |
| elif ncg == 13: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == 14: |
| |
| self.POS.Number = NominalPOSConstants.Number.Singular; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == 15: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == 16: |
| |
| self.POS.Number = NominalPOSConstants.Number.Dual; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == 17: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Masculine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == 18: |
| |
| self.POS.Number = NominalPOSConstants.Number.Plural; |
| self.POS.Gender = NominalPOSConstants.Gender.Feminine; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.GenitiveOrJussive; |
| elif ncg == "#": |
| self.POS.Number = NominalPOSConstants.Number.all_Cases; |
| self.POS.Gender = NominalPOSConstants.Gender.all_Cases; |
| self.POS.CaseAndMood = NominalPOSConstants.CaseAndMood.all_Cases; |
| else: |
| raise Exception('This [ncg] for Nominal Pattern is unknown!, ['+str(ncg)+']'); |
| |
| |
| self.POS.Substantivness = NominalPOSConstants.Substantivness.Substantive; |
| |
| pass |
| |
|
|