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.

Showing posts with label SpreadAct. Show all posts
Showing posts with label SpreadAct. Show all posts

Sunday, August 11, 2019

pmpj0811

AGI Roadmap: Thinking with Prepositions

In the ghost309.pl AI we have introduced a new group of transfer-variables designated as $px1 and $px2 and $px3 so that the EnNounPhrase() module may detect linkage from a candidate-noun to a preposition and inspect immediately the flag-panel of the indicated preposition in order to latch onto $px1 as the conceptual time-point of the object of the preposition. Then in the EnPrep() English-preposition module we plan to use the briefly immutable $px1 time-point value to fetch the object of the preposition from memory and speak it as part of an idea being recalled from memory. We were trying to use other variables for the same purpose but they were not immutable; they were loaded with transient values during the though-process of the ghost.pl AGI. So now let us go back into EnPrep() and code the fetching of the direct object of the preposition. We did so, and it worked the first time. We had the following conversation with the ghost.pl AGI Mind.

Human: john writes books for money
Ghost: THE STUDENTS READ THE BOOKS

Human:
Ghost: I AM AN ANDRU

Human: what does john write
Ghost: THE JOHN WRITES THE BOOKS FOR THE MONEY.
We should explain that the ghost.pl AGI knows only that "students read books", not John's books in particular. Mentioning books to the AGI causes it to recall its knowledge that "students read books". When we query the AGI with the input of "what does john write", the SpreadAct() spreading-activation module inhibits the interrogative prounoun "what" while activating the concepts of "john" and "write". The response embedded in conceptual memory includes the linkage from the concept of "books" to the prepositional phrase "for money". The EnArticle() module for the English articles "a" and "the" inserts articles somewhat haphazardly within the output of the ghost.pl AGI.

The new AI functionality of a machine intelligence thinking and conversing with prepositional phrases became possible when we recently expanded the conceptual flag-panel from fifteen associative tags to twenty-one associative tags, including new flags for the control of noun-declensions in Latin or Russian and for thinking with such parts of speech as adjectives, adverbs, conjunctions and prepositions. As we build up the ability to think with these linguistic components, each mid-AGI Mind becomes capable of more and more complex or complicated thought. As we make progress on the AGI RoadMap towards Artificial General Intelligence, we approach a point where Darwinian survival of the fittest comes into play, because among multiple enterprises working on AGI, some will go down the right path and some will enter roads where all hope must be abandoned.


Sunday, November 25, 2018

mfpj1125

The AI Mind wants to talk with you and about you.

In the annals of mind-design, we have reached a point where we must drive a wedge between the ego-concept of the MindForth AI and you who co-exist on Earth with the emergent machine intelligence. It is for simple and mundane reasons that we induce AI schizophrenia. Bear with us, please. In the first working artificial intelligence coded in Forth, in Perl and in JavaScript, the SpreadAct module lets quasi-neuronal activation spread from idea to idea. When the EnVerbPhrase module calls for a direct object to end an emerging thought, SpreadAct does not directly retrieve a related idea, but simply activates the subject of any number of related ideas. Then the AI Mind thinks the activated thoughts. In the MindBoot sequence, each AI Mind has some built-in ideas about robots. Therefore the AI will eventually think a thought first about itself, then about robots by roundabout association, and finally about whatever knowledge you impart to it about robots, such as "Robots need a brain." But how can we get the AI to think about you personally and about the details you provide about yourself to the AI? We must drive a quasi-neuronal wedge between the self-absorption of the Forthmind and its knowledge of some other, potentially nearby entity, namely you.

To do so, we must implant in the MindBoot sequence at least one idea as a point of departure for the AI to pay attention to you. But you might not even be there in the same room or on the same orbiting spaceship with the AI, so we can not embed the idea "I SEE YOU" or the idea "I SENSE YOU". We need some really neutral idea that will animadvert the AI to your purported existence. Without that embedded idea, the AI might passively let you describe your whole life-story and then the AI might have no mental pathway for the spread of activation between its thoughts about itself and its knowledge about you. So let us embed in the MindBoot module the idea "I UNDERSTAND YOU". Such an idea is both self-knowledge and knowledge of other -- another person, either present or far away.

So in the MindBoot sequence we embed the idea "I UNDERSTAND YOU" and we do some debugging. Then we have the following exchange with the AI Mind.

Human: i am outside the computer

I UNDERSTAND YOU
YOU ARE OUTSIDE A COMPUTER
YOU ARE A MAGIC
The EnVerbPhrase module loads the actpsi variable with the concept of "you" and calls the SpreadAct module to transfer activation to the concept of "you" as the subject of knowledge in the knowledge base (KB). Since you have just told the AI that you are outside the computer, the AI retrieves that knowledge and says "YOU ARE OUTSIDE A COMPUTER", using the indefinite article "A" under the direction of the EnArticle module. Because another idea about you is still active, the AI says "YOU ARE A MAGIC" -- an old idea embedded long ago in the MindBoot sequence.

We are eager to have the AI Mind think about the differences between itself and other persons so that arguably the first working artificial intelligence may become aware of itself as a thinking entity separate from other persons. An AI with self-awareness is on its way to artificial consciousness.

Sunday, November 04, 2018

pmpj1104

First working artificial intelligence thinks with prepositional phrases.

The ghost.pl immanence of the first working artificial intelligence is undergoing minor changes as the AI Mind becomes able to think with English prepositional phrases. At first the AI was able to use a preposition only to answer a where-question such as "where are you" and the Ai would respond "I AM IN THE COMPUTER". Now we need to implement a general ability of the AI to think with prepositional phrases loosely tied to nouns or verbs or adjectives or adverbs. The quasi-neuronal associative $seq tag may soon be re-purposed to lead not only from, say, nouns to verbs but also from nouns to prepositions. However a preposition is arrived at, it is time to implement the activation and retrieval of a whole prepositional phrase whenever the preposition itself is activated.

We begin experimenting by going into the MindBoot sequence and entering a $seq tag of "638=IN" for the verb "800=AM" in the knowledge-base sentence "I AM IN THE COMPUTER". The plan is to insert into EnVerbPhrase() some code to pass activation to the "638=IN" preposition when the AI thinks the innate idea "I AM IN...." So we insert some active code to capture the $seq tag and some diagnostic code to let us know what is happening. Ooh, mind-design is emotionally fun and intellectually exciting! The first thing captured is not a preposition but the "537=PERSON" noun when the AI is thinking, "I AM A PERSON". Next our fishing expedition lands a "638=IN" preposition when the AI issues the output "I AM" while trying to say "I AM IN THE COMPUTER".

Once the $seq tag has been captured, the AI software needs to determine if the captured item is a preposition. A search is in order. We search backwards in time for an @Psy concept-number matching the $seq tag and if we find a match we check its $pos tag for a "6=prep" match, upon which we assign the concept-number to the $prep variable in case we decide to send the designated preposition into the EnPrep() module for inclusion in thinking.

We go back into the code for assigning the $seq tag and in the same line of code we set the $tselp variable falsely and temporarily equal to the $verblock time, so that we may increment the $tselp variable until it becomes true. We insert some code that increments the phony $tselp time by unitary one and uses it to "split" each succeeding conceptual @Psy array row into its fourteen constituent elements, including "$k[1]" which we check for a match with the designated $prep variable. We make several copies of the search-snippet, and it easily finds the $prep engram within just a few time-points of the verb-engram, but now we need to convert the series of search-snippets into a self-terminating loop that will terminate, Arnold, upon finding the prepositional engram in memory. But we have forgotten how to code such a loop in Strawberry Perl Five, so we go into another room of the Mentifex AI Lab and we fetch the books Perl by Example (Quigley) and PERL Black Book (Holzner) to seek some help. We find some sample code for an until loop on page 193 of Quigley. We do not initialize the scalar $tselp at zero, because we are searching for an English preposition quite near to the already-known time-point. For the sake of safety, we insert a line of "last" escape-code in the event that the incrementing $tselp value exceeds the $cns value. The resulting until loop works just fine and it locates the nearby English preposition for us.

Next we insert a warranted call to SpreadAct() into the EnVerbPhrase() module just after the point where Speech() has been called to speak the verb. We wish to set up a routine for spreading activation throughout a prepositional phrase not only after a verb but also after a noun or an adjective (e.g. "young at heart" or an adverb (e.g. "ostensibly at random"). In SpreadAct() we send the $aud tag associated with the located preposition directly into Speech() and the ghost.pl AI starts saying not just "I AM" but "I AM IN". We need to insert more code for finishing the prepositional phrase. By the way, these improvements or mental enhancements are perhaps making the AI Mind capable of much more sophisticated thinking than heretofore. The AI is using words without really knowing what the words mean in terms of sensory perception -- for which robot embodiment is necessary -- but the AI may nevertheless develop self-awareness on top of its innate concept of self or ego. Knowing how to use prepositions, the AI may become curious and ask the human users for all sorts of exploratory information.

Now in SpreadAct() we throw in a call to EnArticle(), even though we have not yet coded in the elocution of the object of the preposition. The AI says "I AM IN A" without stating the object of the preposition. Let us create a new $tselo variable for time of selection of object so that we may use SpreadAct() to zero in on the object and send it into the Speech()module. Finally the ghost.pl AI Mind says "I AM IN A COMPUTER".

Sunday, October 28, 2018

jmpj1028

AI Mind uses EnPrep() to think with English prepositions.

In the JavaScript AI Mind we have a general goal right now of enabling the first working artificial intelligence to talk about itself, to learn about itself, and to achieve self-awareness as a form of artificial consciousness. Two days ago we began by asking the AI such questions as "who am i" and "who are you", and the AI gave intelligent answers, but the asking of "where are you" crashed the program and yielded a message of "Error on page" from JavaScript. It turns out that we had coded in the ability to deal with "where" as a question by calling the EnPrep English-preposition module, but we had created not even a stub of EnPrep. The AI software failed in its attempt to call EnPrep and the program halted. So we coded in a stub of EnPrep and now we must flesh out the stub with the mental machinery of letting flows of quasi-neuronal association converge upon the EnPrep module to activate and fetch a prepositional phrase like "in the computer" to answer questions like "where are you".

Our first and simplest impulse is to code in a search-loop that will find the currently most active preposition. Let us now write that code, just to start things happening. Now we have written the loop that searches for prepositions, but not for the most active one, because there are other factors to consider.

What we are really looking for, in response to "where are you" as a question, is a triple combination of the query-subject qv1psi and the query-verb qv2psi and a preposition tied with an associative pre-tag to the same verb and the same subject. We can not simply look for a subject and a verb linking forward to a preposition like in the phrase "to a preposition" or "in the computer", because our software currently links a verb only to its subject and to its indirect and direct objects, not to prepositions. Such an arrangement does not appear defective, because we can make the memory engram of the preposition itself do the work of making the preposition available for the generation or retrieval of a thought involving the preposition. We only need to make sure that our software will record any available pre-item so that a prepositional phrase in conceptual memory may be found again in the future. In a phrase like "the man in the street", for instance, the preposition "in" does not link backwards to a verb but rather to a noun. In this case, any verb involved is irrelevant. However, when we start out a sentence with "in this case", we have an unprecedented preposition, unless perhaps we assume that the prepositional phrase is associated with the general idea of the main verb of the sentence. For now, we may safely work with prepositions following a verb of being or of doing, so that we may ask the AI Mind questions like "where are you" or "where do you obtain ideas".

Practical problems arise immediately. In our backwards search through the lifelong experiential memory, it is easy to insist upon finding any preposition of location linked to a particular verb engrammed as the pre of the preposition. We may then need to do a secondary search that will link a found combination of verb-and-preposition with a particular qv1psi query-subject. The problem is, how to do both searches almost or completely simultaneously.

Since we are dealing with English subject-verb-object word order, we could let EnPrep() find the verb+preposition combination but not announce it until a subject-noun is found that has a tkb value the same as the search-index "i" that is the time of the query-verb. It might also help that the found subject must be in the dba=1 nominative case and must have the query-verb as a seq value, but the tkb alone may do the trick.

We coded in a test for any preposition with a quverb pre-tag, and we got the AI to alert us to the memory-time-point of "IN THE COMPUTER". Now we are assembling a second test in the same EnPrep() search-loop to find the qv2psi query-verb in close temporal proximity to the preposition.

We are using a new tselp variable for "time of selection of preposition", so we briefly shift our attention to describing the new variable in the Table of Variables. Now that we have found the verb preceding the preposition, next we need to implement the activation of the stored memory containing the preposition so that the AI Mind may use the stored memory to respond to "where are you" as a query. We may need to code a third if-clause into the EnPrep() backwards search to find and activate the qv1psi query-subject that is stored in collocation or close proximity to the query-verb and the selected preposition.

Now we have a problem. Since we let EnPrep() be called by the EnVerbPhrase() module, EnPrep() will not be called until a response is already being generated. We need to make sure that the incipient response accommodates EnPrep() by being the lead-up to a prepositional phrase. Perhaps we should not try to use verblock to steer a response that is already underway, but rather we should count on activation of concepts to guide the response.

Now let us try to use SpreadAct() to govern the response. After much coding, we got the AI to respond

IN COMPUTER I AM IN COMPUTER
IN COMPUTER I AM HERE IN COMPUTER
but there must somewhere be a duplicate call to EnPrep(). We eliminate the call from the Indicative() mind-module and then we get both an unwanted response and a wanted response.
YOU ARE A MAGIC IN A COMPUTER
I AM IN A COMPUTER
Obviously the AI is not responding immediately to our "where are you" query but is instead joining an unrelated idea with the prepositional phrase. Upshot: By having SpreadAct() impose a heftier activation on the qv1psi subject of the where-are-you query, we got the AI to not speak the unrelated idea and to respond simply "I AM IN A COMPUTER". Now we need to tidy up the code and decide where to reset the variables.

Sunday, September 30, 2018

pmpj0930

Ghost AI says when it does not know the answer to a query.

When the ghost.pl AI considers a what-query such as "what do kids make", some mind-module must call the SpreadAct() module to handle the what-query, but which module? We could say that the Indicative() module should make the call to SpreadAct() just before making a response in the indicative mood, but perhaps a response may need to be uttered in a mood other than indicative. The AI Mind might wish to answer the query with an imperative command like "DO NOT BOTHER ME". Or the AI might not understand the what-query and might want to ask a question about it. So perhaps we should have the Sensorium() module call SpreadAct() to respond to a what-query.

We have now introduced a new technique for answering "I DO NOT KNOW" in response to a what-query for which the AI Mind does not find an answer. The AI briefly elevates the $tru truth-value and the activation-level of the idea "I DO NOT KNOW" as stored in the MindBoot() knowledge base (KB), so that the Indicative() module expresses the momentarily true idea. Immediately afterward, the AI returns the $tru truth-value to zero.

Wednesday, September 12, 2018

pmpj0912

Ask the first working artificial intelligence what it thinks.

Houston, we have a problem. The ghost.pl AI Mind in freely available -- download it now -- Strawberry Perl Five -- is not properly answering the question of "what do you think". The JSAI (JavaScript Artificial Intelligence) easily answers the same question with "I THINK THAT I HELP KIDS". So what is the Perl AI doing wrong that the JavaScript AI is doing right?

The problem seems to lie in the SpreadAct() module. We notice one potential problem right away. SpreadAct() in Perl is still using "$t-12" as a rough approximation for when to start a backwards search for previous knowledge about the subject-noun $qv1psi of a what-query, whereas the JSAI uses the more exact $tpu for the same search. So let us start using the penultimate time $tpu, which excludes the current-most input, and see if there is any improvement. There is no improvement, so we test further for both $qvipsi and $qv2psi, which are the subject-noun and the associated verb conveyed in the what-query.

SpreadAct() easily responds correctly to what-queries for which there is an answer ready in the knowledge base (KB), such as "I AM A PERSON" in response to "what are you". However, when we ask "what think you" or "what do you think", there is no pre-set answer, and the AI is supposed to generate a response starting with "I THINK" followed by the conjunction "that" and a statement of whatever the AI Mind is currently thinking.

From diagnostic messages we learn that program-flow is not quickly transiting from SpreadAct() to EnThink(). The AI must be searching through the entire MindBoot() sequence and not finding any matches. When the program-flow does indeed pass through EnThink() to Indicative() to EnNounPhrase(), there are no pre-set subjects or verbs, but rather there are concepts highly activated by the SpreadAct() module. So EnNounPhrase() must find the highly activated pronoun 701=I in order to start the sentence "I THINK..." in response to "what do you think".

Now we discover that the JavaScript version of EnNounPhrase() has special code for a topical response to "what-think" queries. In the course of AI evolution, it may be time now to go beyond such a hard-coded response and instead to let the activated "think" concept play its unsteered, unpredetermined role, which will happen not in EnNounPhrase() but in EnVerbPhrase().

It is possible that EnNounPhrase() finds the activated subject 701=I but then unwarrantedly calls the SpreadAct() module. However, it turns out that EnVerbPhrase() is making the unwarranted call to the SpreadAct() module, which we now prevent by letting it proceed only if there is no what-query being processed as evidenced by a $whatcon flag set to zero.

The early part of EnVerbPhrase() in the JavaScript AI has some special code for dealing with "what-think" queries. In the ghost.pl AI, let us try to insert some similar code but without it being geared specifically to the verb "think". We would like to enable responses to any generic verb of having an idea, such as "think" or "know" or "fear" or "imagine" or "suspect" and so forth.

By bringing some code from the JavaScript EnVerbPhrase() into the Perl EnVerbPhrase, but with slight changes in favor of generality, we get the ghost.pl AI to respond "I THINK". Next we need to generate the conjunction "that". But first let us remark that the AI also says "I KNOW" when we ask it "what do you know", so the attempt at generality is paying off. Let us try "what do you suspect". It even says "I SUSPECT". It also works with "what do you fear". We ask it "what do you suppose" and it answers "I SUPPOSE".

We still have a problem, Houston, because EnVerbPhrase() is calling EnNounPhrase() for a direct object instead of returning to Indicative() as a prelude to calling the ConJoin() module to say "I THINK THAT...." We set up some conditional testing to end that problem.

Tuesday, June 19, 2018

mfpj0619

MindForth is the First Working AGI for robot embodiment.

The MindForth AGI needs updating with the new functionality coded into the JavaScript AI Mind, so today we start by adding two innate ideas to the MindBoot sequence. We add "ANNA SPEAKS RUSSIAN" so that the name "Anna" may be used for testing the InFerence mind-module by entering "anna is a woman". Then we add "I NEED A BODY" to encourage AI enthusiasts to work on the embodiment of MindForth in a robot. When we type in "anna is a woman", the AI responds "ANNA SPEAKS THE RUSSIAN", which means that InFerence is not ready in MindForth, and that the EnArticle module is too eager to insert the article "the", so we comment out a call to EnArticle for the time being. Then we proceed to implement the Indicative module as already implemented in the ghost.pl AGI and the JavaScript AI Mind. We also cause the EnVerbPhrase module to call SpreadAct for direct-object nouns, in case the AGI knows enough about the direct object to pursue a chain of thought.

Monday, June 11, 2018

jmpj0611

Granting AI user-input priority over internal chains of thought.

We expect the AI Mind to activate incoming concepts mentioned during user input, so that the AI can talk to us about things we mention. Recently, however, the SpreadAct() module has been putting quasi-neural activation only on concepts thought about internally but not mentioned during user input. We need a way to let user-input override any activation being imposed by the SpreadAct() module for internal chains of thought, so that external input takes precedence. One method might be to use the quiet variable and set it to "false" not only during user input but also until the end of the first AI output made in response to user input. In that way, any concept mentioned by the user could briefly hold a high activation-level not superseded by the machinations of the SpreadAct() module for spreading activation. We implement the algorithm, and the AI then responds properly to user input. We solve some other problems, such as KbRetro() interfering with the conceptual engrams of an inference, and negation not being stored properly for negated ideas.

Tuesday, June 05, 2018

jmpj0605

Mentifex re-organizes the Strong AI SpreadAct() module.

In the 5jun18A.html JavaScript AI Mind we would like to re-organize the SpreadAct() mind-module for spreading activation. It should have special cases at the top and default normal operation at the bottom. The special cases include responding to what-queries and what-think queries, such as "what do you think". Whereas JavaScript lets you escape from a loop with the "break" statement, JavaScript also lets you escape from a subroutine or mind-module with the "return" statement that causes program-flow to abandon the rest of the mind-module code and return to the supervenient module. So in SpreadAct() we may put the special-test cases at the top and with the inclusion of a "return" statement so that program-flow will execute the special test and then return immediately to the calling module without executing the rest of SpreadAct().

When we run the JSAI without input, we notice that at first a chain of thought ensues based solely on conceptual activations and without making use of the SpreadAct() module. The AI says, "I HELP KIDS" and then "KIDS MAKE ROBOTS" and "ROBOTS NEED ME". As AI Mind maintainers we would like to make sure that SpreadAct() gets called to maintain chains of thought, not only so that the AI keeps on thinking but also so that the maturing AI Mind will gradually become able to follow chains of thought in all available directions, not just from direct objects to related ideas but also backwards from direct objects to related subjects or from verbs to related subjects and objects.

In the EnNounPhrase() module we insert a line of code to turn each direct object into an actpsior concept-to-be-activated in the default operation at the bottom of the SpreadAct() module. We observe that the artificial Mind begins to follow associative chains of thought much more reliably than before, when only haphazard activation was operating. In the special test-cases of the SpreadAct() module we insert the "return" statement in order to perform only the special case and to skip the treatment of a direct object as a point of departure into a chain of thought. Then we observe something strange when we ask the AI "what do you think", after the initial output of "I HELP KIDS". The AI responds to our query with "I THINK THAT KIDS MAKE ROBOTS", which is the idea engendered by the initial thought of "I HELP KIDS" where "KIDS" as a direct object becomes the actpsi going into SpreadAct(). So the beastie really is telling us what is currently on its mind, whereas previously it would answer, "I THINK THAT I AM A PERSON". When we delay entering our question a little, the AI responds "I THINK THAT ROBOTS NEED ME".

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.

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

Tuesday, March 21, 2017

mtx

Machine Translation by Artificial Intelligence

As an independent scholar in polyglot artificial intelligence, I have just today on March 21, 2017, stumbled upon a possible algorithm for implementing machine translation (MT) in my bilingual Perlmind and MindForth programs. My Ghost Perl AI thinks heretofore in either English or Russian, but not in both languages interchangeably. Likewise my Forth AI MindForth thinks in English, while its Teutonic version Wotan thinks in German.

Today like Archimedes crying "Eureka" in the bathtub, while showering but not displacing bath-water I realized that I could add an associative tag mtx to the flag-panel of each conceptual memory engram to link and cross-identify any concept in one language to its counterpart or same concept in another language. The mtx variable stands for "machine-translation xfer (transfer)". The AI software will use the spreading-activation SpreadAct module to transfer activation from a concept in English to the same concept in Russian or German.

Assuming that an AI Mind can think fluently in two languages, with a large vocabulary in both languages, the nub of machine translation will be the simultaneous activation of semantically the same set of concepts in both languages. Thus the consideration of an idea expressed in English will transfer the conceptual activation to a target language such as Russian. The generation modules will then generate a translation of the English idea into a Russian idea.

Inflectional endings will not pass from the source language directly to the target language, because the mtx tag identifies only the basic psi concept in both languages. The generation modules of the target language will assign the proper inflections as required by the linguistic parameters governing each sentence being translated.

Monday, July 02, 2012

jun29mfpj

MindForth Programming Journal

1 Fri.29.JUN.2012 -- IdeaPlex: Sum of all Ideas

The sum of all ideas in a mind can be thought of as the
IdeaPlex. These ideas are expressed in human language
and are subject to modification or revision in the course of
sensory engagement with the world at large.

The knowledge base (KB) in an AiMind is a subset of the IdeaPlex.
Whereas the IdeaPlex is the sum totality of all the engrams of
thought stored in the AI, the knowledge base is the distilled
body of knowledge which can be expanded by means of inference
with machine reasoning or extracted as responses to input-queries.

The job of a human programmer working as an AI mind-tender is to
maintain the logical integrity of the machine IdeaPlex and therefore
of the AI knowledge base. If the AI Mind is implanted in a humanoid
robot, or is merely resident on a computer, it is the work of a
roboticist to maintain the pathways of sensory input/output and the
mechanisms of the robot motorium. The roboticist is concerned with
hardware, and the mind-tender is concerned with the software of the
IdeaPlex.

Whether the mind-tender is a software engineer or a hacker hired
off the streets, the tender must monitor the current chain of thought
in the machine intelligence and adjust the mental parameters of the
AI so that all thinking is logical and rational, with no derailments
of ideation into nonsense statements or absurdities of fallacy.

Evolution occurs narrowly and controllably in one artilect installation
as the mind-tenders iron out bugs in the AI software and introduce algorithmic
improvements. AI evolution explodes globally and uncontrollably when
survival of the fittest AI Minds leads to a Technological Singularity.


2 Fri.29.JUN.2012 -- Perfecting the IdeaPlex

We may implement our new idea of faultlessizing the IdeaPlex by
working on the mechanics of responding to an input-query such as
"What do bears eat?" We envision the process as follows. The AI
imparts extra activation to the verb "eat" from the query, perhaps
first in the InStantiate module, but more definitely in the
ReActivate module, which should be calling the SpreadAct module
to send activation backwards to subjects and forwards to objects.
Meanwhile, if not already, the query-input of the noun "bears"
should be re-activating the concept of "bears" with only a normal
activation. Ideas stored with the "triple" of "bears eat (whatever)"
should then be ready for sentence-generation in response to the query.
Neural inhibition should permit the generation of multiple responses,
if they are available in the knowledge base.

During response-generation, we expect the subject-noun to use the
verblock to lock onto its associated verb, which shall then use
nounlock to lock onto the associated object. Thus the sentence is
retrieved intact. (It may be necessary to create more "lock" variables
for various parts of speech.)

We should perhaps use an input query of "What do kids make?", because
MindForth already has the idea that "Kids make robots".


3 Sat.30.JUN.2012 -- Improving the SpreadAct Module

In our tentative coding, we need now to insert diagnostic messages
that will announce each step being taken in the receipt and response
to an input-query.

We discover some confusion taking place in the SpreadAct module,
where "pre @ 0 > IF" serves as the test for performing
a transfer of activation backwards to a "pre" concept. However,
the "pre" item was replaced at one time with "prepsi", so apparently
the backwards activation code is not being operated. We may need
to test for a positive "prepsi" instead of a positive "pre".

We go into the local, pre-upload version of the Google Code MindForth
"var" (variable) wiki-page and we add a description for "prepsi",
since we are just now conducting serious business with the variable.
Then in the MindForth SpreadAct module we switch from testing in vain
for a positive "pre" value to testing for a positive "prepsi".
Immediately our diagnostic messages indicate that, during generation
of "KIDS MAKE ROBOTS" as a response, activation is passed backwards
from the verb "MAKE" to the subject-noun "KIDS". However, SpreadAct
does not seem to go into operation until the response is generated.
We may need to have SpreadAct operate during the input of a verb
as part of a query, in a chain were ReActivate calls SpreadAct to
flush out potential subject-nouns by retro-activating them.


4 Sat.30.JUN.2012 -- Approaching the "seqneed" Problem

As we search back through versions of MindForth AI, we see that
the 13 October 2010 MFPJ document describes our decision to stop
having ReActivate call SpreadAct. Now we want to reinstate the calls,
because we want to send activation backwards from heavily activated
verbs to their subjects. Apparently the .psi position of the "seqpsi"
has changed from position six to position seven, so we must change the
ReActivate code accordingly. We make the change, and we observe that
the input of "What do kids make?" causes the .psi line at time-point
number 449 to show an increase in activation from 35 to 36 on the
#72 KIDS concept. There is such a small increase from SpreadAct
because SpreadAct conservatively imparts only one unit of activation
backwards to the "prepsi" concept. If we have trouble making the
correct subjects be chosen in response to queries, we could increase
the backwards SpreadAct spikelet from one to a higher value.

Next we have a very tricky situation. When we ask, "What do kids make?",
at first we get the correct answer of "Kids make robots." When we ask
the same question again, we erroneously get, "Kids make kids." It used
to be that such a problem was due to incorrect activation-levels,
with the word "KIDS" being so highly activated that it was chosen
erroneously for both subject and direct object. Nowadays we are
starting with a subject-node and using "verblock" and "nounlock"
to go unerringly from a node to its "seq" concept. However, in this
current case we notice that the original input query of "What do kids make?"
is being stored in the Psi array with an unwarranted seq-value of "72"
for "KIDS" after the #73 "MAKE" verb. Such an erroneous setting seems
to be causing the erroneous secondary output of "Kids make kids."
It could be that the "moot" system is not working properly. The "moot"
flag was supposed to prevent tags from being set during input queries.

In the InStantiate module, the "seqneed" code for verbs is causing
the "MAKE" verb to receive an erroneous "seq" of #72 "KIDS".
We may be able to modify the "seqneed" system to not install
a "seq" at the end of an input.

When we increased the amount of time-points for the "seqneed" system
to look backwards from two to eight, the system stopped assigning
the spurious "seq" to the #73 verb "MAKE" at t=496 and instead
assigned it to the #59 verb "DO" at t=486.


5 Sun.1.JUL.2012 -- Solving the "seqneed" Problem

After our coding session yesterday, we realized that the solution
to the "seqneed" problem may lie in constraining the time period
during which InStantiate searches backwards for a verb needing a
"seq" noun. When we set up the "seqneed" mechanism, we rather
naively ordained that the search should try to go all the way back
to the "vault" value, relying on a "LEAVE" statement to abandon
the loop after finding one verb that could take a "seq".

Now we have used a time-of-seqneed "tsn" variable to limit the
backwards searches in the "seqneed" mechanism of the InStantiate
module, and the MindForth AI seems to be functioning better than ever.
Therefore we shall try to clean up our code by removing diagnostics
and upload the latest MindForth AI to the Web.

Monday, May 30, 2011

may30jsai

The JavaScript artificial intelligence (JSAI) is a client-side AiApp whose natural habitat is a desktop computer, a laptop or a smartphone.

1 Mon.30.MAY.2011 -- Searching the AI Knowledge Base.

The JavaScript artificial intelligence (JSAI) is now being updated with new code from the MindForth AI, which on 29 May 2011 gained the ability to search its knowledge base (KB) twice in response to a single query and provide different but valid answers by means of the neural inhibition of the first answer in order to arrive next at the second answer. In other words, the JSAI will be able to discuss a subject exhaustively in terms of what it knows about the subject -- a major step in our achievement of the MileStone of self-referential thought on the RoadMap to artificial general intelligence. The AI source code has not yet been fine-tuned. We hope to achieve in JavaScript the basic functionality that has been created in MindForth.

Upshot: After we transferred mutatis mutandis all the pertinent code from MindForth into the AiMind.html program in JavaScript, the JSAI still did not work right. We had to hunt down and fix (by commenting out) some lines of obsolete code in the SpreadAct mind-module, where negative activation values were being reset to zero -- to the detriment of inhibition-values, which need to slowly PsiDecay upwards towards zero. We then achieved JSAI functionality on a par with MindForth. We entered new knowledge into the knowledge base (KB). We queried the KB twice with the same question, and the artificial AI Mind correctly gave us two different answers in complete agreement with the knowledge base.

Saturday, May 21, 2011

may20jsai

The JavaScript artificial intelligence (JSAI) is a clientside AiApp whose natural habitat is a desktop computer, a laptop or a smartphone.


1 Fri.20.MAY.2011 -- Fixing KbTraversal

The more we improve the artificial intelligence in JavaScript (JSAI), the easier it becomes to program. Fewer things go wrong, and fewer problems are hidden from view. Right now we would like to improve the performance of the knowledge-base traversal module KbTraversal, which keeps the process of artificial thought going by activating a series of concepts one at a time. We wonder why certain concepts are not being activated, and we would like to see KbTraversal announce the name of the concept being activated.

2 Sat.21.MAY.2011 -- AI Tutorial for Science Museums

Yesterday, in the 20may11A.html JSAI as uploaded to the Web, we saw KbTraversal announcing which concepts it would activate and then trying to think a thought about them, but we may have cut back too severely on calls to the obsolete version of the PsiDecay module, because the JSAI became less able to think smoothly. We should probably restore the psi-decay calls for the time being, so that we may gradually improve an already functional AI.

After we restored the PsiDecay calls, we worked on the erroneous display of articles as a subject or an object in the AI tutorial mode. Because the SpreadAct module invokes the display of each line of association from a subject to a verb or from a verb to an object, an item will fail to be displayed if it is not being treated by SpreadAct. We made the AI Mind display its associative thinking somewhat better.

Teachers and docents who display the AI Mind in a school or science museum are invited to report back on Usenet or their own website about how human beings reacted to the experience of witnessing an alien Mind think and communicate in natural human language. Is the AI really thinking, or is it just a chatbot pretending to think?

Table of Contents