Skip to content

Commit faeecb5

Browse files
committed
Refined feature tests for Malayalam.
1 parent cd9b962 commit faeecb5

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

udapi/block/ud/ml/markfeatsbugs.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,15 @@ def process_node(self, node):
5757
elif node.feats['Person'] == '1' and node.feats['Number'] == 'Plur':
5858
rf.append('Clusivity')
5959
af['Clusivity'] = ['In', 'Ex']
60+
# Interrogative pronouns, too, can be case-marked. Therefore, the
61+
# base form must have Case=Nom.
62+
# ആര് ār "who" (Nom) എന്ത് ent "what" (Nom, Acc.Inan)
63+
# ആരെ āre "who" (Acc) എന്തെ ente "what" (Acc.Anim) എന്തിനെ entine "what" (Acc.Anim or maybe Inan but optional)
64+
# ആരുടെ āruṭe "who" (Gen) എന്തിന് entin "what" (Gen) or "why"
65+
# ആരൊക്കെ ārokke "who" (Dat?) എന്തൊക്കെ entokke "what" (Dat?)
66+
elif node.feats['PronType'] == 'Int':
67+
rf.append('Animacy')
68+
af['Animacy'] = ['Anim', 'Inan']
6069
self.check_required_features(node, rf)
6170
self.check_allowed_features(node, af)
6271
# DETERMINERS ##########################################################
@@ -101,13 +110,18 @@ def process_node(self, node):
101110
})
102111
elif node.feats['VerbForm'] == 'Fin':
103112
if node.feats['Mood'] == 'Imp':
104-
self.check_required_features(node, ['Mood', 'Voice'])
113+
# Unlike other forms, the imperative distinguishes politeness.
114+
# The verb stem serves as an informal imperative: തുറ tuṟa "open"
115+
# The citation form may serve as a formal imperative: തുറക്കുക tuṟakkūka "open"
116+
# Finally, there is another formal imperative with -kkū: തുറക്കൂ tuṟakkū "open"
117+
self.check_required_features(node, ['Mood', 'Voice', 'Polite'])
105118
self.check_allowed_features(node, {
106119
'Aspect': ['Imp', 'Perf', 'Prog'],
107120
'VerbForm': ['Fin'],
108121
'Mood': ['Imp'],
109122
'Polarity': ['Pos', 'Neg'],
110-
'Voice': ['Act', 'Pass', 'Cau']
123+
'Voice': ['Act', 'Pass', 'Cau'],
124+
'Polite': ['Infm', 'Form']
111125
})
112126
else:
113127
self.check_required_features(node, ['Mood', 'Tense', 'Voice'])

0 commit comments

Comments
 (0)