Language Level

This operation reports the UVL language level a feature model uses, i.e. which subset of the Universal Variability Language is required to express it (for example Boolean, Arithmetic, Type, or the group/feature cardinality levels). It is a structural operation computed directly on the feature model, without a backend solver.


Code Examples

from flamapy.metamodels.fm_metamodel.transformations import UVLReader
from flamapy.metamodels.fm_metamodel.operations import FMLanguageLevel

feature_model = UVLReader('model.uvl').transform()
levels = FMLanguageLevel().execute(feature_model).get_result()
print(levels)

Using the Python facade:

from flamapy.interfaces.python.flamapy_feature_model import FLAMAFeatureModel

result = FLAMAFeatureModel('model.uvl').language_level()