Permalink
Please
sign in to comment.
| @@ -0,0 +1,118 @@ | |||
| #summary German Artificial Intelligence Programming Journal | |||
| #labels DeKi,Forth,German,MFPJ,Notes | |||
| == Abstract == | |||
|
|
|||
| The DeKi Programming Journal (DKPJ) is both a tool in coding German [http://www.scn.org/~mentifex/DeKi.txt Wotan] open-source artificial intelligence (AI) and an archival record of the history of how the German Supercomputer AI evolved over time. | |||
|
|
|||
|
|
|||
| == Fri.16.NOV.2012 -- Merging the English and German Source Code == | |||
|
|
|||
| The German DeKi artificial intelligence starts fresh today | |||
| from a copy of the 15nov12A.F MindForth AI in English. | |||
| We will substract English-specific portions of the code and | |||
| gradually add in the features that yield a German AI Mind. | |||
|
|
|||
|
|
|||
| == Sat.17.NOV.2012 -- Morphing MindForth into Wotan == | |||
|
|
|||
| Today in the German Supercomputer AI Wotan we continue the | |||
| transformation of the originally English AI source code into | |||
| strictly German AI source code. We run through a series of | |||
| small steps before we implement the special algorithms for | |||
| thinking in German by manipulating complex German verb-forms. | |||
|
|
|||
| First we remove the vestiges of the EnBoot English bootstrap, | |||
| because we are now running on the DeBoot German bootstrap. | |||
| Then we check that the DeKi (German AI) still loads and still | |||
| runs, but we stop and change the Transcript header to | |||
| "Transcript of 20121117 Wotan AI interview" so as to emphasize | |||
| the provocative name of the provocatively named Wotan AI Mind. | |||
|
|
|||
| Next in the up-front declaration of variables we change the "vault" | |||
| value from "611" for the English bootstrap to "940" for the DeBoot | |||
| German bootstrap, which must be longer than the EnBoot because we | |||
| must include many more irregular forms in German than in English. | |||
| The DeKi still loads and runs, but we notice that some of the | |||
| personal pronouns have different concept numbers from what we have | |||
| been using in [http://www.scn.org/~mentifex/AiMind.html English] and in [http://www.scn.org/~mentifex/Dushka.html Russian]. Let us change the Psi numbers. | |||
|
|
|||
| Next we comment out the establishment of the English "en" array, | |||
| which has been supplanted by the German "de" array. Then we have | |||
| to invite a ".de" report instead of a ".en" report. | |||
|
|
|||
| Then we change all instances of EnArticle to DeArticle, even though | |||
| we are not yet ready to change all the code of the mind-module. | |||
|
|
|||
| Now we change EnReify to DeReify. The DeKi AI still runs. | |||
|
|
|||
| We change EnParser to DeParser, and EnCog to DeCog. The AI runs. | |||
|
|
|||
|
|
|||
| == Sat.17.NOV.2012 -- Approaching the OutBuffer == | |||
|
|
|||
| Now we will try to make use of the OutBuffer in the Wotan German AI, | |||
| as we did with the verb-forms in the [http://www.scn.org/~mentifex/Dushka.html Dushka] Russian AI. | |||
|
|
|||
|
|
|||
| == Sun.18.NOV.2012 -- Debugging the Hello-World Version == | |||
|
|
|||
| We debug the Wotan SuperComputer Strong AI in German by removing | |||
| lines of code which we merely commented out in our last session. | |||
| Along the way, we discover some DeKi concepts which do not have | |||
| the right three-digit concept-numbers to correspond properly with | |||
| the other AI Minds in [http://www.scn.org/~mentifex/AiMind.html English] and in [http://www.scn.org/~mentifex/Dushka.html Russian]. We make the necessary changes. With the words for "what" and "be" set properly, we no longer get "ICH IRRTUM IRRTUM ICH" as the erroneous output from the WhatBe question-asking module, but rather we get "ICH WAS BIN ICH". | |||
|
|
|||
|
|
|||
| == Sun.18.NOV.2012 -- Debugging AudRecog == | |||
|
|
|||
| In our last DeKi coding session, Wotan was able to recognize | |||
| the German verb "KENNEN" for "to know", but not shorter inflected | |||
| forms of the verb. We were puzzled, because one of the other AI | |||
| Minds, apparently the [http://www.scn.org/~mentifex/Dushka.html Russian AI], easily recognizes inflected forms of verbs. Therefore we debug the DeKi AudRecog module by doing a line-by-line comparison with the JavaScript AudRecog code in the [http://www.scn.org/~mentifex/Dushka.html Dushka] Russian AI Mind. We soon come across the "prc" variable for "provisional recognition", which is in the [http://www.scn.org/~mentifex/Dushka.html Russian AI] but apparently lacking in the [http://www.scn.org/~mentifex/mindforth.txt MindForth] and [http://www.scn.org/~mentifex/DeKi.txt Wotan] AI Minds. | |||
|
|
|||
|
|
|||
| == Wed.21.NOV.2012 -- Verb-Negation Needs Work == | |||
|
|
|||
| In the German Wotan AI, we need to move away from the | |||
| English way of negating verbs and implement the negation | |||
| of verbs in German without using an auxiliary verb. | |||
|
|
|||
|
|
|||
| == Thurs.22.NOV.2012 -- Restricting Output with Negative Logic == | |||
|
|
|||
| In the VerbGen module there is a problem when we try to substitute zero ("0") for an inflectional character that we want to get rid of. Win32Forth displays an unwelcome character for the zero. What we propose doing to solve this problem is not to substitute a different | |||
| character such as zero, but rather to conditionalize the very showing of any character. We can use some negative "IF NOT" logic to conditionalize the processing of the last few positions in the OutBuffer. | |||
|
|
|||
|
|
|||
| == Sat.24.NOV.2012 -- Making VerbGen Work == | |||
|
|
|||
| We need to concatenate some conditions in the VerbGen module by cascading some OR-clauses. In the English MindForth AI, we discovered that we could start with one initial pair of conditions governed by "OR" and then add as many more "OR" choices as we felt we needed. | |||
|
|
|||
| As we got VerbGen to work better and better, we discovered a legacy flaw in the NounPhrase module. The "subjpsi" value was being set too capriciously. We commented out the setting code and instead we put a blanket setting at the very end of the motjuste-determination code, so that when the "subjectflag" is set to one ("1") the "motjuste", since it is indeed a subject, has its concept-number value transferred to the "subjpsi" variable. Then in VerbGen, the "subjpsi" value is a determinant in selecting an inflectional ending. | |||
|
|
|||
|
|
|||
| == Sun.25.NOV.2012 -- Improving Parameter Performance == | |||
|
|
|||
| Right now the main problem with the German artificial intelligence | |||
| Wotan involves the proper setting of each searchable ParaMeter during | |||
| thinking and the output of thought. From the [http://www.scn.org/~mentifex/Dushka.html Dushka Russian AI] we obtain some useful techniques for manipulating the "dba" values. | |||
|
|
|||
| For incoming verbs, we could perhaps assume a default "dba" of "3" third person, unless a personal pronoun like "I" or "YOU" dislodges the default "dba" of "3" and replaces it with a "1" or a "2". | |||
|
|
|||
|
|
|||
| == Mon.26.NOV.2012 -- Setting "dba" after Verbs == | |||
|
|
|||
| Today in the Wotan German AI we will work on a way to assign the correct "dba" values to a noun or pronoun that enters the AI after a verb, so that the item will have either a "dba" of "4" as an accusative direct object, or a "dba" of "1" as a predicate nominative for a verb of being. We will try to use the new "audverb" variable to record the concept number of a "heard" verb, so that we may then test for both a positive "audverb" value and for "800" as the psi number that indicates a be-verb requiring a "dba" of "1" for a predicate nominative. | |||
|
|
|||
| The new method of using "audverb" to govern dba-settings is working remarkably well. It is setting a "dba" of "4" for direct objects and of "1" for predicate nominatives. It is only a small change in the overall code, and so we may wait until we do some work on German verb-negation before we upload the source code that uses the "audverb" mechanism. | |||
|
|
|||
|
|
|||
| == Tues.27.NOV.2012 -- Negation of German Verbs == | |||
|
|
|||
| The negation of German verbs is different from the negation of most English verbs, because the English word "not", along with an auxiliary form of "do", usually comes before the actual English verb, as in, "I do not understand you." It is relatively simple to keep tabs on the word "not" preceding an English verb and to then insert a negational "jux" in the engram of the English verb. In German, where | |||
| the word "nicht" for "not" will often come not before but after the verb, it becomes necessary retroactively to set the negational "jux" tag. However, we also set the "seq" tag retroactively on a verb, so it is no more complicated to set the "jux" tag retroactively. | |||
|
|
|||
| English verbs of being are negated retroactively, and so we can perhaps treat German verbs in general as if they were like English verbs of being for purposes of retroactive negation. Just as we had the variable "tbev" for "time of be-verb", so we make up a variable "tdzw" for "time of deutsches Zeitwort" or "time of German verb". | |||
|
|
|||
| After we use "tdzw" to store 250=NICHT as the negational "jux" on a German verb, now in VerbPhrase we need to change the code that used an English auxiliary verb to negate a sentence and simply put 250=NICHT after a negated German verb. We will worry later about whether the direct object is a pronoun or not. | |||
0 comments on commit
650805a