Opencog Prime: a Design for a Thinking Machine (Draft)
Total Page:16
File Type:pdf, Size:1020Kb
OpenCogPrime Wikibook, (C) Ben Goertzel 2008 --- draft as of July 25, 2008, updates @ opencog.org OpenCog Prime: A Design for A Thinking Machine (Draft) Ben Goertzel Table of Contents • Chapter One: Introduction • Chapter Two: Overview of the OpenCog Prime System • Chapter Three: Atoms, Atomspaces and So Forth • Chapter Four: Denoting Atoms (and Various Related Entities) • Chapter Five: The Combo Language • Chapter Six: The Mind OS (aka the OpenCog Framework) • Chapter Seven: Integrative Inference • Chapter Eight: Attention Allocation and Credit Assignment • Chapter Nine: Embodiment: Perception and Action • Chapter Ten: Goal-Oriented Cognition • Chapter Eleven: Procedure Execution • Chapter Twelve: Dimensional Embedding • Chapter Thirteen: Probabilistic Evolutionary Learning • Chapter Fourteen: Speculative Concept Formation • Chapter Fifteen: Integrative Procedure and Predicate Learning • Chapter Sixteen: Map Encapsulation and Expansion • Chapter Seventeen: Toward a Theoretical Justification 1 OpenCogPrime Wikibook, (C) Ben Goertzel 2008 --- draft as of July 25, 2008, updates @ opencog.org Preface These words are being written by Ben Goertzel in late July 2008, as he launches the "OpenCogPrime wikibook" -- a Wiki-fied version of a what originated as a full-length "paper book" manuscript (it was around 250 pages as a Word document) describing a design for a powerful artificial general intelligence, aka a "thinking machine." The AGI design described in this wikibook, called OpenCogPrime (OCP), is a variant of the Novamente Cognition Engine design that has been refined and developed within Novamente LLC during the period 2001- 2008 (and is still the subject of ongoing work). The reasons for making a wikibook rather than a paper book are probably pretty obvious. The key aspects of the OCP design are not expected to change anytime soon, but the details are ever-evolving ... and this seems likely to continue to be the case for a long time (including after the system implemented according to the design starts evolving itself!!). Because of this, a dynamic wiki, rather than a static paper book, seems the most appropriate medium. The OpenCogPrime design is proposed here together with the hypothesis that, if it is fully fleshed-out, implemented, tested, tuned and taught, it will lead to a software system with intelligence at the human level and ultimately beyond. Make no mistake: there is still some research and experimentation to be done in fleshing out the details of OCP AGI design. Some aspects have been implemented in software, others have been fleshed out in detail mathematically and software-design-wise, and others have not yet been explored as thoroughly yet. There is still work to be done. But all aspects of the design have been thought through very carefully over a period of years, and most importantly, the holistic nature of the design has been carefully worked out so that the various components may appropriately interact to give rise to the necessary emergent structures and dynamics of intelligence. Sister Books Ideally this wikibook should be read in conjunction with two paper books that were written concurrently, • The Hidden Pattern (BrownWalker, 2006) ... containing the philosophy of mind underlying the OpenCogPrime design • Probabilistic Logic Networks (Springer, 2008), giving the mathematical and conceptual foundations underlying the PLN component of OpenCogPrime Ancient History The paper book manuscript that formed the raw material for this wiki, itself had a fairly long prehistory, which is worthy of a brief note for those few readers who may have read these previous versions: 2 OpenCogPrime Wikibook, (C) Ben Goertzel 2008 --- draft as of July 25, 2008, updates @ opencog.org In the beginning (2001-2003) there was a big, monster manuscript known informally as "The Novamente Book." Then, in 2004, this was split into three books: • The Hidden Pattern (BrownWalker, 2006) • Probabilistic Logic Networks (Springer, 2008) • A book describing the overall "thinking machine" design underlying the Novamente Cognition Engine The latter book was never finalized or published, and eventually evolved into a wikibook on the Novamente LLC internal wiki site, portions of which were eventually morphed into the OpenCogPrime wikibook you are now reading. A Note on Authorship The initial version of this wikibook was mostly written by Ben Goertzel, with some help from Cassio Pennachin, Moshe Looks and others. It is hoped that the Wiki version will become more of a group effort, as it is edited over time in accordance with the progress of the project. The Reader Beware Though this manuscript has undergone numerous revisions, it is still a draft rather than a finished book. Errors may exist, and several sections are known to be somewhat awkward in exposition due to their origins as cut- and-pastes from multiple prior documents. Smoothening out of these things will be undertaken before the book is judged complete. Also, the formal notation used for various examples in the book is known to be minorly inconsistent throughout the book. This will be regularized in a subsequent revision. See EditsNeeded for more details on known issues with the wikibook, mainly formatting-related stuff: Notes on Chapter Ordering and Revisions The pages in this wikibook can be read in various orders and will probably still make some sense. However, they were originally organized into chapters and arranged in a certain particular order, and are presented that way here. It will be appreciated if folks who update this wiki will respect this "chapter" ordering. It's fine to introduce new pages into chapters, and to introduce new chapters (even if this requires renumbering existing chapters). But please don't list a page under a chapter heading unless it really belongs there. Pages should not refer to chapters by number, since chapter numbers may change as new chapters are introduced. The chapter numbers exist only to indicate the ordering of the chapters on this page. 3 OpenCogPrime Wikibook, (C) Ben Goertzel 2008 --- draft as of July 25, 2008, updates @ opencog.org What Kinds of Revisions are Appropriate? The goal of this wikibook (the OpenCogPrime namespace on this wiki) is to describe ONE PARTICULAR AGI DESIGN, which can be built on top of the OpenCog Framework Arguments against OCP as an AGI approach belong on the CriticismsOfOpenCogPrime page. If you want you to describe your own AGI designs or algorithms based on the OpenCog Framework, please start at your userpage and expand from there; please do not use the OCP pages for this purpose. Improvements and additions to the OpenCogPrime design are appreciated and desired. However, please do not delete existing ideas from the wikibook in order to insert your new ones. Rather, insert your new ideas as alternatives, and label them as such. If you think it's appropriate to delete ideas and design aspects from the book, please consult Ben Goertzel directly; but this will hopefully be done sparingly and only in cases where certain ideas in the book have really been shown to be suboptimal. Notes on Wikilinks & Namespaces Three namespaces are used on this wiki, which may seem confusing to the unititated, so here's an example that demonstrates the separation of namespaces, and using pretty wikilinks (mousing over the link displays the namespace): MindOntology Cognitive Architecture • a general definition of the concept of a cognitive architecture Main Cognitive Architecture • an explanation of how cognitive architectures are implemented using the OpenCog Framework OpenCogPrime Cognitive Architecture • an explanation of the specific cognitive architcture in the OCP design Chapter One: Introduction This section of the book might be better titled: "Instead of an Introduction, by a man too busy to write one." This Introduction section mostly gathers some relevant information from elsewhere: some links to papers a closely- related AI system (the Novamente Cognition Engine), and some pages from the Mind Ontology. (Much of the Mind Ontology could serve as prefatory material for this wiki, but a couple pages in particular seem strikingly relevant.) OpenCogPrime, as such, is a new AGI design, but it is a modification of the Novamente Cognition Engine (NCE) design, which was originated in 2001 and has been steadily refined by a group of people since then. 4 OpenCogPrime Wikibook, (C) Ben Goertzel 2008 --- draft as of July 25, 2008, updates @ opencog.org Furthermore the NCE design was itself a (major) modification of the Webmind AI Engine design developed (and partially implemented) at Webmind Inc. during 1998-2000. Because of this history, the best way to get a general, high-level overview of OpenCogPrime as an AGI design is probably to read some of the previously published conference papers on the NCE. Look for papers authored or co-authored by Ben Goertzel on the following pages: • http://www.novamente.net/papers • http://www.agiri.org/workshop • http://www.agi-08.org/conference There are differences between the NCE and OCP, but most of these are either • at a level of detail that's not relevant to these conference papers (e.g. the OCP scheduler is much simpler than the NCE scheduler), or else • regarding aspects of the NCE that are considered proprietary to Novamente LLC and not disclosed in these conference papers Probably a nice overview of the OpenCogPrime architecture will be written up in a journal article at some point, but that doesn't seem to be anyone's priority at the moment, and will likely be done after there are