MindBoot Module of the

English and Russian bilingual ghost.pl AI in Perl

Mens Latina in Latin -- MindForth for Robots

1. Diagram of MindBoot Module

  /^^^^^^^^^^^\Each Language Needs Bootstrap Words/^^^^^^^^^^^\
 /   EYE       \            ________________     /    EAR      \
|               |CONCEPTS  /                \   |  ___________  |
|   _______     |   | | |  \   MainLoop     /---|-/ MindBoot  \ |
|  / old   \    |   | | |   \______________/    || memory vault||
| / image   \!!!|!!!|!|!|      |    ________    ||             ||
| \ recog   /---|---|-|-+      |   /        \   ||  820=SEE    ||
|  \_______/    |   |s| |      |   \ KbLoad /---||             ||
|               |   |t| |      |    \______/    || "students"  ||
|               |   |u| |   ___V_____________   || "read"      ||
|               |   |d|b|  /                 \  || "books"     ||
|   visual      |  r|e|o| / Volition FreeWill \ ||             ||
|               |  e|n|o| \___________________/ || 1820=ВИДЕТЬ ||
|   memory      |  a|t|k| __|____ |  |  |       | \___________/ |
|               |  d|s|s|(Emotion)|  |  |       |               |
|   channel     |   | | | \_____/ |  |  |       |oldest memories|
|               |   | | |   ______V  |  V_____  |to be forgotten|
|               |   | | |  /       \ | /      \ |               |
|   _______     |   | | | ( EnThink )|(RuThink )|newest memories|
|  /new    \    |   |_|_|_ \_______/ | \______/ |to be recycled |
| / percept \   |  / Psy  \     _____V______    |automatically  |
| \ engram  /---|-/concepts\   /  Motorium  \   |by ReJuvenate()|
|  \_______/    | \________/   \____________/   |               |


2. Purpose of the MindBoot Module

The MindBoot sequence serves many purposes at the heart of a concept-based artificial intelligence. Chief among them is the function of demonstrating a proof-of-concept AI by enabling the artificial Mind to think immediately upon being run as an AI program. As the earliest conceptual AI Minds evolve and mature into greater sophistication, they must necessarily lose more and more of the MindBoot sequence until they become like a human baby with an empty, tabula rasa knowledge base (KB) that must learn everything by experience.


3. Algorithm of the Innate Knowledge Base and Vocabulary Sequence


4. Partial Code of MindBoot() from ghost302.pl AI Mind in Perl

English bootstrap

sub MindBoot() {  # http://ai.neocities.org/MindBoot.html
  $dob = $birth;  # 2017-03-30: isolated from dynamic $birth value.
  $t = 0;  # 2015apr26: bootstrap stretches over time "$t". 
  print "MindBoot loads the knowledge base... ";  # 2019-01-25
  print "TAB to change display-mode. \n";  # 2019-01-25: 
  # ERROR -- first word so any bug will announce itself 
  $t=0; $ear[$t] = "E,0,0";    # 2016mar12
  $t=1; $ear[$t] = "R,0,0";    # 2016mar12
  $t=2; $ear[$t] = "R,0,0";    # 2016mar12
  $t=3; $ear[$t] = "O,0,0";    # 2016mar12
  $t=4; $ear[$t] = "R,0,586";  # 2016mar12
  $tru = 0;  # 2018-09-26: TEST to prevent uninitialized value
  $psi=586; $hlc=1; $jux=0; $pos=5; $dba=0; $num=1; $mfn=3;  # 2018-09-27
  $pre=0;   $seq=0;    $tkb=0; $rv=0; KbLoad();  # 2018-07-01: flag-panel in order.

  # I -- for SelfReferentialThought; hard-coded knowledge-base; 2018-09-08
$t=6; $ear[$t] = "I,0,701";    # 2018-09-08
  $tru=8; $psi=701; $hlc=1; $pos=7; $dba=1; $num=1; # 2018-09-30
  $seq=800; $tkb=9; $rv=6; KbLoad(); # 2018-09-08: flag-panel order

  # AM -- 1st person singular of 800=BE; hard-coded knowledge-base; 2018-09-08
$t=8; $ear[$t] = "A,0,0";    # 2018-09-08
$t=9; $ear[$t] = "M,0,800";  # 2018-09-08
  $psi=800; $hlc=1; $pos=8; $dba=1; $num=1; # 2018-09-27
  $pre=701; $seq=501;  $tkb=15; $rv=8; KbLoad(); # 2018-09-08: flag-panel order

  # ANDRU -- for SelfReferentialThought; hard-coded knowledge-base; 2018-09-08
$t=11; $ear[$t] = "A,0,0";    # 2018-09-08
$t=12; $ear[$t] = "N,0,0";    # 2018-09-08
$t=13; $ear[$t] = "D,0,0";    # 2018-09-08
$t=14; $ear[$t] = "R,0,0";    # 2018-09-08
$t=15; $ear[$t] = "U,0,501";  # 2018-09-08
  $psi=501; $hlc=1; $pos=5; $dba=1; $num=1; $mfn=1;  # 2018-09-27
  $pre=800; $rv=11; KbLoad(); # 2018-09-08: flag-panel order

  # I -- innate KB-item for testing inhibition of idea-pairs
$t=17; $ear[$t] = "I,0,701";  # 2018-09-27
$psi=701; $hlc=1; $pos=7; $dba=1; $num=1; $seq=800; $tkb=20; $rv=17; KbLoad();
Russian bootstrap

# next comes Russian-language knowledge base (KB)

# http://ai.neocities.org/Dushka.html -- predecessor Russian AI for MSIE
  $t=500; $ear[$t] = "\N{U+0},0,0"; # 2018-09-25: Unicode?
# "Я" (1701 "I") personal pronoun; nominative; 2016may21
  $t=501; $ear[$t] = "\x9F,0,1701"; # 2018-09-25: "Я"
  $psi=1701; $hlc=3; $jux=0; $pos=7; $dba=1; $num=1; $mfn=0; # 2018-09-27
  $pre=0; $seq=1866; $tkb=510; $rv=501; KbLoad(); # 2019-06-03: flag-panel order
  $t=502; $ear[$t] = " ,0,0";       # 2018-09-25: blank space for AudRecog

  $t=503; $ear[$t] = "\N{U+0},0,0"; # 2017-12-06: necessary for Unicode?
# ПОНИМАЮ -- 2019-06-03: #1866 ("understand"); first person singular verb
  $t=504; $ear[$t] = "\x8F,0,0";    # 2018-09-25: "П"
  $t=505; $ear[$t] = "\x8E,0,0";    # 2018-09-25: "О"
  $t=506; $ear[$t] = "\x8D,0,0";    # 2018-09-25: "Н"
  $t=507; $ear[$t] = "\x88,0,0";    # 2018-09-25: "И"
  $t=508; $ear[$t] = "\x8C,0,0";    # 2018-09-25: "М"
  $t=509; $ear[$t] = "\x80,0,1866"; # 2019-06-03: "А"
  $t=510; $ear[$t] = "\x9E,0,1866"; # 2019-06-03: "Ю"
  $psi=1866; $hlc=3; $mtx=892; $jux=0; $pos=8; $dba=1; $num=1; $mfn=0; # 2019-06-03
  $pre=1701; $seq=1707; $tkb=516; $rv=504; KbLoad(); # 2018-09-25: flag-panel order
  $t=511; $ear[$t] = " ,0,0";       # 2018-09-25: blank space for AudRecog

  $t=512; $ear[$t] = "\N{U+0},0,0"; # 2018-09-25: necessary for Unicode?
# ТЕБЯ (1707 "you") pronoun; familiar; acc. sing. 2016may22
  $t=513; $ear[$t] = "\x92,0,0";    # 2018-09-25: "Т"
  $t=514; $ear[$t] = "\x85,0,0";    # 2018-09-25: "Е"
  $t=515; $ear[$t] = "\x81,0,0";    # 2018-09-25: "Б"
  $t=516; $ear[$t] = "\x9F,0,1707"; # 2018-09-25: "Я"
  $psi=1707; $hlc=3; $jux=0; $pos=7; $dba=4; $num=1; $mfn=0; # 2018-09-27
  $pre=1866; $seq=0; $tkb=0; $rv=513; KbLoad(); # 2019-06-03: flag-panel order
  $t=517; $ear[$t] = " ,0,0";       # 2018-09-25: blank space for AudRecog
Words with relative time-points

$t++;  # 2018-09-02: making single-word time relative, not hard-coded.

  # A -- En(glish) Article for EnArticle module; 2018-09-08 
$t++; $ear[$t] = "A,0,101"; $rv = $t; # 2018-09-08: anticipate KbLoad.
  $psi=101; $hlc=1; $pos=1; $num=1; KbLoad(); # 2018-09-08: necessary items.
$t++;  # 2018-09-08: one blank time-point for sake of AudRecog()

  # 601=ABOARD -- 2018-11-11: preposition for EnPrep() module 
$t++; $ear[$t] = "A,0,0"; $rv = $t; # 2018-11-15: anticipate KbLoad.
$t++; $ear[$t] = "B,0,0";           # 2018-11-15
$t++; $ear[$t] = "O,0,0";           # 2018-11-15
$t++; $ear[$t] = "A,0,0";           # 2018-11-15
$t++; $ear[$t] = "R,0,0";           # 2018-11-15
$t++; $ear[$t] = "D,0,601";         # 2018-11-15: among 100 innate prepositions.
  $psi=601; $hlc=1; $pos=6; KbLoad(); # 2018-11-15: flag-panel
$t++;  # 2018-11-15: one blank time-point for sake of AudRecog()


5. Variables

$act -- quasi-neuronal activation-level of a conceptual engram in memory.

$dba -- doing-business-as noun-case or verb-person.

$hlc -- human-language code; 1=en; 2=de; 3=ru. Subject to override by the $engov or $degov or $rugov flag.

$iob -- indirect-object tag for @psy concept array

$jux -- jux(taposed) concept in @psy array, especially the word "NOT" to negate a verb.

$mfn -- masculine-feminine-neuter gender flag. For the MindBoot of any human language, it is helpful to include the most common male and female human names so that the AI will have built-in knowledge of their gender as an aid to assigning he-or-she pronouns.

$mtx -- machine-translation xfer (transfer) variable for SpreadAct module to transfer an activation-swarm from a sentence in one language to the same concepts in a target language for machine translation (MT).

$num -- number-flag for grammatical number. Verbs must agree in number with their subjects. Two or more singular subjects require a plural verb.

$pos -- (part of speech) with a numeric value (1=adj 2=adv 3=conj 4=interj 5=noun 6=prep 7=pron 8=verb) to be inserted into the conceptual flag-panel of a concept during the process of instantiation of a concept-node at a particular time-point. The part-of-speech parameter allows an AI Mind to restrict operations to one particular part of speech, such as verb, or to similar parts of speech, such as nouns and pronouns to be used as subjects or objects of a verb.

$pre pre(vious) associated @psy concept.

$psi -- variable for an element of the @psy conceptual array, with a numeric identifier serving as an mtx tag for the same concept in another language.

$rv -- recall-vector for auditory memory. The time-point value of rv is first set in the AudInput module after an intervening space when the first character of an input-word is being passed into the AudMem module. The recall-vector rv is reset to zero in AudInput after a call to OldConcept or to NewConcept.

$seq -- subSEQuent @psy concept in an idea. As the AI Minds evolve, the associative seq tag may take on a new role as pointing from a noun or verb or adjective or adverb to an associated preposition.

$t -- internal time "t" used for indexing through conceptual and sensory arrays.

$tkb -- time-in-knowledge-base of an idea. The EnParser() module stores time-of-verb $tvb in the k[13] $tkb slot of the subject of a sentence being stored at the time-of-subject $tsj time-point in the Psy conceptual array. The EnParser module stores $tkb as equal to $tdo (time of the direct object) in the Psy array row of the verb at time-of-verb $tvb. Thus for subjects $tkb means "verb" and for verbs $tkb means "direct object". No $tkb is stored for a direct object, because the associative tags go from subject to verb to object (SVO) but no further.

$tru -- tru(th) variable serving as a flag-panel tag to hold dynamically the believed reliability or truth-value of an idea. For an inference validated by a human user, the truth-value may be set to a positive value arbitrarily set by the AI Mind Maintainer. Since a positive truth-value may be carried forward in recollections of the validated inference, $tru must be reset to zero at the end of a thought-generation module such as the Indicative module. AI coders may use the truth-value to establish modes of thought which disregard ideas in the knowledge base lacking a positive truth-value.


6. Troubleshooting and Robotic Psychosurgery

6.1.a. Symptom: (Something goes wrong.)
6.1.b. Solution: (AI Mind Maintainer devises solution.)

One useful technique for troubleshooting the MindBoot module is to make the Diagnostic mode display not just the most recent contents of the memory arrays but indeed the entire MindBoot sequence. Then the AI Mind maintainer may look for anything irregular that is probably a bug in the MindBoot data. In the JavaScript tutorial AI for Microsoft Internet Explorer (MSIE), the psiList() function causes the display of the psy concept array from the nonce value up to the present moment. An AI coder may go in and set the nonce value to a unitary "one" (1) in order to see the entire MindBoot sequence. Since the audList() function to show the auditory array uses the same nonce value, setting "nonce" for psiList() also sets it simultaneously for the audList() display.


7. Future Development of the MindBoot Module

A goal for the bilingual AI Mind is eventually to contain all the main words for the English language and the Russian language. Another goal is to connect with resources such as Cyc and Wordnet.


8. Resources


Please see

http://mind.sourceforge.net/enboot.html

http://github.com/kernc/mindforth/blob/master/wiki/DeBoot.wiki

http://github.com/kernc/mindforth/blob/master/wiki/RuBoot.wiki


9. AiTree of First Working AGI Mind-Modules


Return to top; or to
Tiananmen Square IV VI
javascript subreddit for AI Mind discussion;
Forth subreddit for MindForth discussion;
Perl subreddit for ghost.pl AI Mind Maintainers.
http://old.reddit.com/r/ControlProblem -- NOT SOLVED.
http://en.wikipedia.org/wiki/Natural_language_understanding -- solved.
Iskusstvenny Intellekt Programming Journal for Artificial Intelligence in Russian Language.
Converting ancient Latin AI into modern Russian AI
http://ai.neocities.org/Dushka.html -- tutorial Russian AI;
If you have any questions about the First Working AGI, please Join the Discussion.
Joint Artificial Intelligence Center (JAIC) -- the AI Manhattan Project.
Subject to change without notice.
Many thanks to NeoCities.
http://neocities.org/blog
http://trollheaven.blogspot.com