AI-Mind in FORTH Win32Forth
For those following the program I have moved my contributions to it's
own site:
http://AIMind-I.com
Since last fall I have made significant changes to the program:
-- Changed the mind channel arrays to data structures (see some of
the code below) cutting memory requirements in half, 400K vs 800K.
Making elements in the channel arrays available by use of names and
not #'s. e.g T en{ psio, the old convection was T 1 en{.
Another advantage is when clearing channel array elements simply have
get the address and zero it out. e.g. T en{ en-size 0 fill.
Another option is ability to increase the size of the mind core
Channel Arrays, presently set at 10K but is limited only by
application space.
-- Since most of the array elements are integers occupying 2 cells
and not 4, I had to create an integer fetch 'I@' and store 'I!' for
the array elements.
-- Web surfing added but not fully implemented. It works, just not
using it.
-- Web server. Has the ability but not implemented.
-- Web page posting. You'll see at the link above, the page is
posted / updated by the AIMind when it is running with its running
stats. Webpage is updated once a minute locally then FTP'd to the
host site once every 5 minutes.
-- When AI ask a question it waits up to 30 seconds for a reply from
user else drops questioning if no answer.
-- Recognizes plural forms of nouns. BEST when the singular form is
used first. Bird is pet. Birds fly in air.
-- Use of adjectives, pronouns, adverbs, conjunctions all
acceptable. Man and woman are parents -- boys are young men ...
Next set of challenges:
-- Like to see ConJoin module functioning.
-- Improve AI questioning. At present only form of question is 'What
do subject do' (eg What do bird do)
- How about -- 'What is subj' (What is bird). 'Why Subj verb'
(Why bird fly)
-- Get agreement between subject and verb tense: Boy is .. Boys
are ...
-- Stop the repeating of noun as both subj and obj: Boy is boy..AI
is AI..
\
**********************************************************************
**********
\ If Anyone has a better way to construct the data structure than I
have done here
\ PLEASE, let me know.
\
**********************************************************************
**********
\ Data Structures for Channel Arrays accessed: T #(0-6) array{
\ --OLD
\ 0 1 2 3 4 5 6 7
\ psi{ psi act jux pre pos seq enx
\ en{ nen act fex pos fin aud
\ aud{ pho act pov beg ctu psi crc len
\
\ All fields are integer except 'pho gender & plural' and they are
character
\
\ -- NEW
\ 0 1 2 3 4 5 6 7
\ psi{ psi act jux pos pre seq enx
\ en{ nen act fex pos gen plr fin aud
\ aud{ psi act pov beg ctu pho crc len
\
\ When accessing the new array elements I! & I@ MUST be used
\ Remember these are now stored as integers not whole numbers
\
0 nostack1
1 char+ field+ psio
1 char+ field+ acto
1 char+ field+ juxo
1 char+ field+ poso
1 char+ field+ preo
1 char+ field+ seqo
1 char+ field+ enxo
constant psi-size
\
0 nostack1
1 char+ field+ neno
1 char+ field+ trash \ acto
1 char+ field+ fexo
1 char+ field+ trash \ poso
0 char+ field+ gendero \ M - F - N
0 char+ field+ pluralo \ S - P
1 char+ field+ fino
1 char+ field+ audo
constant en-size
\
0 nostack1
\ 1 char+ field+ psio
\ 1 char+ field+ acto
cell field+ trash
0 char+ field+ povo \ Character length value < 256
0 char+ field+ bego \ Character length 1 or 0
0 char+ field+ ctuo \ Character length 1 or 0
0 char+ field+ phoo \ Character length Alphanumerics
1 char+ field+ crco \ Integer value
0 char+ field+ leno \ Value < 256
constant aud-size
\
\
**********************************************************************
**********