opencog | singnet |
---|---|
Probabilistic Logic Network, or PLN for short, is a logic invented by Ben Goertzel et al [1] for common sense reasoning. It is particularily well suited for uncertain reasoning, especially when knowledge is based on limited observations from reality, but can also handle abstract mathematical reasoning, and the relationship between the two.
To handle uncertainty PLN represents truth as a second order distribution, i.e. a probabilistic distribution over probabilistic distributions. Doing so allows to capture uncertainty while remaining in the well known and proven framework of probability theory.
The lead developer has walked away from the project.
- Build and install Unified Rule Engine
# Download PLN
git clone https://github.com/opencog/pln.git
# Move to its project folder
cd pln
# Build with CMake
mkdir build
cd build
cmake ..
make -j
After building, you must install PLN
sudo make install
Running ldconfig
might required as well
ldconfig /usr/local/lib/opencog
The easiest way to use PLN is via its scheme bindings. For that enter
guile
load the PLN module
(use-modules (opencog pln))
then load PLN rules with functions pln-load
, and run the forward and
backward chainers with pln-fc
and pln-bc
. More help can be found in
guile's online help (help pln-load)
, (help pln-fc)
and (help pln-bc)
.
More usage information can be found in
PLN examples can be found under the examples/pln
directory. In particular the following examples use the pln
module
The other examples can be informative but directly use the URE and thus are less user friendly.