Older blog entries for mentifex (starting at number 98)


InFerence
for Robot Artificial Intelligence (Mind-Module)

is now an Amazon Kindle e-book with a "Click to LOOK INSIDE!" free preview so that programmers and AI enthusiasts who may not have a credit card can get the gist of the information free from the product description and the first few chapters of the free preview. InFerence is available across the World Wide Web in Brazil, Canada, France, Germany, India, Italy, Japan, Mexico, Spain, United Kingdom and USA America. So far the robot AI e-book has been reviewed with four stars out of five. The robot AI software is free to download in English, German and Russian.



64-bit Supercomputer Forth Chips for Strong AI

Imagine a four-core, 64-bit Forth AI CPU designed to run a not-quite-maspar but still somewhat parallel artificial intelligence in English http://www.scn.org/~mentifex/mindforth.txt or in http://www.scn.org/~mentifex/DeKi.txt German.

Such a specialized, Strong AI Forth CPU could devote one core to visual processing and memory; a second core to auditory input and memory; a third core to robotic motor memory and output; and a fourth core to automated reasoning with http://code.google.com/p/mindforth/wiki/InFerence in English, German or Russian.

The 64-bit Forth CPU could be architecturally simple by dint of leaving out all the customary circuitry used for floating-point arithmetic, and Forth would serve as its own AI operating system.

JavaScript Artificial Intelligence Programming Journal

Wed.3.APR.2013 -- "nounlock" May Not Need Parameters

In the English JSAI (JavaScript artificial intelligence), the "nounlock" variable holds onto the time-point of the direct object or predicate nominative for a specific verb. Since the auditory engram being fetched is already in the proper case, there may not be any need to specify any parameters during the search.

Fri.5.APR.2013 -- Orchestrating Flags in NounPhrase

As we run the English JSAI at length without human input and with the inclusion of diagnostic "alert" messages, we discover that the JSAI is sending a positive "dirobj" flag into NounPhrase without checking first for a positive "predflag".

Sat.6.APR.2013 -- Abandoning Obsolete Number Code

Yesterday we commented out NounPhrase code which was supposed to "make sure of agreement; 18may2011" but which was doing more harm than good. The code was causing the AI to send the wrong form of the self-concept "701=I" into the SpeechAct module. Now we can comment out our diagnostic "alert" messages and see if the free AI source code is stable enough for an upload to the Web. Yes, it is.

German Artificial Intelligence Programming Journal

Thurs.14.MAR.2013 -- Seeking Confirmation of Inference

In the German Wotan artificial intelligence with machine reasoning by inference, the AskUser module converts an otherwise silent inference into a yes-or-no question seeking confirmation of the inference with a yes-answer or refutation of the inference with a no-answer. Prior to confirmation or refutation, the conceptual engrams of the question are a mere proposition for consideration by the human user. When the user enters the answer, the KbRetro module must either establish associative tags from subject to verb to direct object in the case of a yes-answer, or disrupt the same tags with the insertion of a negational concept of "NICHT" for the idea known as "NOT" in English.

Fri.15.MAR.2013 -- Setting Parameters Properly

Although the AskUser module is asking the proper question, "HAT EVA EIN KIND" in German for "Does Eva have a child?", the concepts of the question are not being stored properly in the Psi conceptual array.

Sat.16.MAR.2013 -- Machine Learning by Inference

Now we have coordinated the operation of InFerence, AskUser and KbRetro. When we input, "eva ist eine frau" for "Eva is a woman," the German AI makes a silent inference that Eva may perhaps have a child. AskUser outputs the question, "HAT EVA EIN KIND" for "Does Eva have a child?" When we answer "nein" in German for English "no", the KbRetro module adjusts the knowledge base (KB) retroactively by negating the verb "HAT" and the German AI says, "EVA HAT NICHT EIN KIND", or "Eva does not have a child" in English.

German Artificial Intelligence Programming Journal

Sat.9.MAR.2013 -- Making Inferences in German

When the German Wotan AI uses the InFerence module to think rationally, the AI Mind creates a silent, conceptual inference and then calls the AskUser module to seek confirmation or refutation of the inference. While generating its output, the AskUser module calls the DeArticle module to insert a definite or indefinite article into the question being asked. The AI has been using the wrong article with "HAT EVA DAS KIND?" when it should be asking, "HAT EVA EIN KIND?" When we tweak the software to switch from the definite article to the indefinite article, the AI gets the gender wrong with "HAT EVA EINE KIND?"

Tues.12.MAR.2013 -- A Radical Departure

In the AskUser module, to put a German article before the direct object of the query, we may have to move the DeArticle call into the backwards search for the query-object (quobj), so that the gender of the query-object can be found and sent as a parameter into the DeArticle module.

It may seem like a radical departure to call DeArticle from inside the search-loop for a noun, but only one engram of the German noun will be retrieved, and so there should be no problem with inserting a German article at the same time. The necessary parameters are right there at the time-point from which the noun is being retrieved.

Wed.13.MAR.2013 -- Preventing False Parameters

When the OldConcept module recognizes a known German noun, normally the "mfn" gender of that noun is detected and stored once again as a fresh conceptual engram for that noun. However, today we have learned that in OldConcept we must store a zero value for the recognition of forms of "EIN" as the German indefinite article, because the word "EIN" has no intrinsic gender and only acquires the gender of its associated noun. When we insert the corrective code into the OldConcept module, finally we witness the German Wotan AI engaging in rational thought by means of inference when we input "eva ist eine frau", or "Eva is a woman." The German AI makes a silent inference about Eva and calls the AskUser module to ask us users, "HAT EVA EIN KIND", which means in English, "Does Eva have a child?" Next we must work on KbRetro to positively confirm or negatively adjust the knowledge base in accordance with the answer to the question.

German Artificial Intelligence Programming Journal

Wed.6.MAR.2013 -- Problems with the WhatBe Module

As we implement InFerence in the Wotan German Supercomputer AI, the program tends to call the WhatBe module to ask a question about a previously unknown word. When we input to the AI, "eva ist eine frau", first Wotan makes an inference about Eva and asks if Eva has a child. Then the AI mistakenly says, "WAS IRRTUM EVA" when the correct output should be "WAS IST EVA". This problem affords us an opportunity to improve the German performance of the WhatBe module which came into the German AI from the English MindForth AI.

First we need to determine which location in the AI source code is calling the WhatBe mind-module, and so we insert some diagnostics. Knowing where the call comes from, lets us work on the proper preparation of parameters from outside WhatBe to be used inside WhatBe.

Thurs.7.MAR.2013 -- Dealing with Number in German

We are learning that we must handle grammatical number much differently in the German AI than in the English AI. English generally uses the ending "-s" to indicate plural number, but in German there is no one such simple clue. In German we have a plethora of clues about number, and we can use the OutBuffer to work with some of them, such as "-heit" indicating singular and "-heiten" indicating plural. In German we can also establish priority among rules, such as letting an "-e" ending in the OutBuffer suggest a plural noun, while letting the discovery of a singular verb overrule the suggestion that a noun is in the plural. The main point here is that in German we must get away from the simplistic English rules about number.

Fri.8.MAR.2013 -- Removing Obsolete Influences

In NewConcept let us try changing the default expectation of number for a new noun from plural to singular. At first we notice no problem with a default singular. Then we notice that the InFerence module is using a default plural ("2") for the subject-noun of the silent inference. We tentatively change the default to singular ("1") until we can devise a more robust determinant of number in InFerence.

We are having a problem with the "ocn" variable for "old concept number". Just as with the obsolete "recnum", there is no reason any more to use the "ocn" variable, so we comment out some code.

German Artificial Intelligence Programming Journal

The DeKi Programming Journal (DKPJ) is both a tool in coding German Wotan open-source artificial intelligence (AI) and an archival record of the history of how the German Supercomputer AI evolved over time.

Sun.3.MAR.2013 -- Problems with AskUser

In our efforts to implement InFerence in the Wotan German AI, we have gotten the AI to stop asking "HABEN EVA KIND?" but now AskUser is outputting "HAT EVA DIE KIND" as if the German noun "Kind" for "child" were feminine instead of neuter. We should investigate to see if the DeArticle module has a problem.

Mon.4.MAR.2013 -- Problems with DeArticle

By the use of a diagnostic message, we have learned that the DeArticle module is finding the accusative plural "DIE" form without regard to what case is required. Now we need to coordinate DeArticle more with the AskUser module, so that when AskUser is seeking a direct object, so will DeArticle. There has already long been a "dirobj" flag, but it is perhaps time to use something more sophisticated, such as "dobcon" or even "acccon" for an accusative "statuscon". After a German preposition like "mit" or "bei" that requires the dative case, we may want to use a flag like "datcon" for a dative "statuscon". So perhaps now we should use "acccon" in preparation for using also "gencon" and "datcon" or maybe even "nomcon" for nominative.

Tues.5.MAR.2013 -- Coordinating AskUser and DeArticle

A better "statuscon" for coordinating between AskUser and DeArticle is "dbacon", because it can be used for all four declensional cases in German. When we use "dbacon" and when we make the "LEAVE" statement come immediately after the first instance of selecting an article with the correct "dbacon", we obtain "HAT EVA DAS KIND" as the question from AskUser after the input of "eva ist eine frau". We still need to take gender into account, so we may declare a variable of "mfncon" to coordinate searches for words having the correct gender.

German Artificial Intelligence Programming Journal

Thurs.31.JAN.2013 -- Troubleshooting the InFerence Module

Yesterday in the Wotan German AI we implemented the InFerence module from the English MindForth AI, but we need to continue troubleshooting the German AI functionality because the AI was creating silent inferences with only a subject and a verb but not yet the direct object of the verb.

Fri.1.FEB.2013 -- Asking Users to Confirm an Inference

The Wotan German AI seems to be inserting the wrong "tqv" retroactively across the boundary between sentences, when we type in "eva ist eine frau" in order to trigger an inference. A contributing factor is the code at the start of InStantiate which converts any zero "seqneed" to a 5=noun seqneed by default. It may be time to comment out that code. When we comment out the line setting "tqv" to 5=noun by default, suddenly the AI makes the correct silent inference, but we do not know if anything else has gone wrong that was depending on the line of code that has been commented out.

Then we discover that AskUser is not posing a question based on the silent inference because there is a left-over requirement for a plural noun-phrase number ("nphrnum"). When we comment out that requirement, as we did earlier in the English MindForth AI, we get not the ideal question of "HAT EVA EIN KIND?" but rather the faulty output of "HABEN EVA IRRTUM". This AskUser output is nevertheless gratifying and encouraging, because it reveals that a silent inference has been made, and that the German Wotan AI is trying to ask a yes-or-no question so that a human user will either confirm or refute the inference.


Memes of Russian Artificial Intelligence

Sun.14.OCT.2012 -- Restoring the Expression of Direct Objects

The Russian artificial intelligence (RuAi) is failing to say a direct object after some verbs. After manifold troubleshooting, we determined why VerbPhrase was not calling NounPhrase for the direct object. Finally we discovered that the word "YA" for "I" was being stored with a spurious "dba" of "4" as if it were an accusative direct object. At the start of InStantiate, we had to stop testing for merely a zero "seqneed" and test also for a "dirobj" flag set to one ("1") as a precondition for setting "seqneed" to five "5" for a noun or a pronoun -- still assuming that "seqneed" deals with either verbs or direct objects.

Mon.15.OCT.2012 -- Preventing Misrecognition of Verbs

The Russian AI is recording a known, second-person Russian verb as if it were a first-person form. Then errors creep in because the RuAi tries to say something in the first person but erroneously uses the second-person verb-form. As we troubleshoot, we discover that OldConcept is not recording the proper "dba" values for inflected case or grammatical person. Further troubleshooting reveals that OldConcept was searching backwards for the first instance of "oldpsi" and accepting its "dba" value, which is not trustworthy for verbs. We commented out the offending line of code, and the AI Mind in Russian stopped mixing up the grammatical persons. Onwards now to the Technological Singularity of memetic lore.


Artificial Intelligence in Russian

Sat.6.OCT.2012 -- Negation of Russian Verbs

In the free, open-source Russian artificial intelligence (RuAi), we need to work on the negation of verbs before we can implement the calling of the VisRecog module from the VerbPhrase module. When we type "Ty ne znayesh menya" for "You do not know me" into the current RuAi, it answers incorrectly "Ya znayu ne tebya" for "I do not know you," and the negational adverb "nye" for "not" is in the wrong place.

After experimentation with diagnostic "alert" messages, we moved the nay-saying code into the same area of VerbPhrase that uses parameters to select a Russian verb-form. Thus we got the RuAi to put the negational adverb before the verb and not after the verb.

Sun.7.OCT.2012 -- Negation of Putative Be-Verbs

Our next task in creating Russian artificial intelligence is to implement the negation of unexpressed, putative be-verbs in Russian. Currently the Dushka AI assumes tentatively the occurrence of a be-verb after any noun or pronoun begins a statement in the nominative. We need to introduce special handling of the negative adverb "NYE" so that the RuAi still waits for a putative be-verb. Although we are tempted to let there be a corrigend default negation of each putative be-verb, we owe it to Occam to let an actual negation determine what happens.



89 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!