XFL3: The Xfuzzy 3 specification language

Operator sets

An operator set in XFL3 is an object containing the mathematical functions that are assigned to each fuzzy operator. Fuzzy operators can be binary (like the T-norms and S-norms employed to represent linguistic variable connections, implication, or rule aggregations), unary (like the C-norms or the operators related with linguistic hedges), or can be associated with defuzzification methods.

XFL3 defines the operator sets with the following format:

operatorset identifier {
      operator assigned_function(parameter_list);
      operator assigned_function(parameter_list);
      ........... } 

It is not required to specify all the operators. When one of them is not defined, its default function is assumed. The following table shows the operators (and their default functions) currently used in XFL3.

Operator Type Default function
and binary xfl.min(a,b)
or binary xfl.max(a,b)
implication, imp binary xfl.min(a,b)
also binary xfl.max(a,b)
not unary xfl.not(a)
very, strongly unary xfl.square(a)
moreorless unary xfl.sqrt(a)
slightly unary xfl.parabola(a)
defuzzification, defuz defuzzification xfl.CenterOfArea

The assigned functions are defined in external files which we name as packages. The format to identify a function is "package.function".

 operatorset systemop {
    and xfl.min();
    or xfl.max();
    imp xfl.min();
    strongly xfl.pow(3);
    moreorless xfl.pow(0.4);
   }

For comments, patches, bug reports, etc contact us at:   xfuzzy-team@imse-cnm.csic.es

©IMSE-CNM 2018