From OpenCog
Jump to: navigation, search

OpenCogPrime Phase Two Roadmap

This page describes Phase two of a five-stage AGI project aimed at building an extremely powerful, strongly self-modifying, ethically-beneficial AGI system.

For the overall plan of which this forms a component, see OpenCogPrime:Roadmap.

For comments on finishing up Phase 1, see OpenCogPrime:PhaseOneRoadmap

The goal of Phase 2 is roughly defined as the creation an “artificial toddler”, living in a rich online simulation world, and possessing

  • qualitatively intelligent though not humanlike English conversation ability, involving simple sentences appropriately contextually deployed
  • the approximate problem-solving ability of an average four-year old human child within the context of its simulation world

There seems no point to put a timeline on Phase 2 at this point, given the uncertainties of any R&D project together with the specific uncertainties of an open-source project; but, let me (Ben Goertzel) say that I believe it must take years and not months; and it definitely doesn't need to take a decade. Three years to success wouldn't shock me; nor would seven. The important thing is to steadily proceed in getting the work done.

Phase 2 involves a combination of four sorts of work:

  1. Making improvements to OCP’s AI algorithms as necessary to achieve adequate performance on the test tasks
  2. Making scalability and other non-AI improvements to OCP’s infrastructure to allow it to make better use of distributing computing across a network of machines
  3. Improvements to the interface between OCP and a 3D simulation world, such as RealXTend or OpenCog
  4. Teaching OCP to carry out a series of tasks involving controlling its embodied agent in the simulation world

Obviously, work of type 1 is the most risky and subtle (as it involves the core of the AGI design) but the other kinds of work are not exactly trivial either and their importance should not be minimized.

Moderately detailed plans regarding each of these four types of work, although of course the “AI algorithm improvements” will to some extent need to be improved based on the particular nature of any observed weaknesses in the system’s performance. This page at the moment gives a fairly high-level planning overview, but more refined plans will be posted here as time permits and as it seems appropriate.

Five Subphases of Phase 2

Of course, the work required for Phase 2 could sensibly be done in many different orders. What is described here is just one particular way of structuring the work, in which Phase 2 is broken down into 5 different sub-phases, each of which involves coordinated work on various different aspects of OpenCog and OCP.

Nothing bad is likely to happen if we proceed out of order! However, it seems to make sense to have some initial order-of-tasks in mind, even if it gets varied on and mutated in practice for various reasons.

Note that some of these task descriptions refer to Piagetan stages in a loose way; look at OpenCogPrime:Roadmap for a review of these and some relevant links.

Note also that the lists of tasks given here are very incomplete. This planning document is still in the early stages of development and needs more work; it should be developed collaboratively among multiple OCP team members.

Phase 2.1: Completion of Infantile Stage

AI Tasks

  • Tuning of attention allocation to effectively control a mobile, social, exploring agent in a sim world
  • Tuning/improvement of MOSES (or Pleasure, etc.) for spontaneous learning in an exploring-a-sim-world context
  • Tuning/improvement of PLN to draw appropriate analogies in the sim world
  • Tuning/improvement of concept creation to form new concepts that are useful for an artificial infant
  • Implementation of object recognition based on clustering and PLN
  • Implementation of experience-based guidance of PLN inference (i.e. mining of the stored record of prior inferences, to help guide future inferences). This may occur within PLN's existing control mechanism but requires new code to handle the mining of patterns from stored inference trajectories.
  • Implementation of more sophisticated forgetting mechanisms, capable of dealing with a larger flow-through of data and concepts
  • Creation and tuning of an appropriate set of goals for an artificial infant

Non-AI OpenCog Tasks

  • Improvement of scheduler
  • Creation of "tasks" framework analogous to the one in the NCE

Simulation World Tasks

  • Completion of proxy between OpenCog and OpenSim/RealXTend (note, this is now underway at Novamente LLC due to a contract with RealXTend)

Teaching Tasks

  • What we need to do here is to play with the embodied AI system as one would play with a baby. This is mostly unstructured, spontaneous interactive play rather than formal instruction; but it's also useful to teach the baby various object manipulations, word-object associations and so forth.

Phase 2.2: Simplistic Grounded Conversation

In this phase the focus is on integrating RelEx and NLGen, OpenCog's language processing tools, more fully with the OpenCog cognitive engine, enabling the system to use language in a way that's conceptually grounded in what it sees and does and nonlinguistically understands.

AI Tasks

  • Connection of RelEx and NLGen to OpenCog core in a way that allows truth values of OpenCog Atoms to affect such linguistic choices as parse selection, anaphor resolution, semantic disambiguation, generated-sentence selection, and so forth
  • Use of linguistic data to guide concept formation

Non-AI OpenCog Tasks

  • Design and implementation of multi-Unit OpenCog system (running efficiently on multiple connected multiprocessor machines). Actually it is not clear whether this will be needed in Phase 2.2. or Phase 2.3. It's all a matter of, empirically, how much processing power is needed to support simple perception, action, cognition and conversation. When does it go beyond what a single, commodity multiprocessor machine -- or a loosely connected network thereof -- can do?

Simulation World Tasks

  • Improvement to AI agent's embodiment to allow flexible production and interpretation of gestures (see the paper on language at for some discussion of the importance of gesture)

Teaching Tasks

  • Here the teaching task is quite straightforward. We want the system to understand and produce simple sentences relating to what it experiences in the world. For some examples of this kind of language (in a robotics context, but it's about the same thing), see

Phase 2.3: Completion of Pre-operational Stage

In Phases 2.1 and 2.2, we kind of cheated on perception and action, by letting the system perceive whole objects, and carry out actions by launching whole animations like "raise arm" or "take one step forward."

Now, in Phase 2.3, we go back and do perception and action "right" -- having the agent perceive polygons and figure out the objects from the polygons; and having the agent send detailed servomotor commands to the joints of its skeleton, composing higher-level movements itself. This requires some new tunings and uses of the basic AI components inside OCP, though it doesn't necessarily require any new basic components.

AI Tasks

  • Implementation of OpenCogPrime:PerceptualHierarchy
  • Implementation of object recognition and understanding based on perceiving objects in terms of polygons
  • Tuning/tweaking of MOSES to learn motor procedures involving sending commands to joints of agents' skeleton, indicating forces to be exerted at specific angles
  • Tuning/tweaking of PLN to perform inductive and abductive reasoning based on learned motor procedures
  • Implementation of a serious, real-time OpenCogPrime:ExecutionManagement framework
  • Implementation of inference-guided OpenCogPrime:ProcedureExecution with careful effort management incorporated
  • Implementation of OpenCogPrime:OccamsRazor based learning to enhance concept formation
  • Extension of Reduct, MOSES etc. to handle more general programmatic constructs, along the lines outlined in OpenCogPrime:TransformationOfComplexPrograms
  • Creation and tuning of an appropriate set of goals for an artificial child with richer perception and action

Non-AI OpenCog Tasks

  • Creation of efficient, distributed version of probabilistic evolutionary learning (MOSES, PLEASURE, whatever)
  • Creation of efficient, distributed version of PLN inference

Simulation World Tasks

  • Integration of a robot simulator such as Gazebo with a virtual world such as OpenSim/RealXTend, to allow more flexible interaction between the AI-controlled agent and the virtual world.
  • Tweaking the API of the virtual world to export polygons rather than whole objects

Teaching Tasks

  • Here the teaching will center on carrying out moderately complex tasks involving manipulating physical objects. Think of what 2 and 3 year old kids do in a preschool. Playing flexibly with blocks and toy cars are two excellent examples.

Phase 2.4: Grounded Dialogue with Moderately Complex Syntax

The implementation of cognition being basically completed in 2.3, the goal here is to integrate language with cognition so as to get the system to understand complex language.

Rather than requiring the system to learn language from scratch, the goal is to interconnect our existing language comprehension and generation systems with the Phase 2.3 cognitive learning system so as to create a system that does language comprehension, generation and cognition all as a big fuzzy unified whole.

AI Tasks

  • Refactoring/reimplementation of NLP tools (RelEx and NLGen) to use OpenCog structures and cognitive processes throughout. This will enable learning of new grammatical rules and new semantic and pragmatic patterns -- but without breaking the basic language processing algorithms and structures of the foundational NLP tools
  • Tuning/tweaking of various AI processes and structures to enable more effective experience-based assistance of RelEx and NLGen

Non-AI OpenCog Tasks

  • Creation of efficient, distributed, cognition-utilizing versions of NL generation and comprehension tools within OpenCog may require some tweaks to the OpenCog framework itself ... we'll see...

Teaching Tasks

  • The basic task here is to talk to the system about what it and you are doing, and correct its English interactively. Look at Tomasello's book "Constructing a Language" for interesting guidance here.

Phase 2.5: Instruction in Theory of Mind and Ethics

This stage is far enough into the future that it doesn't really make sense to spell it out in detail here. No new cognitive processes or structures will be needed at this stage, but it's hard to say exactly what tweaks and adjustments to various parts of the system will be needed. Stay tuned!!

AI Tasks

  • We may want to build a specialized Unit just for social modeling, containing specially-tuned versions of the various cognitive processes

Teaching Tasks

  • A variety of social games and situations may be entered into w/ the intelligent agents here. Designing these should be good fun, but it's not really time for that yet, alas.