This page provides a short overview of software development in OpenCog.
Download, Build, & Install
- Build instructions are located here: Building OpenCog. How to download OpenCog source from Github and compile.
- Report build problems at the opencog mailing list.
Tutorials, User Guides, HOWTO's
- Getting Started - Easy to follow tutorials about the basics of OpenCog.
- Hopfield network emulator - using attention allocation dynamics to memorize patterns.
- Tutorial Sessions 2009: with screencasts
- Information on how to Volunteer
- Read the OpenCogPrime:WikiBook, note the sections on atoms, nodes, and links.
- Check recent development updates and current goals at Discussion and GSoC 2012 Ideas Page. Visit our GSoC Page.
- Read background information at Publications; review the section System Documentation below.
- Join the IRC channel #opencog on Freenode
- Building OpenCog
- You can start with some Quick tasks that need to be done, or for more ambitious there are some Not so quick tasks.
The AGI Summer School 2009 had lectures explaining many of the ideas in OpenCog, which are available online at http://agi-school.org. Major components of the core framework, listed in order of complexity/layering:
- AtomSpace - Overview of OpenCog's core data store.
- Atom types - List of atom types currently documented/in use
- Atomspace Visualization
- Scheme - The scheme shell/repl loop/scheme language bindings/programming interface
- Python - Python programming interface
- Web interface - RESTful web access/programming interface.
- Pattern matcher - Performing queries against the AtomSpace
- ECAN - Attention allocation
- NLP pipeline - the current state of affairs in the natural language processing pipeline.
- PLN - probabilistic reasoning.
- ComboReduct - Internal programming language to represent patterns/skills; Reduct reduces it to a normal form.
- MOSES - Meta Optimizing Semantic Evolutionary Search. Evolves programs in Combo.
- Embodiment - the Open Pet Brain, Perception Action Interface, etc.
- OpenPsi - Motivation & Planning
- Fishgram -- Frequent Interesting Subhypergraph Mining (greedy pattern mining for the Atomspace)
Development Guidelines & Tools
- Development standards - Code formatting and development practices
- Set-up a QT Creator Project for OpenCog
- File bugs at Github.
- Unit tests are strongly encouraged for any new code. We also use coverage testing to keep track of what code needs more thorough testing. A great beginners task is to design tests that will improve our coverage statistics.
There are several architectural design tasks planned for OpenCog. Some are a long way off, while others are more of a priority. However, there have been discussions on these topics and so records are kept here to avoid rehashing the same arguments when we DO come to implementing these tools.
- OpenCog HK 2014 High Level Goals
- OpenCog HK 2014 Dialogue System Task Breakdown
- Distributed Architecture
- Unified Rule Engine
- Ideas for enhancements, improvements, new features and future projects
More on the Talk:Development page!