Ben Goertzel
May 20, 2002
This question list is designed to aid in the comparative discussion and analysis of different approaches to Artificial General Intelligence (AGI).
It is in no sense complete, and it is certainly a bit biased toward my own AGI approaches and interests, in spite of my efforts to make it not too severely so. I hope that near-future revisions will be less biased in this way.
For this preliminary version, feedback is sought on the questions themselves. After the question list has been fleshed out through feedback from others, I will provide answers for my own Novamente AGI design, and try to get other AGI designers to give their own answers.
I am less interested in reactions of the form “This or that question is not relevant to my AGI system” and more interested in reactions of the form “You left out this question, which is very important for my AGI system.” I assume that not all questions will be relevant to all AGI systems.
How are the following represented?
Concepts
Types (kinds) and individuals
Functional terms (e.g. “the sum of one and two.” “the flower of the oak tree.”)
Term subsumption hierarchy.
Relationships between concepts
Argument constraints on relationships
Relationship subsumption hierarchy
Quantified relationships (e.g. “Every boy loves a girl”, “Every boy has a dog that every girl likes to call by some special pet name”)
Logical operators (e.g. “not”, “or”, “and”, “xor”, “equivalent”, “implies”)
Rules (e.g. “if something is a dog, then it has fur.”)
Events (is the event reified with roles for actors, particpants, situation, etc., and/or is the event represented mainly by the actions that occur?)
Actions (preconditions and effects suitable for planning)
Procedures
Time (e.g. “Today is Saturday.”, “at night” “Step A happens before step B.” “During the 1980's we feared the Soviet Union.”)
Counterfactuals (e.g. “Dracula is a vampire.” “There are no human vampires.”)
Percepts
Thoughts (considered as temporary mental phenomena, actively evolving and not committed to memory)
Beliefs about named concepts
Beliefs about unnamed concepts
Beliefs about procedures
The degree/strength/certainty of a belief
Hypothetical knowledge (“Pei believes the Earth is flat”)
Contextual knowledge (“At parties, she is cute.”)
Truth Maintenance (when a fact or rule is retracted, the solely supported facts should be automatically retracted).
Fuzzy lexical terms (“near” “very close to” “approximately” “sort of” “might be”)
Reflection -- the representation of the AGI by concepts and relationships, in particular its behavior
Lexicon for associating concepts with natural language words. Support for NL parsing and generation
Is there an XML serialization of the knowledge store?
Of the many processes the system can carry out at a given time, what determines which ones get the most attention?
Of the many knowledge items the system can focus on at a given time, what determines which ones get the most attention?
Distributed Processing
Can the system collaborate with others of its kind?
How is knowledge replicated?
How is knowledge merged when two similar concepts are independently created by distributed instances of the AGI
How do distributed instances of the AGI collaborate to achieve goals?
What is the security model? (prevent “viruses”).
Knowledge Acquisition
What facilities are provided for acquisition of knowledge from experts?
Can information be extracted from text?
How are the following types of reasoning carried out?
Deduction (including planning)
Induction
Abduction (hypothesis formation, and best explanation for observed evidence)
Analogy
Finding of generic “associations” between mental entities
Prediction (“I expect that I will run much faster on the new computer.”)
Classification (“This small animal has fur and barks, so it could be a dog.”)
How are new procedures learned?
How are existing procedures reinforced when they lead to desirable behavior?
How are the system’s goals represented?
Does it have initial built-in basic goals, and if so can it modify them?
How does it create new subgoals and supergoals from its existing goals?
How do the goals guide the system’s various processes?
How does the system sense its own internal state?
Can it create new ways of sensing its own internal state?
How does the output of the system’s internal-state-sensors affect the system’s behavior?
How are the following processes carried out?
Noun phrase parsing (“young computer scientists” “laptop computer parts”)
Sentence parsing
Syntactic disambiguation
Semantic disambiguation
Anaphor resolution
Discourse (understanding the rhetorical structure of a document or speech)
Sentence production (generation)
Transformation of nonlinguistic “thought forms” into sentences
“Semantic mapping” of sentences into nonlinguistic thought-forms
How are perceptual gestalts recognized?
How are inputs from different sensory modalities merged and interrelated?
How are sensations turned into perceptions?
Given a huge set of perceptions, how does the system recognize potentially salient patterns in the set?
How are the following distinctions represented, in terms of both structures and dynamics?
Short-term vs. long-term memory
Declarative versus procedural memory
The modality-dependent “perceptual store” aspect of short-term memory, versus the “blackboard” aspect of short-term memory
Memory of perceptions versus memory of ideas
And:
What determines when an item is “forgotten” from the system’s memory
Is there a mechanism for saving forgotten memories in long-term storage (e.g. on disk) and then retrieving them (and if so, by what retrieval mechanism?)
What primitive representations and/or dynamics are provides for dealing with
Time
Space
Other minds
Self-perception and self-analysis
How does the system represent a causal relationship between two:
events or event-categories
processes
actions taken by agents
What major components go into determining that there is a causal relation between two:
Events or event categories
Processes
Actions taken by agents
How does the system go about predicting what is likely to happen in a given future situation?
How does the system go about dividing a set of items into “natural categories”?
If the system is given examples of items in several different categories, how does it go about creating implicit or explicit “models” that let it place a new item in an appropriate one of the categories?
How does the system represent:and manipulate:
Visual data?
Acoustic data?
Tactile?
Olfactory?
Software code?
Quantitative data tables?
Database records?
Text files?
Knowledge records from repositories such as the Cyc KB or the WordNet lexical KB?
Mathematical knowledge
What is the internal structure of a “concept”
In what sort of external relationships is a “concept” involved?
By what methods are new concepts formed?
What factors determine the choice of method for concept-formation in a given context?
How does cognition guide perception?
How does action guide perception?
How do cognition, perception and action guide the process of storing an item in memory, or retrieving an item from memory
How do concepts relate to “mental imagery”
What high-level structures exist in your system?
Which of these structures are explicit in the codebase and which are expected to emerge dynamically?
What are the primary categories of dynamics in your system?
Which of these dynamics are explicit in the codebase and which are expected to emerge?
Does your system involve a perceptual hierarchy? A motor hierarchy? Are these hierarchies interconnected? How are they constructed? How do the parts of the hierarchy corresponding to different sensory modality or motor components interact?
How is a “system of beliefs” represented in your system?
What mechanisms does a belief system use to preserve itself over time?
How is your system’s “model of reality” defined?
How is this model constructed?
What is the relation between its model of self and its model of reality?
How are fundamentally new ideas, not directly derived from existing ideas in the system, created?
Is there a special component of the system, special structures, or special dynamics devoted to creativity?
If creative thinking corresponds to a particular aspect or property of your system, which one (or ones)?
Will different instances of your system have different “personalities”?
Might there be multiple subpersonalities, in some sense – if so, in what sense?
How might different personalities be grounded in different aspects of the system’s structure and dynamics?
In what ways is the system’s understanding of itself affected by its interactions with others?
How is morality expressed in the system?
To what extent is morality learned versus in-built? What is the relation between learned and in-built morality in your system?
Are there elements of your system that “evolve” in the sense of surviving with probability roughly proportional to “fitness” in some sense? If so, what are they?
Is this evolution ecological, in the sense that the fitness of one evolving entity depends on the states of other entities in the system? If so, specify details.
Does your system rely heavily on (quasi) stochastic processes (e.g. random number generation). For what purposes?
What are the biggest general computational-complexity issues you’ve faced in building your system (or that you’ll envision you’ll face)
What aspects of your system’s structure/dynamics are the most difficult from a computational-complexity perspective?
What kind of hardware does the system require?
If it is intended for distributed implementation, how are knowledge and processes to be distributed among machines?
How much RAM and processing power do you think will be necessary to achieve roughly human-level intelligence using your system?
Does your system involve the “scheduling” of different processes? If so how is this accomplished?
Is an Application Programming Interface (API) provided that helps integrate foreign systems?
Is the implementation open source – entirely or in part or none?
Of course, rough estimates are all that’s expected for these quantitative questions.
How many non-fixed parameters does the system have?
How many of these can be optimized once for a system’s whole lifetime and how many have to be tuned adaptively?
How many of these have to do with the internal performance of some relatively localized system component, versus having to do with the interactions between components?
What mechanisms are used for automatic optimization of parameters, either offline or adaptively
What kind of environment is the system intended to operate in?
What kind of instruction will it be given, and by whom?