EnVerbGen English verb-generating module of the

English and Russian bilingual ghost.pl AI in Perl

Mens Latina in Latin -- MindForth for Robots


1. Cognitive architecture Diagram of the EnVerbGen Mind-Module

       
  /^^^^^^^^^^^\EnVerbGen Creates English Verb-Form/^^^^^^^^^^^\
 /   EYE       \            _________________    /    EAR      \
|               |CONCEPTS  /    Volition     \  |  ___________  |
|   _______     |   | | |  \_________________/  | / MindBoot  \ |
|  / old   \    |   | | |              _|____   || memory vault||
| / image   \!!!|!!!|!|!|             /      \  ||             ||
| \ recog   /---|---|-|-+            (EnThink ) || "STUDENTS"  ||
|  \_______/    |   |S| |             \______/  || "READ"      ||
|               |   |T| |          _____|______ || "BOOKS"     ||
|               |   |U| | _____   ( Indicative )| \___________/ |
|               |   |D|B|| En- \   \__________/ |               |
|   visual      |  R|E|O|| Noun-\  / ___|____   |               |
|               |  E|N|O|| Phrase\/ / EnVerb-\  |  I            |
|   memory      |  A|T|K||_______/ /  Phrase  \ |  READ        |
|               |  D|S|S|          \__________/ |  BOOKS        |
|   channel     |   | | |   _________|_____     |               |
|               |   | | |  /   EnVerbGen   \    |  ANNA         |
|               |   | | | (      READS      )   |  READS        |
|   _______     |   | | |  \_______________/    |  BOOKS        |
|  /new    \    |   | | | ___|_____   ___|_____ |               |
| / percept \   |   |_|_||AudBuffer| |OutBuffer||               |
| \ engram  /---|---(Psy)|READ     | |     READ||               |
|  \_______/    |    \_/ |_________| |_________||               |


2. Purpose of the AI4U Textbook EnVerbGen Module

The purpose of EnVerbGen is to create an English verb-form not directly available in auditory memory when the AI Mind knows the particular English verb and its forms of conjugation, but does not have the one particular verb-form held in auditory memory.


3. Algorithm of the AI4U Textbook EnVerbGen Module of Strong AI with NLU

3.A. EnVerbGen is called from the EnVerbPhrase module.

If no recall-vector is found to retrieve the parameter-specified verb-form from auditory memory, EnVerbPhrase not only calls EnVerbGen to supply the missing form, but also prevents the attempt to speak something else after the generation of the form.

3.B. EnVerbGen typically adds an "S" to end the first person singular form of an English verb.

3.C. EnVerbGen adds "-ES" if the stem of the English verb ends in "CH" or "SH" or "ZZ" or "X".

When the InFerence module asks the human user to confirm or negate a logical inference and the human user answers a question with "yes" or "no", such as "Does Einstein teach students?", the AI may state the denied inference as "EINSTEIN DOES NOT TEACH STUDENTS," but may need to call EnVerbGen to state "EINSTEIN TEACHES STUDENTS."

3.D. As an AI Mind uses EnVerbGen to create and store missing verb-forms, the availability of the generated forms in memory should prevent future callings of EnVerbGen to create the no-longer-missing verb-form.


4. Code of EnVerbGen() from ghost301.pl AI source code in Perl


sub EnVerbGen() {  # http://ai.neocities.org/EnVerbGen.html
# print "\nEnVG: t= $t audbase= $audbase verbpsi= $verbpsi  \n"; #2019-06-03; TEST;
  if ($audbase == 0 && $verbpsi > 0) {  # 2018-10-20: for lack of starting point...
    for (my $i=$t; $i>$midway; $i--) {  # 2018-10-20: search backwards in time.
      my @k=split(',',$psy[$i]);  # 2018-10-20: inspect @psy flag-panel.
      if ($k[1]==$verbpsi && $k[14] > 0) {  # 2018-10-20: verb with recall-vector?
        $audbase = $k[14];  # 2018-10-20: initial base-time for generating verb-form
        last;  # 2018-10-20: one example is enough.
      }  # 2018-10-20: end of test for modificand verb and auditory engram
    }  # 2018-10-20: end of backwards loop in search of audbase starting point.
  }  # 2018-10-20: end of test for lack of $audbase and presence of $verbpsi.
  my $binc = 0;  # 2018-10-09: Buffer-INCrement counter used only locally. 
   # 2018-10-08: use AudBuffer() and OutBuffer() to modify English verb-forms.
  my @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #01
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #02
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #03
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #04
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #05
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #06
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #07
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #08
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #09
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #10
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #11
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #12
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #13
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #14
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #15
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  @aud=split(',',$ear[$audbase]);  # 2018-10-09: @ear word-engram #16
  if ($aud[0] ne " ") { $abc = $aud[0]; AudBuffer(); $audbase++ } 
  do {  # 2018-10-09: next loop uses OutBuffer();
    OutBuffer();  # 2018-10-09
    if ($binc == 1) {   # 2018-10-09: 
      if ($b16 ne "") { print "$b16"; $idea = "$idea" . "$b16"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 2) {   # 2018-10-09
      if ($b15 ne "") { print "$b15"; $idea = "$idea" . "$b15"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 3) {   # 2018-10-09
      if ($b14 ne "") { print "$b14"; $idea = "$idea" . "$b14"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 4) { # 2018-10-09
      if ($b13 ne "") { print "$b13"; $idea = "$idea" . "$b13"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 5) {   # 2018-10-09
      if ($b12 ne "") { print "$b12"; $idea = "$idea" . "$b12"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 6) {   # 2018-10-09
      if ($b11 ne "") { print "$b11"; $idea = "$idea" . "$b11"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 7) { # 2018-10-09
      if ($b10 ne "") { print "$b10"; $idea = "$idea" . "$b10"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 8) { # 2018-10-09
      if ($b9 ne "") { print "$b9"; $idea = "$idea" . "$b9"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 9) {  # 2018-10-09
      if ($b8 ne "") { print "$b8"; $idea = "$idea" . "$b8"; }  # 2019-06-10
    }  # 2016apr24: end of outputting character and concatenating for ReEntry().
    if ($binc == 10) {  # 2018-10-09
      if ($b7 ne "") { print "$b7"; $idea = "$idea" . "$b7"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 11) {  # 2018-10-09 
      if ($b6 ne "") { print "$b6"; $idea = "$idea" . "$b6"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 12) {  # 2018-10-09 
      if ($b5 ne "") { print "$b5"; $idea = "$idea" . "$b5"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 13) {  # 2018-10-09 
      if ($b4 ne "") { print "$b4"; $idea = "$idea" . "$b4"; }  # 2019-06-10
    }  # 2016apr23: end of outputting character and concatenating for ReEntry().
    if ($binc == 14) {  # 2018-10-09 
      if ($b3 ne "") { print "$b3"; $idea = "$idea" . "$b3"; }  # 2019-06-10
    }  # 2018-10-09: end of outputting character and concatenating for ReEntry().
    if ($binc == 15) {  # 2018-10-09 
      if ($b2 ne "") { print "$b2"; $idea = "$idea" . "$b2"; }  # 2019-06-10
    }  # 2018-10-09: end of outputting character and concatenating for ReEntry().
    if ($binc == 16) {  # 2018-10-09 
      if ($b1 ne "") { print "$b1"; $idea = "$idea" . "$b1"; }  # 2019-06-10
    }  # 2018-10-09: end of outputting character and concatenating for ReEntry().
    $binc++;  # 2018-10-09: OutBuffer() "b" increment
  } while ($binc < 17);  # 2018-10-09: while inspecting OutBuffer()
  $c1=""; $c2=""; $c3=""; $c4="";  # 2019-06-10: clear out the AudBuffer()
  $c5=""; $c6=""; $c7=""; $c8="";  # 2019-06-10: clear out the AudBuffer()
  $c9=""; $c10=""; $c11=""; $c12="";  # 2019-06-10: clear out the AudBuffer()
  $c13=""; $c14=""; $c15=""; $c16="";  # 2018-10-09: clear out the AudBuffer()
  $binc = 0;  # 2018-10-09: Reset the b-increment variable after use. 
  if ($prsn == 1) {  # 2018-10-20: first person;
    if ($snu == 1) {  # 2018-10-09: subject-number parameter;
      $pho = " ";  # 2018-10-09: 
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
    }  # 2018-10-09: end of test for singular subject-number;
    if ($snu == 2) {  # 2018-10-09: subject-number parameter;
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $pho = "\x8C";  # 2018-10-09
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
    }  # 2018-10-09: end of test for plural subject-number;
  }  # 2018-10-09: end of test for first-person; 
  if ($prsn == 2) {  # 2018-10-20: second person;
    if ($snu == 1) {  # 2018-10-09: subject-number parameter;
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $pho = " ";  # 2018-10-09:
      print "$pho ";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
    }  # 2018-10-09: end of test for singular subject-number;
    if ($snu == 2) {  # 2018-10-09: subject-number parameter;
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09 concatenate for ReEntry()
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $pho = " ";  # 2018-10-09:
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
    }  # 2018-10-09: end of test for plural subject-number;
  }  # 2016apr03: end of test for second-person; 
  if ($prsn == 3) {  # 2018-10-20: third person;
    if ($snu == 1) {  # 2018-10-09: subject-number parameter;
      if ($b15 eq "C" && $b16 eq "H") {  # 2018-10-20: last two stem-parameters
        $pho = "E";  # 2018-10-20: add one single "E" 
        print "$pho";  # 2018-10-20: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-20: concatenate for ReEntry()
      }  # 2018-10-20: end of test for verb ending in "-ch"
      if ($b15 eq "S" && $b16 eq "H") {  # 2018-10-20: last two stem-parameters
        $pho = "E";  # 2018-10-20: add one single "E" 
        print "$pho";  # 2018-10-20: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-20: concatenate for ReEntry()
      }  # 2018-10-20: end of test for verb ending in "-sh"
      if ($b15 eq "S" && $b16 eq "S") {  # 2018-10-21: last two stem-parameters
        $pho = "E";  # 2018-10-21: add one single "E" 
        print "$pho";  # 2018-10-21: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-21: concatenate for ReEntry()
      }  # 2018-10-21: end of test for verb ending in "-ss"
      if ($b15 eq "T" && $b16 eq "Z") {  # 2018-10-21: last two stem-parameters
        $pho = "E";  # 2018-10-21: add one single "E" 
        print "$pho";  # 2018-10-21: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-21: concatenate for ReEntry()
      }  # 2018-10-21: end of test for verb ending in "-tz"
      if ($b15 eq "Z" && $b16 eq "Z") {  # 2018-10-21: last two stem-parameters
        $pho = "E";  # 2018-10-21: add one single "E" 
        print "$pho";  # 2018-10-21: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-21: concatenate for ReEntry()
      }  # 2018-10-21: end of test for verb ending in "-zz"
      if ($b16 eq "X") {  # 2018-10-21: final stem-parameter
        $pho = "E";  # 2018-10-21: add one single "E" 
        print "$pho";  # 2018-10-21: after stem, output this inflection.
        $idea = "$idea" . "$pho";  # 2018-10-21: concatenate for ReEntry()
      }  # 2018-10-21: end of test for verb ending in "-x"
      $pho = "S";  # 2018-10-09: add one single "S" 
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $output = "$output" . "$idea" . " ";  # 2018-10-09: concatenate 
    }  # 2018-10-09: end of test for singular subject-number;
    if ($snu == 2) {  # 2018-10-09: subject-number parameter;
      $pho = " ";  # 2018-10-09
      print "$pho";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  # 2018-10-09: concatenate for ReEntry()
      $pho = " ";  # 2018-10-09
      print "$pho ";  # 2018-10-09: after stem, output this inflection.
      $idea = "$idea" . "$pho";  #2018-10-09: concatenate for ReEntry()
    }  # 2018-10-09: end of test for plural subject-number;
  }  # 2018-10-09: end of test for third-person; 
  $idea = "$idea" . " ";  #2018-10-09: add a space after verb for ReEntry()
  $gencon = 1;  # 2018-10-09: to prevent unwarranted calling of Speech()
}  # 2019-06-10: EnVerbGen() returns to EnVerbPhrase() 


5. Variables for the EnVerbGen Module of the AI Mind

$abc -- AudBuffer() transfer character

$audbase -- is the start of the @ear auditory engram of a verb that needs to have its inflectional ending changed in a VerbGen() mind-module such as EnVerbGen() or RuVerbGen(). $audbase is incremented by one successive unit as long as the target word in auditory memory continues, and each character of the target word from auditory memory is sent as the value of $abc into the AudBuffer() mind-module, which left-justifies the target word before sending it to be right-justified in the OutBuffer() mind-module prior to any manipulation of the inflectional ending of the target word.

$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.

$b2 -- buffer variable 2 counting backwards from the final OutBuffer character.

$b3 -- buffer variable 3 counting backwards from the final OutBuffer character.

$binc -- OutBuffer() B-INCrement for the EnVerbGen() module. The $binc increment-counter allows EnVerbGen() to examine and test all the right-justified characters of an English verb, especially the several characters of an inflectional ending which might need to be changed on the basis of grammatical number (singular or plural), person (first, second, third), or past-tense gender (male, female, neuter).

$c1 -- the leftmost first character of any word stored in AudBuffer().

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

$dba -- doing-business-as noun-case (nominative, genitive, etc.) or verb-person (first, second, or third)

$idea -- for re-entry of AI thought back into the AI.

$pho -- a "phoneme" or character of auditory input.

$snu -- subject-number as parameter for verb-selection.

$subjpsi -- parameter to govern person of verb-forms by identifying the subject-concept of a verb.


6. Troubleshooting and Debugging for AI Mind Maintainers

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


7. Future Development

Similar modules will be necessary for generating adjectival forms and noun-forms.

  • Roadmap to Artificial Intelligence


    8. Resources for the AI4U Textbook EnVerbGen Module


    9. Spread the News on TikTok and Other Venues

    Are you on TikTok? Are you eager to be a ThoughtLeader and Influencer?
    Create a TikTok video in the following easy steps.

    I. Capture a screenshot of https://ai.neocities.org/EnVerbGen.html
    for the background of your viral TikTok video.

    II. In a corner of the screenshot show yourself talking about the EnVerbGen modulee.

    III. Upload the video to TikTok with a caption including all-important hash-tags which will force governments and corporations to evaluate your work because of FOMO -- Fear Of Missing Out:
    #AI #ИИ #brain #мозг #ArtificialIntelligence #ИскусственныйИнтеллект #consciousness #сознание #Dushka #Душка #psychology #психология #subconscious #подсознание
    #AGI #AiMind #Alexa #ChatAGI #chatbot #ChatGPT #cognition #cyborg #Eureka #evolution #FOMO #FreeWill #futurism #GOFAI #HAL #immortality #JAIC #JavaScript #linguistics #metempsychosis #Mentifex #mindmaker #mindgrid #ML #neuroscience #NLP #NLU #OpenAI #OpenCog #philosophy #robotics #Singularity #Siri #Skynet #StrongAI #transhumanism #Turing #TuringTest #volition

    A sample video is at
    https://www.tiktok.com/@sullenjoy/video/7213011946025569582


    10. AiTree of Mind-Modules for Natural Language Understanding


    Nota Bene: This webpage is subject to change without notice. Any Netizen may copy, host or monetize this webpage to earn a stream of income by means of an affiliate program where the links to Amazon or other booksellers have code embedded which generates a payment to the person whose link brings a paying customer to the website of the bookseller.

    This page was created by an independent scholar in artificial intelligence who created the following True AI Minds with sentience and with limited consciousness.

  • http://ai.neocities.org/mindforth.txt -- MindForth Robot AI in English.

  • http://ai.neocities.org/DeKi.txt -- Forth Robot AI in German.

  • http://ai.neocities.org/perlmind.txt -- ghost.pl Robot AI thinks in English and in Russian.

  • http://ai.neocities.org/Ghost.html -- JavaScript Robot AI Mind thinks in English.

  • http://ai.neocities.org/mens.html -- JavaScript Robot AI Mind thinks in Latin.

  • http://ai.neocities.org/Dushka.html -- JavaScript Robot AI Mind thinks in Russian.

    The following books describe the free, open-source True AI Minds.

    AI4U -- https://www.iuniverse.com/BookStore/BookDetails/137162-AI4U

    AI4U (paperback) -- http://www.amazon.com/dp/0595259227

    AI4U (hardbound) -- http://www.amazon.com/dp/0595654371

    The Art of the Meme (Kindle eBook) -- http://www.amazon.com/dp/B007ZI66FS

    Artificial Intelligence in Ancient Latin (paperback) -- https://www.amazon.com/dp/B08NRQ3HVW

    Artificial Intelligence in Ancient Latin (Kindle eBook) -- https://www.amazon.com/dp/B08NGMK3PN

  • https://redditfavorites.com/products/artificial-intelligence-in-ancient-latin

    Artificial Intelligence in German (Kindle eBook) -- http://www.amazon.com/dp/B00GX2B8F0

    InFerence at Amazon USA (Kindle eBook) -- http://www.amazon.com/dp/B00FKJY1WY

    563 Mentifex Autograph Postcards were mailed in 2022 primarily to autograph collector customers at used bookstores to press the issue of whether or not the Mentifex oeuvre and therefore the autograph is valuable. These artwork-postcards with collectible stamps may be bought and sold at various on-line venues.

  • https://www.ebay.com
  • https://galaxycon.com/search?q=Mentifex

    See AI 101 AI 102 AI 103 year-long community college course curriculum for AI in English.
    See Classics Course in Latin AI for Community Colleges or Universities.
    See College Course in Russian AI for Community Colleges or Universities.
    Collect one signed Mentifex Autograph Postcard from 563 in circulation.
    See Attn: Autograph Collectors about collecting Mentifex Autograph Postcards.

    Return to top; or to
    Image of AI4U found at a book store
    The collectible AI4U book belongs in your AI Library as an early main publication of Mentifex AI.


    Website Counter