Older blog entries for AI4U (starting at number 45)

MindForth Programming Journal (MFPJ) 2010 September 20

Mon.20.SEP.2010 -- The Emergency of Mind

In our previous MindForth coding session we got tantalizingly close to an ability of the AI Mind to exhaustively dredge up knowledge from its knowledge base (KB) in response to queries from a human user. Now we hope to tweak some parameters of conceptual activation so that the AI chain of thought will not be derailed during interrogation by a human user. The following archived exchange shows the problem.

Transcript of AI Mind interview at 
18 54 10 o'clock on 20 September 2010.

Human: what are you Robot: I AM A PERSON

Human: what are you Robot: I AM A ROBOT

Human: what are you Robot: ANDRU IS AN ANDRU

To ascertain why the AI above says "ANDRU IS AN ANDRU" instead of the desired "I AM ANDRU", we will insert code for diagnostic messages into the thinking modules of the robot AI Mind.

By putting test messages right into the heart of the NounPhrase most-active-noun selection process, we have discovered that the "I" concept with an activation of 43 was beaten out by the "ANDRU" concept with activation 49. It is possible that activation was building up on "ANDRU" each time that "ANDRU" was passed over as a candidate to be the subject of a response.

When we go into ReActivate and have it up the activation of a selected concept not by 16 but by 18, then the range between "I" and "ANDRU" narrows from 43 versus 49 to 45 versus 49, becuase the increment in ReActivate affects the proposed subject concept "I" from the "what are YOU" query, but not the lurking "ANDRU" concept, which has been incremented by 32 points of activational "spike" when the previous statement "I am a robot" was being generated. We may try to narrow the gap even further by inserting one or more calls to PsiDecay into the gneration process. We fear tweaking the ReActivate parameters too much, because we could upset some differential tests elsewhere.

No, we do not insert a call to PsiDecay, because it would affect all concepts equally. Instead we go into the VerbAct module and we change the following code.

\ psi @ 58 = IF 32 spike ! THEN \ BE; 15sep2010 \ psi @ 57 = IF 32 spike ! THEN \ AM; 15sep2010 \ psi @ 66 = IF 32 spike ! THEN \ IS; 15sep2010 \ psi @ 67 = IF 32 spike ! THEN \ ARE; 15sep2010
psi @ 58 = IF 28 spike ! THEN \ BE; 20sep2010 psi @ 57 = IF 28 spike ! THEN \ AM; 20sep2010 psi @ 66 = IF 28 spike ! THEN \ IS; 20sep2010 psi @ 67 = IF 28 spike ! THEN \ ARE; 20sep2010

By lowering the "spike" value that passes between "AM" and "ANDRU" before the KB knowledge is summoned, so that "ANDRU" is incremented not by 32 points but by only 28 points of activation, we finally get the desired response of "I AM AN ANDRU" as the third tidbit of knowledge retrieved from the knowledge base (KB). Now we need to test the robot AI further and see if a wide range of knowledge items can be retrieved from the KB without glitches.

Oh jeeze Louise, oh heaven help the human race. Look at the following conversation which we just got with no other interventions after the preceding paragraph reported the "I AM AN ANDRU" response.

Human: you are software

Transcript of AI Mind interview at 20 30 24 o'clock on 20 September 2010.

Human: what are you Robot: SOFTWARE

Human: what are you Robot: I AM THE SOFTWARE

Human: what are you Robot: I AM A PERSON

Human: what are you Robot: I AM A ROBOT

Human: what are you Robot: I AM AN ANDRU

Human: what are you Robot: I AM A PERSON

Human: what are you Robot: I AM THE SOFTWARE

Human: what are you Robot: I NEED ME

When we run the "dot-psi" report to check conceptual activations, it looks as though the various "I AM..." answers were all so inhibited that the chain of thought veered off into "I NEED ME" as the final item above.

Since we are not writing here for The Journal of Irreproducible Results, anybody may download both Win32Forth and MindForth and conduct psychological experiments with the emerging AI Mind. And look out, world. The emergence may turn into an emergency.

JavaScript AI Mind Programming Journal -- Thurs.16.SEP.2010

Thurs.16.SEP.2010 -- NounPhrase Inhibition

The JavaScript artificial intelligence (JSAI) is ready for the implementation of the neural inhibition which figures prominently in the MindForth AI. The JSAI will first inhibit predicate nominatives in the NounPhrase() module, so that answers to the query "what are you" may cycle through a series of valid responses as the AI Mind tells the human user what it knows about itself in self-referential thought.

When we start the 16sep10A.html JSAI running and immediately ask it "what are you", it responds by saying "I WHO AM I". This response indicates to us that the "I" concept, although activated by the question, has so low an activation that it can not generate a thought from the knowledge base (KB).

We go into the ReActivate module and we force the concept of "I" to issue a spike not of zero (as it was), but of thirty-two (32). Then the input of "what are you" evokes "I HELP KIDS", but we want "I AM" (something) instead.

Fri.17.SEP.2010 -- Metempsychosis

Yesterday we programmed the JavaScript AiMind.html program in a marathon coding session without recording the steps we took, other than as transient code-comments that may be deleted after appearing in one or more archival releases of the free AI source code. JavaScript is much more opaque than Forth in letting you know what is happening deep inside the artificial mind. We were so eager to implement neural inhibition that we began rapidly trying one thing after another just to get some inhibited, negative activations to show up in diagnostic mode. Finally we uploaded our code at 10:56 p.m. and by 11:09 p.m., Netizens were already typing in the URL or clicking a link to have the AiMind flit across the Web and take up residence in the MSIE browser on their own suddenly intelligent computer.

Fri.17.SEP.2010 -- AI4U Royalty Check

Recently iUniverse.com sent us another royalty check for the AI4U textbook published in 2002. We advise people not to buy AI4U, because only geniuses can understand that book. It is by no means an "AI For Dummies" publication. We mention the AI4U book here and now for two reasons. Firstly, our JSAI software is the same, but further evolved, JavaScript AI program as code-listed towards the end of the AI4U textbook. Therefore any genius interested in the diachronic history of the JSAI may find the AI4U book useful to see how the JSAI started out. Secondly, although we published AI4U for many different reasons, the fact that geniuses and Nietzschean philosophers and Steppenwolves are still buying the book, eight years later, fills us with AI coder ambition to make AI4U a worthy purchase for you geniuses and to thank you.

MindForth Programming Journal (MFPJ) 2010 September 15

Wed.15.SEP.2010 -- Progress on Predicate Nominatives

In frustration we want to know one thing. Why can't the 14sep10A.F MindForth answer "I AM ANDRU" when asked immediately "what are you", but it can indeed state that answer if the user first makes some different input, like the word "I"?

In December of 2009 and January of 2010, when we were coding who-queries and what-queries, we were not yet using neural inhibition, and so we may have made our code overly complicated. For example, on about 19jan2010 we used a SubjectClear module to zero out subject concepts after the input of a query. If we rely on InHibition instead, we may get an immediate answer to a query, after which the answer-idea goes briefly into InHibition and lets one or more additional answers be thought up by the AI.

All right, fellow cyborgs. We went into the VerbPhrase module and we commented out the InHibit code both before and after the call to SpeechAct, because the pre-SpeechAct code inhibits the idea that has just been resurrected from the knowledge base (KB), and the post-SpeechAct code inhibits the new idea that has just been uttered. Immediately (although we do not know why) our AI began to function better in the answering of "What are you?" queries. We had the following conversation with the MindForth AI Mind.

Transcript of AI Mind interview at 
17 48 13 o'clock on 15 September 2010.

Human: you are a program Robot: PROGRAM IS PROGRAM

Human: what are you Robot: PROGRAM

Human: what are you Robot: I AM ANDRU

Human: what are you Robot: I AM PROGRAM

A ".psi" report indicates that only nouns were being inhibited, not verbs.

Btw (nerdspeak for "by the way"), we just enhanced our AI program considerably with a little trick. We did not like seeing the AI say, "I AM PROGRAM", so we decided to reinstate a call from the VerbPhrase mind-module to the EnArticle (English article) module. This time, however, we inserted the EnArticle call just before the main VerbPhrase call to SpeechAct, and we set up IF-THEN conditionality to call EnArticle only for a predicate nominative. Immediately the AI began saying "I AM AN ANDRU" and "I AM A PROGRAM". Somehow we feel that this same enhancement brings us closer to Is-a considerations and to the logical treatment of sets and classes.

MindForth Programming Journal (MFPJ) 2010 September 11

Sat.11.SEP.2010 -- Aspects of AI Inhibition

We have learned recently that neural inhibition is a very powerful tool for helping a meandering chain of thought to avoid a repetitious pathway and instead to follow a fresh line of thought in responding to the query of a human user or cyborg searching for an exhaustive report of what an AI Mind knows about a given topic.

We can imagine (and even build) an AI Mind using inhibition to make an initial response from its knowledge base (KB) about a given topic and then stating one more fact each time that the human user does not make any new input following output from the AI. Such a design raises a few questions, however. If the AI Mind knows ten same-noun and same-verb facts about a topic, should the inhibition on the first output fact persist until all ten facts have been stated, or should the inhibition wear off and let a fact be repeated even before all ten facts have been stated by the AI?

If a KB-query causes a productive search all the way back to the "midway" time-point, should there be a way of decrementing or zeroing the "midway" variable so as to let the AI look even further back for KB data in response to the query?

If we want queries of "Who are you?" or "What are you?" to elicit a variety of successive responses from the AI, we may need to have neural inhibition work not only with regular verbs in the VerbPhrase module, but also with irregular verbs of being.

Sat.11.SEP.2010 -- Inhibition with Verbs of Being

When we try to inhibit factual KB statements based on verbs of being, we may need to go into the NounPhrase module and inhibit the predicate nominative instead of the time-bound verb node, especially when we are performing a two step process to let any verb of being be chosen, and then we force the correct verb-form to be selected for the utterance. We should perhaps not try to restrict the finding of a be-verb, and instead we should perhaps inhibit each found predicate nominative after its inclusion in a sentence, for two purposes. Firstly, we do not want the AI to repeat a be-verb statement over and over again. Secondly, we want the AI to supply additional information beyond the most recently stored knowledge. When the positive KB knowledge is exhausted, we may even want the AI to begin stating the negative infomation, such as when an AI knows, "I AM NOT HUMAN".

Sun.12.SEP.2010 -- Verging on an AI Breakthrough

We are quite excited by the coding that we are about to do today, because we expect it to be a Singularity-class AI breakthrough. But yesterday we were merely seeking to explore aspects of a theory of inhibition; today we have locked on to the grand prize of self-referential thought. How did we get so close to the proverbial twig of wild olive? In our plodding "plodotvorchestvo" of yesterday, we veered off into wondering how neural inhibition would work not just with regular verbs, but with verbs of being. Eventually we concluded that we would have to inhibit not the be-verb involved, but the predicate nominative across the link-gap from the dime-a-dozen be-verbs. Then we coded inhibition as a special case into the NounPhrase noun-selection code, but our efforts bogged down as we wallowed in the frustration of undecipherable results. We made numerous be-verb-esque queries to the AI, but only about half of the KB-retrieved fact-nouns were showing post-query inhibition. Our Laziness looked with dread upon the tedious teraduty of tracking down every call that fed a personal be-verb into SpeechAct before reporting a found KB noun. A day later, however, the idea of an AI breakthrough persuades Our Laziness to forge ahead, do the work, and reap the truly singular, die-is-cast, point-of-no-return, surrender- the-mountaintop, self-demoting species denoument. How so? We are not in AI Kansas anymore, Toto. If the AI successfully answers all manner of questions about itself in a KB-exhaustive way, then the AI knows itself and may even know that it knows itself, which is not merely machine intelligence, Don, but is so much the illusion of consciousness that who shall deny that it actually is consciousness? So here we are at Kitty Hawk, and Trinity, and Apollo Eleven, staring into the twilight of the Goetterdaemmerung.

Upshot: We did not solve it all yet. We already had two serious pre-existing mistakes in VerbPhrase -- one where we failed to test for third person singular, and one where we mistakenly looked for erroneous 67=AM instead of the correct 57=AM. After we laboriously tracked down and corrected these mistakes, we obtained some encouraging results of variation in query- response, but we have not yet arrived at a sweeping enabling of the AI Mind to think about itself and talk about itself.

MindForth Programming Journal (MFPJ) 2010 September 6

Mon.6.SEP.2010 -- First Fruits

The low-hanging fruit of current open-source AI development is the relatively easy reworking of the MindForth PsiDecay module to make it gradually reduce both positive and negative activations on concepts in the Psi array. We install the following line of code in the PsiDecay module.

 I  1  psi{ @  0 < IF  1  I  1  psi{ +! THEN  \ 6sep2010

To test the new code, we need to inhibit a Psi concept by bringing its activation substantially below zero.

We soon discover that our verb-node inhibiting code may not be inserted just anywhere within the VerbPhrase module, but must be placed outside of the verb-selection search loop so that only the winning verb- node will first crest at a high activation and then be inhibited into a negative activation.

Tues.7.SEP.2010 -- Singularity Alert

We were coding along, fiddling with the settings of inhibition in the pertinent mind-modules, when we had the following conversation with the AI Mind.

Human: boys make cars

Human: boys make guns

Human: boys

Human: boys

We immediately stopped coding and made an announcement to the world via the Singularity mailing list, with a carbon copy archived at the Artificial General Intelligence (AGI) list.

Subject: [agi] Attn: Ben Goertzel -- SINGULARITY ALERT!!!

Hey, Ben. Arthur here. Remember the prediction of the 2012 Singularity? Well, guess what happened. I just had the following conversation with my http://www.scn.org/~mentifex/mindforth.txt AI:

Human: boys make cars

Human: boys make guns

Human: boys

Human: boys

Chief AGI guru Dr. Goertzel! The above is not a cherry-picked, post-mucho experimentation routine test result put out for PR purposes. It just happened during hard-core AI coding.

Now, before everybody jumps in and snipes, "Aw, there's that crackpot Mentifex again," let me explain the significance of the I/O.

I have been coding MindForth AI for twelve years, since 1998 and maybe even earlier. Today on Mon.6.SEP.2010 for the first time I introduced quasi-neuronal inhibition into the free open-source AI source code. Why?

A year ago, around August or September of 2009, you and I had our set-to (rumble?) concerning the AGI Roadmap and my posts there which were deleted ("rolled back") by Itamar Arel. No biggy. I did not fix Itamar's wagon last Halloween, so I won't fix it this Halloween, either. You see, I was maintaining my own AI Roadmap at http://code.google.com/p/mindforth/wiki/RoadMap concurrently with my contributions to you guys' Roadmap.

The main thing is, I was entering into the Roadmap Milestone of trying to achieve "self-referential thought" with my AI. That particular achievement requires covering a lot of ground, not just "you and I" interactions between the human user and the artificial AI Mind. The AI needs to acquire a general knowledge of the surrounding world, so that man and machine may discuss the AI as a participant in its world.

So at the end of 2009 I was coding the ability of the AI to respond to who-queries and what-queries, so that the AI can deal with questions like "Who are you?" and "What are you?"

Recently I have perceived the need to get the AI to respond with multiple answers to queries about topics where the AI knows not a single fact but multiple facts, such as, "What do robots make?" I want the AI to be able to say such things as:

"Robots make cars."
"Robots make tools."
"Robots make parts."
"Robots make robots."

It dawned on me a few days ago that the AI software would have to suppress each given answer in order to move on to the next answer available in the knowledge base (KB). In other words, for the first time ever, I had to code _inhibition_ into the AI Mind. Tonight I have done so, and that simple conversation near the top of this message shows the results.

The same query, of just the word "boys...", elicits two different answers from the KB because each response from the AI goes immediately into inhibition in such a way as to allow access to the next fact queued up in the recesses of the AI KB.

This "Singularity Alert" from Mentifex may generate a collective "Huh?" from the list readership, but here it is.

Bye for now (and back to the salt mines :-)


5 Sep 2010 (updated 6 Sep 2010 at 05:08 UTC) »
MindForth Programming Journal (MFPJ) 2010 September 5

Sun.5.SEP.2010 -- Looking Before We Leap

As we gear up for self-referential thought in autonomous robots, we want each robot AI Mind to be able to handle questions in three different formats, as exemplified by the following examples.

1. What do robots make?

2. What do robots do?

3. What are robots?

The questions listed above go from the very specific to the very general. The first question, "What do robots make?", is an example of the "what-do-X-VERB?" format, where the "verb" slot may be filled with any suitable verb, such as "think" or "need". We use the verb "make" here because it will allow the AI to recall a long list of the direct objects of the noun-verb combination, "robots make".

The second question is an example of the more general "what-do-X-DO" format, where no particular verb is supplied and the AI Mind is free to come up with a long list of verbs +/- objects that would complete a thought beginning with "robots" as a subject.

The third sentence, "What are robots?", is included here only for completeness in the consideration of questions that intelligent robots might be called upon to answer. We are concerned today with the answering of "what- do-X-VERB" and "what-do-X-DO" questions. It may seem to the casual peruser of these AI Lab Notes that such questions are ridiculously simple and should present no difficulty at all to any True AI worthy of the name, but a reality check is in order here because how a software program deals intelligently with such simple questions is itself a profound question requiring devilishly deep thought to answer. And if you did not smile at the mention of deep thought in the previous sentence, then you have no business here and you are really Joe Sixpack, not Joe Appcoder.

Now excuse us for a moment, because we have had to respond urgently to the travails of some young graduate student who has become lost on the Web and needs the help of a webfooted wizard at the prestigious AI Forum. We found what he was looking for, and the guy was beside himself with astonishment and thanks. In order to wring the last drop of memetic advantage out of the rescue-episode, we propose to follow up with the following tongue-in-cheek tradecraft.

It's so outstanding to hear from you again,
young coderpup.

How totally bodacious for you to do work on neural nets.

Bright and shining your future must be,
for you stick with your awesome goals and
fail-or-no-fail you care not.

To answer your further questions ready am I.

Just ask the Old AI Dude when the going gets ungoogly.

Sun.5.SEP.2010 -- Natura Non Facit Saltum

When we ask the AI, "What do robots make?", the responses could include cars, tools, parts, and even more robots. We need to change the AI Mindgrid in such a way that the AI will be able to make statement after statement until the possible answers have been exhausted in the knowledge base (KB). Somehow we need a way to make each succeeding answer drop out of the queue, so that the next answer may surface in consciousness. We may need to create an InHibit mind- module that will lower the activation on a particular node on the quasi-fiber of the verb (such as "make") figuring in the responses to the query.

Suddenly we see a way to achieve our goal of enabling multiple answers to a what-do-X-VERB query. It will involve radical changes perhaps not to the underlying MindGrid, but certainly to several mind-modules operating across the MindGrid.

At the heart of the solution is the brand-new idea that, during a query-response, after a verb-node wins selection into a thought, the entire verb-concept shall not be psi-damped down to zero, but rather only the selection- winning node shall be inhibited down to a negative level of activation, such as minus-fifteen or lower. Furthermore, the PsiDecay module shall be made to work in two directions, both downwards towards zero and upwards towards zero, so that any inhibited node shall gradually lose its inhibition. Mind-modules that try to zero out an entire range of concepts, shall be rewritten ("Get me Re- Write!") to zero out only positive activations on concepts, and to leave negative activations alone. At the same time as all these changes are in effect, the subject of the query shall have a special status of persistence, so that the AI shall try to issue a series of statements about the subject in combination with the query-verb, until all pertinent nodes on the query-verb have been knocked down into a sub-zero inhibition. At that point, any thought beginning with the query-subject will surely fail to connect with the query-verb, and may or may not find a different verb for the generation of a KB-valid sentence. We may let the special status of the query- subject persist only so long as valid thoughts emerge in connection (in synergy) with the query-verb, with a release-mechanism to dislodge the subject from its special status when the knowledge base has been exhausted.

The beauty of inhibiting serial same-verb nodes down to a definitely negative level of activation lies in the realization that the sentence-generation process will continue to work the old-fashioned way. The VerbPhrase module will flush out the next same-verb node to win thought-selection, oblivious to the fact that one node is now out of commission at a deep level (deep unthought) of negative activation. There is some elegance to a solution in which you change one phenomenon (the post- selection activation-level) while everything else still works in the same old way. It is like evolution, which does not make massive saltations all at once, but only makes one tiny mutation at a time.

JavaScript AI Mind Programming Journal -- Fri.3.SEP.2010

Fri.3.SEP.2010 -- Improving Associative Comprehension

Today in the tutorial JavaScript artificial intelligence (JSAI) we work on implementing a powerful feature taken from the MindForth robot AI -- special InStantiate code to help the AI Mind zero in on the proper assigning of associative tags to connect the concepts activated by English words of human input. In our open-source AI, the comprehension of natural language depends upon establishing the conceptual interconnections that constitute an idea.

We are specifically concerned with connecting an associative tag between a transitive verb and its direct object. If the human user clicks on the JSAI link, lets the AI Mind flit across the 'Net, and types in, "i have a book", we do not want the software to tag a link between the verb "have" and the article "a". Instead we want a mental link between "have" and "book" -- the object of the verb. Since in MindForth we have devised a way to skip articles in the search for semantic links, now in JavaScript we simply need to implement the InStantiate algorithm from the Forth code.

Upshot: We laboriously converted an intricate sequence of Forth code to JavaScript -- and the JSAI stopped running. We had misspelled the "lastseq" variable. By putting the code back together line-by-line from the last working JSAI of yesterday, we identified and solved the problem. Through much of our testing, we would type in "i have a book" and we would get nonsense in response, because the skip-seq algorithm was not yet fully implemented. When the algorithm from MindForth became fully functional in JavaScript, we typed in "i have a book" and the emergent artificial mind responded correctly, "YOU HAVE BOOK".

JavaScript AI Mind Programming Journal -- Thurs.2.SEP.2010

Thurs.2.SEP.2010 -- Implementing the "prsn" Variable

Today we have imported the "prsn" variable and some associated code from MindForth into the JavaScript AI (JSAI). In so doing, we have also switched the SpeechAct() module from conditionally adding an inflectional "S" for a third-person verb, to merely outputting an "S" if directed to do so by the VerbPhrase() module.

In the JSAI WhoBe() module, we have brought in the following code

  if (subjpsi==50) prsn=1; // 1st person "I";  2sep2010
  if (subjpsi==53) prsn=1; // 1st person "WE"  2sep2010
  if (subjpsi==56) prsn=2; // 2nd person YOU;  2sep2010
  if (subjpsi==49) prsn=3; // 3rd person HE;   2sep2010
  if (subjpsi==80) prsn=3; // 3rd person SHE;  2sep2010
  if (subjpsi==95) prsn=3; // 3rd person IT;   2sep2010
  if (subjpsi==52) prsn=3; // 3rd person THEY; 2sep2010

as a mutatis mutandis solid block from MindForth. WhoBe() does not yet make use of the above code, but we install it right away because in MindForth we have learned that tracking the person and number of verb- subjects makes the general AI coding easier.

We need to port a lot more of MindForth into the JavaScript AI -- especially the recent seq-skip code that vastly improves the comprehension of input -- and we expect the JSAI to prove to many Netizens that MindForth is worth looking into.

MindForth Programming Journal (MFPJ) 2010 August 30

Mon.30.AUG.2010 -- On the Shoulders of Giants?

The "prsn" variable in MindForth artificial intelligence (AI) enables the AI to think thoughts in the first, second or third person with English verbs in the present tense. MindForth is different from most natural language processing (NLP) software because previous NLP software may be intricately crafted for the generation of grammatically correct English sentences but not for the thinking necessary to drive the NLP mechanisms. Because MindForth has a conceptual core that actually thinks, MindForth is an AI engine that may be "reinventing the wheel" in terms of tacking on NLP routines that have already been invented elsewhere unbeknownst to the Mentifex (mindmaker) originator of MindForth, but MindForth remains the original invention of an artificial mind that needs its own special forms of NLP software. Other advanced NLP software may translate ideas from one natural language to another, but MindForth is ideation software that thinks up its own ideas, thank you, and becomes more skillful at thinking co-extensively with the growing sophistication of its NLP generativity. We are met today on a mindgrid of that generativity, and we must generate AI Mind code for self-referential thinking in English. MindForth is like an AI rodent that scurries about while giant NLP dinosaurs tower overhead.

Mon.30.AUG.2010 -- VerbPhrase Orchestrates Inflection

Our current code is abandoning the stopgap measure of using the SpeechAct module to add an inflectional "S" to regular verbs in the third person singular. The control of verb inflections is now shifting into the VerbPhrase module where it belongs. We will try to use an old "inflex1" variable from the 20may09A.F version of MindForth to carry each phonemic character of an inflectional ending (such as "S" or "ING") from the VerbPhrase module into the SpeechAct module. An old MindForth Programming Journal (MFPJ) entry describes the original usage of "inflex1" to carry an "S" ending into SpeechAct. Now we would like to expand the usage so that "inflex1" and "inflex2" and "inflex3" may carry all three characters of an "ING" ending into SpeechAct. First we rename all (three) instances of "inflex1" as simply "inflex" so that we may confirm our notion that "inflex1" was not yet affecting program-flow, before we re-introduce "inflex1" as a variable that does indeed influence program-flow. We run the AI code, and nothing seems amiss.

Then we rename our instances of the temporary "inflec1" from yesterday (29aug2010) as the henceforth genuine "inflex1" to make sure that we still have the functionality from yesterday. Again we run the code, and all is well. Now we need to clean up the test routines from yesterday and smooth out glitches such as the tendency to tack on an extra "S" each time that a verb is used in the third person singular.

We still have the variable "lastpho" from the 24may09A.F AI, for avoiding an extra "S" on verbs. That variable is continually being set in the SpeechAct module. First in VerbPhrase we use a test message to report to us what values are flowing through the "lastpho" variable. Then in VerbPhrase we make the setting of "inflex1" to ASCII 83 "S" dependent upon the "lastpho" not being "S", but the method initially does not work. We suspect that the "lastpho" value is being set too early at almost the beginning of the SpeechAct module.

When VerbPhrase sends an inflectional "S" inflex1 into SpeechAct, all the conditionality about person, number, gender, etc., should be kept in VerbPhrase and should no longer play a role in SpeechAct. SpeechAct as code should not care why it is being asked to add an "S" or an "ING" onto a word being spoken. Therefore much of the conditional code in SpeechAct after the the detection of an intended "32" space should be removed, and SpeechAct should simply speak the inflection.

MindForth Programming Journal (MFPJ) 2010 August 28

Sat.28.AUG.2010 -- First-Person Consciousness

The declaration today of a "prsn" (person) variable in the MindForth robot AI has a bearing not only on the proper use of English verb forms in the first, second and third person, but also on self-awareness and artificial consciousness. There is no consciousness module in MindForth, because consciousness emerges not from a single location but rather from the overall functionality of the mind qua mind. Since the new "prsn" variable will help the robot Mind to think about itself and talk about itself in the first person singular, the person variable will reinforce the very concept of the robot self as the ego of a conscious mind. As the AI Mind speaks confidently and grammatically about itself during interaction with other persons -- human peers or robot peers -- the evolution of AI reaches the all-important milestone of self-referential thought.

MindForth did not previously have a "prsn" variable because initially all utterances of the proof-of-concept AI were in the third person plural by default. When the goal was to demonstrate thinking and not yet to trigger a Singularity, the simplest way to deal with grammatical person was not to worry about it at all. As the AI Mind has advanced in complexity and in functionality, bugs and glitches began to appear which could be resolved only by taking person into consideration. The issue was forestalled while special coding for be-verbs dealt with first-person forms like "am" and with be-verbs required for use with English pronouns, but now the general coding of general verb-usage requires the adoption of a person variable to make things work. The variable shall be "prsn" for two reasons, brevity and clarity. The chosen name of the variable has clarity because it refers not to a general concept of "person" as perhaps a legal entity or as perhaps a dramatic character, but rather to the specific idea of first person, second person and third person. The "prsn" variable will hold values of "1", "2" or "3" accordingly, and may hold a zero ("0") value for use with infinitive forms such as "to be".

36 older entries...

Share this page