1. OVERVIEW AND BRAIN-MIND DIAGRAM
/^^^^^^^^^\ A Recognized Word Activates An Idea /^^^^^^^^^\
/ EYE \ _______ / EAR \
/ \ CONCEPTS / New- \ / \
| _______ | | | | _______ ( Concept ) | C match! |
| /old \!!!!|!!|!| | / Old- \ \_______/ | +A match! |
| / image \---|----+ | ( Concept ) | | ++T match! |
| \ fetch / | |c| | \_______/------|------|-----S recog! |
| \_______/ | |a| | | \ | | |
| | |t| | __V___ \ | | C match! |
| visual | |s| | / \ \ | | +A match! |
| | e| | | (Activate) \ _V__ | ++T match! |
| memory | a| | | \______/ \/ \ | +++S busy |
| | t| | | | / \ | U skip |
| reactivation | | |f| __V____ ( Parser ) | P skip |
| | | |i| / \ \ / | |
| channel | | |s| (spreadAct) \____/ | C match! |
| _______ | | |h| \_______/ | | +A match! |
| /old \ | |_|_| / ________V__ | R stop |
| / image \ | / \/ / \ | S skip |
| \ store /---|-\ Psi /------( Instantiate ) | |
| \_______/ | \___/ \___________/ | |
diagrams.html shows a Theory of Mind.
The Oldconcept module takes a word that has been recognized as
a known concept and creates a new, up-to-date associative node
that preserves the instantaneous relationship of each concept to
nearby concepts caught up in the momentary syntactic assertion.
Typically a verb mediates the relationship from one concept to
another in the knowledge base (KB) that builds up over time as
the accumulation of all known facts and ideas about a concept.
Likewise the concept of any given verb is also mediated by its
associative relationships within myriad syntactic assertions.
In our Open Source AI epistemology, machine learning is the
gradual build-up of an ontology of intricately related facts.
We claim that the AI Mind is theoretically an improvement upon
the vaunted Cyc (R) ontology because we conceptualize concepts
in accordance with the SourceForge/ Mind/ Docs/ Theory of Mind
based on sound neuroscience and the linguistics of Noam Chomsky.
Our AI algorithm includes not only machine learning but also
forgetting -- as the consignment to oblivion of memories that
fail to be brought forward in the stream of consciousness for
lack of associative renewal on the basis of frequency of use.
2. NIL NOVI SUB SOLE
There is "nothing new under the sun" when we generate a sentence,
because the Chomskyan syntax of thought may only manipulate old
concepts already known to the mind but not new concepts until the
newConcept module converts them -- immediately -- to old concepts.
Then the oldConcept module processes the reentry of the output of
the mind back into the mind, reactivating each recognized concept
in chains of association so that spreading activation constitutes
a chain of thinking or meditating or mulling about old knowledge.
If the mind goes down a road less traveled in the conceptual wood
so as to think up an entirely original idea (E = mc^2, anybody?),
then perhaps that original idea has made all the difference.
The diagram ai4u_157.html is a flowchart of Mind.
// oldConcept() is called from Audition() to create a
// fresh concept-node for a recognized input word.
function oldConcept() { // ATM 12aug2002; or your ID & date.
act = 32; // Start with a basic activation-value.
for (i=t; i>midway; --i) { // Cycle back through English lexicon.
enLexicon[i].enExam(); // Examine each English concept node.
if (psi == en0) { // If psi (enx?) from Audition() matches,
if (en2 > 0) fex = en2; // retrieve the "fiber-out" flag;
// Next line tries to parse by word-recognition:
if (en3 > 0) pos = en3; // retrieve most recent part-of-speech;
if (en4 > 0) fin = en4; // retrieve the "fiber-in" flag;
break; // Use only the most recent En(glish) engram-node.
} // End of searching if-clause.
} // End of the backwards loop.
enLexicon[t] = new enNode(psi,0,fex,pos,fin,aud);
// This code has a bearing on emerging consciousness:
if (pov == "{") psi = fex; // at start of internal pov;
if (pov == "#") psi = fex; // during internal "pov";
if (pov == "}") psi = fex; // at finish of internal pov.
if (pov == "*") psi = fin; // external "pov"
enx = psi; // Use the psi value for "transfer-to-English".
if (psi == 16) { // If question-word "why" comes in,
act = 8; // subactivate question "why".
question = 16; // Briefly keep track of what was asked,
// so that Conjoin() may provide the conjunction "because".
} // End of test to deal with "why" questions.
if (psi == 54) act = 8; // Subactivate question "what".
if (psi == 55) act = 8; // Subactivate question "who".
if (psi == 59) { // If auxiliary verb "do" is recognized,
act = 8; // Reduce activation of "do".
} // End of test to de-activate auxiliary verb "do".
Parser(); // Determine the part-of-speech "pos".
pos = 0; // Reset the "part-of-speech" to zero.
urpre = pre; // Hold value of "pre" safe during Activate().
caller = "oldConcept"; // For diagnostic Alert boxes.
Activate(); // Having recognized a concept, activate it.
pre = urpre; // Restore the value of "pre".
unk = 0; // Reset for safety.
// The next lines store "seq" retroactively:
if (pre > 0) {
for (i=t; i>midway; --i) {
Psi[i].psiExam(); // Examine the Psi concept nodes.
if (pre == psi0) {
Psi[i] = new psiNode(psi0,psi1,psi2,psi3,psi4,psi,psi6);
break; // Store one instance, then "break" the loop.
} // end of inner if-clause
} // end of loop
} // end of outer if-clause
pre = psi; // for next "nen"
act = 0;
} // End of oldConcept(); return to Audition().
\ OLDCONCEPT is called from AUDITION to create a
\ fresh concept-node for a recognized input word.
: OLDCONCEPT \ ATM 3aug2002; or your ID & date.
32 act ! \ \ Start with a basic activation value.
midway @ t @ DO \ Cycle back through the English lexicon.
I 0 en{ @ psi @ = IF \ If psi-tag matches lexical concept,
I 2 en{ @ 0 > IF \ if it is greater than zero,
I 2 en{ @ fex ! THEN \ retrieve the fiber-out flag.
I 3 en{ @ 0 > IF \ So as to parse by word-recognition,
I 3 en{ @ pos ! THEN \ retrieve most recent part-of-speech.
I 4 en{ @ 0 > IF \ If it is greater than zero,
I 4 en{ @ fin ! THEN \ retrieve the fiber-in flag.
LEAVE \ Use only the most recent English engram-node.
THEN \ End of searching if-clause.
-1 +LOOP \ End of the backwards loop.
\ Next code stores "psi" directly instead of calling enVocab,
\ so that value of "psi" will not interfere with "nen" value:
( "psi" as found by audRecog ) psi @ t @ 0 en{ !
( Store zero activation. ) 0 t @ 1 en{ !
( Store mindcore EXit tag. ) fex @ t @ 2 en{ !
( Store part of speech "pos".) pos @ t @ 3 en{ !
( Store mindcore IN tag. ) fin @ t @ 4 en{ !
( Store the auditory "aud" tag. ) aud @ t @ 5 en{ !
\ The Robot Mind as a seed AI for Technological Singularity
\ approaches artificial consciousness in the following code:
pov @ 35 = IF fex @ psi ! THEN \ during internal (#) "pov";
pov @ 42 = IF fin @ psi ! THEN \ external (*) "pov"
psi @ enx ! \ Assume Psi number = En(glish) number.
psi @ 54 = IF 8 act ! THEN \ Subactivate question "what".
psi @ 55 = IF 8 act ! THEN \ Subactivate question "who".
psi @ 59 = IF 8 act ! THEN \ Subactivate auxiliary "do".
PARSER \ Determine the part-of-speech "pos".
0 pos ! \ Reset the part-of-speech "pos" flag.
pre @ urpre ! \ Hold value of "pre" safe during ACTIVATE.
ACTIVATE \ Re-activate recent nodes of the concept.
urpre @ pre ! \ Restore the value of "pre".
\ The next lines store "seq" retroactively:
pre @ 0 > IF \ If a positive "pre" exists...
midway @ t @ DO \ look backwards in time...
I 0 psi{ @ pre @ = IF \ for a node of "pre"
psi @ I 5 psi{ ! \ and store "psi" as retroactive "seq"
LEAVE \ One instance is enough.
THEN \ end of inner if-clause
-1 +LOOP \ end of backwards loop
THEN \ end of outer if-clause
psi @ pre ! ( for next nen )
0 act ! \ Reset for safety.
\ 26jul2002 Diagnostic test code:
pov @ 35 = IF \ 26jul2002 Make sure pov is internal,
1 match ! \ 26jul2002 Declare word-match for SPEECH.
THEN \ 26jul2002 End of test for internal pov=35 state.
; \ End of OLDCONCEPT; return to AUDITION.
5. ANALYSIS OF THE MODUS OPERANDI
The Oldconcept module creates a new associative node for a
concept in the mindcore array Psi and also in the En
English lexical array that manipulates English words stored
in the Aud array of the auditory memory channel.
6. OLDCONCEPT AND KNOWLEDGE-BASE RESOURCES