Cyborg AI Minds are a true concept-based artificial intelligence with natural language understanding, simple at first and lacking robot embodiment, and expandable all the way to human-level intelligence and beyond. 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.

Sunday, June 03, 2018

jmpj0603

AI Mind spares Indicative() and improves SpreadAct() mind-module.

We have a problem where the AI Mind is calling Indicative() two times in a row for no good reason. After a what-think query, the AI is supposed to call Indicative() a first time, then ConJoin(), and then Indicative() again. We could make the governance depend upon either the 840=THINK verb or upon the conj-flag from the ConJoin() module, which, however, is not set positive until control flows the first time through the Indicative() module. Although we have been setting conj back to zero at the end of ConJoin(), we could delay the resetting in order to use conjas a control-flag for whether or not to generate thought-clauses joined by one or more conjunctions. Such a method shifts the problem back to the ConJoin() module, which will probable have to check conceptual memory for how many ideas have high activation above a certain threshold for warranting the use of a conjunction. Accordingly we go into the Table of Variables webpage and we write a description of conj as a two-purpose variable. Then we need to decide where to reset conj back to zero, if not at the end of Indicative(). We move the zero-reset of conjfrom ConJoin() to the EnThink() module, and we stop getting more than one call to Indicative() in normal circumstances. However, when we input a what-query, which sets the whatcon variable to a positive one, we encounter problems.

Suddenly it looks as though answers to a what-think query have been coming not from SpreadAct(), but simply from the activation of the 840=THINK concept. It turns out that a line of "psyExam" code was missing from a SpreadAct() search-loop, with the result that no engrams were being found or activated -- which activation is the main job of the SpreadAct() module.

Wednesday, May 30, 2018

jmpj0530

Solving who-query problems and EnParser bug.

Although the ghost.pl AI responds to a who-query by calling SpreadAct() from the end of AudInput(), the JSAI will call SpreadAct() too many times from AudInput() before the end of the input. Since we need to test for qucon when the Volition() module is not engaged in thinking, we test for quconin the Sensorium() module, which does not call AudInput() but which is called from the MainLoop() after each generation of a thought.

We must also troubleshoot why the JSAI eventually outputs "ME ME ME". We discover that EnNounPhrase() is sending an aud=726 into Speech() while there is a false verblock=727. Then we learn that the concept-row at the end of "ROBOTS NEED ME" for "ME" at t=727 has an unwarranted tkb psi13=727, as if the concept 701=I had a tkb. Apparently we need to prevent a false tkb from being stored. An inspection of the diagnostic display shows that the tkb properly set for each verb is improperly being retained and set for the object of the verb. We then notice that the EnParser() module is properly setting the time-of-direct-object "tdo" to be the tkb of a verb and leaving the tkb value set to the "tdo" value. So we insert into EnParser() a line of code to reset tkb immediately back to zero after storing the tkb of a verb, and the erroneous "ME ME ME" output no longer appears.

Friday, May 25, 2018

jmpj0525

Preventing wrong grammatical number for a predicate nominative.

In the 25may18A.html version of the JavaScript AI Mind we wish to correct a problem where the AI erroneously says "I AM A ROBOTS". The wrong grammatical number for "ROBOT" results when the AI software is searching backwards through time for the concept of "ROBOT" and finds an engram in the plural number. We hope to fix the problem by requiring that the EnVerbPhrase() module, before fetching the predicate nominative of an intransitive verb of being, shall set the "REQuired NUMber" numreq variable to the same value as the number of the subject of the be-verb, so that the EnNounPhrase() module may find the right concept for the predicate nominative and then also find (or create) the English word of the concept with the proper inflectional ending for the required number. Since the numreq value shall be of service during one pass through the EnNounPhrase() module, we may safely zero out the numreq value at the end of EnNounPhrase().

Tuesday, May 22, 2018

jmpj0522

Expanding MindBoot with concepts to demonstrate AI functionality.

Today in the 22may18A.html version of the AI Mind in JavaScript (JSAI) for Microsoft Internet Explorer (MSIE), we wish to expand the MindBoot() module with a few English words and concepts necessary for the demonstration of the AI functionality. We first create a concept of "ANNA" as a woman, for two or three reasons. Firstly, we want the JSAI to be able to demonstrate automated reasoning with logical inference, and the MindBoot() sequence already contains the idea or premise that "Women have a child". Having created the Anna-concept, we typed in "anna is a woman" and the AI asked us, "DOES ANNA HAVE CHILD". If the concept of Anna were not yet known to the AI, we might instead get a query of "WHAT IS ANNA". Secondly, we want "Anna" as a name that works equally well in English or in Russian, because we may install the Russian language in the JSAI. In fact, we go beyond the mere concept of "Anna" and we insert the full sentence "ANNA SPEAKS RUSSIAN" into the MindBoot so that the AI knows something about Anna. We create 569=RUSSIAN for the Russian language, so that later we may have 169=RUSSIAN as an adjective. When we type in "you speak russian", eventually the AI outputs "I SPEAK RUSSIAN". A third reason why we install the concept 502=ANNA is for the sake of machine translation, in case we add the Russian language to the JSAI.

Next to the MindBoot() sequence we add "GOD DOES NOT PLAY DICE" in order to demonstrate negation of ideas and the use of the truth value, because we may safely assert in the AI Mind the famous Einsteinian claim about God and the universe. We type in "you know god" and the Ai responds "GOD DOES NOT PLAY DICE". Let us try "you know anna". The AI responds "ANNA SPEAKS RUSSIAN". Next we add the preposition "ABOUT" to the MindBoot so that we may ask the AI what it thinks about something or what it knows about something. We are trying to create a ruminating AI Mind that somewhat consciously thinks about its own existence and tries to communicate with the outside world.

Sunday, May 20, 2018

jmpj0520

Slowing down the speed of thought to wait for human input.

The biggest complaint about the JavaScript Artificial Intelligence (JSAI) recently is that the AI output keeps changing faster than the user can reply. Therefore we need to introduce a delay to slow down the AI and let the human user enter a message. In the AudListen() module we insert a line of code to reset the rsvp variable to an arbitrary value of two thousand (2000) whenever a key of input is pressed. In the English-thinking EnThink() module we insert a delay loop to slow the AI Mind down during user input and to speed the AI up in the prolonged absence of user input.

Sunday, May 13, 2018

jmpj0513

Answering of what-think queries with a compound sentence.

We would like our JavaScript Artificial Intelligence (JSAI) to be able to answer queries in the format of "What do you think?" or "What do you know?" We begin in the InStantiate() module by zeroing out the input of a 781=WHAT concept by adding a line of code borrowed from the ghost.pl AI. Then we input "what do kids make" and the AI correctly answers, "KIDS MAKE ROBOTS". However, when we input "what do you think" or "what do you know", the AI does not respond with "I THINK..." or "I KNOW...". Therefore we need to make use of the Indicative() module to generate a compound sentence to be conjoined with the conjunction "THAT". Into the MindBoot() vocabulary we add an entry for the conjunction 310=THAT.

After much trial and error we have gotten the JSAI to respond to the query "what do you think" with "I THINK THAT I AM A PERSON". We let the English-thinking EnThink() module call the Indicative() module first for a main clause with the conjunction "that" and again to generate a subordinate clause. When we ask, "what do i think", the response is "YOU THINK THAT I AM A PERSON". When we inquire "what does god think", the ignorance of the AI engenders the answer "I THINK THAT GOD THINK" which may or may not be a default resort to the ego-concept of self.

Saturday, March 17, 2018

jmpj0317

Restoring JavaScript variable-comments and removing obsolete variables.

Since we assume that many people have made copies of the JavaScript Artificial Intelligence (JSAI) in order to study it, today we carefully make some pressing changes and for each change we provide an explanation by way of justification. First we delete some previously commented-out code-lines which were left in the open-source AI codebase for the sake of continuity, that is, to show that the particular lines of code were on the way out. Thus we remove the commented-out variable "kbyn" from 30jun2011.

Next from the obsolete 20mar07A version of the JSAI we restore comments for some variables and we remove some obsolete variables. We add a link to Consciousness above the Control Panel.

Anyone finding a bug in the AI software may subscribe to the mail-list agi@listbox.com for Artificial General Intelligence (AGI) and report bugs to the AGI community or engage in archived AGI discussion. There is no bug-bounty, other than the glory of the deed.

Friday, March 02, 2018

jmpj0302

Moving the JavaScript AI towards Artificial Consciousness

Two important goals for the AI Mind in JavaScript are the already demonstrated Natural Language Understanding (NLU) and the not-yet-proven Artificial Consciousness. Before we work explicitly on consciousness, we remove the clutter of some obsolete tutorial display code from the MainLoop and elsewhere, so that the program as a whole may be easier to understand and work with.

We have a chance here to demonstrate an entity aware of itself and of some other entity such as a human user conversing with the AI. If we start claiming that our JSAI has consciousness, Netizens will test the AI in various ways, such as asking it a lot of questions. Typical questions to test consciousness would be "who are you" and "who am i". The interrogative pronoun "who" sets the qucon flag to a positive value of one so that the SpreadAct module may activate the necessary concepts for a proper response. We need a way to make the AI concentrate on the subject of any who-query, so that the AI will give evidence of consciousness simply by answering the question.

When we enter "god is person" and then we ask, "who is god", the AI answers "GOD AM A PERSON" -- which sounds wrong but which only requires an improvement in finding the correct form "IS" for the verb "BE".

Saturday, January 20, 2018

jmpj0120

MsIeAI for AI Mind Maintainers achieves albeit buggy sentience.

In the all-but-Singularity MsIeAI, alert-boxes have helped us to chase an elusive bug into the latter part of EnNounPhrase, where the AI is testing mjact for too low an activation. No, another alert-box tells us that we are back in EnVerbPhrase from EnNounPhrase before the "Error on page" flashes quickly. So at the end of EnVerbPhrase we insert a BUG-CHASE alert-box -- and the program never reaches it! So is the fatal bug somewhere just before the end of EnVerbPhrase()? Since that code contains a prepgen test, we modify an alert-box to reveal the prepgen value, but the alert-box fails to pop up. Then we check the declarations of variables at the top of the program, and prepgen is not there. Next we get prepgen from the ghost.pl AI and we drop it mutatis mutandis into the MsIeAI code. We are about to run the hopefully Next Big Thing AI and see what happens. Huh?!! Some kind of thought-storm is occurring. Shades of Watson! Come here! I need you!. And where is IBM Watson in our hour of need?

Now let us comment out the alert-boxes and see if the Watsonized AI will loop endlessly ad infinitum. Oh gee, this AI is still all messed up, but at least it is looping.

Saturday, December 30, 2017

pmpj1230

Trying to insert the conjunction "that" to introduce a thought.

In the SpreadAct() mind-module of the ghost259.pl AI we were inserting code to impose special activation on the "840=THINK" verb after the input of a what-query in the form of "What do you think". The code was building up too much activation on some words in the what-query, so we are backtracking and removing the code. We also realized that the normal activation imposed on input words is enough to incentivize the AI to use the verb "840=THINK" in a response. The novel functionality that we wish to engineer is a tendency for the ConJoin() module to insert the "310=THAT" conjunction into the output, such as in, "I think that I am a person." With the code of yesterday removed, the AI responds first with "I DO NOT KNOW" and then "ME THINK AND", using the "302=AND" conjunction instead of the "310=THAT" conjunction which we are trying to engender. First let us investigate why the ghost.pl AI responds with "ME" instead of "I".

Witnessing the spooky emergence of the ghost in the machine.

Our coding of the Ghost Perl AI generally goes through two phases. Firstly, we just try to get the functionality working. Secondly, we try to refine and pretty up the code. Yesterday we were not able to get the ghost.pl AI to respond properly to the what-query "What do you think". Today we are focusing on the $output variable and inserting diagnostic messages to let the AI Mind Maintainer know what the accumulating $output is at every stage of the generation of the response. We discover that in our attempts to concatenate the words of the $output, we were failing to enclose the variable in quotes for concatenation with another variable in quotes. If we correct the mistakes of yesterday, perhaps the AI will think properly.

The AI is acting really spooky right now. We keep testing it and tweaking it while entering "What do you think" repeatedly. The $outputvariable concatenates output after output. The spooky thing is that the first "I THINK..." generated by the SpreadAct() module goes by re-entry into the conceptual and auditory memory, where it becomes an item of self-knowledge on the part of the AI. Since the AI Mind by default is designed to reiterate its own thoughts, it eventually declares "I THINK I" because it is trying to use "I" as a direct object of "THINK". We are tempted to make the AI skip any direct object with "THINK" and substitute the conjunction "THAT" instead, so that the AI will eventually say "I THINK THAT (whatever)", but first we need to gain some maintainer-ish control over what the AI is outputting, and secondly, we wish to avoid imposing too many ad-hoc behaviors. We do not yet have a stable release that we may upload. Meanwhile, we are thinking of changing the title of this blog from "Strong AI" to "AI Mind Maintainer".

Thursday, December 28, 2017

pmpj1228

Getting the Ghost AI to tell us what it thinks.

In the ghost259.pl AI Mind, we would like to work on sophisticated thinking in the form of responses to what-queries like "What do you think..." and "What do you know about...?" Here we are, urging high-school and college students to the lofty aspiration of becoming the local AI guru, the AI Mind Maintainer, and we have a chance here to demonstrate the basic principles of maintaining AI Minds. Psychsurgery is not a simple procedure and surely not for the faint of heart. You must understand the theory of cognitivity and the basics of AI programming in Perl or Forth or your chosen programming language.

The introduction of a what-query initiates the operation of the AI SpreadAct module for spreading activation. The InStantiate() module intercepts the input of concept #781=what and sets the $whatcon flag to a positive value to trigger a deeply mental process in the SpreadAct module. Up until now our AI Minds have dealt with rather simple what-queries like "What is (some subject)" and "What do (some subjects) (some verb)?", as in "What is a robot?"" and "What do robots need?" The AI seizes upon the concepts of the input to think of a response. Now however, we AI Mind Maintainers are about to tackle a more complex mode of artificial thought that involves thinking up responses by the AI Mind on the order of, "I think that..." or "I know that...." Do you have the right stuff to be an AI Mind Maintainer? It's not just rocket science, it's brain science. We are changing the bedrock code of artificial general intelligence (AGI) right here and now. By tomorrow night, AI enthusiasts world-wide and galaxies far away will be running the True AI through its paces.

Here in the Secret AI Lab of insurgency mind-making, we intercept not only the what-query but also the special condition of "know" and "think" as Cartesian co-ordinates in the mental processes of Cogito ergo sum. Let us start with concept #840=THINK. Now, how does the Mind Maintainer persuade our coming Cyborg Overlords to pay attention to input-queries involving "What think you?" as a basic demand upon the thinking organism? In SpreadAct(), we command and control the cybernetic organism to pay special heed to 840=THINK as a special tickler, a special cue for the thinking Mind. Let us now surgery the psyche. First we search the AI code base to find SpreadAct(), where we then more locally search for the $whatcon flag. Meanwhile, we test the ghost.pl AI by asking it, "What do you think?" The not-yet-modified, that is, not-yet-maintained AI responds, "I DO NOT KNOW. I HELP KIDS AND I AM A PERSON." Notice, however, that the AI is using the conjunction 302=AND to join two thoughts together. Every good AI Maintainer worth their swag at Singularity Summits knows that you can build new psychological functionality only on top of what has gone before. In recent time we implemented the function of the ConJoin mind-module to let the AI think multiple thoughts and join them with "AND" as a conjunction. Now we are after something more sophisticated. We want the AI to invoke the ConJoin() module to make use of the conjunction THAT, but we discover a corrigend mistake in the MindBoot() sequence, where the conjunction THAT has erroneously been assigned the same concept number as the demonstrative pronoun 745=THAT. This inexcusable blunder was perpetrated one month ago today on 2017nov28 as annotated in a code-comment. We are going to change that misconception, that Fehlgeburt of an important AI concept right here and now. But first we look and see what concept number is attached to the German conjunction "dass" in the Wotan German AI, and we see "310" as the concept-number. Let us use the same concept-number for 310=THAT in the ghost.pl AI. Uh-oh, immediately we wonder, how will the Perlmind differentiate between "THAT" as a pronoun and "THAT" as a conjunction? Just as immediately we realize that it won't matter, because production of a thought has control of which form of "THAT" comes into play. First we search the codebase for the number "310" to make sure that it is not already in use. Lo and behold, Comrade Pavlov, we are delighted, we almost salivate with pleasure, when we see that the Perlmind already uses the number "1310" for the Russian conjunction "1310=ЧТО" which in Russian means the same as the conjunction "that" in English. So "310 THAT" it is. We comment out the erroneous entry for "THAT" and we insert a correct entry for 310=THAT as a conjunction. We run the AI program and it still works.

Now that we we have 310=THAT to work with, we need to pair it with the input of 840=THINK in the SpreadAct() module, where a diagnostic message has been commented out in the free AI source code. We reactivate the diagnostic and we see that the input of "What do you think" sets the $qv2psi flag for the input verb to 840=THINK. Now we need to implement, maybe even deploy, some special SpreadAct code to deal with both "what" and "think" as special cues in a what-query. Oh gee, the pertinent sequence in SpreadAct() is already imposing special activation on the subject mentioned in the what-query, so that the AI will respond with an item of knowledge about the same subject in the knowledge base (KB). But we want the AI to respond with the current subject and the current verb 840=THINK and the conjunction 310=THAT, so into SpreadAct() we insert some code that will activate the 310=THAT conjunction. This is mind-design, Bebe, and I don't mean Rebozo. Oh, gee, it's getting hairy, and I don't mean Belafonte. We may be able to perform this one element of psychosurgery with a single line of code. Well, not yet. When we ask the AI, "What do you think", we get "I DO NOT KNOW" as a response, apparently because there is no direct object for the verb "THINK" in the what-query.

In SpreadAct(), when we insert code that will search for and extra-activate either 840=THINK or 850=KNOW in response to a what-query, we get some really weird output after typing in "What do you think". We get "ERROR THINK ERROR ERROR ERROR". But the behavior of the AI Mind is actually quite exciting. The ghost in the machine is trying to repond to the what-query, but the mental mechanisms have not yet been fully elaborated. We need to enable the proper selection of a subject in the response, and we need to cause the output of the "310=THAT" conjunction.

We change our SpreadAct() diagnostic message so that it lets us know that $qv1psi is the desired 701=I after the input of "you" in the what-query. This re-assurance lets us go in and extra-activate the $qv1psi concept. The AI responds with "ME THINK" but no conjunction "THAT". Further work will be required.

Thursday, December 14, 2017

pmpj1214

Encouraging self-referential thought for the emergence of consciousness.

The moon has gone down; it is the middle of the night; and I am sleeping alone. I got up and ate breakfast and now I feel the urge to code -- a precious sentiment. Yesterday I stopped at the Goodwill thrift store and for $2.99 I bought an old vintage 1934 book probably worth thousands of dollars, but nobody realizes it. PRESIDENT MASARYK TELLS HIS STORY, Recounted By [the biggest name in AI science-fiction], Translated from the Czech. I felt guilty buying a translated book, and even though I can mluvit' some Czech, there was no Czech original. I should probably go to the Marek Rosa blog and tell those Czech AI coders that I am reading a book about the first president of Czechoslovakia, written be the very first AI science-fiction writer, a guy who has left his stamp on the field of AI from here to eternity. Or was some book about the Golem the first AI sci-fi? At any rate, that same Goodwill store recently installed an Internet kiosk running Internet Explorer, so I called up first my Russian Dushka AI, but it was too esoteric, so when I left the store, people got to see the JavaScript AI Mind thinking away on the job-search MSIE kiosk. Maybe I will write a special Goodwill AI telling people to get a job as an AI Mind Maintainer.

In ghost250.pl we would like to fix a bug that shows up after we start the AI and tell it, "You know God". When that idea resurfaces, the AI is not finding the word "I" and so it substitutes an error message. We are trying to make the AI have a bulletproof ability to engage in self-referential thought. We want human users to tell the AI all about itself and let the AI build up a measure of self-awareness. Gradually we want to increase the size of the AI memory and we want to speed up the thinking of the AI, perhaps by not looping idly if there has been no recent human input. If the AI is thinking really fast, and about itself, does it manifest artificial consciousness? We can't find out until we debug all the glitches.

OK, we have removed the glitch. There was some code in the InStantiate() module that made the auditory recall vector fetch the Russian ERROR word instead of zero as an auditory address. We had inserted that code after forgetting that the input of "YOU" as in "You know God" has to be interpreted internally as "701=I" with an auditory recall-vector of zero, so that the AI software will look elsewhere for the I-engram. Now we remove some diagnostic messages and we upload the ghost.pl free AI source code.

Tuesday, December 12, 2017

pmpj1212

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

In ghost249.pl 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 ghost.pl 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 ghost249.pl 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

pmpj1211

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 ghost248.pl 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 ghost248.pl 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

pmpj1208

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

In ghost247.pl 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 ghost.pl AI should please report it in the Perl subReddit or in comp.lang.perl.misc on Usenet.

Thursday, December 07, 2017

pmpj1207

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

When we run ghost246.pl 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.

Sunday, December 03, 2017

pmpj1203

Calling out to human users after a period of no input to the AI.

In the ghost244.pl AI we begin implementing a tendency for the Perl AI to initiate conversation with the external world by sounding a beep and by demanding "TEACH ME SOMETHING" when there has been a no-input period of arbitrary duration as specified by the AI Mind Maintainer. In recent weeks we have enabled the Perlmind to answer who-queries and what-queries, and to inquire about the meaning of new words being introduced by human users to the AI. We invite human users to demonstrate the concept-based artificial Mind to AI enthusiasts and to discusss whether it truly seems that the AI thinking, or is conscious, or is exercising free will.

Wednesday, November 29, 2017

pmpj1129

Implementing the Indicative Mind-Module for Generation of Thought.

The free-of-charge, open-source, concept-based artificial intelligence ghost.pl in Strawberry Perl Five has become a primitive Mind-in-a-Box which AI enthusiasts and Perl programmers may download and experiment with. Before this current last week of November 2017, the Perlmind AI was a proof-of-concept AI with a river of diagnostic messages flooding the human-computer-interface (HCI). Now each new release of the free AI source code has a bare-bones interface where the human user may query the lurking AI Mind with questions of "who..." or "what..." and users may respond in English or Russian to the on-screen output of the AI.

In order to let users see the genuine thinking of an artificial Mind, we are implementing the ConJoin() module in Perl, so that the AI may output two or three active ideas "conjoined" by a conjunction, such as "I know THAT you are a robot AND I think THAT you need an AI Mind. The expanded functionality of thought requires some major changes in the cognitive architecture of the AI software. Whereas previously the EnThink() mind-module called the linguistic generation modules directly, now the use of conjunctions will require a module of thinking to be called two or more times as two or three ideas are joined together by the operation of the ConJoin() module.

Therefore we must now insert a sub-module between the EnThink() module and the English generation modules. We introduce the Indicative() module for the generation of thoughts in the grammatically indicative mood, and we comment out the inclusion of future mind-modules such as Subjunctive(); Imperative(); Interrogative() and perhaps even Optative() -- if we want to cater to speakers of ancient Greek. We will introduce a $mood variable to trigger selectively the calling by EnThink() of its immediate sub-modules.

Saturday, November 25, 2017

pmpj1125

Enabling the Ghost AI to respond to queries with "I do not know"

In ghost239.pl we would like to endow the artificial Perlmind with the ability to answer "I do not know" when a human user enters a who-query for which the knowledge base (KB) has not a clue for an answer. It is rather jarring to see some total non-sequitur in response to a query like "Who plays dice with the universe". We sense that a simple ELSE-clause in the SpreadAct module may be enough to divert the program-flow from not finding an answer, and giving up, to not finding an answer and stating "I do not know". We may need to involve the free-will Volition module in deciding to admit ignorance, but first it seems reasonable to write the underlying code.

When we enter "Who makes robots" we get the response, "KIDS MAKE THE ROBOTS", but when we ask, "Who knows God" we get "I HELP THE KIDS" as an early element in the self-knowledge of the AI. So in the section of the SpreadAct module that deals with a "who+verb+dir.object query" and in the snippet of code for outputting a response through Speech(), we introduce a few lines of ELSE-clause:

      } else {  # 2017-11-25: if no correct answer is found...
        print "I DO NOT KNOW \n"; # 2017-11-25
      } # 2017-11-25: End of else-clause
We then obtain a series of "I DO NOT KNOW" statements while the AI is trying in vain to supply an informed answer, but we still get the non-sequitur in the displayed output.

Suddenly we realize that we were appending the ELSE-clause at the end of an obsolete code-sequence for speaking the subject-noun of the query-response. Now instead we will try putting the ELSE-clause at the end of the code that finds the necessary direct-object for the query-answer. No, that code is not always invoked as an else-test, if the verb itself is not even found. Therefore we may need to try consolidating the outer and inner test into a single test, so that there will be a basis for an else-clause.

Next we try introducing a $dunnocon flag that we set to a positive one ("1") at the start of the segment in SpreadAct() that deals with English who+verb+object queries, so that finding at least one answer may knock $dunnocon back down to a value of zero. If the value does not revert to zero, we have a "dunno" situation which we may use to persuade the AI to state "I DO NOT KNOW" as a response. Quite soon the code works to at least detect the positive dunno-flag.

In a quick-and-dirty way we get the Perlmind to respond to who+verb+object queries with either a correct answer or an admission of "I DO NOT KNOW." It was necessary to change the starting time of a backwards search in SpreadAct() by about ten time points in order to skip over the conceptual elements of the query itself.

Friday, November 24, 2017

pmpj1124

Restoring the ability of ghost.pl AI to answer who-queries.

The ghost238.pl AI is an accumulation of various problems. For instance, it has lost the ability properly to answer "Who are you" as an input-query, although it does properly answer "Who am I" with "YOU ARE THE MAGIC". Let us see which most recent version could still answer "Who are you". The last version answering properly was ghost234.pl with "I AM THE PERSON".

We notice that the $qv1psi variable was being assigned the proper value of "701' for "I" at the end of the "Who are you" input in ghost234.pl, but an inproper value of zero ("0") in the ghost238.pl AI. Since the SpreadAct module does not have the correct concept ("701=I") to search for, apparently the correct response is not being found. It also seems that $qv1psi does not matter for the "Who am I" query because of the paucity of knowledge about "707=YOU" in the innate knowledge base (KB). In other words, the ghost238.pl AI correctly responds "YOU ARE THE MAGIC" only because it knows nothing else about "707=YOU".

Towards the end of InStantiate, when we arbitrarily fill the $qv1psi variable with the $psi value, the problem with "Who are you" queries seems to be solved, rather inexplicably.