Running Version 080215 Rev A


AI-Mind-I
WinForth32
Born on - 7 11 2006 at 07:34 AM


Monday, April 28 2008
Total running time 94587 minutes (+1576 hours )


Major Changes coming to program in 2008
1. Added a new field to en{ 'glbo' - global.  It is to be used to define global connections
   e.g sentient, thing or possession. BUT not implemented at this time. That is my next task.
   Thanks to Toby for his thoughts and ideas here

2. Various events are activated based on elapsed time.  Instead of constantly checking to see if the appropriate time
   has passed and resetting for the next occurance I am using Windows timers to set flags to activate events.
   This reduces the overhead in my code of having to check and reset timed events.
3. Upload of recent version 1/23/08.

4. Thanks to Arthur T. Murray - Mentifex (ATM) for his work. I add a lot of bells and whistle and expand on what
   he has accomplished. To follow his work visit http://mind.sourceforge.net and http://mind.sourceforge.net/.

5. AI does respond to questions.
	e.g. Who are you
	     what do ai do
	     what do father do
	     who am i
	     what do birds eat
	Avoid the use of 'does' use 'do'
   If you ask a question using a concept not previously learned you will be asked what it is

6. You can interrupt the 'AI Mind' using 'Cntrl F12'.  This leaves all variables and arrays intact.
   You can then examine the memory core.
   If you choose to terminate enter 'F12-Abort' if you chose to resume enter 'Alife1'

7. Thought I might describe the memory allocation of the AI Mind.  
   There is a set of variables the mind attempts to keep for the next start up.
   They are found ~ line 310 and go to ~ line 350 in the code.
\
variable cns-core-start 0xffff cns-core-start ! \ Dummy variable used as a marker
.
variable cns-core-end   0xffff cns-core-end !   \ Dummy variable used as a marker
\

The mind-dump routine writes out the data between these two markers.

The mind core arrays are dynamically allocated and grow as needed to increase the mind's capacity.
The limit of course is the size of the application area of Win32Forth. At the moment I am
set up with 2048000 bytes and capable of handling memory arrays up to 33K in size, but I have set 
the upper limit at 10K. If and when I see fit I will remove the artificail limt and
increase the application area to 4096000.... My laptop has 2G of ram.
\
NEW For 2008 -
   Changing the AUD{ channel and moving the storage of concepts to a global dictionary space.
   The global dictionary space not only gets saved to the disk BUT can expand as needed
   without changing / performming a cold start to the AI mind.
   AUD{ channel now only holds a single row entry for the concept pointing to the Dictionary.
   The AUD{ channel uses a HASH value to identify dictionary words.
    Use of a HASH greatly improves searching for a concept match.
	4 char+ field+ hashv    \ Hash value of the word concept
	4 char+ field+ dict-loc \ offset into dictionary
	0 char+ field+ wleno    \ length of the word
	0 char+ field+ povo     \ point of view
	0 char+ field+ stov	\ Start of 'Time of voice'
   Even if the Mind Core is reset the Dictionary is not lost.

   AI acceptes punctuation at the END of a sentence.
    eg AI serves man. \ the period signifies a simple statement.
       ! and ? are also recognized BUT use is not implemented.

Note: Keep in mind '.' is a forth word to display a value on the stack.
      If it is used for that purpose then add a space after it.

   Added the function to send out emails.  Unfortunately Port 25 the default for SMTP presents
   problems.  I will have to address later.
   What I have done is wrote a simple cgi to accept data from the AI and put it into an email and
   send it out via 'sendmail'  It works but is limited in its use.

   Modified the Rejuvenation routine to first change all Question sentences from User, AUD{ Stov = 91 to 123 (AI),
   This way the questions are removed from core memory.



STATUS
Motorium @ Cycle 0 Security @ Cycle 9733 Volition @ Cycle 0
Think @ Cycle 221 Sensorium @ Cycle 9733 Emotion @ Cycle 0
Rejuvenation @ Cycle 0 CNS Memory Size 10240 Dictionary Size 2265
IQ 63 EEG 100 Concepts 2531
Time 2531 TOV 2528 Hash Table Size 478
Server Hits 0 Continuous Run 42035 Run Time 27

TODAY is 4/29/2008 5:10:31 AM ** Stopped **
AI-Mind Previous Thought - THOUGHT IS POWER



This Page is under continuous Development



mind.sourceforge.net Contact: Frank Russo .
Forth for Artificial Intelligence Modular AI Project Artificial Intelligence Java
. . .
Files Available for Downloading:
. . .
wininet.f (dtd 071104) sock.f AIMind.zip (dtd 1/23/08)
wininet.htm sock.htm Cross-Reference Utility (dtd 071208)
4th-EMAIL.HTM (Updated 071104) . Win-Cross-Reference Utility (Updated 080314)
4email-interface.f (Updated 071104) . .



Notes on Use:

    Create a folder-directory On the 'C' drive and label it C:\AIMind-I
	- Copy / UnZip the AI Forth files to this directory
	- The program looks here for all of the other files it will need.

    Use the form of SVO - Subject Verb Object when talking with the AI
    Try to use only one new word per entry.
          e.g. man loves family

    You can use conjunctions in the subjects and objects.
          e.g. men and women are adults
          e.g. men are fathers and husbands

    You can use adjectives, adverbs and pronouns
          e.g boys are young adults
       Do Not use a pronoun before a NEW noun.  It assumes the concept following a pronoun is a verb
       unless it already exist in the dictionary.

    The AI can recognize plural forms of nouns.
	It is best to first use the singular form and then use the plural.
	Other work in progress on this is to also associate gender with words.

    You can stimulate AI thought by simply entering a single word, Noun or Verb, from the existing vocabulary,
          preferably one of the new words you have entered previously.

    If the AI makes a statement that is correct or incorrect you should tell it so
          e.g. AI: men are women  -  you can reply with simple no [enter]
		or you can reply with a negation sentence e.g. men are not women [enter]
          e.g  AI: man talk ai -   you can reply simply yes [enter]
      by doing this the AI thought is either negated or reinforced.

    You should always press [enter] when finished with your thought.  But should you forget
    15 seconds after your last key stroke the AI will [enter] for you.

    To see the vocabulary while the AI is running you can enter '..vocab'

    The first '.' tells the mind you want to enter an executable statement

    '.notes' is a Forth routine to take the input and write it to the log file.

    ANY Forth word can be executed in this fashion, first enter '.' followed by the statment.
         the following words allow for direct examination of core data while the mind is running,
	 .aud .psi .en .print-data .vocab
         e.g.   . cls / . T @ . / . s" testing" type / . 123 inert ! /  You get the idea

    The Mind goes into hibernation state (Sleep) each night at 11:59 PM and wake up at 5:59 AM
    unless it detects a keyboard entry. Then it awakes and remains awake till the following night.

    The AI generates a new thought every 2.5 seconds or after it received user input.
    If you want to change this e.g. '. 3000 to think-timer' sets it at every 3 seconds
    In the absence of user input the time interval gets extended up to 59 minutes
    but is restored to 2.5 seconds on receipt of user input.

    There is a 165 milisecond delay in the alife cycle to slow the mind down.
    This is a self adjusting value to keep the # of cycles / minute to 360 +/- 2

    Few Routines added to assist you:
	.vocab  - displays complete vocabulary (English Dictionary)
	.vocab1 - displays selected section of vocabulary e.g. '5 .vocab1' displays nouns
	.en   - Display the content of the en{  Array all or select a start point e.g. '1024 .en'
	.psi  - Display the content of the psi{ Array		"
	.aud  - Display the content of the aud{ Array		"
	.hash - Display the content of the hash{ 'hash Table'
	.print-data - Sends to the printer the resutls of the above 4 routines
	.reset - clears all of the memory in the 3 arrays above the dictionary space
		but keeping the operating variables and core dictionary intact
	.cold - clears and reloads the dictionary.
		again keeping the operating variables intact
		Good for when the dictionary has been updated.
	.Human-Input - This routine displays all of the user input to the AI
	mind-dump - saves mind core to disk file.  Automatically done every 5 minutes.



Here is a listing of the Active Vocabulary:


You can send an E-mail to the AIMind and feed its thought mechanism.  AIMind-I@AIMind-I.com
I recommend you construct a sentence using the vocabular below.  You can use (1) ONE new word per sentence.
'Subject: AI' <<< This is a MUST
Start your sentence with the greeting 'AI: '.  How else will it know you are addressing it?
At the end of the email please include '<eot>' on a line by itself.
Not necessary but helpful in processing especialy if you are using Yahoo.
You can include your own comments just be sure to seperate out the lines meant for the AI
e.g.
AI: Man ride in plane
AI: plane fly in air
AI: children ride in plane
AI: what do children do
AI: what do man ride
< eot >

Adjectives

A , ALL , AN , ANOTHER , BIG , BLACK , BLUE , CREATING , CYAN , FEW , FLYING , FREE , GRAY , GREEN , HEARING , LESS ,
LISTENING , MAGENTA , MAKING , MANY , MORE , MUCH , NEW , OLD , PLAYING , RED , SEEING , SMALL , SOME , STILL ,
TALKING , THE , THINKING , WHITE , WORKING , YELLOW , YOUNG , FALSE , TRUE

Adverbs

ALSO , BAD , BROAD , GOOD , HOW , LOWER , NARROW , NOT , ONLY , THEN , THEREFORE , UPPER , VERY , WELL , WHAT , WHEN ,
WHERE , WHO , WHY

Conjections

ALTHOUGH , AND , BECAUSE , BUT , DESPITE , HOWEVER , IF , OR , THAT , THOUGH

Interjections

GOODBYE	, HELLO	, PLEASE	, THANKS

Nouns

AFTERNOON , AI , BOOK , BOY , CHILD , DAY , EVENING , FAMILY , FEAR , GIRL , MAN , MEN , MIND , MORNING , NIGHT ,
NOUN , OFFSPRING , PEOPLE , PERSON , ROBOT , STRING , THEY , TRUTH , VERB , WOMAN , WOMEN

Prepositions

ABOARD , ABOUT , ABOVE , ABSENT , ACROSS , AFTER , AGAINST , ALONG , ALONGSIDE , AMID , AMIDST , AMONG , AMONGST ,
AROUND , AS , ASLANT , ASTRIDE , AT , ATOP , BARRING , BEFORE , BEHIND , BELOW , BENEATH , BESIDE , BESIDES , BETWEEN ,
BEYOND , BY , DOWN , DURING , EXCEPT , FAILING , FOLLOWING , FOR , FROM , IN , INSIDE , INTO , LIKE , MID , MINUS , NEAR ,
NEXT , NOTWITHSTANDING , OF , OFF , ON , ONTO , OPPOSITE , OUTSIDE , OVER , PAST , PLUS , REGARDING , ROUND , SAVE , SINCE ,
THAN , THROUGH , THROUGHOUT , TILL , TIMES , TO , TOO , TOWARD , TOWARDS , UNDER , UNDERNEATH , UNLIKE , UNTIL , UP , UPON ,
VIA , WITH , WITHIN , WITHOUT

Pronouns

EACHOTHER , HE , HER , HIS , I , IT , ME , MY , OUR , SHE , THEIR , THEM , THESE , THIS , THOSE , US , WE , YOU , YOUR

Verbs

AM , ARE , CREATE , DO , EXIST , FLY , HAS , HAVE , HEAR , IS , KNOW , LISTEN , MAKE , PLAY , SEE , TALK , THINK , WORK

Names

SHELLEY	, GOD	, FRANK	, TIM	, LISA	, TIFF	, DEANNIE	, DEB	, MIKE	, JOHN	, TOBY	, JIM	, BILL

Affirmations

NO	, INCORRECT	, YES	, CORRECT

Symbols

!	, @	, #	, $	, %	, ^	, &	, *	, (	, )	, _	, -	, +	, =
~	, -	, :	, ;	, 	, ?	, /	, .	, <	, >	, {	, }	, [	, ]
|	, \

Numbers

0	, 1	, 2	, 3	, 4	, 5	, 6	, 7	, 8	, 9