AGI -- Artificial General Intelligence

A messy and incomplete list of open source Artificial General Intelligence projects.

A good overview is given by: Pei Wang's AGI Intro

Project plans

Some all-encompassing plans for do-it-all systems:
OpenCog
Novamente's general cognition/reasoning system. Includes NLP subsystem.
Pei Wang's NARS project
NARS, the Non-Axiomatic Reasoning System, is a general-purpose reasoning system. Several white-papers. Inspired OpenCog. (OpenCog claims to overcome certain limitations in NARS) OpenNARS is Pei Wang's implementation. Released under GPLv2.
TexAI
Aims to couple common-sense knowledge-basees systems to natural langauge text processing.
Stan Franklin's LIDA
An intelligent agent, communicating by email. Built for the US Navy. Based on Baar's Global Workspace Theory. Answers only one question "What do I do next?". See Tutorial
John Weng's SAIL architecture
Seems primarily aimed at robots.
Nick Cassimatis's PolyScheme
no code available.
Jeff Hawkins Numenta
Commercialized "Heierarchical Temporal Memory"
SNePS
SNePS is a knowledge representation, reasoning, and acting (KRRA) system. See also the Wikipedia page

Open source projects

Some smaller, less-encompassing projects or pieces/parts:
MicroPsi
Study of emotional agents. Simple virtual robotic agents that roam a 3D world and interact in various psycholgically motivated (needs & wants) kinds of ways. Humboldt University of Berlin. Java/Eclipse infrastructure.
AGIsim
GPL. AGISim is a framework for the creation of virtual worlds for artificial intelligence research, allowing AI and human controlled agents to interact in realtime within sensory-rich contexts. AGISim is built on the Crystal Space 3D game engine. Some parts of AGISim are closed related to OpenCog.
A.L.I.C.E.
Chatterbot, AIML
Hypergraph DB
Database for storing hypergraphs. Pretty Cool. Java based, C++ coming. Strange BSD-like license, but requires source code! Compatibility of license with GPL is unclear.

Ontologies, Knowledge Bases and Reasoning Engines

A giant list at Some Ongoing KBS/Ontology Projects and Groups. Problems with ontologies are reviewed in Ontology Development Pitfalls A giant list is at Peter Clark's Ongoing KBS/Ontology Projects page.

Big ones include

ConceptNet3

Common-sense knowledgebase. Large. GPL license. Users can edit data online, at http://torg.media.mit.edu:3000/

Open Mind Common Sense

Collection of english-language sentences, rather than using a strict upper ontology. This is actually quite conventient, if you have a good NLP input system, as it helps avoid the strictures of pre-designed ontologies; and rather gets you to deal with the structure of your NLP-to-KR layter. From MIT. -- large -- 700K sentences

Historical Thesaurus of English

Licensing is unclear.

WordNet

Semantic network.

See also: Wordnet::Similarity A perl module implementing various word similarity measures from Wordnet data. i.e. Thesaurus-like.

SUMO - Suggested Upper Merged Ontology

SUMO WP article. Includes an open source Sigma knowledge engineering environment, includes a theorem prover. Sigma uses KIF.

"The largest formal public ontology in existence", availble under GPL. (although OpenCyc is arguably bigger, and is free.) Has mappings to WordNet.

OpenCyc

Large KB under artistic license. Source for engine not available. KB seems messy and capricious. The uppper ontology is not clear.

YAGO

Yago is a huge semantic knowledge base.

ThoughtTreasure

Common sense KB, available in CycL. GPL'ed

Conceptual Nets
A knowledge representation system. Conceptual Graph Interchange Format is an ISO standard. See also "Common Logic Interchange Format (CLIF)", which is more lisp-like.
Ontolingua
Seems well-engineered. Actual KB is slim. Source not available.
GFO - General Formal Ontology
Provides a firm theoretical foundation for representing ontologies; no actual data. OWL version of GFO under a modified BSD license. Examples include the periodic table of elements, amino acids. See also WP article.
DOLCE - Descriptive Ontology for Linguistic and Cognitive Engineering
PSL - Process Specification Language
BFO - Basic Formal Ontology
Algernon - Rule-Based Programming
Java, on sourceforge. Recommended for small-to-medium systems. A frame-slot type system.
CLIPS - A Tool for Building Expert Systems
Originally from NASA, now public domain. See also Wikipedia page. Rather old, and primitive.
SOAR expert system
DAML+OIL
Obsoleted by OWL
KIF - Knowledge Interchange Format
Obsoleted by SOU-KIF (used in SUMO)

Reasoning engines/Inference engines

Reasoning engines only, without accompanying inference engines.

See also Open Source Rule Engines in Java

PLN Probabilistic Logic Network
From Novamente LLC. promising.
Features:
  • Both forward-chaining rules and backward-chaining rules.
  • Multiple rule bases, each with its own list of forward-chaining and/or backward-chaining rules.
Current version is 0.2 ...
PyIE - Python Inference Engine
DROOLS Drools is a business rule management system (BRMS) and an enhanced Rules Engine implementation, ReteOO, based on Charles Forgy's Rete algorithm tailored for the Java language.
SAT, SMT Propositional logic solvers
Use SAT for traditional propositional logic solvers, use SMT for solvers that include arithmetic expressions.

NLP - Natural Language Processing

See the NLP Resources wiki page at agiri.org.

A particularly important theory is Dick Hudson's Word Grammar.

Other NLP resources include:

VerbOcean
A set of semantic-like verb frames.
FrameNet
A set of semantic-like frames. Free for personal use, but has commercial license.
WordNet
Dictionary of synonyms, antonyms, etc.

See also http://www.singinst.org/research/researchareas

NLP Parsers

Another kind of useful linguistic resource is the NLP parser. Some free NLP parsers are:
Link Grammar Parser
From Carnegie-Mellon. A parser for the English language, based on "link grammar", a novel theory of natural language syntax. Written in C, with a BSD license. English dictionary includes 90K words. Actively maintained.
Relex Semantic Relationship Extractor
Built on top of the Carnegie Mellon link parser. Extracts semantic structures from link data. Includes ability to handle multi-sentence corpus, entity detection, and perform anaphora (pronoun) resolution via Hobbs algo. Apache v2 license. Written in Java. Actively developed/maintained.
Fluild Construction Grammars.
Idea from Luc Steels. There is a LISP implementation at http://www.emergent-languages.org/ A Java implementation at TexAI.
Maltparser
Maltparser is a system for data-driven dependency parsing, which will learn a parsing model from treebank data, and can then be used to parse new data using the induced model. Java, BSD license.

Word Sense Disambiguation

Word sense disambiguation attempts to determine which of multiple possible semantic senses are used in a sentence. A good set of references and code are on Rada Mihalcea senseval.org page. Code is under GPL license. See also:

Entity Extraction

Other NL tasks include entity extraction. Entity extraction refers to the recognition of names, dates, places in a body of text. Related is the recognition of technical terms. Also popular are "frameworks", which will graph things, provide user interfaces, etc.; these are useful for R&D.
NLTK -- Natural Language Toolkit
Has a book, multiple articles. Integration into WordNet. Written in python. Not clear whether it has an actual parser. Seems to do some sort of entity extraction, esp. for biomedical terms.
GATE - General Architecture for Text Engineering
Java, GPL'ed. Big. GATE is supplied with an Information Extraction system called ANNIE, which seems to be focues on "entity extraction". Also in use for Dialogue processing and Natural Language Generation.

NLP+Reasoning

Some problems with hooking NLP to a reasoning engine:

Learning

Linear classifiers, and stuff.
libSVM
Library that implements Support Vector Machine, which is one of many ways of doing a linear classifier.
TiMBL
Fast, decision-tree-based implementation of k-nearest neighbor classification. Implements half-dozen algo's. GPL'ed. (Might not scale well for large problems?)

Narrow AI

RapidMiner (YALE) Java data mining
OntoWiki and Powl
Semantic web development. Screenshots show business-type apps: addressbook, calander, etc. Powl seems to be a classes and GUI designer. GPL license
OWL API
Java interface for the W3C Web Ontology Language OWL. LGPL license.
Siafu: an Open Source Context Simulator
Simulate individual agents
Jamocha - one engine for all your rules.
Rule engine

Robotics

MOAST
The Mobility Open Architecture Simulation and Tools (MOAST) framework aids in the development of autonomous robots. It includes an architecture, control modules, interface specs, and data sets and is fully integrated with the USARSim simulation system.
OpenJaus
Robotics messaging. Military standard.

Misc links

MapReduce
Distributed processing using key-value generaion and reducing primitives. See Hadoop for an open-source implementation.
Shard databases
Shard overview escribes an alternate to centralized, normalized datbases.