AudBuffer module of the

English and Russian bilingual ghost.pl AI in Perl

Mens Latina in Latin -- MindForth for robots


1. Diagram of the AudBuffer Mind-Module


  /^^^^^^^^^^^\AudBuffer has left-justified stems /^^^^^^^^^^^\
 /   EYE       \            _________________    /    EAR      \
|               |CONCEPTS  /                 \  |  ___________  |
|   _______     |   | | | /     Volition      \ | / MindBoot  \ |
|  / old   \    |   | | | \___________________/ || memory vault||
| / image   \!!!|!!!|!|!|   _|___      _|____   ||             ||
| \ recog   /---|---|-|-+  /     \    /      \  || "students"  ||
|  \_______/    |   |s| | (EnThink)  (RuThink ) || "read"      ||
|               |   |t| |  \_____/    \______/  || "books"     ||
|               |   |u| |          _____|______ | \___________/ |
|               |   |d|b| _____   (RuIndicative)| "Mark is a"   |
|   visual      |  r|e|o|| Ru- \  /\__________/ | "student"     |
|               |  e|n|o|| Noun-\/   ___|____   |               |
|   memory      |  a|t|k|| Phrase\  / RuVerb-\  | "Mark reads"  |
|               |  d|s|s||_______/ /  Phrase  \ | "books"       |
|   channel     |   | | |          \__________/ |               |
|               |   | | |   _________|_____     |  СТУДЕНТЫ     |
|               |   | | |  /   RuVerbGen   \    |  ЧИТАЮТ       |
|   _______     |   | | |  \_______________/    |  КНИГИ        |
|  /new    \    |   | | | ___|_____   ___|_____ |               |
| / percept \   |   |_|_||AudBuffer| |OutBuffer||               |
| \ engram  /---|---(Psy)|ЧИТА-    | |   ЧИТАЮТ||               |
|  \_______/    |    \_/ |_________| |_________||               |


2. Purpose of the Ghost AI AudBuffer Mind-Module


AudBuffer transfers auditory engrams to OutBuffer for inflection.


3. Function of the Ghost AI AudBuffer Mind-Module

As long as $abc characters are coming into the AudBuffer, the $phodex counter increments automatically in order to transfer each $abc character to a character variable numbered anywhere from $c01 up to $c16 -- if the incoming stem or word is that long. The final incoming $abc character is transferred to the buffer character $b16 in the right-justified OutBuffer module, so that a generative module like RuVerbGen() may manipulate the right-justified endings and change any inflectional ending as necessary to create a grammatical form as dictated by such factors as person, number, gender and so forth.


4. Code of AudBuffer() from ghost327.pl AI source code in Perl


sub AudBuffer() {  # http://ai.neocities.org/AudBuffer.html
  if ($abc ne " ") { $phodex++ }  # 2019-06-10: avoid blank space; skip SPACE-bar
  if ($phodex == 1 && $abc ne "") {  # 2019-06-10: Erase any left-over old data;
    $c1 = $abc; $c2=""; $c3 = ""; $c4 = "";      # 2019-06-10
    $c5 = ""; $c6 = ""; $c7 = ""; $c8 = "";      # 2019-06-10
    $c9 = ""; $c10 = ""; $c11 = ""; $c12 = "";   # 2019-06-10
    $c13 = ""; $c14 = ""; $c15 = ""; $c16 = "";  # 2016apr02
  }  # 2016apr02: end of using $phodex=1 to blank out the AudBuffer()
  if ($phodex == 2)  { $c2 = $abc }   # 2019-06-10: AudBuffer Characer
  if ($phodex == 3)  { $c3 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 4)  { $c4 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 5)  { $c5 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 6)  { $c6 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 7)  { $c7 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 8)  { $c8 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 9)  { $c9 = $abc }   # 2019-06-10: AudBuffer Character
  if ($phodex == 10) { $c10 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 11) { $c11 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 12) { $c12 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 13) { $c13 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 14) { $c14 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 15) { $c15 = $abc }  # 2016apr02: AudBuffer Character
  # if ($phodex == 16) { $c16 = $abc }  # 2016apr02: AudBuffer Character
  if ($phodex == 16) { $c16 = $abc }  # 2019-10-21: AudBuffer Character
# OutBuffer();  # 2019-06-10: right-justify each input word.
 #  OutBuffer();  # 2019-10-21: right-justify each input word.
# if ($abc ne "") { OutBuffer(); } # 2019-06-10: right-justify each input word.
# if ($phodex < 17) { OutBuffer(); } # 2019-06-10: right-justify each input word.
  if ($phodex < 17) { OutBuffer(); } # 2019-10-12: right-justify each input word.
# if ($abc ne " ") { OutBuffer(); } # 2019-06-10: right-justify each input word.  
# if ($abc ne " ") { OutBuffer(); } # 2019-10-21: right-justify each input word.  
  $abc = 0;  # 2019-06-10: reset for non-persistence.
}  # 2019-10-21: AudBuffer()) returns to AudInput or FileInput or EnVerbGen or RuVerbGen.


5. Variables for First Working Artificial General Intelligence

$abc -- AudBuffer() transfer character

$b1 -- buffer variable 1 in the OutBuffer() quasi-array for the right-justifying of an English or Russian word of up to sixteen characters in length. The buffer variable $b1 always contains the very last character in a word of any length. Since each word is right-justified in the OutBuffer(), a module like NounGen() or RuVerbGen() can perform tests on the contents of $b3 and $b2 and $b1 so as to detect one inflectional ending and to replace it with a different ending as necessary. In English, where a noun like "beach" or a verb like "teach" will sometimes need to have "-es" as an ending ("beaches", "teaches"), $b2 and $b1 can be used to detect the "-ch" at the end of the word, as an indicator that the "-es" ending may need to be added on.

$c1 -- the first character of a left-justified word in the quasi-array of the AudBuffer(), where a word of input or of retrieval from memory is stored briefly in transit to the OutBuffer() where the same word is right-justified so that the inflectional endings of the word may easily be manipulated or changed by a module like NounGen() or RuVerbGen().

$c2 -- the second character of any word stored in AudBuffer().

$c16 -- the sixteenth character if a word of that length is stored in the quasi-array of the auditory input AudBuffer().

$phodex -- pho-index counter for AudBuffer(); phodex is reset to unitary one ("1") in the AudInput module and in the Speech module.


6. Troubleshooting and Robotic Psychosurgery

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


7. Future Development

An AI Mind Maintainer may increase the size of the AudBuffer or the OutBuffer, especially for any natural language containing a vocabulary of especially long words, such as German words like Fliegerabwehrkanone -- which in English becomes flak.


8. Resources


Please see

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



9. AiTree Mind-Modules of The Ghost in the Machine


Return to top; or to
Tiananmen Square IV VI Doonesbury
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


Website Counter