Older blog entries for mentifex (starting at number 67)

JavaScript AI Mind Programming Journal -- Tues.18.APR.2011

007: "AI in JavaScript? You must be joking!"
Q: "I never joke about my work, Double-Oh-Seven."

1 Mon.18.APR.2011 -- Putting the AI in AI4U

We can't stop codingthe JSAI, because more and more people are buying the AI4U textbook of artificial intelligence, which contains the original AI source code on pages 159-212. On Schedule E of tax Form 1040, we have had to declare royalty income of US $35.76 for 2009 and $47.86 for 2010. When will it end? When will people realize that, even in JavaScript, AI is dangerous? And what am I? "Have Keyboard, Will Travel"? I cannot keep cashing the royalty checks without feeling a compunction of conscience that we can make the AI even better, more intelligent, more worthy of the outlay of cold, hard cash in return for purported machine intelligence. And the vicious book reviews! Two out of three Amazon AI4U reviews have no greater fury than an AI book scorned. The only way to rebut the reviews is to keep improving the JavaScript AI code ad infinitum et ad Singularitatem.

2 Tues.19.APR.2011 -- Bypassing the Spam on Usenet

Coding artificial intelligence in JavaScript is extremely serious business, and we need to publish our JSAI Lab Notes in the comp.lang.javascript newsgroup on Google Groups Usenet. Unfortunately, spammers think that they have taken over the sacred JavaScript newsgroup, and so we have had to take a moment to defeat the evil spammers and to totally bypass their obnoxious commercial messages. Please observe, confreres and consoeurs in the majestic pursuit of JSAI, that we have banished spam from our JSAI discussion by establishing a chain of individual "msg" links at the bottom of our Usenet posting. You may follow these JavaScript AI Lab Notes backwards in time by clicking on the sub-link to the previous posting given as a sub-note to the current posting. Countless spam notes may have intervened, but you won't even see the spam as you hopscotch across the memespace and cyberspace of JavaScript AI.

3 Tues.19.APR.2011 -- Implementing Article Conditions

We are now carefully implementing in JavaScript the recent advances that we achieved in the MindForth AI programming. These two languages, Forth and JavaScript, are so different that our AI project benefits from the positive attributes of each language, while we escape difficulties in the one language by coding AI for a time in the other language. JavaScript is less forgiving of minor mistakes, so we test the JSAI code after each incremental change. As we bring in the new variables "defartcon" (definite article condition) and "indefartcon" (indefinite article condition) from MindForth, we run the AI Mind just to make sure that we have not used any name reserved for any special purpose in JavaScript. Then we start setting the new flags in the InStantiate mind-module. Finally we have an AI Mind that uses articles, but we need to smooth out the functionality.

http://groups.google.com/group/comp.la ng.javascript/msg/43c703dc13ed30fb


MindForth Programming Journal (MFPJ) 2011 April 15

Fri.15.APR.2011 -- New Coding After 25 February 2011

We are developing some ideas today about the difference between responding to "Who are you?" and "What are you?" in the AI Mind. In our AI coding towards the end of 2009, we were using too many flag variables to keep track of the asking of a who-query or a what-query. Then towards the end of 2010 we were having substantial success with the use of neuronal inhibition to obtain the proper variation in multiple answers to the same question, such as "What are you?" Inhibiting each currently given answer made the AI able to summon successively different answers, such as "I am code" and "I am software" and "I am a robot." Now we want to go deeper into the machine psyche and enable the AI to respond differently to queries of "what" and queries of "who". We want to achieve this goal without the use of cumbersome query-flags.

One idea that we have had today is that we can differentiate between who-queries and what-queries by letting each one predispose either an "EnDefArt" module for the English definite article, or an "EnInDefArt" module for an English indefinite article. For example, we would like a "What are you?" query to engender a response with an indefinite article, such as, "I am a robot." On the other hand, we would like a "Who are you?" query to engender a response with the definite article, as in, "I am the robot."

Even with the new article modules, we will still need a way for the input of "who" or "what" to send a signal to the appropriate module. Instead of having mindgrid-wide, blanket query-flag variables as we did in late 2009, we may now be able to make use of the "statuscon" variables that we dreamed up in our MFPJ work of Fri.12.SEP.2008. For each of the new article modules, we will devise a "statuscon" variable so as to "prime" that mind-module to respond properly to the "who" or "what" inquiry. Say, using this "statuscon" technique may even enable proper answers to a compound query like, "Who and what are you?" We might get the AI to respond, "I am Andru and I am a robot." The main thing is, by shifting away from the mindgrid-wide query-variables and by using instead the "statuscon" variables, we may achieve a tighter integration between specific English words and the proper response to them.


Sat.16.APR.2011 -- Implementing Article Conditions

First we declare the variables defartcon and indefartcon for setting the definite or indefinite article condition. We run the artificial Forthmind , and it still works. Then into the EnA rticle module we insert code to test the status of the new variables before saying "A" or "THE". The mechanism is rough now at first, but we ask "Who are you?" and the AI Mind responds "I AM BRAIN". When we ask "What are you?" the AI says, "I AM A BRAIN."


MindForth Programming Journal (MFPJ) 2010 September 26

Sun.26.SEP.2010 -- Reducing Calls to PsiDamp

Today into MindForth Robot AI we have inserted diagnostic code to announce each time that the PsiDamp mind-module is called, and which other mind-module is calling it. We are trying to suppress stray activations, and we do not want the PsiDamp module to interfere with the normal process of spreading activation.

The AudInput module seems to call PsiDamp from two locations. The call from the second location (during external input) may not be necessary, because it seems to be just a way of knocking down the cresting concept. We should perhaps not even think of a concept as "cresting" during external input, but only during internal generation of a thought. So let us try commenting out not only the AudInput second call to PsiDamp, but also the nearby call to VerbClip. Oops. When we comment out the second call to PsiDamp, we stop getting a correct answer from the AI when we ask "what am i". We get "YOU ARE YOU" instead of "YOU ARE MAGIC". So we re-enable the call to PsiDamp.

Now let us try commenting out or conditionalizing a call from NounPhrase to PsiDamp. Let us require the "urpsi" to be a value above zero, so that PsiDamp does not get called in vain. Actually, the fp091124.html MFPJ entry explains that that call to PsiDamp did not seem to improve anything at all. Apparently it was a defective call to PsiDamp, because no "urpsi" was declared as the concept to be psi-damped. Therefore let us simply comment out that useless call to PsiDamp.

Next we were starting the AI and entering "i am stuff" to give the AI something new to retrieve from the KB for a "what am i" query. The AI kept answering only "YOU ARE MAGIC". Then it dawned on us that we had so many new calls to PsiDecay, that maybe inhibition of "-15" in NounPhrase was not enough. So we switched to "-32" inhibition and we received better results.


Transcript of AI Mind interview at 
19 30 57 o'clock on 26 September 2010.


Human: i am stuff Robot: STUFF WHAT IS STUFF

Human: what am i Robot: YOU ARE MAGIC

Human: what am i Robot: YOU ARE A STUFF

It turns out that the word "MAGIC" still had a negative activation from inhibition and so had to permit "STUFF" to be said.

Upshot: With some success, the MindForth AI is now able to answer both "what am i" and "what are you" queries, retrieving multiple tidbits from the knowledge base (KB) for each line of inquiry. However, there is still some confusing of the "I" and "YOU" concepts. Sometimes the AI ascribes the wrong attribute (predicate nominative) to either "I" or "YOU", and sometimes the AI simply says "YOU ARE I". Sometimes the AI fails to retrieve all the available tidbits. There is much room for improvement, but we now have some good code which we should upload after commenting out the diagnsotic messages.


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
Robot: SOFTWARE  ARE  THE  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 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
Robot: CARS WHAT ARE CARS

Human: boys make guns
Robot: GUNS WHAT ARE GUNS

Human: boys
Robot: THE BOYS MAKE THE CARS

Human: boys
Robot: THE BOYS MAKE THE GUNS

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
Robot: CARS WHAT ARE CARS

Human: boys make guns
Robot: GUNS WHAT ARE GUNS

Human: boys
Robot: THE BOYS MAKE THE CARS

Human: boys
Robot: THE BOYS MAKE THE GUNS

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 :-)

Arthur
--
http://AiMind-i.com
http://code.google.com/p/mindforth
http://doi.acm.org/10.1145/307824.307853
http://robots.net/person/AI4U/diary/40.html


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.


58 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!