OpenCog is a framework for developing AI systems, especially appropriate for integrative multi-algorithm systems, and artificial general intelligence systems. Though much work remains to be done, it currently contains a functional core framework, and a number of cognitive agents at varying levels of completion, some already displaying interesting and useful functionalities alone and in combination.
The main project site is at https://opencog.org
An interactive tutorial for getting started is available at: https://github.com/opencog/opencog/blob/master/TUTORIAL.md
To build and run OpenCog, the packages listed below are required.
With a few exceptions, most Linux distributions will provide these
packages. Users of Ubuntu 14.04 "Trusty Tahr" may use the dependency
installer at /scripts/octool
. Users of any version of Linux may
use the Dockerfile to quickly build a container in which OpenCog will
be built and run.
Common OpenCog C++ utilities https://github.com/opencog/cogutils It uses exactly the same build procedure as this package. Be sure to
sudo make install
at the end.
OpenCog Atomspace database and reasoning engine https://github.com/opencog/atomspace It uses exactly the same build procedure as this package. Be sure to
sudo make install
at the end.
The following packages are optional. If they are not installed, some optional parts of OpenCog will not be built. The CMake command, during the build, will be more precise as to which parts will not be built.
Natural Language Parser for English, Russian, other languages. Required for experimental Viterbi parser. https://www.abisource.com/projects/link-grammar/
MOSES Machine Learning https://github/opencog/moses It uses exactly the same build proceedure as this pakcage. Be sure to
sudo make install
at the end.
Open Graphics Library Used by opencog/spatial/MapTool https://www.opengl.org Commonly provided with your video card driver
Simple DirectMedia Layer Used by opencog/spatial/MapTool https://www.libsdl.org | libsdl1.2-dev
Simple DirectMedia Layer extension Used by opencog/spatial/MapTool https://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
C++ template library for parallel programming https://www.threadingbuildingblocks.org/download | libtbb-dev
Asynchronous messaging library https://zeromq.org/intro:get-the-software | libzmq3-dev
Perform the following steps at the shell prompt:
cd to project root dir
mkdir build
cd build
cmake ..
make
Libraries will be built into subdirectories within build, mirroring the structure of the source directory root.
To build and run the unit tests, from the ./build
directory enter
(after building opencog as above):
make test
OpenCog can be used in one of three ways, or a mixture of all three: By using the GNU Guile scheme interface, by using Python, or by running the cogserver.
Guile provides the easiest interface for creating atoms, loading them
into the AtomSpace, and performing various processing operations on
them. For examples, see the /examples/guile
and the
/examples/pattern-matcher
directories.
Python is more familiar than scheme (guile) to most programmers, and
it offers another way of intrfacing to the atomspace. See the
/examples/python
directory for how to use python with OpenCog.
The cogserver provides a network server interface to OpenCog. It is requires for running embodiment, some of the reasoning agents, and some of the natural-language processing agents.