RE: Towards a prototype mini-AI

From: Mitchell Porter (mitchtemporarily@hotmail.com)
Date: Fri Jan 31 2003 - 22:11:20 MST


Ben G:

>you must be aware that the step from your informal sketch to something
>vaguely workable is a HUGE step with numerous difficult substeps...

What I want to see is a pseudocode schema for a general AI: the
"Hello, world" of LOGI-compliant programming, something you might
find on page 1 of a SIAI textbook for seed AI programmers. Even
if Novamente meets all the AGI criteria, it's a mature project
and is way too big and sophisticated for a print-out of source
code to be enlightening. I want a minimal example of the proposed
architecture, just a few dozen or a few hundred lines long.

What follows is not exactly LOGI-compliant, but it might make
things clearer. Suppose I say: "Lo, the ideal AI has three parts:
a feature extractor, a concept generator, and a goal chaser.

* The feature extractor looks upon the perceptual input and
determines whether certain primitive features are satisfied.
* The concept generator proposes 'concepts', logical conjunctions
of the primitive features, in terms of which a conceptual
representation is produced from the list of current features.
* The goal chaser proposes actions, intended to bring about a
specified goal state, by applying its heuristics to the state of
affairs indicated by the conceptual representation."

Okay, so that's my design idea in natural language. Now if I add,
in my barbaric personal parody of C:

main()
{
somedatatype inputData = /* WHATEVER */ ;
boolean goalStateReached = /* some condition */ ;
extractFeatures(inputData);
constructRepresentation();
while(not(goalStateReached)) {chaseGoal()};
}

extractFeatures(object)
{
for(i=0;i>numPrimitiveFeatures;i++)
  {feature[i] = featureDetector[i,object];};
}

constructRepresentation()
{
for(i=0;i>numConcepts;i++)
  {if(satisfyConcept(i,feature[])) {addRepresentation(i)}};
  /* the 'representation' merely lists the 'concepts'
     satisfied by the list of features */
}

chaseGoal()
{
applyHeuristics();
generateConcept(criteria);
constructRepresentation();
}

generateConcept()
{
  /* pick out a new list of features according to criteria,
     declare that this is concept number (numConcepts) */
  numConcepts++;
}

featureDetector()
{ /* specialized code */ }

... etc., etc., I think it makes a little clearer what I was
talking about to begin with, right? In particular, it makes
it clearer what I had in mind for the *implementation* of
my cognitive concepts.

Again, I want to emphasize: I'm not talking of a schema for a
*seed AI*, but of a schema for a *general AI*. A seed AI is a
highly particular subspecies of general AI, namely one that
is optimized for self-enhancement. A seed AI will necessarily
conform to the general-AI schema, but is likely to have enough
specific architectural properties that it deserves its own
schema (see part 2 of the textbook).

_________________________________________________________________
MSN 8 with e-mail virus protection service: 2 months FREE*
http://join.msn.com/?page=features/virus



This archive was generated by hypermail 2.1.5 : Wed Jul 17 2013 - 04:00:41 MDT