Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects

This Website contains additional material to the research paper on "Fuzzy Systems Software" (FSS):

J. Alcalá-Fdez, José M. Alonso, A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects. IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, doi: 10.1109/TFUZZ.2015.2426212.

The web is organized according to the following summary:

  1. Survey Paper
  2. Introduction to FSS
  3. FSS Taxonomy
  4. Some Fuzzy Systems Software
  5. Several considerations for further research in FSS
  6. Recent Papers on Fuzzy Systems Software (2009-Present)
  7. Related Websites
  8. Related Review Papers
  9. Future Events

Survey Paper

J. Alcalá-Fdez, José M. Alonso, A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects. IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, doi: 10.1109/TFUZZ.2015.2426212.

Abstract: Fuzzy systems have been used widely thanks to their ability to successfully solve a wide range of problems in different application fields. However, their replication and application requires a high level of knowledge and experience. Furthermore, few researchers publish the software and/or source code associated with their proposals, which is a major obstacle to scientific progress in other disciplines and in industry. In recent years, most fuzzy system software has been developed in order to facilitate the use of fuzzy systems. Some software is commercially distributed but most software is available as free and open source software, reducing such obstacles and providing many advantages: quicker detection of errors, innovative applications, faster adoption of fuzzy systems, etc. In this paper, we present an overview of freely available and open source fuzzy systems software in order to provide a well-established framework that helps researchers to find existing proposals easily and to develop well founded future work. To accomplish this, we propose a twolevel taxonomy and we describe the main contributions related to each field. Moreover, we provide a snapshot of the status of the publications in this field according to the ISI Web of Knowledge. Finally, some considerations regarding recent trends and potential research directions are presented.

Table of Contents:

  1. Introduction
  2. Taxonomy
    1. General Purpose Fuzzy Systems Software
    2. Fuzzy Systems Software for Specific Application Purposes
    3. Languages for Fuzzy Systems
  3. Review of General Purpose Fuzzy Systems Software
    1. General Purpose Fuzzy Systems Source Code
    2. General Purpose Fuzzy Systems Libraries
    3. General Purpose Fuzzy Systems Toolboxes
    4. General Purpose Fuzzy Systems Suites
  4. Review of Fuzzy Systems Software for Specific Application Purposes
    1. Fuzzy Systems Software for Solving Specific Problems of Control
    2. Fuzzy Systems Software for Solving Specific Problems of Decision-Making
    3. Fuzzy Systems Software for Solving Specific Problems of Image Processing
    4. Fuzzy Systems Software for Solving Specific Problems of Biomedicine
    5. Fuzzy Systems Software for Solving Specific Problems of Information Retrieval
    6. Fuzzy Systems Software for Solving Specific Problems of System Dynamics
    7. Fuzzy Systems Software for Solving Specific Problems of Prognosis and Time Series Prediction
    8. Fuzzy Systems Software for Solving Specific Problems of Risk Analysis
    9. Fuzzy Systems Software to Support Software Engineering
    10. Fuzzy Systems Software for Educational Purposes
  5. Review of Languages for Fuzzy Systems Software
  6. Fuzzy Systems Software Bibliographical Study
    1. Fuzzy Systems Software Visibility at the ISI Web of Knowledge
    2. Current Research Trends in Fuzzy Systems Software
    3. Some of the Most Outstanding Works in the Field of Fuzzy Systems Software
  7. Critical Considerations and Potential Prospects
  8. Conclusions

Introduction to FSS

Fuzzy systems are one of the most important areas for the application of the Fuzzy Set Theory. Fuzzy systems have been successfully applied to solve different kinds of problems in various application domains. Table 1 presents a short analysis of the specialized literature on Fuzzy Systems. It is based on the next query ("Advanced Search", 2009-2017) at the ISI Web of Science:

TS=("fuzzy rule" OR "fuzzy system" OR "fuzzy control")

WEB OF SCIENCE CATEGORIES NUMBER OF PUBLICATIONS
ENGINEERING ELECTRICAL ELECTRONIC 4758
COMPUTER SCIENCE ARTIFICIAL INTELLIGENCE 4381
AUTOMATION CONTROL SYSTEMS 3005
COMPUTER SCIENCE THEORY METHODS 1622
COMPUTER SCIENCE INFORMATION SYSTEMS 1168
COMPUTER SCIENCE INTERDISCIPLINARY APPLICATIONS 1064
ENGINEERING MECHANICAL 1024
ENGINEERING MULTIDISCIPLINARY 698
MATERIALS SCIENCE MULTIDISCIPLINARY 670
OPERATIONS RESEARCH MANAGEMENT SCIENCE 583
MATHEMATICS APPLIED 570
ROBOTICS 501
ENERGY FUELS 485
INSTRUMENTS INSTRUMENTATION 483
ENGINEERING MANUFACTURING 479
MECHANICS 411
TELECOMMUNICATIONS 385
COMPUTER SCIENCE CYBERNETICS 354
COMPUTER SCIENCE HARDWARE ARCHITECTURE 306
MATHEMATICS INTERDISCIPLINARY APPLICATIONS 255
COMPUTER SCIENCE SOFTWARE ENGINEERING 228
ENGINEERING CIVIL 226
ENGINEERING INDUSTRIAL 223
STATISTICS PROBABILITY 193
TRANSPORTATION SCIENCE TECHNOLOGY 178

Table 1. Fuzzy systems applications by subject areas (2009 - 2017)

In the last few years, many software tools have been developed for fuzzy systems. Although a lot of them are commercially distributed, any software are available as open source software. For instance, in the field of evolutionary computation KEEL (Knowledge Extraction based on Evolutionary Learning) provides nice examples of frameworks for both evolutionary and multi-objective optimization. JavaNNS (Java version of Stuttgart Neural Network Simulator) is probably the best free suite for neural networks. Regarding fuzzy modeling, Xfuzzy (a development environment for fuzzy-inference-based systems), FisPro (Fuzzy Inference System Professional), and GUAJE (Generating Understandable and Accurate fuzzy models in a Java Environment) represent very useful tools. Regarding neuro-fuzzy algorithms we can point out to NEFCLASS (Neuro-Fuzzy Classification). Finally, FrIDA (Free Intelligent Data Analysis Toolbox) and KNIME (Konstanz Information Miner) are examples of user-friendly open-source software which offer several individual tools for data processing, analysis and exploration/visualization.

Notice that such open tools have recently reached a high level of development. As a result, they are ready to play an important role for industry and academia research. Government agencies and public organizations often consider adopting open source software for reasons of transparency, cost and greater efficiency in communication and delivering services.

FSS Taxonomy

We have proposed a two-level taxonomy with the aim of providing a well-established framework that allows us to jointly analyze the different proposals in this research field:

  • Level 1: Purpose.
    This level is based on the purpose of the software, i.e., the aim for which it was developed:
    • General Purpose FSS: FSS aimed at designing and analyzing fuzzy systems (fuzzy rule systems, fuzzy multicriteria decision-making systems, etc.) for different problems in relation to all research areas addressed by the fuzzy community (clustering, classification, regression, and so on).
    • Specific Applications: Fuzzy systems have been successfully applied to a wide variety of practical problems. As a result, FSS has been devoted over the years to the design of fuzzy systems for a specific part of the development cycle or for a specific problem in different research areas, among others: Control, Decision-making, Software Engineering, Image Processing, Telecommunication Networks, Medicine, etc.
    • Fuzzy Languages: It includes contributions in which new languages for fuzzy systems are proposed. Such languages provide researchers with a way of working that makes it easier to exchange fuzzy systems between FSS and improves the reusability of the developed fuzzy systems.
  • Level 2: Type of software.
    Researchers proposing FSS have produced a large number of different types of software. Thus, finding out the right names has become a difficult task because the terminology commonly used in the literature is somewhat misleading. Even worse, researchers have sometimes used different terms or/and definitions to refer to the same type of software. To clear up this confusion and to make future research easier, we have studied the terminology used in the literature and we have proposed a second level of the taxonomy with four terms which attempt to capture the essence of the different types of software appearing in the literature. These types are:
    • Code: Contributions in which single fuzzy system algorithms written in a programming language are shared, for instance a clever implementation of a certain class of algorithms.
    • Library: Contributions in which sets of functions with a related functionality (encapsulated code) are presented, written in terms of a language, and with a well-defined Application Programming Interface (API) that facilitates its integration with different software.
    • Toolbox: Contributions which propose FSS that allows us to perform useful tasks with fuzzy systems. This FSS can use one or more libraries and it can be executed as a stand-alone program through command line, graphical user interface (GUI), or even web interface.
    • Suite: Contributions in which larger frameworks are presented that allow us to use (among other features) a collection of toolboxes and/or libraries of related functionality, considering a common user interface and some ability to smoothly exchange data with each other.

Some Fuzzy Systems Software

In the following we maintain information related to some of the most popular Fuzzy Systems Software developed by the scientific community. We make emphasis on free software because of its important role in the scientific research community:

General Purpose FSS

NAME TYPE LANGUAGE
CIRG Code Java
fl-core Code Octave
Lin2012 Code Java
NNandFS Code C++, Java,
BPJ Library Java
DANA-FLSA Library Java
DotFuzzy Library C# (.NET)
FINK-FLTO Library Octave
FlouLib Library Matlab
FLP Library C++
FRBS Library R
FugeR Library R
FUNZY Library Java
FuzzyEngine Library Java
FuzzyLite Library C++, Java
FWS Library Cassandra
JFCM Library Java
JFML Library Java
JUZZY Library Java
Lab4Drools Library Java
lfl Library R
libFSQCA Library Python2
mbFuzzIT Library Java
MODELICA-ANFIS Library Modelica
OFLT Library Octave
pyfuzzy Library Python
SAFD Library R
SETS Library R
SHARK Library C++
CI-LQD Toolbox Java, R
DataEngine Toolbox  
E-Fuzz Toolbox C
fclust Toolbox R
FID Toolbox Java
FingramsGenerator Toolbox Java
FIS Toolbox Matlab
FISDeT Toolbox Python
Fispro Toolbox Java, C++
FRI-SFMI Toolbox Matlab
FRIDA Toolbox Java
FUAT Toolbox C# (.NET)
FuzzME Toolbox C# (.NET)
FuzzyCalculusCORE Toolbox Matlab
FuzzyProlog Toolbox Prolog
FUZZYSTUDIO Toolbox Java
FuzzyToolkitUoN Toolbox R
GUAJE Toolbox Java, C++
IT2FLS Toolbox Matlab
IT2-FLS Toolbox Matlab
JUZZY-ONLINE Toolbox Java
Kappalab Toolbox R
KIRQ Toolbox Python2
Matlab-FLT Toolbox Matlab
MaxAgr Toolbox C# (.NET)
NIP Toolbox Java
RFUZZY Toolbox Prolog
Rfuzzy-toolbox Toolbox R
RKEEL Toolbox R
SAMT Toolbox QT
Type2-FL Toolbox Matlab
UNFUZZY Toolbox C++
VisualFCM Toolbox C++
VisualFLOPER Toolbox Java
Xfuzzy Toolbox Java
XTRIG Toolbox Matlab
FLINSTONES Suite Java
FuzzyLogicTools Suite C++
fuzzyTECH Suite C++, C, Jav
KEEL Suite Java
KNIME Suite Java
WEKA Suite Java

Table 2. General Purpose Fuzzy Systems Software (listed by Type of Software)

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

CodeLibraryToolboxSuite

Code

Computational Intelligence research group: This group provides with source codes of several methods for classification
fl-core: The package contains code for basic functions in Fuzzy Logic for Octave.

P. Molino, G. Pio, M. Mencar, Fast Fuzzy Inference in Octave. International Journal of Computational Intelligence Systems 6:2 (2013) 307-317. Doi:10.1080/18756891.2013.769765

Lin2012: An easy-to-implement fuzzy expert package with applications using existing Java classes.
NNandFS research group: This group provides with source codes of several methods with Neural Networks and Fuzzy Systems

Library

BPJ: A software engineering framework for switched fuzzy systems.
DANA-FLSA: Sensitivity analysis in fuzzy systems: Integration of SimLab and DANA.
DotFuzzy: This is an open source stand-alone class library for fuzzy logic builted in C#.
FINK-FLTO: Fuzzy Logic Toolkit for Octave. A mostly MATLAB-compatible fuzzy logic toolkit for Octave. It offers among other functions: evaluation, plotting, clustering, etc.
FlouLib: A library that contains Simulink S-Functions to implement fuzzy systems.
FLP: uzzy Logic Programming: A C++ Fuzzy Logic Programming Library.
FRBS for R: Fuzzy Rule-based Systems for Classification and Regression Tasks. This R package implements functionality and various algorithms to build and use fuzzy rule-based systems.

L. S. Riza, C. Bergmeir, F. Herrera, J. M. Benitez, Learning from Data Using the R Package "frbs". In IEEE International Conference on Fuzzy Systems, pp. 1 - 6, 2014.

FugeR: FUzzy GEnetic. This R package implements an evolutionary machine learning algorithm to construct prediction models based on fuzzy logic.
FUNZY: An implementation of a Fuzzy Logic reasoning engine in Java.
FuzzyEngine: This fuzzy rule-based system is designed to perform fuzzy evaluations in Java programs
Fuzzylite: A Fuzzy Logic Control Library. This is a cross-platform, free and open-source fuzzy logic control library with versions programmed in C++ and Java.
FWS: Fuzzy Web Service included with CASSANDRA.
JFCM: JFCM is a Java library that implements Fuzzy Cognitive Maps
JFML: JFML is the first library in the world which implements the new standard IEEE Std 1855TM-2016 published and sponsored by the Standards Committee of the IEEE Computational Intelligence Society
Juzzy toolkit : A Java based toolkit for type-1, interval type-2 and general type-2 fuzzy logic and fuzzy logic systems.

C. Wagner, Juzzy – A Java based Toolkit for Type-2 Fuzzy Logic. In IEEE Symposium Series on Computational Intelligence, Singapore, pp. 45–52, 2013.

Lab4Drools: A bridge between the Drools rule engine and the JEFIS fuzzy capabilities

N. Wulff, D. Sottara, Fuzzy reasoning with a Rete-OO rule engine. In International Symposium on Rule Interchange and Applications, pp. 337–344, 2009.

lfl: Various algorithms related to linguistic fuzzy logic in R

M. Burda. Linguistic Fuzzy Logic in R. IEEE International Conference On Fuzzy Systems (FuzzIEEE 2015), Istanbul(Turkey), 1-8, 2015.

libFSQCA: A library of routines related to QCA and fuzzy-set analysis.
mbFuzzIT: A package of Java classes for Fuzzy inference
MODELICA-ANFIS: Object-oriented approach applied to ANFIS modeling and control of a distillation column.
Octave Fuzzy-Logic-Toolkit: A MATLAB-compatible fuzzy logic toolkit for Octave.
pyfuzzy: Python fuzzy package to work with fuzzy sets and process them with operations of fuzzy logic.
SAFD: An R Package for Statistical Analysis of Fuzzy Data.
Sets: Generalized and customizable sets available for R through the sets package.

Meyer, D.; Hornik, K, Generalized and customizable sets in R. Journal of Statistical Software 31:2 (2009) 1-27.

Shark: An open-source C++ machine learning library

C. Igel, V. Heidrich-Meisner, T. Glasmachers, Shark. Journal of Machine Learning Research 9 (2008) 993–996.

Toolbox

CI-LQD: A software tool for modeling and decision making with Low Quality Data.

DataEngine: This is a software tool for intelligent data analysis which unites statistical methods with neural networks and fuzzy technologies.

E-Fuzz: Developer toolkit for designing embedded fuzzy systems.

fclust fclust: Algorithms for fuzzy clustering, cluster validity indices and plots for cluster validity and visualizing fuzzy clustering results.
FID: Fuzzy decision tree/forest. A program which generates a fuzzy logic-based decision tree, from fuzzy or symbolic data. The tree can then be used to classify data, with unknown classification, using several different methods of inference.

N. Abu-halaweh, R. Harrison, Practical fuzzy decision trees. In IEEE Symposium on Computational Intelligence and Data Mining, 2009, pp. 211–216.

FingramsGenerator: Fuzzy Ingerence-grams Generator. Stand-alone software tool able to generate and visualize fingrams.

D. Pancho, J.M. Alonso, J. Alcalá-Fdez, A new fingram-based software tool for visual representation and analysis of fuzzy association rules. In IEEE International Conference on Fuzzy Systems, 2013, pp. 1–7.

FIS: Matlab Software Tool For Neuro-Fuzzy Identification And Data Analysis.
FISDeT: FISDeT is a python tool realized to support the design of Fuzzy Inference Systems, being able also to import (and modify) existing knowledge bases expressed in the standard FCL format.

G. Castellano, C. Castiello, A. M. Fanelli, The FISDeT software: Application to beer style classification. IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2017), Naples, 2017, pp. 1-6.

FisPro: Fuzzy Inference System Design and Optimization. An open source portable software for designing and handling fuzzy inference systems

S. Guillaume, B. Charnomordic, Learning interpretable fuzzy inference systems with FisPro. Information Sciences, 181:20 (2011) 4409–4427.

FRI-SFMI: Fuzzy Rule Interpolation Matlab Toolbox - Sparse Fuzzy Model Identification Matlab ToolBox
FrIDA: Free Intelligent Data Analysis Toolbox .

C. Borgelt, G. Gonzalez-Rodriguez, FrIDA — A Free Intelligent Data Analysis Toolbox. In IEEE International Conference on Fuzzy Systems, pp. 1-5, 2007.

FUAT: A fuzzy clustering analysis tool.

Fuzzme: Fuzzy Models of Multiple-Criteria Evaluation. A tool for creating fuzzy models of multiple-criteria evaluation and decision making.

P. Holecek, J. Talasova, Designing fuzzy models of multiple-criteria evaluation in FuzzME software. In International Conference on Mathematical Methods in Economics, 2010, pp. 250–256.

FuzzyCalculusCORE: Software package and API in MATLAB for working with fuzzy algebras.

FuzzyProlog: A new approach using soft constraints propagation.

FUZZYSTUDIO: An on-line tool for modelling and simulating fuzzy systems. The tool aims to facilitate the fuzzy systems building process focusing on the learning of fuzzy systems by undergraduate students.

FuzzyToolkitUoN: R Toolkit for working with Type 1 Fuzzy Logic, produced by the University of Nottingham IMA Group.

GUAJE: Generating Understandable and Accurate fuzzy models in a Java Environment.

J.M. Alonso, L. Magdalena, Generating understandable and accurate fuzzy rule-based systems in a java environment. In International Workshop on Fuzzy Logic and Applications. Lecture Notes in Artificial Intelligence 6857 (Ed. A. Fanelli, W. Pedrycz, and A. Petrosino, Springer), pp. 212–219, 2011.
D. Pancho, J.M. Alonso, L. Magdalena, Quest for interpretability-accuracy trade-off supported by fingrams into the fuzzy modeling tool GUAJE. International Journal of Computational Intelligence Systems 6:1, pp. 46–60, 2013.

IT2FLS: Computational intelligence software for interval type-2 fuzzy logic.

O. Castillo,P. Melin,J.R. Castro, Computational IntelligenceSoftware for Interval Type-2Fuzzy Logic. Computer Applications in Engineering Education 21:4 (2013) 737–747.

 

IT2-FLS: Matlab/Simulink Toolbox for Interval Type-2 Fuzzy Logic Systems

A. Taskin, and T. Kumbasar. An open source Matlab/Simulink Toolbox for Interval Type-2 Fuzzy Logic Systems. IEEE Symposium Series on Computational Intelligence (SSCI 2015), Cape Town (South Africa), 2015.

JuzzyOnline: An Online Toolkit for the Design, Implementation, Execution and Sharing of Type-1 and Type-2 Fuzzy Logic Systems.

Kappalab: Kappalab, which stands for laboratory for capacities, is an S4 tool box for capacity (or non-additive measure, fuzzy measure) and integral manipulation on a finite setting

KIRQ: Contradictions in fsQCA.

Matlab-FLT: Fuzzy Logic Toolbox for analyzing, designing, and simulating systems based on fuzzy logic.

MaxAgr: A new software for aggregating opinions of experts

I. Vrana, J. Vanícek, P. Kovár, J. Brozek, S. Aly, A group agreement-based approach for decision making in environmental issues. Environmental Modelling and Software 36 (2012) 99–110.

NIP: A tool to handle imperfect information in Data Sets. This tool allows to include various types of imperfection to datasets of known formats of literature and/or custom formats defined by the user.

J. Cadenas, M. Garrido, R. Martinez, NIP - an imperfection processor to data mining datasets. International Journal of Computational Intelligence Systems 6:1 (2013) 3–17.

RFUZZY: A fuzzy logic programming tool that represents truth values using real numbers from the unit interval.

S. Munoz-Hernandez, V. Pablos-Ceruelo, H. Strass, RFuzzy: Syntax, semantics and implementation details of a simple and expressive fuzzy tool over Prolog. Information Sciences 181:10 (2011) 1951–1970.

RKEEL: A package that takes the advantages of KEEL and R, allowing to use KEEL algorithms in simple R code.

J. Moyano, L. Sanchez, RKEEL: Using KEEL in R code. 2016 IEEE International Conference on Fuzzy Systems (FUZZ-IEEE 2016), Vancouver (Canada), pp. 257-264, 2016. Doi: 10.1109/FUZZ-IEEE.2016.7737695

Rfuzzy-toolbox: Type-1 functions - Interval Type-2 and Non-Stationary specific functions.

C. Wagner, S. Miller, J. Garibaldi, A fuzzy toolbox for the R programming language. In IEEE International Conference on Fuzzy Systems (2011) 1185–1192.

SAMT: A new method for semi-automatic fuzzy training and its application in environmental modeling.

Type2-FL: Free Fuzzy Logic Software for Matlab for implementing and designing type-1 and type-2 FLSs.

UNFUZZY: A tool for the design, simulation and analysis of Fuzzy Logic Systems

VisualFCM: A software tool for the development, simulation and analysis of FCM.

VisualFLOPER: A Practical Management of Fuzzy Truth-Degrees Using FLOPER.

XFuzzy: A development toolbox for fuzzy-inference-based systems, which is composed of several options that cover the different stages of the fuzzy system design process.

I. Baturone, F. Moreno-velo, S. Sanchez-solano, A. Barriga, P. Brox, A. Gersnoviez, M. Brox, Using Xfuzzy environment for the whole design of fuzzy systems. In IEEE International Conference on Fuzzy Systems, London (UK), pp. 1–6, 2007.

XTRIG: Fuzzy qualitative trigonometry.

Suite

FLINSTONES: Fuzzy LINguisTic DeciSion TOols eNhacemEnt Suite. A software tool to solve linguistic decision making problems.

F.J. Estrella, M. Espinilla, F. Herrera, and L. Martinez, FLINTSTONES: A fuzzy linguistic decision tools enhancement suite based on 2-tuple linguistic and extensions. Information Sciences 280 (2014) 152–170.

Fuzzy Logic Tools: A C++ framework for storage, analysis and design of fully general multiple-input multiple-output Takagi-Sugeno fuzzy control systems, without constraints in the order of either the inputs or the output vectors.

A.J. Barragan, J.M. Andujar, Fuzzy Logic Tools. Reference Manual v1.0. Universidad de huelva. ISBN 978-84-15147-32-9.

fuzzyTECH: Web server that comprises a complete repository for fuzzy logic applications.

Knowledge Extraction based on Evolutionary Learning (KEEL): KEEL is an open source (GPLv3) Java software tool to assess evolutionary algorithms for Data Mining problems including regression, classification, clustering, pattern mining and so on.

J. Alcalá-Fdez, L. Sánchez, S. García, M.J. del Jesus, S. Ventura, J.M. Garrell, J. Otero, C. Romero, J. Bacardit, V.M. Rivas, J.C. Fernández, F. Herrera, KEEL: A Software Tool to Assess Evolutionary Algorithms to Data Mining Problems. Soft Computing 13:3 (2009) 307-318.
J. Alcalá-Fdez, A. Fernandez, J. Luengo, J. Derrac, S. García, L. Sánchez, F. Herrera, KEEL Data-Mining Software Tool: Data Set Repository, Integration of Algorithms and Experimental Analysis Framework. Journal of Multiple-Valued Logic and Soft Computing 17:2-3 (2011) 255-287.

KNIME: Konstanz Information Miner: KNIME is a modular, open platform for data integration, processing, analysis, and exploration.

M.R. Berthold, N. Cebron, F. Dill, T.R. Gabriel, T. Kötter, T. Meinl, P. Ohl, C. Sieb, K. Thiel, B. Wiswedel, KNIME: The Konstanz Information Miner. In Studies in Classification, Data Analysis, and Knowledge Organization (GfKL 2007). Springer, 2007.
M.R. Berthold, B. Wiswedel, T.R. Gabriel, Fuzzy Logic in KNIME - Modules for Approximate Reasoning. International Journal of Computational Intelligence Systems 6:1 (2013) 34-45.

WEKA: Practical Machine Learning Tools and Techniques for Data Mining.

FSS for Specific Application Purposes

NAME TYPE LANGUAGE APPLICATION DOMAIN
DefuzzificationBlock Code assembly Specific Problems of Control  
FFLL Library C++ Specific Problems of Control  
jFuzzyLogic Library Java Specific Problems of Control  
jFuzzyQt Library C++ Specific Problems of Control  
ASAFES2 Toolbox C++, ANASA Specific Problems of Control  
TP-Tool Toolbox Matlab Specific Problems of Control  
WARPSTAR2 Toolbox Dymola, Matla Specific Problems of Control  
Yang2013 Toolbox VB.NET, Elipse Specific Problems of Control  
Zeng2009 Toolbox Matlab Specific Problems of Control  
CIAPS Suite Matlab Specific Problems of Control  
MEANDER Suite Java Specific Problems of Control  
Angulo2012 Toolbox Matlab Specific Problems of Decision-Making  
FCM-uUTI-DSS Toolbox Matlab Specific Problems of Decision-Making  
FMCGDSS-DECIDER Toolbox Java Specific Problems of Decision-Making  
GeoNetWeaver Toolbox C++, VB Specific Problems of Decision-Making  
MCDM Analyst Toolbox COM Specific Problems of Decision-Making  
GeoFIS DSS Suite C++, Java, R Specific Problems of Decision-Making
Gestur Library C# (.NET) Specific Problems of Image Processing  
FuzzyUPWELL Toolbox Matlab Specific Problems of Image Processing  
Mandelias2013 Toolbox   Specific Problems of Image Processing  
InterIMAGE Suite   Specific Problems of Image Processing  
JFCS Suite Java Specific Problems of Image Processing
FEBRL Toolbox Python Specific Problems of Biomedicine  
FSPS Toolbox LabVIEW Specific Problems of Biomedicine  
Mclust Toolbox C++ Specific Problems of Biomedicine  
Pinti2010 Toolbox Matlab Specific Problems of Biomedicine  
PaleoSearch Toolbox Java Specific Problems of Information Retrieval  
Seto2009 Toolbox Java Specific Problems of Information Retrieval  
SIRE2IN Toolbox Java Specific Problems of Information Retrieval  
Karavezyris2002 Toolbox   Specific Problems of System Dynamics  
Ng2009 Toolbox Matlab Specific Problems of System Dynamics  
Kim1997 Toolbox   Specific Problems of Prognosis and Time Series Prediction  
SuretyQualification Toolbox VB, FuzzyTECH Specific Problems of Prognosis and Time Series Prediction  
Zein-Sabatto2013 Toolbox   Specific Problems of Prognosis and Time Series Prediction  
KKAnalysis Toolbox Matlab Specific Problems of Risk Analysis  
PoolEvidence and LinguisticBelief Toolbox Java Specific Problems of Risk Analysis  
RCSUEX Toolbox   Specific Problems of Risk Analysis  
RiskCriticalityAnalyzer and FuzzyReliabilityAnal Toolbox C++ Specific Problems of Risk Analysis  
FADAlib Library C++ Giving Support to Software Engineering  
CMMI-ASS Toolbox Java Giving Support to Software Engineering  
MRES Toolbox Java Giving Support to Software Engineering  
SEffEst Toolbox   Giving Support to Software Engineering  
COALA Library Java Educational  
InrecoLAN FuzzyMath Library Java, VB Educational  
Peach Library Python Educational  
CAVUS Toolbox VB.NET, ADO. Educational  
EDUrobot Toolbox C# (.NET) Educational  
eRiskGame Toolbox   Educational  
FEUP Toolbox C, Delphi, Laza Educational  
FIRS-trainer Toolbox Java Educational  
FuzzyCOPE Toolbox Delphi Educational  
FuzzyRAMSET Toolbox Matlab Educational  
MNTOOL Toolbox Matlab Educational  
RTlab Toolbox Matlab Educational  
VirtualLab Toolbox C# (.NET) Educational  
KEEL Suite Java Educational  
Lau2009 Suite Java Educational  
OmegaT Suite Omega Educational

Table 3. Fuzzy Systems Software with Specific Purpose (listed by Application Domain)

FSS for Specific Application Purposes - Solving Specific Problems of Control

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

CodeLibraryToolboxSuite 

Code

DefuzzificationBlock: Hardware and software implementations along with the comparison of defuzzification methods supported by Texas Instrument's Code Composer Studio

Library

FFLL: Free Fuzzy Logic Library is an open source fuzzy logic class library and API that is optimized for speed critical applications, such as video games. FFLL is able to load files that adhere to the IEC 61131-7 standard.

S. Rabin, AI Game Programming Wisdom. Charles River Media, 2002.

jFuzzyLogic: jFuzzyLogic is an open source Java which allows us to design and to develop Fuzzy Logic Controllers following the standard for Fuzzy Control Language (IEC 61131-7).

P. Cingolani, J. Alcalá-Fdez, jFuzzyLogic: a java library to design fuzzy logic controllers according to the standard for fuzzy control programming. International Journal of Computational Intelligence Systems 6:1 (2013) 61–75.

jFuzzyQt: C++ Fuzzy Logic Library which is a clone of jFuzzyLogic.

Toolbox

ASAFES2: A neurofuzzy function approximator, which combines Takagi-Sugeno fuzzy reasoning method with stochastic reinforcement learning.

TP-Tool: A free matlab toolbox for polytop or TS fuzzy modeling and control design via LMIs and PDC framework

WARPSTAR2: Dynamic powertrain simulation tool for the modelling of electric vehicles.
Yang2013: A graphical tool aimed at controlling and monitoring temperature and relative humidity in the context of fine agriculture.
Zeng2009: Expert system which combines ANFIS with genetic algorithms for designing in situ toughened Si3N4.

Suite

CIAPS: Open source package based on artificial neural networks and fuzzy logic simulations for the assessment of electrical power systems.
MEANDER: Evaluates the performance of agent-based systems.

FSS for Specific Application Purposes - Solving Specific Problems of Decision-Making

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox  Suite 

Toolbox 

Angulo2012: Matlab toolbox for measuring water quality episodes from the behavior of variables measured at water control networks.
FCM-uUTI-DSS: Matlab toolbox for dealing with uncomplicated urinary tract infection treatment management based on fuzzy cognitive maps.
FMCGDSS-DECIDER: A toolbox for linguistic multi-criteria group decision-making applied to fabric hand-based textile material evaluation.

GeoNetWeaver: Decision support tool which allows to design knowledge based systems with a fuzzy logic inference mechanism

MCDM Analyst: A toolbox for handling spatial multicriteria decision analysis.

Suite 

GeoFIS DSS: Open source suite aimed at providing GIS with new functionalities such as fuzzy modelling and reasoning with georeferenced data in Agronomy.

FSS for Specific Application Purposes - Solving Specific Problems of Image Processing

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

LibraryToolboxSuite 

Library

Gestur: Open source library for software developers wishing to incorporate static and dynamic hand gesture recognition into their applications.

Toolbox

FuzzyUPWELL: Matlab toolbox devoted to the fully automatic and unsupervised precise segmentation (based on fuzzy clustering) of upwelling images.
Mandelias2013: Toolbox for automatic image segmentation combining fuzzy cognitive maps and wavelet transform. It is applied to lumen border extraction and strut detection in intravascular optical coherence tomography.

Suite 

InterIMAGE: A knowledge-based framework for the automatic interpretation of remote sensing GIS images.
JFCS

JFCS: A Color Modeling Java Software based on Fuzzy Color Spaces
J.M. Soto-Hidalgo, P.M. Martinez-Jimenez, J. Chamorro-Martinez, D. Sanchez, JFCS: A Color Modeling Java Software Based on Fuzzy Color Spaces. IEEE Computational Intelligence magazine 11:2 (2016) 16-28. Doi: 10.1109/MCI.2016.2532265

 

FSS for Specific Application Purposes - Solving Specific Problems of Biomedicine

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox 

Toolbox

Febrl: Freely Extensible Biomedical Record Linkage includes a comprehensive graphical user interface based on PyGTK for facilitating the record linkage for users that have no experience in the Python programming language.

FSPS - A spike sorting software: A tool fast and robust online classification of single neuron activity.

A. Oliynyk, C. Bonifazzi, F. Montani, L. Fadiga, Automatic online spike sorting with singular value decomposition and fuzzy C-mean clustering. BMC neuroscience, 13:96 (2012) 1–19.

Mclust: A toolbox aimed at performing fuzzy clustering with the information from metabolites.
Pinti2010: Matlab toolbox for the multiple correspondence analysis of morphometric skull datasets.

FSS for Specific Application Purposes - Solving Specific Problems of Information Retrieval

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox 

Toolbox 

PaleoSearch: Toolbox which deals with paleo-journal articles by content word or ontology-supported browse categories.
Seto2009: A system with a GUI query builder which generates XQuery statements that support for both strict and fuzzy qualifiers.
SIRE2IN: A recommender system for research resources that is supported by fuzzy linguistic modeling.

FSS for Specific Application Purposes - Solving Specific Problems of System Dynamics

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox 

Toolbox 

Karavezyris2002: Application of system dynamics and fuzzy logic to forecasting of municipal solid waste.
Ng2009: System dynamics simulation and optimization with fuzzy logic.

FSS for Specific Application Purposes - Solving Specific Problems of Prognosis and Time Series Prediction

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox 

Toolbox 

Kim1997: Forecasting time series with genetic fuzzy predictor ensemble.
SuretyQualification: Toolbox which allows interaction between the user and an optimized fuzzy expert system for estimating contractor default in the context of surety bonding.
Zein-Sabatto2013: Statistical approach to online prognostics of turbine engine components.

FSS for Specific Application Purposes - Solving Specific Problems of Risk Analysis

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

Toolbox 

Toolbox 

KKAnalysis: Matlab toolbox able to perform the unsupervised classification of volcanic tremor data.
PoolEvidence and LinguisticBelief: Toolboxes which are aimed at evaluating terrorist acts.
RCSUEX: Certainty Representation of the Exploratory Success. A toolbox in charge of making easier the evaluation of petroleum exploration prospects.
RiskCriticalityAnalyzer and FuzzyReliabilityAnalyzer: Toolboxes which provide a comprehensive framework for the risk evaluation of the construction industry.

FSS for Specific Application Purposes - Giving Support to Software Engineering

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

LibraryToolbox 

Library

FADAlib: This library implements the Fuzzy Array Dataflow Analysis (FADA) method.

M. Belaoucha, D. Barthou, A. Eliche, S. Touati, FADAlib: an open source C++ library for fuzzy array dataflow analysis. In Procedia Computer Science, International Conference on Computational Science (ICCS), 2010, pp. 2075–2084.

Toolbox 

CMMI-ASS: Toolbox to help self-assessment software companies to accomplish the appraisal process.
MRES: A toolbox for selecting resources in software project management.
SEffEst: A toolbox which combines fuzzy logic and neural networks for effort estimation in software projects.

FSS for Specific Application Purposes - Educational

In the following we provide some additional information with FSS listed by lexicographical ordering for each type of software:

LibraryToolbox;  Suite

Library

COALA: Computer Assisted Environment for Learning Algorithms: A set of Eclipse plug-ins which constitute a computer assisted environment to facilitate the learning of algorithms in courses of Computer Science and Engineering.

F. Jurado, A. Molina, M. Redondo, M. Ortega, A. Giemza, L. Bollen, H. Hoppe, Learning to program with COALA, a distributed computer assisted environment. Journal of Universal Computer Science, 15:7 (2009) 1472–1485.
F. Jurado, M. Redondo, M. Ortega, Using fuzzy logic applied to software metrics and test cases to assess programming assignments and give advice. Journal of Network and Computer Applications, 35:2 (2012) 695–712.

InrecoLAN FuzzyMath: Fuzzy logic add-in for OpenOffice.org Calc. InrecoLAN FuzzyMath allows to perform ordinary arithmetic operations and use ordinary mathematical and financial functions with fuzzy numbers
Peach : Peach is a pure-python library, based on SciPy and NumPy to implement algorithms for computational intelligence and machine learning. The aim of this library is primarily educational. Nonetheless, care was taken to make the methods implemented also very efficient.

Toolbox

CAVUS: A web-based system to aid in the evaluation of learning management systems.
EDUrobot: A toolbox which facilitates the understanding of mobile robotics.
eRiskGame: A support teaching tool in software engineering courses.
FEUP: A toolbox aimed at teaching fuzzy control.
FIRS-trainer: A toolbox which focuses on courses related to fuzzy information retrieval systems.
FuzzyCOPE: FuzzyCOPE is a free toolbox for teaching, research and intelligent system development.

M. Watts, B. Woodford, N. Kasabov, FuzzyCOPE - A Software Environment for Building Intelligent Systems - the Past, the Present and the Future. In the ICONIP/ANZIIS/ANNES’99 Workshop Future directions for intelligent systems and information sciences, Dunedin (New Zealand), pp. 188-192, 1999.

FuzzyRAMSET: Matlab toolbox applied to software engineering courses in order to give students a practical experience.
MNTOOL: A a visual and friendly Matlab environment to help students in experimenting with multi-net neural systems.
RTlab: Real-time laboratory environment combines dSPACE DS1103 DSP and Matlab/Simulink/RTW with the aim of helping students to model and control induction motor drives.
VirtualLab: A toolbox aimed at teaching fuzzy control.

Suite

KEEL Software as a Educational Tool:: This suite provides with an educational module well suited to be used in Data Mining, Machine Learning and Knowledge Discovery in Databases courses.

J. Derrac, J. Luengo, J. Alcalá-Fdez, A. Fernandez, S. García, Using KEEL Software as a Educational Tool: A Case of Study Teaching Data Mining. Second International Conference on EUropean Transnational Education (ICEUTE 2011), Salamanca (Spain), pp. 55-60, 2011.

Lau2009: Fuzzy domain ontology extraction suite for adaptive e-Learning.
OmegaT: A free and open source multiplatform Computer Assisted Translation tool with fuzzy matching, etc.

F. Colleoni, S. Calegari, D. Ciucci, M. Dominoni, OCEAN project. A prototype of AIWBES based on fuzzy ontology. In International Conference on Intelligent Systems Design and Applications, Pisa(Italy), pp. 944-949, 2009.

Languages for FSS

NAME PURPOSE
FCL Control
FLOPER Query
FML Control, Modelling
FQUERY Databases
f-SPARQL Query
FuzzyCLIPS Expert Systems
FuzzyProlog Logic Programming
FuzzyXPath Query
FuzzyXQuery Query
IEEE P1855™/D2.0 Control, Modelling
QXMLSum Text Summarization
SQLf Databases
XFSML Modeling

Table 2. Languages for Fuzzy Systems (listed by lexicographical ordering)

In the following we provide some additional information for some of the languages included in the table above:

Fuzzy Control Language (FCL): FCL is defined in part 7 of this norm IEC 61131, offering common understanding of the basic means with which to integrate fuzzy control applications in control systemsand providing a common language with which to exchange portable fuzzy control programs among different platforms. Unfortunately, this standard is not freely available and must be purchased (see www.iec.ch). However, the Draft 1.0 version from 1997 is available and we have not noticed any significant differences between the draft and the final version.

FLOPER: An extension of the XPath query language in the fuzzy logic programming environment for research.
Fuzzy Markup Language (FML): A computer language exploiting the benefits offered by XML-based tools in order to define fuzzy logic controllers.

G. Acampora, V. Loia, C.-S. Lee, M.-H. Wang, On the power of Fuzzy Markup Language. In Studies in Fuzziness and Soft Computing. Heidelberg, Berlin: Springer, 2013.
G. Acampora, V. Loia, Fuzzy control interoperability and scalability for adaptive domotic framework. IEEE Transactions on Industrial Informatics, 1:2 (2005) 97–111.

FQUERY: An approach to data mining in databases.
f-SPARQL: A flexible extension of the SPARQL query language which was designed to express queries over RDF datasets.

FuzzyClips: A fuzzy expert system designed to be used with Tcl.

FuzzyProlog: A Simple General Implementation Using CLP(TeX).
FuzzyXPath: A fuzzy extension of XPath language which provides the degree of similarity between two XML trees.
FuzzyXQuery: A fuzzy-set-based extension to XQuery language which allows preferences on XML documents to be expressed and retrieves documents discriminated by satisfaction degree.
IEEE P1855™/D2.0: Approved Draft Standard for Fuzzy Markup Language

IEEE Approved Draft Standard for Fuzzy Markup Language. In IEEE P1855/D2.0, September 2015 (2016) 1-88
IEEE Draft Standard for FML - Fuzzy Markup Language - for achieving interoperability in fuzzy systems design. In IEEE P1855/D2.0, September 2015 (2015) 1-88

QXMLSum: A query-oriented XML summarization system.
SQLf: A language to handle gradual predicates formalized in the framework of fuzzy set theory.
XFSML: An XML-based language for modeling fuzzy systems that was implemented in Xfuzzy.

Recent Papers on Fuzzy Software Systems (2009-Present)

We have performed a bibliography compilation of journal papers on Fuzzy Systems Software (from 2009 to present). It is maintained by J. Alcalá-Fdez and Jose M. Alonso.

If you would like to include or correct any of the references on this page, please contact the maintainer in their e-mail address: jalcala@decsai.ugr.es or jose.alonso@softcomputing.es

Several considerations for further research in FSS

We focus our attention on four aspects which should guide further research directions in FSS: Interoperability, Novelty, Usability and Relevance.

  • Interoperability: We can find different FSS in the literature for many problems. However, we can rarely operate on those systems with other software because each FSS usually stores the developed fuzzy systems in its own format. Because of this, researchers cannot take advantage of the different proposals that we find in the literature. Some researchers have included some options in their proposals to export and import the developed fuzzy systems to other formats, and other researchers are currently working to develop standard languages which will allow us to exchange fuzzy systems across different platforms.
  • Novelty: The development of novel FSS requires a previous analysis based on the functionality criteria of the existing software in the literature to enable researchers to identify the software needs that the current software cannot provide. This analysis should include a set of basic characteristics (such as programming language, interoperability, and so on) and a set of specific characteristics related to the application domain and the type of software proposed (such as data support, etc.) that allow us to detect the major differences between software and to categorize the proposal as an alternative to the existing software when other requirements are needed.
  • Usability: The true potential of the available software is not realized because the source files are not always openly shared. The open source model makes it easier for other researchers to develop and adapt available software to their problems and provides many advantages.
  • Relevance: When researchers present a new proposal they should guarantee that users can download their software and that it will be maintained, if they want their work to remain relevant. Many researchers use public hosting to share their proposals in order to avoid problems with servers and to provide better maintenance. On the other hand, there is FSS available on the Internet which does not have an associated publication, which complicates the question of broadcasting. Moreover, FSS proposals should be published with the correct title and meaningful keywords in order to maximize their visibility in public search engines

Moreover, the software related to submitted papers must be hosted at the authors' website or at a public hosting, being accessible worldwide.

Related Websites

In the following we maintain a list (by lexicographical ordering) with some of the most popular websites for fuzzy logic:

Fuzzy Logic Repository: This page contains software and materials concerning fuzzy logic and related topics

Fuzzy Sets and Systems: This page contains some links about Professional Organizations and Networks, Fuzzy Logic Journals and Books and Research groups

Task Force on Fuzzy Systems Software Task Force on Fuzzy Systems Software (TF-FSS): This is a Task Force of the Fuzzy Systems Technical Committee (FSTC) which belongs to the Computational Intelligence Society (CIS) of the Institute of Electrical and Electronic Engineers, Inc. (IEEE)

Togai InfraLogic: Company founded by Dr. Masaki Togai in 1987 as the world's first company dedicated to the application of fuzzy logic

Related Review Papers

In the following we maintain a list with new related papers reviewing particular software types or important application domains:

  • J. Alcalá-Fdez and J.M. Alonso. "A Survey of Fuzzy Systems Software: Taxonomy, Current Research Trends and Prospects". IEEE Transactions on Fuzzy Systems 24:1 (2016) 40-56, DOI:10.1109/TFUZZ.2015.2426212.
  • D.D. Nauck. "GNU fuzzy". IEEE International Conference on Fuzzy Systems (London, 2007) pp. 1019–1024 
  • S. Sonnenburg, M.L. Braun, Ch.S. Ong, S. Bengio, L. Bottou, G. Holmes, Y. LeCun, K.-R. Müller, F. Pereira, C.E. Rasmussen, G. Rätsch, B. Schölkopf, A. Smola, P. Vincent, J. Weston and R. Williamson. "The need for open source software in machine learning". Journal of Machine Learning Research 8 (2007) 2443–2466 
  • L.O. Hall and R.J. Hathaway. "Software review - Fuzzy Systems Toolbox - Fuzzy Logic Toolbox". IEEE Transactions on Fuzzy Systems 4:1 (1996) 82–85 

Future Events

Past Events:

  • Special Session – Software for Soft Computing (Special Session 15)

    Organizers: Detlef Nauck
    This session was organized as part of the FUZZ-IEEE 2007 conference in London, UK at July 23-26, 2007.

 

(This Web page was created and maintained by J. Alcalá-Fdez y J.M. Alonso