Skip to content

Latest commit

 

History

History
100 lines (80 loc) · 3.33 KB

README.md

File metadata and controls

100 lines (80 loc) · 3.33 KB

Attention Allocation

opencog singnet
CircleCI CircleCI

Attention Allocation is an OpenCog subsystem meant to control the application of processing and memory resources to specific tasks.

The main project site is at http://opencog.org

Overview

Currently implemented: Economic Attention Allocation (ECAN).

Building and Running

For platform dependent instruction on dependencies and building the code, as well as other options for setting up development environments, more details are found on the Building Opencog wiki.

Prerequisites

To build and run the Attention Allocation subsystem, the packages listed below are required. With a few exceptions, most Linux distributions will provide these packages. Users of Ubuntu 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.

cogutil

Common OpenCog C++ utilities http://github.com/opencog/cogutil It uses exactly the same build procedure as this package. Be sure to sudo make install at the end.

atomspace

OpenCog Atomspace database and reasoning engine http://github.com/opencog/atomspace It uses exactly the same build procedure as this package. Be sure to sudo make install at the end.

cogserver

OpenCog CogServer Network Server. http://github.com/opencog/cogserver It uses exactly the same build procedure as this package. Be sure to sudo make install at the end.

Building Attention Allocation

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.

Unit tests

To build and run the unit tests, from the ./build directory enter (after building opencog as above):

    make test

CMake notes

Some useful CMake's web sites/pages:

The main CMakeLists.txt currently sets -DNDEBUG. This disables Boost matrix/vector debugging code and safety checks, with the benefit of making it much faster. Boost sparse matrixes and (dense) vectors are currently used by ECAN's ImportanceDiffusionAgent. If you use Boost ublas in other code, it may be a good idea to at least temporarily unset NDEBUG. Also if the Boost assert.h is used it will be necessary to unset NDEBUG. Boost ublas is intended to respond to a specific BOOST_UBLAS_NDEBUG, however this is not available as of the current Ubuntu standard version (1.34).

-Wno-deprecated is currently enabled by default to avoid a number of warnings regarding hash_map being deprecated (because the alternative is still experimental!)