diff --git a/conversion_utils/jos_msds_and_properties.py b/conversion_utils/jos_msds_and_properties.py index 272590f..d6fbcd5 100644 --- a/conversion_utils/jos_msds_and_properties.py +++ b/conversion_utils/jos_msds_and_properties.py @@ -254,8 +254,13 @@ class Converter: exit('Could not parse specifications xml file provided.') def msd_to_properties(self, msd, language, lemma=None): - """Convert Msd to Properties (possibly in the other language).""" - + """Convert Msd to Properties (possibly in the other language). + + The level (lexeme vs form) of certain reflexive msd features + depends on the lemma, so set the lemma if you need accurate + level information. + """ + if (msd.code not in self.specifications.codes_map[msd.language]): raise ConverterException('The msd {} is unknown'.format(msd.code)) @@ -273,8 +278,8 @@ class Converter: feature_name = feature.names.get(language) feature_value = value.names.get(language) if (lemma is None and (category_name, index) in [(le[0], le[1]) for le in LEVEL_EXCEPTIONS]): - raise ConverterException('The lemma is None but feature level depends on lemma for category={category}, position={position}'\ - .format(category=category_name, position=index)) + print('[WARN] The level of feature (category={category}, position={position}) may be incorrect, as it is lemma-specific and no lemma has been specified.' + .format(category=category_name, position=index)) level_exception_flag = (category_name, feature.position, lemma) in LEVEL_EXCEPTIONS lexeme_level_flag = feature.lexeme_level_flag if not level_exception_flag else not feature.lexeme_level_flag feature_value_list.append((feature, value))