Mental Agents for Commonsense Thinking

by Push Singh, MIT Media Lab

April 1, 1998 (Revised December 7, 1999)


Citation: Singh, Push. (1999). Mental agents for commonsense thinking. Available:
http://www.media.mit.edu/people/push/agencies.html

Introduction

The following is a list of many of the elements one needs to build a system capable of commonsense thinking.  No AI system contains all of them, though many contain more than a few of them.  I am trying to put these elements together into a system in order to control a simulated robot.

I have implemented many of them using standard AI building blocks (recognize, compare, retrieve, etc.)  I am working on a multiagent cognitive architecture to build them in, based on ideas from Marvin Minsky's Society of Mind theory, which is efficient, cooperative, and robust at responding to failures, but I will leave that discussion for another time.  Nevertheless, I see many of the following elements as easily programmed in any architecture.  This list of elements taken together implies a larger, more powerful architecture than the architecture that underlies it, so it is not clear how much it matters what the underlying architecture is.

One could probably go through the literature and find several hundred more elements.  This list came from working on the problem of building a robot capable of movement and manipulation, and learning what techniques could be applied to solving the many problems that came up, and figuring out how to organize them into a single system.

Despite the large size of this list, I think building this architecture is only one percent of the big problem of building a system capable of commonsense thinking.  There's a lot more you need to know, both in terms of how to think and what to think.  And in the end, everyone has their own "thinking style", which no single, simple architecture will be able to encompass.

Basic Vocabulary of Objects for Artificial Intelligence

This system is "object oriented" in the sense that there are a standard set of objects which the agents use and manipulate.  Here are some of the objects needed:
 

  • plan
  • manager
  • priority
  • options
  • sensor
  • difference
  • transition
  • goal
  • subgoal
  • situation
  • state
  • script
  • method
  • failure
  • impasse/handler
  • frame
  • transframe
  • k-line
  • paranome
  • polyneme
  • operator
  • constraint
  • object
  • event
  • property
  • relation
  • expectation
  • deviation
  • precondition
  • proposer
  • censor
  • advocate
  • critic
  • optimist
  • pessimist
  • predict

Mental Questions that Direct Common Sense Thinking

One way to control the direction of mental activity is by focusing on some set of questions.  Of course, these questions do not need to be expressed in english, and may be expressed as queries in various internal representations.  These questions initiate and prioritize inference processes that help answer them.  Here are some of the questions a robot should always be asking itself:

Mental Agents for Common Sense Thinking

Some of these agents are simple IF-THEN-DO rules.
Some are more complex IF-THEN-DECIDE/SEARCH rules.
Some are really complex IF-THEN-FIGURE-OUT rules!

Tracking, Recognizing and Describing

Goal Scheduling and Monitoring Plan Construction Plan Selection Plan Optimization Plan Parallelizing Plan Verification Plan Learning Plan Execution and Monitoring Dealing with Planning Impasses Prediction and Envisioning Expectation Failure Perceiving Understanding and Explaining the Dynamic Situation Reasoning Dealing with Reasoning Impasses Learning and Abstracting Resource Management Thinking for the Future (Daydreaming, Worrying) Knowledge Management and Maintenance (Theories, Plans, etc.) Multi-Agent Coordination Social Reasoning Language Vision Comparing and Decision Making Searching and Constraint Satisfaction

Mental Representations for Common Sense Thinking

These agents operate on data structures that represent aspects of the world and of the mind of the robot itself.  Here are some examples of the kinds of concepts robots will need.  Each of these should be represented in multiple ways!