Hands On With OpenCog

From OpenCog
Jump to: navigation, search

It is assumed that users have at least a basic understanding of *nix commandline, with some background in scripting language programming.

This is an outline for an IN PROGRESS, in-depth, hands-on OpenCog tutorial, created initially by Ben Goertzel in August 2015, and expanded on by Adam Ford and others at OpenCog. The hope is to get the lessons listed in this outline actually created, as wiki pages, and then we'll have a pretty good OpenCog Hands On tutorial.

Most of the material references in the outline already exists, but it's mixed up in other wiki pages or Github markdown files or examples. What needs to be done is to take all the material and present it in a systematic way so that a learner can just proceed through the tutorial step by step rather than scrambling around among a maze of wiki pages and code directories.

If you actually create a tutorial wiki page corresponding to one of the entries on this page, please link to it from this page (treating this page as a "table of contents") and also add the page to the Hands On With OpenCog category

Some of the tutorials have listed the name of a person whom would be good at making the tutorial.

You may also wish to check the OpenCog By Way of Wikipedia page to get some conceptual grounding.

Also see Curation on how to categorize wiki pages.


System Setup

Lesson : Building OpenCog (Hands On)


Lesson : Getting Started with Atoms and the Scheme Shell

This is important because most atoms are manipulated in scheme

Lesson : Manipulating Atoms in C++

Lesson : Manipulating Atoms in Python

Lesson : Manipulating Atoms in Haskell

Interacting with External Stuff

Lesson : Using the REST API

Lesson : Interacting with External Agents via ROS


Lesson : The OpenCog Visualizer

Note the general theory of OC Vizualization is here - note that this tutorial requires a background in the Rest API (see Using the REST API)

Backing Store

Lesson : Using a Backing Store

Lesson : Importing External Knowledge Sources

This requires a basic understanding of Using a Backing Store in OpenCog

Adding new Atom Types

Lesson : Adding New Atom Types

Note, that you should be familiar with Atoms, mainly with the Manipulating Atoms in C++ tute

Pattern Matching

Lesson : The Pattern Matcher

Lesson : The OpenCog Rule Engine

Note, the Rule Engine uses pattern matching, so do the The Pattern Matcher first

  • This is listed number pattern matching because it requires an understanding of pattern matching

Probabilistic Logic Networks (PLN)

Lesson : PLN by Hand

A quick walk through using scheme for creating PLNs (creating new relationships and deducing facts from these relationships)

Lesson : PLN Forward Chaining

Also see the The Forward Chaining section of the C++ API Tutorial

Lesson : PLN Backward Chaining


Lesson : Running MOSES for Automated Program Learning

Lesson : Using MOSES via the R Wrapper

  • give some simple examples here ... Mike Duncan can make this section !

Lesson : Exporting MOSES Models Into the Atomspace

Lesson : PLN Reasoning on MOSES Output

Natural Language Processing (NLP)

Lesson : The NLP Comprehension Pipeline

Lesson : PLN Inference based on Output of Language Comprehension

Lesson : NL Generation Pipeline

Attention Allocation (ECAN)

Lesson : Hands On with Attention Allocation


Lesson : Hands On with Action Selection

Lesson : Hands On with Emotion Modelling

It makes sense to do Hands On with Action Selection & Hands On with Emotion Modelling

Mining Patterns

Lesson : Using The Pattern Miner

Also see the Tutorial of running Pattern Miner in Opencog tute

Lesson : Pattern Miner Scheme Functions

Other Components

Lesson : Hands On with the Time Space Map

Lesson : Concept Blending