This post provides manuals and information about the BPL system as well as a history with the different versions of the BPL system that can be downloaded.
Bousi~Prolog: Design and Implementation
Information about the design and implementation of the BPL system can be find at the following address:
.https://dectau.uclm.es/bousi-prolog/wp-content/uploads/sites/sl_PROLE2023.pdf
There are the slides from a presentation at the PROLE 2023 workshop.
Bousi~Prolog Manual
The current version of the Bousi∼Prolog manual is under construction.
At the present time we provide the manual of BPL version 2.0 by clicking:
Bousi∼Prolog ver. 2.0: Implementation, User Manual and Applications
As the title of the document specifies, it is more than a simple user manual, since it gives insights on the theory supporting this system and the techniques we used to implement it. However it does not contain the last enhancements incorporated during the last years. See the “Language Overview” and the “Release Notes” posts to know these new features.
Program Examples
Bousi∼Prolog may contribute to resolve several problems extracted from different application areas, where it is mandatory to deal with vagueness and uncertain knowledge. The following link contains a set of program examples:
A collection of sample programs
Most of them were described in a paper presented at the 2010 International Conference on Fuzzy Computation.
BPL version 3.6.1
Compared to the former version 3.6, the present version 3.6.1 adds, as an important enhancement, a 64 bit BPL installer released for Windows (tested on Windows 10) and fixes two minor bugs related to the use of the ~~ infix operator.
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.6.1-highsierra-executable
bpl-3.6.1-mojave-executable
bpl-3.6.1-ubuntu32-executable
bpl-3.6.1-ubuntu64-executable
bpl-3.6.1-win32-executable
bpl-3.6.1-win64-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.6.1-unix-installer
bpl-3.6.1-win32-installer
bpl-3.6.1-win64-installer
BPL version 3.6
The main contribution of this version is the incorporation of novel implementation techniques for improving the efficiency of the BPL system. BPL version 3.6 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.6-mojave-executable
bpl-3.6-ubuntu32-executable
bpl-3.6-ubuntu64-executable
bpl-3.6-win32-executable
bpl-3.6-win64-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.6-unix-installer
bpl-3.6-win32-installer
BPL version 3.5.1
With respect to former version 3.5, the present version 3.5.1 adds a minimal but important enhancement: checking for cycles in WordNet hierarchies to avoid non-termination. BPL version 3.5.1 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.5.1-highsierra-executable
bpl-3.5.1-ubuntu32-executable
bpl-3.5.1-ubuntu64-executable
bpl-3.5.1-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.5.1-unix-installer
bpl-3.5.1-win32-installer
BPL version 3.5
The main enhancements of this new version 3.5 are that it allows annotated rules and eliminates a number of bugs. Rules can be annotated with an approximation degree following syntax: Head :- Body with Degree. BPL version 3.5 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.5-highsierra-executable
bpl-3.5-ubuntu32-executable
bpl-3.5-ubuntu64-executable
bpl-3.5-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.5-unix-installer
bpl-3.5-win32-installer
BPL version 3.4
This new version 3.4 provides a better compilation method which optimizes TPL code. It also incorporates an explicit weak unification operator ~~, which can be used in goals and the body of rules. BPL version 3.4 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.4-highsierra-executable
bpl-3.4-ubuntu32-executable
bpl-3.4-ubuntu64-executable
bpl-3.4-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.4-unix-installer
bpl-3.4-win32-installer
BPL version 3.3
With respect to former version 3.2, this new version incorporates improvements in the operational mechanism and full access to WordNet through a wide repertoire of built-in predicates. Now all public predicates of the WN-CONNECT modules are accesible through the command line of the BPL shell. BPL version 3.3 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.3-highsierra-executable
bpl-3.3-ubuntu32-executable
bpl-3.3-ubuntu64-executable
bpl-3.3-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.3-unix-installer
bpl-3.3-win32-installer
BPL version 3.2
With respect to former version 3.1.1, the current version 3.2 introduces filtering for compiled program optimization and modifiers on predicate symbols. BPL version 3.2 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.2-highsierra-executable
bpl-3.2-ubuntu32-executable
bpl-3.2-ubuntu64-executable
bpl-3.2-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.2-unix-installer
bpl-3.2-win32-installer
BPL version 3.1.1
With respect to former version 3.1, the present version 3.1.1 fixes a bug for the external computation of block equations . In addition it provides a host safe mode for web deployment. BPL version 3.1.1 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.1.1-highsierra-executable
bpl-3.1.1-ubuntu32-executable
bpl-3.1.1-ubuntu64-executable
bpl-3.1.1-win32-executable
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.1.1-unix-installer
bpl-3.1.1-win32-installer
BPL version 3.1
This release integrates Bousi~Prolog with WordNet. It provides directives that allow us to generate proximity equations automatically by using some standard similarity measures based on WordNet. BPL version 3.1 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.1-highsierra-executable.zip
bpl-3.1-ubuntu64-executable.zip
bpl-3.1-ubuntu32-executable.zip
bpl-3.1-win32-executable.zip
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.1-unix-installer.zip (linux-like and macOS)
bpl-3.1-win32-installer.zip
BPL version 3.0
This release works with unification by proximity. BPL version 3,0 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-3.0-highsierra-executable.zip
bpl-3.0-ubuntu32-executable.zip
bpl-3.0-ubuntu64-executable.zip
bpl-3.0-win32-executable.zip
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-3.0-unix-installer.zip (linux-like and macOS)
bpl-3.0-win32-installer.zip
BPL version 2.0
This release incorporates fuzzy sets and a great number of improvements with regards to version 1.07. Also, it has been updated to deal with the new features of SWI-Prolog ver. 7.6.4.
BPL version 2,0 can be downloaded by clicking these links:
Executables: They only contain executable files. They do not require installing SWI-Prolog.
bpl-2.01-highsierra-executable.zip
bpl-2.01-ubuntu32-executable.zip
bpl-2.01-ubuntu64-executable.zip
bpl-2.01-win32-executable.zip
Installers: They contain the source files and the scripts necessary for their compilation and installation automatically.
bpl-2.01-unix-installer.zip
bpl-2.01-win32-installer.zip
BPL version 1.07
The BPL system version1.07 was a prototype, written on top of SWI-Prolog. Source code was translated (compiled) into an intermediate Prolog code representation which was called “TPL code” (Translated BPL code). Then, following standard techniques, a meta-interpreter executed the TPL code according to the weak SLD resolution principle.
This is and old version of the BPL system and it can not deal with the new features of SWI-Prolog ver. 7.6.4.
BPL version 1.07 can be downloaded by clicking this link: bousi-installer_v1.07.zip
Do you have a build for MacOS Mojave?
The build for High Sierra does not work on Mojave:
MacBook-Pro:bpl-3.2-highsierra-executable$ ./bpl
dyld: Library not loaded: /usr/lib/system/libsystem_network.dylib
Referenced from: bpl-3.2-highsierra-executable/lib/libSystem.B.dylib
Reason: image not found
Thank you!
Hi.
We have not yet taken that step of migrating to the new version of the MacOS system, Mojave. We hope to do it in the near future.
We regret the problems you have had in your installation.
However, you can appreciate the characteristics of our language using the online version: https://dectau.uclm.es:8443
I discover Bousi-Prolog which seems full of promises !
Apparently the Ubuntu executable packages proposed for version 3.5 are in fact at version 3.4. Is it possible to fix this point or should I compile and install the source version 3.5 of the software ?.
Windows executable version is well the 3.5.
We apologize for any inconvenience we may have caused. Now the problem you point out is solved.
Note that we have just released a new version 3.5.1 which adds a minimal but important enhancement: checking for cycles in WordNet hierarchies to avoid non-termination.
Thanks for the new version 3.5.1. Adter a first attempt to use it I have these two observations :
1- With the bpl-3.5.1-ubuntu64-executable version used on Ubuntu 20.04.1 I get the following error message :
“./bousi: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
”
even though the package libtinfo-dev is properly installed on the system.
2-, With the bpl-3.5.1-unix-installer version, I manage to compile the program and to run a first example. Nevertheless the command line edition has no history functions as if libedit (Editline library) was not operational even though the package libeditline-dev is properly installed on the Ubuntu 20.04.1 system.
The bpl-3.5.1-ubuntu64-executable version needs to have a LD_LIBRARY_PATH properly defined to work. To do so the bpl command can be modified as follows :
#!/bin/bash
#export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=./
./bousi
Nevertheless, as for the locally builded version, the command line edition history is not operational.
An observation :
Bousi 3.5.1 does not work with the last stable version (8.2.1-3) of swi-prolog. It works with version 7.6.4.
I tried to compile/install Bousi-Prolog 3.5 but it fails to do so and complains that it cannot find SWI-Prolog. However this software is well installed with the version 8.1.31 and can be launched with the command swipl.
With respect to point 2: remove comments of both all the calls to the history predicates, and the predicates themselves (look for “history” in bplShell.pl: you will find load_history/0, save_history/0, history_filename/1, max_history_commands/1 and their calls).