@@ -183,7 +183,7 @@ def _decode_node(elem):
183
183
sortinfo = _decode_sortinfo (elem .find ('sortinfo' ))
184
184
type = None
185
185
if CVARSORT in sortinfo :
186
- type = sortinfo .pop (CVARSORT )
186
+ type = sortinfo .pop (CVARSORT ). lower ()
187
187
return Node (id = int (elem .get ('nodeid' )),
188
188
predicate = _decode_pred (elem .find ('*[1]' )),
189
189
type = type ,
@@ -202,11 +202,12 @@ def _decode_pred(elem):
202
202
# sense CDATA #IMPLIED >
203
203
# <!ELEMENT gpred (#PCDATA)>
204
204
if elem .tag == 'gpred' :
205
- return elem .text
205
+ pred = elem .text
206
206
elif elem .tag == 'realpred' :
207
- return predicate .create (elem .get ('lemma' ),
207
+ pred = predicate .create (elem .get ('lemma' ),
208
208
elem .get ('pos' ),
209
209
elem .get ('sense' ))
210
+ return predicate .normalize (pred )
210
211
211
212
212
213
def _decode_sortinfo (elem ):
@@ -224,7 +225,8 @@ def _decode_sortinfo(elem):
224
225
# perf (plus|minus|u) #IMPLIED
225
226
# ind (plus|minus|u) #IMPLIED >
226
227
# note: Just accept any properties, since these are ERG-specific
227
- return elem .attrib
228
+ return {(key .upper () if key != CVARSORT else key ): val .lower ()
229
+ for key , val in elem .attrib .items ()}
228
230
229
231
230
232
def _decode_link (elem ):
@@ -295,12 +297,17 @@ def _encode_node(node, properties, lnk):
295
297
attributes ['carg' ] = node .carg
296
298
e = etree .Element ('node' , attrib = attributes )
297
299
e .append (_encode_pred (node .predicate ))
298
- e .append (etree .Element ('sortinfo' ,
299
- attrib = node .sortinfo if properties else {}))
300
+ if properties :
301
+ sortinfo = {key .lower (): val .lower ()
302
+ for key , val in node .sortinfo .items ()}
303
+ else :
304
+ sortinfo = {}
305
+ e .append (etree .Element ('sortinfo' , attrib = sortinfo ))
300
306
return e
301
307
302
308
303
309
def _encode_pred (pred ):
310
+ pred = predicate .normalize (pred )
304
311
if predicate .is_surface (pred ):
305
312
lemma , pos , sense = predicate .split (pred )
306
313
attributes = {'lemma' : lemma , 'pos' : pos }
0 commit comments