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
- cogserver-dev
- opencog-framework-doc
including tutorial with interesting but simple application
- opencog-freecore-dev
opencog-prime package
Target: TBD Depends: Assignee: Drafter: Dave
proposed packaging scheme:
- opencog-prime
includes cognitive architecture configuration files- opencog-freecore
- cogserver
- libatomspace
- cogserver
- opencog-prime-mindagents
includes MindAgents for attention allocation, reasoning, creativity, etc.- opencog-prime-algorithms
- libPLN
- libMOSES
- opencog-prime-algorithms
- opencog-prime-doc
including OpenCogPrime tutorial
- opencog-freecore
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
- example-library
- example-mindagent
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

