**********************
* BOUSI~PROLOG 4.0.1 *
**********************



Summary
-------

Bousi~Prolog is a fuzzy logic programming system, based on SWI-Prolog, developed by P. Julian-Iranzo and Juan Gallardo-Casero from Castilla-La Mancha University, and Fernando Saenz-Perez from Complutense University of Madrid.

With respect to former version, this one fixes a bug about the declaration of the hypothetical operator /\, which avoided to assume more than 2 rules for a single context.

More information about these and other features of BPL can be found in Section References at the end of this document.



Requirements
------------

* Building from sources (not required for the executable version):

  - SWI-Prolog ver. 7.6.4 32bit, with swipl.exe and swipl-ld.exe accesible from the PATH environment variable.
       (Bousi~Prolog has been adapted to run on the new features 
        provided by version 7.6.4 of SWI-Prolog. Previous versions of this software may cause 
        problems in combination with the programs offered in this release.)
    If they are not accessible, set this variable. 
    Example: set path=%programfiles(x86)%\SWI-Prolog 7.6.4\bin;%path%
  
  - MinGW32, with gcc and mingw32-make accesible from the PATH environment variable.
    If it is not accessible, set this variable. 
    Example: set path=%programfiles(x86)%\MinGW\bin;%path%
  
  - flex, as found in GnuWin32 distributions, is in the path
    Example: set path=%programfiles(x86)%\GnuWin32\bin;%path%

* If access to WordNet is required:

  1. Download WordNet 3.0 Prolog version from http://wordnetcode.princeton.edu/3.0/WNprolog-3.0.tar.gz, and unzip it in a directory of your choice (for example: C:\WordNet3.0).
   
  2. Optional but recommended: Set the environment variable WNDB to this newly created directory. If set, the directive for connecting to WordNet does not need the path explicitly specified in each user program with the directive :- wn_connect(+Directory). If not set, the default directory C:\Wordnet3.0 is used.
     Example: Type in the terminal:
       set WNDB=C:\Users\myuser\Downloads\Wordnet3.0
 


Installation
------------

After checking the above requirements are satisfied:

1) Extract the contents of the zip file to a temporary folder (if you did not do it already).

2) Run the 'installer.bat' script located inside the 'bpl-4.0-win32-installer' directory and follow the on screen instructions. 

3) After the installation, you can safely delete the 'bpl-4.0-win32-installer' directory.



Executing the Bousi-Prolog system
---------------------------------

Once the Bousi-Prolog system has been installed, select Start -> Bousi-Prolog -> Run Bousi-Prolog to start it.

Alternatively, you can run it from a terminal (cmd console) in the installation directory by typing bousi.exe.



Testing the Bousi-Prolog system
-------------------------------

Executing the "ts" command requires it to be the very first command issued at the system prompt, and the Bousi-Prolog system started from its installation directory. The following steps can be done to ensure this:

1) Open a terminal.
2) Navigate via the operating system shell command line to the directory where the system was installed (usually: cd /usr/local/bousi-source in MacOS/Linux or cd c:\Bousi-Prolog in Windows).
3) Enter "bousi" to launch the Bousi-Prolog system.
4) Enter the "ts" command in the Bousi-Prolog shell.



License information
-------------------

Bousi~Prolog is licensed for research and educational purposes only and it's distributed with NO WARRANTY OF ANY KIND. You are freely allowed to use, copy and distribute Bousi~Prolog provided that you make no modifications to any of its files and give credit to its original authors. 

The following libraries and tools have been used for building Bousi~Prolog:
  - SWI-Prolog, developed by Jan Wielemaker, and licensed under the GNU Lesser General Public License (LGPL).
  - MinGW, originally authored by Colin Peters, and licensed under a MIT style license
  - Flex, originally developed by Vern Paxson, and licensed under the 2-clause BSD license.



Homepage
--------

Please visit our homepage for the latest news on Bousi~Prolog:
https://dectau.uclm.es/bousi-prolog



References
----------

[RJ2014]  C. Rubio-Manzano and P. Julián-Iranzo (2014).  "A Fuzzy linguistic Prolog and its applications".  Journal of Intelligent and Fuzzy Systems 26(3).

[JR2015]  P. Julián-Iranzo and C. Rubio-Manzano (2015).  "Proximity-based unification theory".  Fuzzy Sets Syst. 262, C (March 2015), 21-43.  DOI: 10.1016/j.fss.2014.07.006

[JR2017]  P. Julián Iranzo and C. Rubio-Manzano (2017).  "A sound and complete semantics for a similarity-based logic programming language".  Fuzzy Sets and Systems 317:1-26.  DOI: 10.1016/j.fss.2016.12.016

[JS2018]  P. Julián-Iranzo and F. Sáenz-Pérez (2018).  "An Efficient Proximity-based Unification Algorithm". 2018 IEEE International Conference on Fuzzy Systems.  DOI: 10.1109/FUZZ-IEEE.2018.8491593

[JS2019a]  P. Julián-Iranzo and F. Sáenz-Pérez (2019).  "WordNet and Prolog: why not?". EUSFLAT 2019 Conference.  DOI: 10.2991/eusflat-19.2019.113

[JS2020]  P. Julián-Iranzo and F. Sáenz-Pérez (2020). "A System implementing Fuzzy Hypothetical Datalog". IEEE International Conference on Fuzzy Systems (FUZZ-IEEE), Glasgow, United Kingdom, pp. 1-8.  DOI: 10.1109/FUZZ48607.2020.9177715

[JS2021a]  P. Julián-Iranzo and F. Sáenz-Pérez (2021).  "Implementing WordNet Measures of Lexical Semantic Similarity in a Fuzzy Logic Programming System".  Theory and Practice of Logic Programming.

[JS2021b]  P. Julián-Iranzo and F. Sáenz-Pérez (2021). "Proximity-based Unification: an Efficient Implementation Method".  IEEE Transactions on Fuzzy Systems 29(5).

[JS2021c]  P. Julián-Iranzo and F. Sáenz-Pérez (2021).  "Planning for an Efficient Implementation of Hypothetical Bousi~Prolog".  Theory and Practice of Logic Programming 20(5).

[JS2022]  P. Julián-Iranzo and F. Sáenz-Pérez (2022).  "Bousi~Prolog: Design and Implementation of a Proximity-based Fuzzy Logic Programming Language".  Expert Systems with Applications.  [Under review]

[SJRS21]  S.H. Al-Sayadi, P. Julián-Iranzo, F.P. Romero and F. Sáenz-Pérez.  "A Fuzzy Declarative Approach to Classify Unlabeled Short Texts based on Automatically Constructed WordNet Ontologies".  Studies in Computational Intelligence.

[JS23]  P. Julián-Iranzo and F. Sáenz-Pérez, "Bousi~Prolog: Design and implementation of a proximity-based fuzzy logic programming language", Expert Systems with Applications, Volume 213, Part A, 2023.

[JRSV24]  P. Julián-Iranzo, G. Rigau, F. Sáenz-Pérez, Pablo Velasco-Crespo, "Conversion of the Spanish WordNet databases into a Prolog-readable format", Journal on Language Resources and Evaluation, Springer, 2024.

