Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"Stupidity, like virtue, is its own reward" -- William E. Davidsen


computers / comp.ai.neural-nets / InStantiate Module of AI4U Artificial Intelligence

SubjectAuthor
o InStantiate Module of AI4U Artificial IntelligenceA.T. Murray

1
InStantiate Module of AI4U Artificial Intelligence

<22cae194-b6c9-4c44-94c6-9dd054e6effan@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/computers/article-flat.php?id=23&group=comp.ai.neural-nets#23

  copy link   Newsgroups: comp.ai.neural-nets
X-Received: by 2002:a05:6214:424c:b0:635:e9f6:9470 with SMTP id ne12-20020a056214424c00b00635e9f69470mr4285qvb.5.1690411765289;
Wed, 26 Jul 2023 15:49:25 -0700 (PDT)
X-Received: by 2002:a05:6808:15a5:b0:3a3:edca:2950 with SMTP id
t37-20020a05680815a500b003a3edca2950mr2044000oiw.5.1690411764734; Wed, 26 Jul
2023 15:49:24 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.ai.neural-nets
Date: Wed, 26 Jul 2023 15:49:24 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=174.165.126.120; posting-account=rS-ITgoAAAC4XLmmHKI5_C5lMSeqZBAF
NNTP-Posting-Host: 174.165.126.120
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <22cae194-b6c9-4c44-94c6-9dd054e6effan@googlegroups.com>
Subject: InStantiate Module of AI4U Artificial Intelligence
From: mentificium@gmail.com (A.T. Murray)
Injection-Date: Wed, 26 Jul 2023 22:49:25 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 35837
 by: A.T. Murray - Wed, 26 Jul 2023 22:49 UTC

InStantiate Module of the
English and Russian bilingual ghost.pl AI in Perl
Mens Latina in Latin -- MindForth for Robots

1. Diagram of the InStantiate Mind-Module

InStantiate creates a Psy node for each instance of a concept.

/^^^^^^^^^\ InStantiate Associates Psy Concepts /^^^^^^^^^\
/ EYE \ PSY _____ / EAR \
/ \ MINDCORE /New- \ / \
| _______ | CONCEPTS _______ (Concept)-|-------------\ |
| /old \ | | | | / Old- \ \_____/ | Audition | |
| / image \---|----+ | ( Concept )---|------|----------\ | |
| \ recog / | | | | \_______/----|------|-------\ | | |
| \_______/ | a| | | | \ __|___ | c | | | |
| | b|C| | } \/ POS \ | a | | | |
| visual | s|O|f| | ( Parser ) | t | | | |
| | t|N|i| | \______/ | s-/ | | |
| memory | r|C|b| | |noun? | | | |
| | a|E|e| ___V_____ |verb? | e | | |
| remembrance | c|P|r| / \ |adj.? | a | | |
| | t|T|s| / SpreadAct \ |adverb? | t-----/ | |
| channel | |_|_| \___________/ |prep.? | | |
| _______ | /Mind-\/ ___________|conj.? | f | |
| /new \ |( Core ) /INSTANTIATE\ | a | |
| / percept \---|-\"Psy"/-/ psi pos \ | u | |
| \ engram / | \___/ ( act pre ) | n | |
| \_______/ | \ jux seq / | a------/ |
| | \___________/ | |

2. Purpose of the InStantiate Module

The main purpose of the InStantiate module is to create a new time-bound instance of a concept in conceptual memory whenever the AI Mind processes a concept either as an element of input or as part of a thought being remembered or generated. Other purposes of InStantiate involve "trapping" or the special processing of input-concepts for the sake of special handling in other mind-modules such as the SpreadAct module for spreading activation.

3. Algorithm of the InStantiate AI Mind-Module

3.A. Instantiating time-bound associative nodes in the conceptual memory array.

When the AI Mind has either recognized an input word as an old concept or encountered a new word and is creating a new concept for the new word, InStantiate creates a new instance of the concept by attaching any available associative tags to a node of the concept at the time-point of the advancing front of consciousness. Some associative tags must be assigned retroactivately by InStantiate because a word of input may have an associative relationship to another word that has not yet arrived as additional input. For instance, a conceptual node for a verb of input may need the retroactive addition of an associative tag for the object of the verb, which arrives in the AI Mind not simultaneously with the verb, but slightly delayed.

3.B. Activating old associative nodes for a concept.

3.B.1. Inhibiting a current node while activating older nodes.

InStantiate imparts a modest level of activation to the previous nodes of a known concept stretching back over the conceptual MindGrid in such a way as to create a trough of inhibition for the most recent instantiation of the concept, so that old ideas involving the concept may contribute to thinking and so that current thoughts, being immediately inhibited, may yield to remembered thoughts or to the results of automated reasoning by means of logical inference.

3.B.2. Spreading activation sideways from old associative nodes of a concept.

Already in the ghost.pl AI and upcoming in the Forth and JavaScript AI Minds, InStantiate passes activation sideways from a newly activated concept to other concepts associated in the past with the concept for which a fresh associative node is being instantiated. If the AI Mind is familiar with a noun like "DICE" only as the direct object of a verb in memory, the sideways spread of activation makes it possible for a human user to input the one noun and to observe that the AI uses the sideways spread of activation to remember and output a thought like "GOD DOES NOT PLAY DICE".

3.C. Trapping the input of interrogative words requiring a query-response.

Besides assigning associative tags, InStantiate also sets various conditional flags for dealing with special inputs such as query-words or adverbs of negation, such as "not".

4. Code of InStantiate() from ghost327.pl AI source code in Perl

sub InStantiate() { # http://ai.neocities.org/InStantiate.html
if ($pre == 0) { $pre = $prevtag } # 2017-09-25: still needed.
$prevtag = 0; # 2016mar12: Reset for safety.
if ($pov == 2) { # 2017-09-17: only during external input, not re-entry
if ($psi == 781) { # 2017-11-27: upon input of 781=WHAT
if ($whatcon == 0) { # 2017-11-27: to set only once per input idea
$whatcon = 1; # 2017-11-27: set positive to process rest of input.
} # 2017-11-27: end of test for $whatcon at zero.
} # 2019-01-25: end of test for input of query-word 781=WHAT.
if ($psi == 791) { # 2018-09-30: upon input of 791=WHO
$whocon = 1; # 2018-09-30: set positive for use in SpreadAct()
} # 2019-01-25: end of test for input of query-word 791=WHO.
if ($psi==781 || $psi==791) { # 2018-09-29: upon 781=WHAT or 791=WHO
$qucon = 1; # 2017-09-17: set positive to process rest of input.
} # 2019-01-25: end of test for input of query-words 781=WHAT or 791=WHO.
} # 2017-11-27: end of test for point-of-view to be 2=pov external for input.
if ($qucon > 0 || $whatcon > 0) { # 2018-09-29: deal with more than "who is" queries...
if ($psi == 800) { # 2017-09-17: if 800=Be-Verb...
$qv2psi = 800; # 2017-09-17: for transfer to SpreadAct.
} # 2017-09-17: end of test for 800=BE.
if ($pos==8 && $psi != 800 && $psi != 818) { # 2018-12-10: not 800=BE or 818=DO
$qvdocon = 1; # 2017-09-26: set flag for query who+verb+direct-object.
$qv2psi = $psi; # 2017-10-24: for transfer to SpreadAct.
} # 2017-09-26: end of test for verb other than 800=BE.
if ($qvdocon > 0 && $pos == 5) { # 2017-09-26: if 5=noun comes in....
$qv4psi = $psi; # 2017-09-26: to send direct object into SpreadAct()
} # 2017-09-26: end of test for noun during who-verb-dirobj query.
if ($pos==5 && $dba==4) { # 2018-09-30: if noun and direct object...
$qv4psi = $psi; # 2018-09-30: to send direct object into SpreadAct()
} # 2018-09-30: end of test for noun with query involving direct object..
} # 2017-09-26: end of test for positive query-condition $qucon.
if ($whatcon > 0) { # 2017-11-27: deal with what-queries...
if ($psi == 800) { # 2017-11-27: if 800=Be-Verb...
$qv2psi = 800; # 2017-11-27: for transfer to SpreadAct.
} # 2017-11-27: end of test for 800=BE.
if ($pos==5 || $pos==7) { # 2017-11-27: if 5=noun or 7=pronoun...
$qv1psi = $psi; # 2017-11-27: for transfer as query-subject to SpreadAct.
} # 2017-11-27: end of test for 5=noun or 7=pronoun
if ($pos==8 && $psi != 800 && $psi != 818) { # 2018-12-10: if verb but not 818=DO
$qv2psi = $psi; # 2017-11-27: for transfer as query-verb to SpreadAct.
} # 2018-12-10: end of test for verb other than auxiliary 818=DO.
} # 2017-11-27: end of test for positive query-condition $whatcon.
if ($oldpsi == 701) { $pos = 7 } # 2016jun19: 7 = pronoun.
$act = 0; # 2016jun26: preparing to activate only older nodes of concepts.
if ($moot == 0) { # 2017-09-18: if no query is being input...
my @k=split(',',$psy[$tvb]); # 2017-06-30: inspect @psy flag-panel at time of verb
if ($qucon==1 && $k[11]==701) { $k[7] = 2 } #2019-08-02: 2nd person 800=ARE
if ($whatcon==1 && $k[1]==800) { $k[7] = 0 } #2017-11-28: skip $dba person.
if ($whatcon==1 && $k[1]==781) { $k[3] = 0 } # 2018-09-11: deactivate 781=WHAT
if ($whatcon > 0) { # 2018-09-12: deal with what-queries...
if ($pos==8 && $psi != 800 && $psi != 818) { # 2018-12-10: if not BE or DO
$qv2psi = $psi; # 2018-09-12: for transfer as query-verb to SpreadAct()
} # 2018-09-12: end of test for verb other than auxiliary BE or DO.
} # 2018-09-12: end of test for positive query-condition $ whatcon.
$psy[$tvb]="$k[0],$k[1],$k[2],$k[3],$k[4],$k[5],$k[6],"
. "$k[7],$k[8],$k[9],$k[10],$k[11],$k[12],$k[13],"
. "$tkb,$k[15],$k[16],$k[17],$k[18],$k[19],$k[20]"; # 2019-08-01: insert $tkb
} # 2017-09-18: end of test for no suppression of associative tag $tkb
if ($pov == 2) { # 2019-01-25: only during external input, not re-entry
for (my $i=$tpu; $i>$midway; $i--) { # 2018-06-28: search backwards in time.
my @k=split(',',$psy[$i]); # 2016jun26: inspect @psy flag-panel
if ($k[1] == $psi) { # 2019-01-19: increment activation on matching concepts
if ($k[0] < 1) { $k[0] = 0 }; # 2018-09-26: BUGFIX: initialize.
$k[3] = ($k[3] + 16); # 2019-09-26: activate enough to spark a thought
if ($psi == 781) { $k[3] = 0 } # 2017-11-27: upon input of 781=WHAT
$psy[$i]="$k[0],$k[1],$k[2],$k[3],$k[4],$k[5],$k[6],"
. "$k[7],$k[8],$k[9],$k[10],$k[11],$k[12],$k[13],"
. "$k[14],$k[15],$k[16],$k[17],$k[18],$k[19],$k[20]"; # 2019-08-01
if ($k[10] > 0) { # 2019-03-31: if there is a "pre" concept...
$prepsi = $k[10]; # 2019-03-31: grab hold of the "pre" as $prepsi
for (my $j=$tpu; $j>$midway; $j--) { # 2019-03-31: search within a search.
my @p=split(',',$psy[$j]); # 2019-03-31: inspect @psy flag-panel
if ($p[1] == $prepsi) { # 2019-03-31: if first inner loop finds $prepsi...
for (my $x=$tpu; $x>$midway; $x--) { # 2019-03-31: search within a search.
my @q=split(',',$psy[$x]); # 2019-03-31: inspect @psy flag-panel
if ($q[1] > 0 && $q[11] == $prepsi) { # 2019-08-01: if subject of $prepsi
$psy[$x]="$k[0],$q[1],$q[2],24,$q[4],$q[5],$q[6]," # 2019-09-27: sufficient
. "$q[7],$q[8],$q[9],$q[10],$q[11],$q[12],$q[13],"
. "$q[14],$q[15],$q[16],$q[17],$q[18],$q[19],$q[20]";
} # 2019-03-31: end of test for subject of $prepsi.
} # 2019-03-31: end of second inner loop spreading activation sideways.
} # 2019-03-31: end of test for $prepsi.
} # 2019-03-31: end of first inner loop with its own index.
} # 2019-03-31: end of test for existence of a "pre" concept.
} # 2016-06-24: end of test for matching concept.
} # 2016jun26: end of (for loop) searching backwards in time.
} # 2019-01-25: end of test for point-of-view to be 2=pov external for input.
$tult = ($t - 1); # 2017-06-25: penultimate time
$act = -48; # 2016JUL06: for a "trough" of recent-most inhibition.
if ($qv2num > 0) { $num = $qv2num } # 2017-10-22: for who+verb+dir.obj.. query-response
my @k=split(',',$psy[$tult]); # 2018-07-03: expose flag-panel at tult;
$psy[$tult]="$k[0],$k[1],$k[2],$act,404,$k[5],$k[6]," # 2019-10-23: negative activation
. "$k[7],$k[8],$k[9],$k[10],$k[11],$k[12],$k[13],"
. "$k[14],$k[15],$k[16],$k[17],$k[18],$k[19],$k[20]"; # 2019-08-01: expanded panel.
@k=split(',',$psy[$tvb]); # 2019-06-13: expose flag-panel at $tvb
if ($b2 eq "Ш" && $b1 eq "Ь") { $k[7] = 2; } # 2019-06-13: 2nd person Russian verb.
# if ($moot == 0) { # 2019-10-21: TEST; TRUNCATE
# $psy[$tvb]="$k[0],$k[1],$k[2],$k[3],$k[4],$k[5],$k[6],"
# . "$k[7],$k[8],$k[9],$k[10],$k[11],$k[12],$k[13],"
# . "$tdo,$k[15],$k[16],$k[17],$k[18],$k[19],$k[20]"; # 2019-08-01: tdo as tkb
# } # 2019-10-21: end of test for $moot TEST; TRUNCATE
# if ($tkb == $tdo) { $tkb = 0 } # 2017-09-19: prevent direct-object $tkb
if ($moot == 0) { # 2019-10-23: in normal circustances...
if ($pos == 8) { $dba = $prsn; } # 2019-10-19: for verbs, use "$prsn" as "$dba".
# 2019-10-23 Next code is the main instantiation of English words.
$psy[$tult] = "$tru,$psi,$hlc,$act,$mtx,$jux,$pos,"
. "$dba,$num,$mfn,$pre,$seq,$tgn,$tdt,"
. "$tkb,$tia,$tcj,$tdj,$tdv,$tpr,$rv"; # 2019-08-01: expanded conceptual flag-panel.
if ($pos == 5 || $pos == 7) { # 2019-10-19: test for noun or pronoun
if ($dba == 1) { # 2019-10-19: test for nominative-case subject
if ($tsj == 0) { # 2019-10-19: if not already declared...
$tsj = $tult; # 2019-10-19: declare time-of-subject.
} # 2019-10-19: end of test for valid previous declaration of $tsj.
} # 2019-10-19: end of test for nominative-case "dba".
} # 2019-10-19: end of test of "pos" part of speech.
} # 2019-10-23: end of test of $moot flag.
if ($pos == 5 || $pos == 8) { # 2019-08-11: for a noun or a verb....
$mri = $tult; # 2019-08-10: time-of-most-recent-instantiation, for back-tagging.
} # 2019-08-11: end of restriction by part-of-speech.
$tult = 0; # 2017-06y-23: reset for safety
if ($jux == 250) { $jux = 0 } # 2016jun17: Reset after use.
if ($prejux == 250) { # 2016jun17: 250=NOT from OldConcept()
$jux = 250; # 2016jun17: set $jux for next instantiand;
$prejux = 0; # 2016jun17: Reset for safety.
} # 2016jun17: end of post-instantiation test;
if ($hlc == 3) { # 2018-09-27: only for Russian input
if ($seqneed == 8 && (ord $pho) == 32) {
if ($pov > 1) { # 2017-09-10: only during input
$tvb = ($t - 1); # 2019-06-09: TEST; REMOVE
$t++; # 2017-09-10: increment internal AI time "t"
$audpsi = 1800; # 2017-09-10: by default assume provisional 1800=BE verb.
$ear[$t] = "$pho,0,$audpsi"; # 2017-09-10: store verb 800=BE
$psi = 1800; # 2017-09-10: set the concept to 800=BE.
$prevpsi = 1800; # 2017-09-10: to enable cancellation of be-verb
$pos = 8; # 2017-09-10: set the part-of-speech $pos to 8=verb.
# 2019-10-23 Next code is the main instantiation of Russian words.
$psy[$t] = "$tru,$psi,$hlc,$act,$mtx,$jux,$pos,"
. "$dba,$num,$mfn,$pre,$seq,$tgn,$iob,"
. "$tkb,$tia,$tcj,$tdj,$tdv,$tpr,$rv"; # 2019-08-01: expanded flag-panel.
$t++; # 2017-09-10: increment internal AI time "t"
} # 2017-09-10: end of test for input-mode only.
} # 2017-09-10: test for 32=SPACE
if ($prevpsi == 1800 && $seqneed == 5) { # 2017-09-10: if noun is expected...
if ($pos == 8) { # 2017-09-10: if real verb follows pseudo-be-verb
$seqneed = 8; # 2017-09-10: the seq to the real verb is needed
$prevpsi = 0; # 2017-09-10: reset after using.
} # 2017-09-10: end of test for a real verb
} # 2017-09-10: end of test
} # 2017-09-10: end of test for Russian human-language-code $hlc
if ($pos == 5) { $usx = $psi }; # 2018-09-03: for transfer to EnArticle()
if ($pos != 5) { $usx = 0 }; # 2018-09-03: transfer only noun-concepts.
if ($pos == 5 || $pos == 7) { $prevtag = $psi }; # 2016mar12: after subject
if ($pos == 8) { $prevtag = $psi }; # 2016mar12: after a verb.
if ($pos == 8 && $seqneed == 0) { $seq = $psi }; # 2016mar15: for the $seq of a subject
if ($pos == 5 || $pos == 7) { # 2016mar15: if noun or pronoun...
$seq = 0; # 2016mar15: until set by the $seqneed mechanism...
if ($seqneed == 0) { $seqneed = 8 } # 2016mar15: if start of input sentence...
if ($seqneed == 5) { $seqneed = 0 } # 2016mar15: for subject only
} # 2016mar15:
if ($pos == 5 || $pos == 7) { $actpsi = $psi } # 2016JUL10: for ReEntry() & SpreadAct()
if ($pos == 5 || $pos == 7) {$qv1psi = $psi} # 2017-11-24: SUCCEEDS AS A BUGFIX
if ($qucon == 0) { # 2017-11-24: not during who-queries:
if ($pos == 5 || $pos == 7) { $qv1psi = $psi } # 2017-09-17: subj. for SpreadAct
if ($pos == 5 || $pos == 7) { # 2019-06-08: TEST; REMOVE
if ($tsj > 1 && $verbcon == 1 && $tdo == 0) { $tdo = ($t - 1) } # 2019-06-08: TEst
} # 2019-06-08: End of TEST; REMOVE
} # 2017-09-26: end of test to prevent interference with who-queries.
if ($pos == 8) { $qv2psi = $psi } # 2017-09-17: verb for SpreadAct
if ($pos == 8) { $seqneed = 5 }; # 2016mar15: if verb, need direct object.
$act = 0; # 2016apr27: reset to prevent carry-over
$finlen = 0; # 2017-12-26: reset to prevent carry-over.
$prc = 0; # 2017-12-26: reset to prevent carry-over.
$pre = 0; # 2016mar12: Reset to prevent carry-over.
} # 2019-10-23: InStantiate() returns to EnParser() or RuParser().


Click here to read the complete article

computers / comp.ai.neural-nets / InStantiate Module of AI4U Artificial Intelligence

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor