Java Fuzzy Markup Language



A Java Library for the IEEE Standard for Fuzzy Markup Language (IEEE Std 1855-2016)

JFML is an open source Java library which is aimed at facilitating interoperability and usability of fuzzy systems. Its novelty and relevance arise from the fact that JFML is the first library in the world which implements the new IEEE Std 1855 published and sponsored by the Standards Committee of the IEEE Computational Intelligence Society.

Standard IEEE 1855TM-2016

This standard defines the Fuzzy Markup Language (FML). It makes use of the benefits of XML specifications to represent Fuzzy Logic Systems (FLS) in a human-readable and hardware independent way. Accordingly, designers can code and apply FLS without requiring a deep knowledge about the underlying platforms. IEEE Std 1855TM-2016

Binding XSD

JFML uses the Java API called JAXB. It provides a fast and convenient way to bind W3C XML documents and Java representations. Namely, JFML binds the Java code to the XML Schema Document (XSD) of the new IEEE standard for FML. In addition, it provides methods for: (1) unmarshalling (reading) FML documents into Java content objects; and (2) marshalling (writing) Java content into XML documents while verifying all the constraints established in the schema of the Standard.


The IEEE standard for FML is aimed to facilitate extensibility (i.e., definition of new functionality regarding fuzzy operators, defuzzification methods, etc.) through the so-called custom methods without requiring to modify the FML grammar. Accordingly, JFML provides custom methods for all the elements deemed as extensible in the XSD of the standard. This will speed up the future extension of the library conforming to this standard.


The language FML defined in the new IEEE standard not only properly faces all those drawbacks of FCL but it also provides developers with novel properties thanks to its modular object-oriented conception and XML nature. JFML includes classes and methods in order to facilitate developers to import FLS defined with the language FCL defined in the standard IEC 61131-7.