OpenCog

Projects

From OpenCog

This page is a temporary place to collect and discuss OpenCog Core project ideas (some of which are prerequisites for developing OpenCog Prime) until they are ready to become full specifications (blueprints on Launchpad) and be organized into a Roadmap. Project ideas will be in heavy flux likely throughout 2008 as the OpenCog Prime documentation is digested. Note that some project ideas will find a better home on the Ideas or Development pages, for smaller student-scope projects and current in-development projects, respectively.

Contents

META

OpenCog Framework 1.0 Target

Target: 1.0
Depends: 
Assignee: 
Drafter: Ben

Decide on important features to be included in OpenCog Framework 1.0, including

  • CogServer and AtomSpace
  • Core Algorithms like MOSES and PLN
  • Core MindAgents like AttentionAllocation

all accessible from a stable OpenCog Framework API and necessary for the first/basic implementation of OpenCog Prime.

OpenCog Framework 2.0 Target

Target: 2.0
Depends: 
Assignee: 
Drafter: Ben

Decide on important features to be included in OpenCog Framework 2.0 and major architecture changes for parallelism on multiple levels.

CogServer

Pluggable MindAgents

Target: 
Depends: 
Assignee: 
Drafter:

dynamic loading and unloading of MindAgents within a continuously-running CogServer

AtomSpace

AtomSpace Persistence

Target: TBD
Depends: none
Assignee: 
Drafter: Linas Vepstas

Choose one or two AtomSpace persistence/storage methods to implement and test.

Status: Currently, bulk save/restore to SQL is (mostly) implemented and usable for basic pruposes. Bulk save/restore to memcachedb is implemented but too slow/disk-intensive to be usable. Incremental or on-demand save/restore is anticipated but not architected.

AtomSpace Dynamic Shared Object

Target: TBD
Depends: 
Assignee: 
Drafter: Senna

/usr/lib/libatomspace.so. see also http://people.redhat.com/drepper/dsohowto.pdf

Pluggable AtomSpace

Target: 
Depends: 
Assignee: 
Drafter:

dynamic loading and unloading of AtomSpace sources within a continuously-running CogServer

Distributed AtomSpace

Target: 
Depends: 
Assignee: 
Drafter:

Using a fast purpose-built protocol, built using an existing library, e.g. Google Protocol Buffers.

Many topics to discuss including quality-of-service indication when using the atomSpace API (e.g. when use of stale atoms within an acceptable age range is okay, acceptable time to fulfill satisfying set queries, etc.), extended handles with UUIDs and host designations, issues of replication, map and entire atomspace synchronization, update subscriptions, etc.

Core MindAgents

TBD

Core Algorithms

PLN integration

Target: 1.0
Depends: 
Assignee: 
Drafter: Ben

In progress. Prototype MindAgent that uses PLN. Build a PLN shared library?

MOSES integration

Target: 1.0
Depends: 
Assignee: 
Drafter: Ben

In progress. Prototype MindAgent that uses MOSES. Build a MOSES shared library?

Documentation

Tutorial

Target: 
Depends: 
Assignee: 
Drafter:

Write a tutorial like that found in OpenBiomind

Packaging

Assuming a very inclusive trunk at lp:opencog (i.e. allowing just about anything that's deemed worthy and is license compatible with the Framework & FreeCore),

Create Debian package build directives in the lp:opencog branch and distribute Ubuntu packages via Launchpad using its native build system (the Personal Package Archive, or PPA).

Where applicable, also create complimentary packages of the form opencog-prime-source and opencog-prime-dev (header files only, e.g. so new and independent MindAgents may be developed).

opencog-prime and opencog-collective packages should be usable without the need to compile source code, for example in lab exercises or real-world applications where only configuration, input and output are used.

Approximately in chronological order:

opencog-framework package

Target: TBD
Depends: 
Assignee: 
Drafter: Dave

A meta-package for developers, aka an SDK (software development kit); proposed packaging scheme:

  • opencog-framework
    • opencog-freecore-dev
      • cogserver-dev
        • libatomspace-dev
    • opencog-framework-doc
      including tutorial with interesting but simple application

opencog-prime package

Target: TBD
Depends: 
Assignee: 
Drafter: Dave

proposed packaging scheme:

  • opencog-prime
    includes cognitive architecture configuration files
    • opencog-freecore
      • cogserver
        • libatomspace
    • opencog-prime-mindagents
      includes MindAgents for attention allocation, reasoning, creativity, etc.
      • opencog-prime-algorithms
        • libPLN
        • libMOSES
    • opencog-prime-doc
      including OpenCogPrime tutorial

opencog-collective package

Target: TBD
Depends: opencog-framework
Assignee: 
Drafter: Dave

aka contrib for ad-hoc MindAgents & logic/NN/whatever libraries

  • opencog-collective
    • example-mindagent
      • example-library

Other

Combo stand-alone interpreter

Target: TBD
Depends: 
Assignee: 
Drafter: Moshe

/usr/bin/combo

High-Level Language Bindings

Target: 
Depends: 
Assignee: 
Drafter:

Choose among supported high-level languages (e.g. Python, Java, LISP, etc.) for approachability, prototyping modules, etc.

Status: A basic scheme (guile) shell is operational.

Sockets Library Review

Target: 
Depends: 
Assignee: 
Drafter:

Review the use of csockets. Explore alternatives such as APR, libevent, etc.

Mac OS X build

Target: 
Depends: 
Assignee: 
Drafter: 

Test building OpenCog on OS X 1.5 with MacPorts 1.6 (or later)

OpenBiomind Integration

Target: 
Depends: 
Assignee: 
Drafter:

Determine the best method (e.g. Java bindings for AtomSpace, CogServer and Core Algorithm APIs, or other methods).

Reference Implementations of Textbook AI Techniques

This section needs volunteers! Implementations of techniques listed here are required for experimentation, for comparative analysis, to enhance OpenCog's reach as a general and universal research tool, to extend OpenCog as an educational platform and as a tool useful in the presentation and demonstration of work for publication, and to attract developers who might not otherwise be knowledgeable about the bleeding-edge of OpenCog's core research.

Other projects & general frameworks

For use as examples and sources of ideas & inspiration.

Weka has many machine learning algorithms implemented in a Java framework for classification and clustering.

Neural Networks

For reference wikipedia:Artificial_neural_network

Feedforward neural networks

Radial basis functioning networks

Kohonen self-organizing networks

multilayer perceptrons

Recurrent networks

  • Hopfield networks
  • Echo state networks

Stochastic neural networks

  • Boltzmann machines

Bayesian Networks

For reference wikipedia:Bayesian_networks

Evolutionary Algorithms

Other Classification Algorithms

Kernel methods / Support vector machines