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 KbRetro. Show all posts
Showing posts with label KbRetro. Show all posts

Sunday, July 01, 2018

pmpj0701

Debugging the InFerence Function in the ghost.pl First Working AGI.

The ghost264.pl Perlmind has a minor bug which causes logical inference not to work if the inference is not triggered immediately at the start of running the program. If we let the AI run a little and then we type in "anna is woman", the AI answers "DOES ERROR HAVE CHILD" instead of "DOES ANNA HAVE CHILD". In the psy concept array of the silent inference, we observe that a zero is being recorded instead of the concept number "502" for Anna. The AI MindBoot is designed with the concept of "ERROR" placed at the beginning of the boot sequence so that any fruitless search for a concept will result automatically in an "ERROR" message if no concept is found. We suspect that some variable in the InFerence module is not being loaded with the correct value when the ghost.pl AI has already started thinking various thoughts.

The pertinent item in the InFerence() module is the $subjnom or "subject nominative" variable which is set outside of the module before InFerence is even called. We discover that the variable is spelled wrong in the OldConcept module, and we correct the spelling. It then seems that InFerence() can be called at any time and still operate properly. We decide to run the JavaScript AI to see if an inference has any problems if it is not the first order of business at the outset of an AI session. Nothing goes wrong, so the problem must have been the misspelling in the OldConcept() module.

During this coding session we also make a change in the KbRetro() module for the retroactive adjustment of the knowledge base (KB). We insert some code to put an arbitrary value of eight (8) on the $tru(th)-value variable for the noun at the start of the silent inference, such as "ANNA" in the silent inference "ANNA HAVE CHILD". When the human user either confirms or invalidates the inference, the resulting knowledge ought to have a positive truth-value, because someone has vouched for the truth or the negation of the inferred idea. We envision that the $tru(th)-value will serve the purpose of letting an AI Mind restrict its thinking to ideas which it believes and not to mere assertions or to ideas which were true yesterday but not today. We expect the $tru(th)-value to become fully operative in a robotic AI Mind for which "Seeing is believing" when visual recognition from cameras serving as eyes provides reliable knowledge to which a high $tru(th)-value may be assigned.

Sunday, June 24, 2018

mfpj0624

Logical Inference in the First Working AGI MindForth

Over the past week fifteen or twenty hours of intense work went into coding the InFerence, AskUser and KbRetro modules in the Forth version of the First Working AGI. Interactively we could see that the Forthmind was making a silent inference from our input of "anna is a woman" but the AskUser module was substandardly asking "DO ANNA HAS CHILD?" in seeking confirmation of the silent inference. When we entered "no" as an answer, we could not see if the KbRetro module was properly inserting the 250=NOT adverb into the conceptual engrams of the silent inference so as to negate the inferred idea. Therefore today in the agi00056.F version of MindForth we are starting our diagnostic display about forty-five time-points earlier than the computed value of the time-of-input tin variable so that we can see if the inferred idea is being retroactively adjusted by KbRetro. At first blush, no insertion of 250=NOT is happening, so we start inserting diagnostic messages into the code.

Our diagnostics suggest that KbRetro is not being called, but why not? It turns out that we have not yet coded 404=NO or 432=YES or 230=MAYBE into the MindBoot sequence, so we code them in. Then we start getting a faulty output after answering "no" to AskUser. The AI says, "ANNA NOT NOT CHILD". Apparently EnVerbPhrase is not properly negating the refuted silent inference. After several hours of troubleshooting, the desired output appears.

When we enter "anna is woman" and we answer "no" to the question whether Anna has a child, the conceptual array shows the silent inference below at the time-points 3068-3070:

The arrays psy{ and ear{ show your input and the AI output:
time: tru psi hlc act mtx jux pos dba num mfn pre iob seq tkb rv -- pho act audpsi

3053 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3054 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3055 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3056 : 0 502 0 -40 0 0 5 1 1 2 0 0 800 3059 3053   65 0 502 A
3057 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3058 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   73 0 0 I
3059 : 0 800 0 -40 0 250 8 4 1 2 0 0 515 3065 3058   83 0 800 S
3060 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3061 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   87 0 0 W
3062 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   79 0 0 O
3063 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   77 0 0 M
3064 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3065 : 0 515 0 -40 0 0 5 0 2 2 0 0 0 0 3061   78 0 515 N
 066 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   13 0 0
3067 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3068 : 0 502 0 -26 0 0 5 1 1 0 0 0 810 3069 0   32 0 0
3069 : 0 810 0 56 0 250 8 0 0 0 502 0 525 3070 0   32 0 0
3070 : 0 525 0 32 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3071 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3072 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   68 0 0 D
3073 : 0 830 0 -40 0 0 8 0 1 2 0 0 810 0 3072   79 0 830 O
3074 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3075 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3076 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3077 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3078 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3079 : 0 502 0 -40 0 0 5 1 1 2 0 0 810 3084 3076   65 0 502 A
3080 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3081 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3082 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   72 0 0 H
3083 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3084 : 0 810 0 -40 0 0 8 4 2 2 0 0 525 3096 3082   83 0 810 S
3085 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3086 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3087 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   84 0 0 T
3088 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   72 0 0 H
3089 : 0 117 0 -40 0 0 1 0 1 2 0 0 810 0 3087   69 0 117 E
3090 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3091 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3092 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   67 0 0 C
3093 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   72 0 0 H
3094 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   73 0 0 I
3095 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   76 0 0 L
3096 : 0 525 0 -40 0 0 5 0 1 2 0 0 810 0 3092   68 0 525 D
3097 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3098 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3099 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3100 : 0 404 0 -40 0 0 4 0 1 2 0 0 0 0 3099   79 0 404 O
 101 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   13 0 0
3102 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3103 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3104 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3105 : 0 502 0 -42 0 0 5 1 1 2 0 0 810 3122 3102   65 0 502 A
3106 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3107 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3108 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   68 0 0 D
3109 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   79 0 0 O
3110 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   69 0 0 E
3111 : 0 830 0 -42 0 0 8 1 1 2 0 0 0 0 3108   83 0 830 S
3112 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3113 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3114 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   78 0 0 N
3115 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   79 0 0 O
3116 : 0 250 0 -42 0 0 2 1 1 2 0 0 0 0 3114   84 0 250 T
3117 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3118 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3119 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   72 0 0 H
3120 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   65 0 0 A
3121 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   86 0 0 V
3122 : 0 810 0 -42 0 250 8 4 2 2 0 0 525 3129 3119   69 0 810 E
3123 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3124 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3125 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   67 0 0 C
3126 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   72 0 0 H
3127 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   73 0 0 I
3128 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   76 0 0 L
3129 : 0 525 0 -42 0 0 5 1 1 2 0 0 0 0 3125   68 0 525 D
3130 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
3131 : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0   32 0 0
time: tru psi hlc act mtx jux pos dba num mfn pre iob seq tkb rv

Robot alive since 2018-06-24:
ANNA  DOES  NOT  HAVE  CHILD
Since we negate the inference with our response of "no", KbRetro inserts the adverb "250" (NOT) at the time-point 3069 to negate the verb 810=HAVE. Then the AI states the activated idea of the negation of the inference: "ANNA DOES NOT HAVE CHILD".

Tuesday, June 12, 2018

jmpj0612

AI Mind Maintainer solves negation-of-thought problems.

In today's 12jun18A.html version of the JavaScript AI Mind for Microsoft Internet Explorer (MSIE), we find a negation-bug when we test the InFerence() module by inputting "anna is a woman". The AI then asks us, "DOES ANNA HAVE CHILD" and we answer "no" to test the AI. The AI properly states the idea negated by KbRetro() in the knowledge base, namely "ANNA DOES NOT HAVE CHILD". However, the negation-flag negjux for thought generation remains erroneously set to "250" for the 250=NOT adverb. We discover that the negjux flag, each time after serving its purpose, has to have a zero-reset in two locations, one for any form of the verb "to be" and another for non-be-verbs. We make the correction, and we finish off the negation-bug by resetting the tbev time-of-verb to zero at the end of OldConcept().

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.

Sunday, March 17, 2013

mar16dkpj

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.

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

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

3 Sat.16.MAR.2013 -- Machine Learnig 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.