This new release has already been uploaded to Sonatype OSS repositories, and must be available in Maven central repositories within hours.
This release adds defuzzification functions to nebular. The following ones are available now:
Nebular has a few more functions now. Besides the already released membership functions (see older posts for a complete list) there are now some defuzzification functions.
At moment we have the centroid and the bisector defuzzification functions, being centroid the most used one. We will write maxima functions next week.
After that we will add some more documentation and examples and probably will submit a patch to Apache Commons Functor to some parts of the Range and Functions API. ... read more
Unfortunately Apache Commons Functor still hasn't been released. So we included the project sources in 0.2 release, so that nebular it can be available from Maven central repository. It is not a good practice, but hopefully before we release 1.0 [functor] will be already released.
In this first part, we implemented the membership functions available in Matlab Fuzzy Toolbox. And now we will decide whether we should implement a Fuzzy Inteference System, other membership functions, some sort of Fuzzy Set data structure (probably we will stick to Java data structures), Type2 Fuzzy Logic, or maybe provide utility methods for operations with fuzzy sets.... read more
Last week I spent some hours working on nebular, preparing it for 0.1 release. Part of what was done was migrating my graduation project to nebular.
The project was named bellmanzadeh after a paper published by Bellman and Zadeh. At that time, I ported some functions from Matlab Fuzzy toolbox to Java. Now, while I was porting my old code to nebular, I wondered whether the code implementation was really correct, from a mathematical point of view.... read more
Today I stumbled across some functional code in the Apache Math project. This functional code included functions like Gaussian. Probably Apache Math can be used in conjunction with Apache Functor as a basis for Nebular.
And maybe after learning more about the functional objects in Apache Math, some of them could be implemented in Apache Functor too.
Cheers, B
For years I've been using Apache code in my projects, but only very recently I started to contribute to the projects. There are three things that amazed me: 1) the amount of things that I need to learn or read more about, 2) how many talented programmers contribute with Apache code and 3) the kindness of these programmers.
During the call for votes to release 1.0 several questions were raised by sebb and Emmanuel Bourg. I'm slowly addressing each item and creating issues / patches for them.... read more
Today Simone Tripodi called votes on Functor 1.0. Don't know whether they will release this as is, or will fix minor issues pointed by the users in Functor dev-list. They may release an alpha version, or an SNAPSHOT in Maven public repository.
In the meanwhile, I will build Functor and start modeling Nebular objects. Hopefully in one or two weeks I will be able to run some Membership Functions or contribute to Apache Functor :)... read more
When I had to create Membership Functions in Java in 2007, I did similar to the way some functional programming API's do in Java. I created a base class that had a method like apply or evaluate.
Now, after Scala, Clojure, FunctionalJava, Guava, Functor and other languages and API's appeared, looks like functional programming in Java makes much more sense in a way that Nebular could let the users "pass" a Membership Function (actually something like a lazy evaluated entity) and return the Fuzzy Set, as well as define operations. ... read more
In 2007, after writing my first Java application using Fuzzy Logic (BellmanZadeh) I've noticed the lack of a pure Java Fuzzy Logic API. Back then I used Matlab as reference to implement some basic functions and chart plotting.
Nowadays you can find some API's in Java, but some use DSL (domain specific languages) or rely on custom editors and other tools. Or worst, have not been maintained for a while. ... read more