EnThink English-Thinking Module of the

First Working Artificial General Intelligence

ghost.pl for webservers -- MindForth for robots


1. Diagram of EnThink English-thinking Mind-Module

  /^^^^^^^^^^^\EnThink is for Thinking in English /^^^^^^^^^^^\
 /   EYE       \            _________________    /    EAR      \
|               |CONCEPTS  /                 \  |  ___________  |
|   _______     |   | | | / Volition FreeWill \ | / MindBoot  \ |
|  / old   \    |   | | | \___________________/ || memory vault||
| / image   \!!!|!!!|!|!| __|____  |   _|____   ||             ||
| \ recog   /---|---|-|-+(Emotion) |  /      \  || "students"  ||
|  \_______/    |   |s| | \_____/  | (RuThink ) || "read"      ||
|               |   |t| |   _______V  \______/  || "books"     ||
|               |   |u| |  /        \           | \___________/ |
|               |   |d|b| ( EnThink  )          |               |
|   visual      |  r|e|o|  \________/\_______   | "John is a"   |
|               |  e|n|o|   |     |  /       \  | "student"     |
|   memory      |  a|t|k|   |     | (InFerence) |               |
|               |  d|s|s|   |     |  \_______/  | "John reads"  |
|   channel     |   | | |   |    _V__________   | "books"       |
|               |   | | |   |   / Imperative \  |               |
|               |   | | |   |   \____________/  |               |
|   _______     |   | | |  _V__________         |               |
|  /new    \    |   |_|_| ( Indicative )        |newest memories|
| / percept \   |  /     \ \__________/         |to be recycled |
| \ engram  /---|-(  Psy  )                     |automatically  |
|  \_______/    |  \_____/                      |by ReJuvenate()|


2. Purpose

The EnThink English-thinking module, like the RuThink Russian-thinking module, carries out the wish of the Volition module to engage in thinking with natural language. An AI Mind taking advantage of Unicode mutatis mutandis may be built to think in any human language.


3. Algorithm

EnThink calls the various subordinate thinking modules such as Imperative or Indicative or InFerence.


4. Code of EnThink() from ghost.pl First Working AGI in Perl

sub EnThink() {      # http://ai.neocities.org/EnThink.html
# print "EnTh: VL= $verblock negjux= $negjux jux= $negjux \n"; # 2018-07-06: TEST
  $output = "";      # 2017-11-29: Zero out only after call(s) to Indicative()
  if ($nucon > 0) {  # 2017-11-29: if a new noun is encounter in NewConcept()
    SpreadAct();     # 2017-11-29: to activate concepts for a question. 
    $nucon = 0;      # 2017-11-29: reset for safety.
    $pov = 2;        # 2017-11-29: give human user a "pause" for input...
    $gapcon = 21;     # 2017-11-29: arbitrary pause for human input...
    return;    # 2017-11-29: after question abandon rest of function.
  }  # 2017-09-29: end of test.
  if ($kbcon > 0) {  # 2018-06-26: if user answers yes-or-no question; 
    KbRetro();   # 2018-06-26: retroactively adjust knowledge base; 
    $kbcon = 0;  # 2018-06-26: reset for safety; 
    $kbzap = 0;  # 2018-06-26: reset for safety.
    return;      # 2018-06-26: abandon remainder of current module.
  }  # 2018-06-26: User has had one chance to answer yes-or-no question.
  $inft = $t;    # 2018-06-26: in case inference-time not otherwise set; 
  if ($becon==1) {  # 2018-01-25: if user input includes 800=BE-verb...
    InFerence(); # 2018-01-25: make a silent inference; 
  }  # 2018-06-26: end of test for input of a be-verb.
  if ($yncon == 1) {  # 2018-06-26: set in the InFerence() module
    AskUser();  # 2018-06-26: for yes-or-no query; 
    return;  # 2018-06-26: abandon the rest of EnThink()
  }  # 2018-06-26: end of test to trigger asking a question.
  if ($dunnocon==1) { print "I DO NOT KNOW " }  # 2017-11-29
  Indicative();    # 2017-11-29: default grammatical mood for thought. 
# Subjunctive();   # 2017-11-29: possible future module for grammatical mood.
# Imperative();    # 2017-11-29: possible future module for grammatical mood.
# Interrogative(); # 2017-11-29: possible future module for grammatical mood.
# Optative();      # 2017-11-29: possible future module for grammatical mood. 
# ConJoin();       # 2017-11-29: Output one more idea with sufficient activation. 
# ConJoin();       # 2018-06-26: Commenting out during coding of InFerence.
  PsiDecay();      # 2017-11-29: Reduce activation after each thought.
  $conj = 0;       # 2018-06-26: reset to prevent carry-over. 
  $subjnom = 0;    # 2018-07-01: reset outside of InFerence() to prevent interference.
}  # 2018-06-26: EnThink() returns to Volition().


5. Troubleshooting and Robotic Psychosurgery

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


6. Variables

$conj -- a dual-purpose variable serving both as an identifier of which particular conjunction is under consideration for use by the ConJoin module, and a control-flag for the decision of whether to call the Indicative module more than once.

$gapcon -- status-con flag for AudInput() to count down gaps of no input, so that internal thinking may accelerate during periods of no input from external sources.

$kbcon -- knowledge-base-condition flag for KbRetro to wait for a yes-or-no answer.

$kbzap -- ZAP the knowledge base -- is a variable that holds the oldpsi word "YES" or "NO" when the InFerence() module has caused the AskUser() module to seek confirmation or denial of a silent inference from a human user engaged in a conceptual conversation with the AI Mind. KbRetro() uses the YES-value kbzap to confirm an inference, or the NO-value of kbzap to negate an inference.

$nucon -- new-condition – segregates SpreadAct() code to respond to the input of an unknown word by asking the user a question about the new concept being learned by the AI Mind.

$output -- output string as in JavaScript FirstWorkingAGI.html

$pov -- point-of-view: 1=self; 2=dual; 3=alien. When pov=1, the word "you" is somebody in the external word. When pov=2, the word "you" refers to the self-concept "I" in the AI. When pov=3, the word "you" is interpreted as part of a conversation by a third-party or as a word in a text, not referring to the self-concept of either the AI or of someone talking to the AI.

$subjnom -- subject nominative – is a concept identified in the OldConcept() recognition module as the subject of an input causing the AI to make an inference.


7. Future Development


8. Resources


Please see

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

http://cyborg.blogspot.com/search/label/EnThink -- is a special weblog URL which invites Netizens to view blog-posts discussing the EnThink mind-module.


9. AiTree of First Working AGI Mind-Modules


Return to top; or to
http://en.wikipedia.org/wiki/Natural_language_understanding -- solved.
http://old.reddit.com/r/ControlProblem -- NOT SOLVED.
javascript subreddit for AI Mind discussion;
Forth subreddit for MindForth discussion;
Perl subreddit for ghost.pl AI Mind Maintainers.
If you have any questions about the First Working AGI, please Join the Discussion.