Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

OpenCog
=======
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.
Please see doc/ for platform and OS specific READMEs.
Prerequisites
-------------
To build and run OpenCog, the following packages are required. With a
few exceptions, most Linux distributions will have these packages.
Older versions of CMake may not have scripts to find all of these packages,
some needed CMake scripts are included in lib, but others in lib/compat are
provided if you are trying to build with an old version of CMake (although the
best option is to get the latest CMake if possible).
###### boost > C++ utilities package > http://www.boost.org/ | libboost-dev ###### cmake > Build management tool > http://www.cmake.org/ | cmake
###### cxxtest > Test framework > http://cxxtest.sourceforge.net/ | https://launchpad.net/~opencog-dev/+archive/ppa
###### guile > Embedded scheme interperter (version 1.8.6 or newer is required) > http://www.gnu.org/software/guile/guile.html | guile-1.8-dev
###### libgsl > The GNU Scientific Library > http://www.gnu.org/software/gsl/ | libgsl0-dev
Optional Prerequisites
----------------------
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.
###### curl > cURL groks URLs > Used by opencog/ubigraph > http://curl.haxx.se/ | libcurl4-gnutls-dev
###### expat > an XML parsing library > Used by Embodiment subsystem > http://expat.sourceforge.net/ | http://www.jclark.com/xml/expat.html (version 1.2) | libexpat1-dev ###### HyperTable > Distributed storage > http://hypertable.org > This requires SIGAR as well
###### MPI > Message Passing Interface > Required for compute-cluster version of MOSES > Use either MPICHV2 or OpenMPI
###### OpenGL > Open Graphics Library > Used by opencog/spatial/MapTool > http://www.opengl.org > Commonly provided with your video card driver
###### SDL > Simple DirectMedia Layer > Used by opencog/spatial/MapTool > http://www.libsdl.org | libsdl1.2-dev
###### SDL_gfx > Simple DirectMedia Layer extension > Used by opencog/spatial/MapTool > http://www.ferzkopp.net/joomla/content/view/19/14/ | libsdl-gfx1.2-dev
###### unixODBC > Generic SQL Database client access libraries > Required for the distributed-processing atomspace. > http://www.unixodbc.org/ | unixodbc-dev
###### xercesc > Apache Xerces-C++ XML Parser > Requied for embodiment > http://xerces.apache.org/xerces-c/ | libxerces-c2-dev
###### xmlrpc > XML-RPC support > Required by opencog/ubigraph > http://www.xmlrpc.com | libxmlrpc-c-dev
Building OpenCog
----------------
Peform the following steps at the shell prompt:
cd to project root dir
mkdir bin
cd bin
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Libraries will be built into subdirectories within bin, mirroring the
structure of the source directory root. The flag -DCMAKE_BUILD_TYPE=Release
results in binaries that are optimized for for performance; ommitting this flag will result in faster builds, but slower executables.
Unit tests
----------
To build and run the unit tests, from the ./bin directory enter (after
building opencog as above): make test
Running the server
------------------
The cogserver provides a simple server interface to the reasoning
system.
See CommandRequestProcessor.cc as an example control interface to
the server. This command processor understands 3 simple commands:
load <xml file name>, ls and shutdown. There is an example XML file
under tests/server/atomSpace.xml
To run a simple test, build everything and execute
bin/opencog/server/cogserver. Then, from another terminal, run
```telnet localhost 17001``` Try loading the example XML file and ls
to see all the nodes and links.
Config file
-----------
The operation of the server can be altered by means of a config file.
This config file is in lib/opencog.conf. To make use of it, say ```cogserver -c <config-filename>``` when starting the server.
Scheme shell
------------
The cog server also includes a built-in scheme shell. The shell can be
started by typing ```scm``` after entering the opencog server shell. It can
be exited by placing a single . on a line by itself. This shell allows
opencog atoms and truth values to be created, manipulated and destroyed
using a very simple but powerful interface. Examples and documentation
for the available OpenCog commands can be found in src/guile/README.
See also the wiki for additional details.
Modifying the list of basic types
---------------------------------
See the example under ./examples/atomtypes
CMake notes
-----------
Some useful CMake's web sites/pages: - http://www.cmake.org (main page) - http://www.cmake.org/Wiki/CMake_Useful_Variables - http://www.cmake.org/Wiki/CMake_Useful_Variables/Get_Variables_From_CMake_Dashboards
- http://www.cmake.org/Wiki/CMakeMacroAddCxxTest
- http://www.cmake.org/Wiki/CMake_HowToFindInstalledSoftware
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!)

About

A development framework for AGI

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages