thanks for your post.
I assume that by “natural language” you refer to the fuzzy output value.
OutputVariable outputVariable = engine.getOutputVariable("SomeName");, there are two ways to get the fuzzy output value:
outputVariable.fuzzyOutputValue() will get you a string like
"0.8/LOW + 0.1/MED + 0.0/HI", which refers to the fuzzy output value of the variable. This fuzzy value is the value that you defuzzify with
outputVariable.fuzzify(outputVariable.getOutputValue()) will give you a similar string, but will compute the membership function for each term at the given output value. The results are not necessarily the same.
I think you are mostly interested in (1).