Strong AI

Purpose: Discussion of Strong AI Minds thinking in English, German or Russian. Privacy policy: Third parties advertising here may place and read cookies on your browser; and may use web beacons to collect information as a result of ads displayed here.

Tuesday, December 12, 2017


Inserting "AN" as AN English article before a vowel.

In we first declare $us1 as the first of up to seven "upstream" variables meant to keep track of the recently mentioned nouns for which the EnArticle() module may slip in the definite article "THE" in reference to the subject very currently under discussion. A human user might say, "I know a tinker, a taylor, a soldier and a spy". We want our honourable schoolboy to be able to say, "Tell me about the tinker but not about the spy". The software shall have briefly filled $us1,2,3 and 4 with the concept numbers for all four mentioned items so as to be able to refer to each one of them as "THE" subject of discussion. We wish to declare these variables today but not use them yet, because motos praestat componere fluctus, as Vergil used to say, or "It is more important to calm the upset waves" of hidden bugs which imperil the smooth function of our AI Minds. So let us run and ask it, "Who are you"?

It is irksome to watch the ghost in the machine output the erroneous sentence "I AM A ANDRU AND I HELP KIDS" without using "AN" as the indefinite article, so we will stop and re-implement the solution which we used in our previous AI Minds. First we will do something clever with the word "AN" in the $vault of the MindBoot. We restore "101" as the concept number of both "A" and "AN", but for "AN" we remove "$psi=102" (should have been "$psi=101") so that the input of "AN" will still be recognized as a form of the article "101=A", but the thinking ghost will not be able to find "AN" as an acceptable word for output. Instead, the AI will have to assemble the word "AN" from the legacy code which we are now about to re-implement.

Oops! We cannot find the legacy AN-substitution code in the agi00051.F 2017-09-17 version of MindForth, so let us look back even further in the 24jul14A.F MindForth from 2014-07-24. There we find the $anset variable which we must now declare as a flag in the Ghost AI so that EnArticle() may use "AN" instead of "A" before a noun beginning with a vowel. When we try to use the $anset flag, we get an output of "I AM A NANDRU". We may have to put the $anset code in the Speech module where "A" and "N" may be joined tightly together. When we do so, BINGO, we get an output of "I AM A ROBOTS AND I AM AN ANDRU", which is an achievement of inserting "AN" before a vowel. It is still irksome that the Ghost webserver AI uses the plural "ROBOTS", but as an AI Mind Maintainer we know from experience that the backwards search for the concept of "571=ROBOT" simply finds a plural example when a singular(ity:-) is needed. It should not be too hard to skip over a plural engram when circumstances require a singular noun.

Since we have solved the problem of how to insert the indefinite article "AN" before a noun starting with a vowel, it is time to upload our Perlmind code and the Table of AI Variables for Mind Maintainers. We also take this opportunity to editorialize about the overall trend of the Ghost AGI project. We sincerely believe that we have solved the AI-hard problem of Natural Language Understanding, not in its totality but in sufficient functionality to show the AI community that element after element of the NLU problem may be solved and incorporated into the open-source AI codebase. We do not yet know to what extent, if any, the Perlmind codebase is being downloaded and tested and tweaked. An outfit like IBM or Microsoft or Joe's Bar and Grill could assign a Manhattan-project-full of programmers to advance the Perl AI code far beyond our own meager efforts. Of course, to mention this possibility is hopefully to scare all 500 Fortune companies into at least having a new hire or an idle-hands old hire take a look at the Perl AI and report on its potential merits. Some Harvard drop-out might say "Nobody needs more than 640K of memory" and some Kenneth Olson might say, "Who would ever want to have a home computer?", and likewise people might say, Mentifex? "He is a known trafficker in radical ideas." So take 'em or leave 'em.

Monday, December 11, 2017


How a Mind Maintainer improves a major mind-module.

For anyone interested in a high-tech career as an AI Mind Maintainer, here is a typical debugging session. We run the AI initially without human input, to see if any mind-bugs manifest themselves. We know from recent coding sessions that there is a bug lurking in the retrieval of the ego-pronoun "701=I" under certain circumstances, but nothing goes especially wrong when we let engage in meandering thoughts. A few irksome things happen, such as a tendency for the AI to repeat itself in a conjoined thought like "I AM PERSON AND I AM PERSON". We suspect that we must make searches for active ideas start from $krt (knowledge representation time before thinking) instead of current time $t so that the AI does not think a thought and then repeat the very same thought lodged in recent memory. But it is much more irksome that the ghost in the machine is not saying "I AM A PERSON", so we decide now to attempt some refinements in the function of the EnArticle() mind-module for inserting an English article ("a" or "the") before the output of a noun.

We start experimenting with EnArticle() by inserting into it a diagnostic message to tell us whether the module is being called, and what are the values of $subjnum (subject number) and $qv2psi -- the second item, or verb, in a sentence of thought being generated as a combination potentially consisting of subject (qv1), verb (qv2), indirect object (qv3), and direct object (qv4). We run the AI and we inspect for any diagnostic message just before the output of "I AM PERSON", but there is no message. Then we remember that we turned off calls to EnArticle() because it was saying "THE" too frequently. In order to turn it back on, we search the code for "EnArticle", find it, and reinstate the call from EnNounPhrase(). The program goes back to saying the word "THE" too many times, but we also see the values of the variables we are interested in. So we shall try to insert some sensible code.

In the mind-module for English articles, we copy the loop that finds the article "THE" in memory and then, mutatis mutandis, we get the code to find the article "A". We run the fledgling AI and eventually it says, "I HELP A THE KIDS AND KIDS MAKE A THE ROBOTS". The AI is inserting the indefinite article "A" and the definite article "THE". Before we get called on the carpet before the corporate board for not being a good Mind Maintainer, we hasten to pledge that we have been brainstorming some ideas to vastly improve the function of the article-inserting mind-module. We go back into the module and we cook up some code to insert the singular article "A" when the $subjnum is a unitary one ("1") and the $qv2psi verb is "800=BE", in order to cover cases of "I AM...." At the same time we comment out the block of code that inserts "THE" until we are ready to refine the code in a later mind-maintaining session. We run the AI without input and soon it says "I AM A PERSON", so maybe we get to keep our job as an AI Mind Maintainer. Wouldn't you like to have some business cards made up that say you are an "AI Mind Maintainer"? Oh no! The urge has struck. Are we going to be at a 2018 New Year's Eve party and have people say to us, "What on earth is an AI Mind Maintainer?"

We had better put this code and this journal entry up on the Web lickety-split, but first let us mention our plans for how the article-module shall decide algorithmically to insert the definite article "THE". We will create a cluster of variables that briefly hold onto any noun being mentioned in a train of thought or a conversation with a human user. When a particular noun is first mentioned, its identifier goes into the brief-tenure variable. If the same noun gets mentioned again quite soon, in one of the next few sentences, the software will insert "THE" before the new mention of the noun. A human user might say, "I have a book." Then the AI can say something like, "What is the book?", because the place-holder variable prompts the saying of "THE".

Over the past weekend we uploaded a new webpage named MindBoot Module Documentation for Strong AI Mind Maintainers as one of a dozen new uploads with a similar nomenclature emphasizing the career pathway for mind-maintainers. If your corporate information technology (IT) department does not have at least one Mind Maintainer on staff, then (imagine some dire prediction here :-).

Friday, December 08, 2017


Cleaning up the interface between the thinking AI and the human user.

In we are trying to clean up the display of the thinking of the AI as output in the man-machine dialog. Code in the module EnThink() which has been displaying intermediate output may now be commented out.

At the end of Sensorium() we change the point-of-view $pov flag back to one ("1") and we stop getting a duplicate line-display during the AudInput() module, where $pov is tested for a value of two ("2") during external input and not during the re-entry of thought.

All these minor adjustments to the AGI codebase are due to a healthy respect for the principle of "survival of the fittest" in these early stages of AI evolution. We are eager for so-called "early adopters" to install the Perlmind AI on numerous computers where the surviving codebase may mutate and evolve along multiple not blood-lines but codelines. We encourage the emerging cohort of AI Mind Maintainers to post news and ideas in diverse forums devoted to Perl, to AI, to robotics, to neuroscience and so forth. Anyone who finds a bug in the AI should please report it in the Perl subReddit or in comp.lang.perl.misc on Usenet.

Thursday, December 07, 2017


Fixing word-recognition bug and omission of first conjoined idea.

When we run initially without input, no subject-noun is activated, so the EnNounPhrase() module by default activates the "701=I" ego-concept. However, the AudInput module fails to recognize "I" as the first input-word and mistakenly sends "I" into the NewConcept() module. We correct this problem by inserting into the Speech() module a line of code

$pho = " "; AudInput(); # 2017-12-07: prime AudInput with a 32=SPACE
which makes AudInput and OldConcept able to recognize the "I" pronoun.

Then we had a problem where the Perlmind AI was inserting the conjunction "AND" into its thinking but only showing the second idea, the conjoined idea. We bug-fixed by no longer resetting $output to zero in the Sensorium module.