\documentclass[10pt,a4paper]{article} \usepackage[latin1]{inputenc} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{graphicx} \usepackage{listings} \begin{document} \title{Answer to reviewers \\ jFuzzyLogic: A Robust and Flexible Fuzzy-Logic Inference System Language Implementation } \author{Pablo Cingolani and Jes\'us Alcal\'a-Fdez} \date{} \maketitle \section{REVIEW NO. 1} Comments to the authors: This work is definitely related to the topics of the session on "Software for Soft Computing". It presents jFuzzyLogic, an open source library for making easier the design of fuzzy controllers. The manuscript is well-written and organized. I only have some minor comments and suggestions aimed to improve even more the quality of the present work: \begin{itemize} \item[1)] In section II, authors claim "a comparison of freely available fuzzy logic software" but what about commercial software? \item[\textbf{Answer}] We clarified in the main text that it is no the intention of this paper to perform a comprehensive comparison of all available fuzzy logic packages. We limited the comparison to freely available packages since this is the category were jFuzzyLogic belongs as well as the most commonly used in academic environments. \item[2)] Even though the paper focuses on fuzzy control, please notice that there are some free software tools (that should be taken into account in this work) for fuzzy modeling which offer advances methods for generation of fuzzy systems no matter the specific application domain where they will be used. Look at tools like Xfuzzy (http://www2.imse-cnm.csic.es/Xfuzzy/), Fispro (http://www.inra.fr/mia/M/fispro/FisPro\_EN.html), GUAJE (http://www.softcomputing.es/guaje), etc. Obviously, partitions and rules designed with such tools may be later translated into the FCL format and being used with jFuzzyLogic. \item[\textbf{Answer}] The suggested software packages have been added to our comparison table. We agree that software developers should embrace the use of standards instead of trying to define their own formats. jFuzzyLogic, provides a library with a ready to use implementation of the standard, thus alleviating much of the work for all developers. \item[3)] You should remark, someway, on Table I those five software packages that "seemed to be maintained, compiled correctly, and had extensive functionality", putting special emphasis on those two which are based on jFuzzyLogic. \item[\textbf{Answer}] As suggested, we added an asterisk after the package name (e.g. jFuzzyLogic$^\ast$) to indicate that that package ``seems to be maintained, compiles correctly, and has extensive functionality". The packages based on jFuzzyLogic were marked as 'Uses jFuzzyLogic' in the notes column. \item[4)] Table I includes information about the number of membership functions (MF), but what about their type/shape? \item[\textbf{Answer}] We clarified in the main text that the most common membership functions is trapezoid and it's special cases (triangular, rectangular, etc.). Nevertheless, as we pointed out before, it is not the intention to perform a comprehensive review of the all avalaible packages. So, for the sake of brevity, we don't enumerate all membership functions for all packages. \item[5)] Be careful, Table II (page 4) should turn up before Table III (page 3). In addition, check the use of quotation marks in Table III. \item[\textbf{Answer}] As suggested, we corrected the listing style to show quotes properly as well as the table order. \item[6)] Are tables II to V formal tables? In fact, they are listing code. You should use verbatim package or something similar. \item[\textbf{Answer}] We are using package ``listings''. We added \textit{basicstyle=\\ttfamily} to \textit{lsset} command in order to make it similar to verbatim package. \item[7)] You should plot the fuzzy partitions related to the example detailed in Tables II and III. It would help to understand better the example making it much more illustrative. Moreover, the rule base defined is made up of only three rules and as a result it is incomplete, i.e., it does not cover all possible situations. What is the suggested tip in case service=1 and food=4 (in the current example none of the three rules would be fired)? \item[\textbf{Answer}] i-) As suggested, we added a figure showing the membership functions for that example. ii-) The rule base is not incomplete. In case service = 1 and food = 4, rule number 1 is activated ("if service is poor OR ..."). \item[8)] The notation used in Tables II, IV and V are not exactly the same. For instance, Table II does not include DEFAULT related to DEFUZZIFY. AND/ACT/ACCU are also missing in the RULEBLOCK. This fact should be corrected or explicitely noted in the paper. \item[\textbf{Answer}] i-) By no means this paper is intended to be an FCL handbook or a resurce to learn the language. FCL is only briefly introduced and some examples are shown just to show how easy to learn the language is. Nevertheless, we repeatedly refer to the FCL specification (IEC-61131-7) for those who are interested in learning the details of the language. ii-) In FCL, the mentioned statements (DEFUZZIFY, ACT and ACCU) are optional and have sensitive defaults. Thus all these statements can be omitted. Showing that they can be omitted is also part of the examples. \item[9)] In Section III.C authors state that "a few optimization algorithms are already implemented... other optimization algorithms can be implemented". Coming back to what I say in 2) there are many algorithms useful for fuzzy modeling that may be directly applicable in the context of jFuzzyLogic. The only thing missing is the right parser to translate from one format to other. \item[\textbf{Answer}] We do agree that the main problem is that each software developer creates custom formats. Obviously jFuzzyLogic is intended to help alleviate this problem by providing a common ground implementation of the standard that developers can use. This greatly simplifies the work to software developers who want to adopt the standard. Of course, using a standard means that there is no longer need for 'translating from one format to the other'. Thus saving time on irrelevant tasks. \item[10)] In Fig.3, be sure that variable names are in accordance with Table IV, but also with the related explanation in Section IV (page 5). \item[\textbf{Answer}] Variable names have been changed accordingly. \item[11)] In "Acknowledgement" use the full names of authors instead of PC and JAF. \item[\textbf{Answer}] The names have been changed accordingly. \item[12)] Some minor typos: \begin{itemize} \item[12.1)] "Figure" should be substituted by "Fig." according to WCCI templates. \item[12.2)] "of a [the] wall following" (page5) \item[12.3)] "The [main] requirement[s] ... is[are]..." (page5) \item[12.4)] "More than one output variable[s]" (page5) \item[12.5)] Check the use of quotation marks all along the paper. \item[12.6)] Ref2. pages? \item[12.7)] Ref5. "An introduction[industrial] reality" \item[12.8)] Ref10. C.J. Cabrera J.A. ? \item[12.9)] Ref11. I.E.C.? \end{itemize} \item[\textbf{Answer}] All changes have been incorporated. \end{itemize} \section{REVIEW NO. 2} Comments to the authors: The paper presents a library for designing fuzzy logic controllers. The library is called jFuzzyLogic. It is written in Java and respects the FCL (fuzzy control language) IEC-61131-7 specifications. FCL is an instruction list oriented programming language. The aim is to provide a standardized language and parser, which could be interesting for designing industrial fuzzy controllers. The paper is clear and easy to read. However some points are questionable. \begin{itemize} \item[1)] The state of the art of fuzzy logic software given in the introduction is incomplete and does not include fuzzy software such as Xfuzzy, FisPro, Guaje, Nefclass... It should absolutely be completed to avoid giving false information to the readers. \item[\textbf{Answer}] See answer to item 1 from reviewer 1. \item[2)] Another flaw is the use of misleading terms in Part IIIB. What the authors call aggregation is usually called combination in rule premises. Similarly, activation is in fact the result of an implication operator. Activation should not be confused with rule matching degree. Here again, accumulation is usually called rule aggregation. \item[\textbf{Answer}] We added the following sentence to clarify this: \textit{It should be noted that we adhere to the definitions of Aggregation, Activation and Accumulation as defined by IEC-61131-7, which may differ from the naming conventions from other references (e.g. ``Aggregation" may sometimes be called ``Combination").} The reviewer points out another way to call these methods/operators. Since this paper focuses on IEC implementation, we prefer stick to the definitions provided by the norm. The norm clearly defines terms and how they are used. Moreover the operator in FCL is called 'ACCU' not 'AGGR', so changing the terminology as proposed would be extremely confusing. We refer the reviewer IEC-61131-7 pages 71 to 77 for details of these definitions. We reproduce here figure A.2.3. for his convince. \begin{figure}[!h] \centering \includegraphics[width=5in]{figs/AccAgg.png} \caption{Aggregation, Activation and Accumulation as defines in IEC-61131-7.} \label{f:tipperMf} \end{figure} \item[3)] Part IIIb mentions that the membership functions (MFs) are systematically discretized. It seems a pity for analytical forms very easy to compute such as trapezoidal or triangular MFs. \item[\textbf{Answer}] It is true that we sacrifice performance in order to be able to have generic membership functions. This is because jFuzzyLogic is very flexible and accepts arbitrarily defined functions. We are thinking on implementing such performance optimization in future releases of our software. Specially when the fuzzy system is simple and only includes trapezoidal membership functions. \end{itemize} The paper quality would be improved if the authors could address the following two topics: \begin{itemize} \item[1)] hierarchical controllers. How is one block linked to another one? \item[\textbf{Answer}] This can be done using the java API. It was clarified in the main text. \item[2)] optimization. Is the specification of the data used for optimizing the membership functions included in the FLC model? \item[\textbf{Answer}] The norm only defines FCL language. Optimization is implemented as an additional feature in our package. \item[3)] English spelling and grammar: could be improved. for instance: page2, these limitation -> these limitations page 4, non neglible -> non-neglectable page 5, gradient descend -> gradient descent page 5, a the wall -> the wall case of study -> case study \item[\textbf{Answer}] We corrected the text as suggested. \end{itemize} \section{REVIEW NO. 3} Comments to the authors: \begin{itemize} \item The paper is acceptable, but I would be happier if it had stronger evaluation section. \item[\textbf{Answer}] As suggested by this and the other reviewers, we added some packages to the comparison table. \end{itemize} \end{document}