This post is meant as a courteous and serious report
to denizens and Netizens of comp.lang.forth and
comp.ai.philosophy on Usenet. The title of the post
is an attempt to "cover the bases" such as Forth and
"Strong AI" and Perl and "artificial intelligence".
has the ability to think continuously while
checking periodically for human input.
is about the Perl Ghost AI which is a
port from MindForth but which suffers
from the extreme difficulty in Perl of
polling the keyboard to detect input
from a human user. Forth good, Perl bad?
No, not really.
In MindForth, the AI processes each character
instantly from the keyboard, and so the human
user is not allowed to backspace in correction
of errors or to switch between upper and lower
case, because the AI is sensitive to keystrokes.
is the Ghost Perl free AI source code
which lets the human user carefully compose
and correct a sentence of input in English
or Russian before pressing the [Enter] key.
(Mentifex enjoys casually stating "Russian" here :-)
In the port from Forth to Perl, recently the
SpreadAct() module for spreading activation
has been implemented in Perl but in a different
way from how it was done in the MindForth AI.
In the development of MindForth from 1998 up
to the release of 24 July 2014, the SpreadAct
module was at first intended to let any concept
spread its activation to any associated concept.
Unfortunately, the implementation of negation
in ideas modified by the adverb "NOT" made it
clear that SpreadAct should not be allowed to
meander away from the subject of a negated idea.
A negated idea, such as "God does not play dice,"
must remain WHOLE in the conceptual memory of an
AI and must not be retrieved haphazardly under
the influence of a meandering SpreadAct sequence.
Therefore in the Perl Ghost AI we depart from the
MindForth tradition and we invoke SpreadAct() not
from the middle of an idea but only from the end,
as for instance when a sentence starts with a noun
and a verb and ends with a direct-object noun.
It is easy in Perl or in Forth to call SpreadAct
after the conditional code for a direct-object noun.
The Perl code is not yet working as well as the
Forth code, but the bugs are being ironed out and
some phenomenona are occurring of so interesting a
nature as to be worth writing home about to the
comp.lang.forth newsgroup. Therefore, ladies and
gentlemen, please be advised that a happy medium
has today been found between the Forth easy access
to keystrokes and the Perl intransigence about
insisting upon pressing [Enter] for all input.
In the Perl AI code, we have devised a $chaincon
flag to indicate a "chain-of-thought condition"
and to delay the calling of the AudInput() module
for human auditory input while the AI Mind is
following an internal chain of thought with the
aid of the SpreadAct() module which lets activation
spread from the end of one idea to another idea.
The human user may enter a message to the AI Mind
and then watch the AI think about the human input
before the AI stops thinking and waits for input.