A tool to evaluate fuzzy quantified expressions using Quantifier Fuzzification Mechanisms (QFM).
- Three models from Ingo Glöckner
(http://www.springer.com/de/book/9783540296348) - Four models from Diaz-Hermida et al.
(http://ieeexplore.ieee.org/abstract/document/1516158/, https://www.sciencedirect.com/science/article/pii/S016501140400096X) - One QFM based on representation levels from Sanchez et al.
(https://www.sciencedirect.com/science/article/pii/S0165011411003186) - A game-based QFM model from Baldi and Fermüller
(https://link.springer.com/chapter/10.1007/978-3-319-66830-7_11)
Note: Using the plotting tool requires a folder "Plots" to be present in the same directory. A copy of this is provided in the repository, and the plots can be rendered manually by installing the QFM library and running the function "generate_svgs". Instructions for this optional step are given below.
Todo
On the Release page
Needed tools: ocaml, opam
Needed libraries: lablgtk2 (including lablgtk2.rsvg), (optionally: plplot)
Note on MacOS: In principle this should be identical, as MacOS is natively supported by the OCaml developer, INRIA. However, I have no MacOS machine available to make sure things work as described here. In a perfect world, it should behave identical to how it does on Linux, though.
- Make sure that the needed tools and libraries are installed.
On Linux just use the packaging system of your distro of choice, on MacOS a few options are available. Note: The corresponding developement packages (-dev, -devel, etc.) have to be installed as well.
- Install Oasis.
The build process uses Oasis, a build manager for Ocaml. Install it through opam by typing opam install oasis
.
- Install needed OCaml libraries.
The following libraries need to be installed (through opam).
- OCaml Batteries Included
opam install batteries
- OCaml GTK2 bindings
opam install lablgtk2
(Note: if lablgtk2.rsvg was not already installed during step 0, then no bindings will be created, which are needed to succesfully build QFMtool)
Optionally, Plplot can also be installed. To use this in the QFM library, the _oasis file has to slightly changed, as it doesn't install this by default, as it is not needed. In "BuildDepends:", "plplot" must be added, and in "Modules:", "Plot" must be added. This must be done before running oasis setup
. Otherwise, it must be rerun.
- Using Oasis to build/install QFM
Open a terminal, and set the working directory to be where the _oasis file is located.
Then type oasis setup && make && make install
This will first set up the build process, and then proceed to build and install the QFM library.
These can then be imported on the Ocaml toplevel. The QFM folder should also have a ".ocamlinit" file, so just typing "ocaml" here should already load the library.
There is a build script to build the QFMtool UI (the Linux version should work on MacOS too), but compiling requires local installation of a few libraries, beyond the ones mentioned here (no catch-all for all environments, read the error-messages and make sure to have everything needed for linking, should be fairly straightforward).
- Set up the OCaml environment.
Install the "graphical installer" from here (32-bit recommended for compatability purposes, maybe this gets better in time) The installer should be straightforward to use. It will setup Cygwin and everything else needed.
- Install needed libraries.
First install depext and depext-cygports through opam
opam install depext
opam install depext-cygports
Note: make sure to add "/usr/i686-w64-mingw/sys-root/mingw/bin" to the PATH, as recommended by the last command.
Afterward, the following commands should install all that is needed:
opam install oasis
opam depext -i lablgtk
opam install batteries
- Using Oasis to build/install QFM (and the UI)
Go to the directory with the src folder and _oasis file.
Then,
oasis setup
(to set up the make environment)make
make install
(use 'make reinstall' in future executions)
Use the denoted buildscript (should be called 'buildui_win.sh')
./buildui_win.sh
This will generate a "QFMtool.exe" file.
Note: This will only run with all needed dlls from "/usr/i686-w64-mingw/sys-root/mingw/bin" unfortunately