/pln

Probabilistic Logic Network (PLN) implemented on top of the Unified Rule Engine (URE). https://wiki.opencog.org/w/Probabilistic_logic_networks

Primary LanguageSchemeOtherNOASSERTION

Probabilistic Logic Network

opencog singnet
CircleCI CircleCI

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.

PLN is no longer maintained

The lead developer has walked away from the project.

Building and Installing

Prequisite

Building PLN

# 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

Installing PLN

After building, you must install PLN

sudo make install

Running ldconfig might required as well

ldconfig /usr/local/lib/opencog

Usage

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

opencog/pln/README.md

Examples

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.