BABBLER INFO

advertisement
BABBLER INFO
BABBLER is a computer program, which uses a keystroke stream "sliding
window" as an echoic (short term) memory and stores overlapping replicas
of the successive windows in an associative memory which is driven by a
Markov chain to create a language acquisition-and-use system.
The program, as currently configured, learns up to about a thousand words
of conversational material (in any keyboard-compatible written language)
from keyboard inputs and can carry on an interactive dialog, in its
acquired
language, with the computer operator via keyboard and screen. BABBLER's
half of the dialog tends to be schizophrenic but creative. When left to
itself, (after having acquired a bit of experience) it rambles along in a
free association mode. BABBLER's associative memory is stored in RAM,
in the string stack, and is limited to 32K. A disk memory version is
available, but should be used only with a RAM disk or equivalent.
'
(SCHEMA FOR BABBLER)
'
'
---------------------'
720 |
670 (1)
|
------>-------------->| KEYBOARD INPUT
|----------<----------|
^
|
|
|
|
|
---------------------|
|
----------------|
^
|
| 2800 MEM DUMP |
|
|
|
----------------v
|
|
^
|
|
|
| Y
|
-----------------|
--------------------| 1880 (12) SHIFT
|
|
/ 800 MEM \
/
790
\
|
TO KEYBOARD
|
|
\
DUMP?
/---<--| Y INPUT? N |--->--|
SEARCH
|
|
----------\
/
|
-----------------|
| N
----------|
|
|
v
v
^
|
-----------------------------------------|----<---|
| 840 (2)
|
| 1590 (8) SHIFT TO
|
^
|
|-<-|
FILTER
|
|
FORWARD SEARCH |
| Y
|
|
|
KEYSTROKES
|
----------------------- -----------|
|
-------------------|
/
2060
\
|
|
|
|------<----| N END OF
| |
|
|
v
\ SENTENCE? /
|
^
|------<--------------------------------------|
|
|
|
| 1630 (9) FORWARD |
|
|
|
v
|
|
"BRANCHING"
|
|
|
|
|
^
|
SEARCH
|
^
^
|
---------------|
---------------------|
|
|
| 1060 (3)
|
|
|
|
|
|
|
PRINT
| -----------------------------------|
|
|
AND
| |2740 (19)|
/
1840
\
|1930 (13)|
|
|
| STORE NEW
| | SYNAPSE |
| PATTERN MATCH? Y |---->| SELECT |
|
^
|
MATERIAL
| | LOOP
|
\
N
/
| & PRINT |
^
|
|
IN
| | CONTROL |
---------------| OUTPUT |
|
|
|
MEMORY
| ----------|
----------|
|
---------------|
--------------|
|
|
|
/
1870
\
|
|
|
|
| END SENTENCE N | ------>---------|
v
^
\
Y
/
|
|
|
--------------|
|
|
|
|
----------|
v
|
/ 1540 (7)
\
|
------------------------<--| Y SYNAPSE N |-->--|
| 2140 (15) SHIFT TO |
'
\ FINISHED? /
|
|
REVERSE SEARCH
|
'
----------|
----------------------'
^
|
'
|
|---------<---------'
|
v
|
'
------------------------------------|
'
|
2690
|
|
2340 (16)
|
|
'
| SYNAPSE
|
|
REVERSE CHAINING
|
|
'
|
PREP
|
|
MEMORY SEARCH
|
^
'
------------------------------------|
'
|
|
|
'
-------------------------------|
'
| 2670 SHIFT |
/
2630
\
|
'
|
TO FWD
|<--| Y BEGINNING OF
N |---->--'
|
SEARCH
|
\
SENTENCE?
/
'
--------------------------------
'
'
'
' For Attention Span N=8, characters 4 and 5 in the sliding window "E"
' are the address pointers. Alphabetical characters are converted to
' upper case. Spaces after periods, commas, question marks, and
exclamation
' marks are deleted for memory storage. A space is inserted, during
output,
' after each of these supressed characters.
'
' Keyboard input
How_are_you?_I_AM_FINE.
'
' Successive contents of sliding window E and derived addresses
'
Address
Address
Address Char ASCII - 32
'
positions
Characters
ASCII's
addresses
'
v v
X Y
' . H O W _ A R E
W _
87 32
55 00
' H O W _ A R E _
_ A
32 65
00 33
' O W _ A R E _ Y
A R
65 82
33 50
' W _ A R E _ Y O
R E
82 69
50 37
' _ A R E _ Y O U
E @
69 64
37 32
' A R E _ Y O U ?
@ Y
64 89
32 57
' R E _ Y O U ? I
Y O
89 79
57 47
' E _ Y O U ? I _
O U
79 85
47 53
' _ Y O U ? I _ A
U ?
85 63
53 31
' Y O U ? I _ A M
? I
63 73
31 41
' O U ? I _ A M _
I @
73 64
41 32
' U ? I _ A M _ F
@ A
64 65
32 33
' ? I _ A M _ F I
A M
65 77
33 45
' I _ A M _ F I N
M _
77 32
45 00
' _ A M _ F I N E
_ F
32 70
00 38
' A M _ F I N E .
F I
70 73
38 41
'
' During keyboard input all N letters of E are compared to all N letters
' of storage units.
'
' In forward search the last N-1 letters of sliding window E are
compared
' to the first N-1 letters of storage units. N-1 = Pattern Matching
Length
' (Example below)
'
'
X Y
'
- - - - - - PML=7 Pattern Matching Length
'E--->
B A R B E R _ S
N=8
Attention Span
'
^ ^
NR=4, NS=5
X=ASC(B)-32 Y=ASC(E)-32
'Storage Unit
3 A R B E R _ S H
SUL=9 Storage Unit Length - on shelf
X,Y
'
- - - - - - '
^
'
|
'
BWF The "3" is the value of the Branching Weighting
Factor
'
for the storage element with pattern "ARBER_SH".
'
' In reverse search the first N-1 letters of E are compared to the
' last N-1 letters of storage units.
'
' The Branching Weighting Factor BWF is used by the Markov chain to cause
' more "familiar" output stream generation branching options to be
favored
' over less familiar options. Each BWF can have values from 1 to 255 and
' is represented by a single ASCII character. Each time a previusly
entered
' pattern (of length N) is encountered in the keyboard input stream, the
BWF
' for that pattern (in memory) is increased by 1. This models
reinforcement.
' As the program runs individual BWF values througout the whole of memory
' are randomly selected and decreased by 1 to simulate forgetting. There
is
' no "negative reinforcement" per se, but input patterns that are not
' reinforced by subsequent keyboard inputs will gradually become less and
' less likely to be branched to as compared to those which do receive
' positive reinforcement.
'
------BABBLER's source code is written in QuickBASIC. An .EXE version for
IBM-PC's and clones (MSDOS) machines (256K minimum) is available for
$34.00
from:
Low-Tec
P.O. Box 1327
Starkville, MS 39759
Source code is included with orders for the .EXE version.
For further info, via e-mail, contact:
Robert S. (Bob) Fritzius
rsf1@ra.msstate.edu
Download