The OpenCog Framework is licensed under the GNU Affero General Public License (aka AGPL) with the addition of an exception to allow non-AGPL licensed applications to link to the OCF libraries. The text of the exception may be found on github, in the LICENSE file.
The combination of the AGPL+linking exception is well suited to the Linux-kernel-like platform+library nature of the OCF, enabling application licensing flexibility for developers. OpenCog-based applications may be written by anyone and may use any license that is compatible with the linking exception (including Apache, GPL, and others). The AGPL+linking exception was chosen carefully and deliberately to allow for broad license compatibility for OpenCog applications, while at the same time maintaining the free software status of the OpenCog Core.
For a variety of reasons, the OpenCog Foundation requires a grant of copyrights for all contributions to the OCF. By exercising copyrights to the entire body of the OCF work, the OpenCog Foundation maintains the flexibility to revise the license of the OCF (e.g. to keep up with advances in FOSS licensing), to collect royalties for the use of the OCF under certain circumstances (all royalties to be applied to further OCF development), to integrate with proprietary software test suites and other applications beneficial to the overall development and safety of AGI technologies, and other procedural reasons.
Developers contributing code to the OCF are required to grant copyrights for their original work to the OpenCog Foundation by signing a modified Apache Individual Contributors License Agreement; under the AICA, developers maintain their full copyrights to their original works, while at the same time granting full copyrights to the OpenCog Foundation, effectively creating two copyright holders for the original works.
Application license examples
The table below lists some of OCF's projects and their licenses. For the Class, we make four broad distinctions:
- Library, consisting of a collection of class methods that may be linked to.
- Server, a network server capable of processing data arriving via the net.
- Application, a command-line tool, capable of processing file data.
- Data, a collection of structured data without which the Library, Server or Application cannot function or cannot fully function.
A good example of Data are the lexis or language dictionaries describing the structure of human natural languages, used in natural language parsing.
|AtomSpace||Core Library||AGPLv3 + linking exception (from classpath project)||Apache Individual Contributor License Agreement v2 with assignment to OpenCog Foundation|
|OpenCog Framework||Core Server and Data||AGPLv3 + linking exception (from classpath project)||Apache Individual Contributor License Agreement v2 with assignment to OpenCog Foundation|
|RelEx||NLP parsing Library, Server Application and Data||Apache 2||none|
|Link Grammar||NLP parsing Library, Application and Data||LPGL v2.1||none|
|MOSES||Learning Library and Application||Apache 2||none|
|your project here‡||MindAgent||author's choice!||author's choice!|
† license details not finalized
‡ The name 'OpenCog' may be used in software, projects, etc., only with permission of the OpenCog Foundation.