libraries dept coil 2+z> box 1ffr7^ foi a r*yl** cux*^7 lfb9bf011qj1944/bf011... ·...

32
warsfly Libraries Dept #f Special Collections Coil L_£. 2"+Z> Title Box ,:?<■/ Series / 1 f fr 7^ Foi l^ Fol. Title A r*yl** CuX*^7 lfb9

Upload: others

Post on 14-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

warsfly LibrariesDept #f Special Collections

Coil L_£. 2"+Z> TitleBox ,:?<■/ Series / 1f fr7^Foi l^ Fol. Title A r*yl** CuX*^7 lfb9

Page 2: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

* s

A REPORT ON THE CURRENT STATUS OF THE

LISP VERSION OF EPAM 111

CS 224, C5225 Term Project

S. Levine, R. Russell, W. WilnerJune 13, 1967

-L

ey-~

Page 3: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

I

1

THE GENERAL EPAM PROGRAM

la PRIMARY FUNCTIONS

lal The primary EPAM functions are concerned with learning objects by

growing the discrimination tree. These functions form the primitive

operations utilized by the higher level executives (see section 2) in the

various forms of learning for which

operations include such things as

the discrimination tree, augmenting

sorting an object through the tree

EPAM can be adapted. These primitive

comparing an object with its image in

an image by adding missing details,

to obtain its image, building tests

based on differences detected between new objects and images of previously

encountered objects, etc. Most of these functions have highly descriptive

names. Similarily, the arguments to the functions and parameters local

to the functions, such as object, image, node, etc., have names that

indicate the data structures which they represent.

la 2 FAMILIARIZE

la2a FAMILIARIZE is the principle net growing and general learning

function, and is called both by higher level executives when learning

unfamiliar objects and by lower level utility functions when

subobjects must be learned or relearned.

la2b FAMILIARIZE is called with one argument, OBJECT, which is the

Page 4: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPOR'I ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

2

object (or subobject) to be learned.

la2c The flow of FAMILIARIZE is as follows:

la2cl First OBJECT is sorted through the current discrimination

net until a terminal node is reached. The function SORT is used

for this purpose.

la2c2 If the terminal node is empty (i.e., there is no image of

this object), FAMILIARIZE calls the function FIRST-IMAGE to form

the first image of this object and put it into this terinal node.

la2c3 If the terminal node is not empty, the image at the node is

compared with the object to see if any discrepancies can be found.

The function DISCREPANCIES is used to do this.

la2c4 If no discrepancies could be found, the image is correct as

far as it goes, but it may contain only partial information. In

this case, FAMILIARIZE calls the function ADD-DETAIL to augment the

image by filling in information contained in the object but not in

the image.

la2cs If a discrepancy was found, a check is made to determine

whether or not an existing test node in the tree will discriminate

between the new object and the existing image on the basis of this

difference.

Page 5: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

la3

3

la2c6 If such a test already exists, the test node is increased by

adding the new object as an additional branch at that node (see

section 3 for structure of test nodes and branches). The function

DISTINGUISH-IN-NET is used for this operation.

la2c7 If no existing test will suffice to discriminate between

this object and its incorrect image, a new test node must be built

to replace the current terminal node in the tree. The test made at

this node will be based on the difference discovered by

DISCREPANCIES in step la2c3. The function SUBNET is used to create

the test and the new node.

FIRST- IMAGE

la3a The function FIRST- IMAGE is called whenever EPAM is required to

form an image of an object which it has never seen before. The first

image of such an object is always built in a previously empty node

(i.e., the terminal node to which this item was sorted), and consists

of only those parts of the object which were used in tests during the

sort through the tree.

la3b FIRST-IMAGE is called with two arguments, OBJECT, the new object,

and NODE, the empty terminal node of the tree to which this object

gets sorted.

la3c The flow of FIRST- IMAGE is as follows:

Page 6: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

4

la3cl A local pointer TR is set to point to the top of the tree.

This will be changed at each subsequent step so that it will always

point to the branch of the tree which has the terminal node for

this object at the bottom.

la3c2 A second local parameter TOKEN has as its value the list of

all information about the new object which is jpleahcd at each test

node of the tree. This parameter is initially empty (NULL).

la3c3 The next node of the tree, pointed to by TR, is tested to

see if it is a terminal node

been completely sorted through

the information which F.PAM has

list is now inserted into the

or not, and if it is, the object has

the tree and TOKEN is a list of all

gathered about this object. This

terminal node as the image of the

object and the function FIRST-IMAGE is completed

la3c4 If the next node of the tree was not a terminal node, it has

to be a test node (see EPAM data structures, section 3). "pie tests

fall into two types, those which apply to properties of the object

as a whole, and those which distinguish between subobjects of the

object.

la3cs If the test applies to a property of an object, the test is

made on this object and both the test and the result are added to

the list TOKEN as an attribute-value pair.

la3c6 If the test applies to a subobject, the function ADD-SUBOBJ

Page 7: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

la4

5

is called in order to add the appropriate subobject of the new

object to the list TOKEN under the attribute SUBOBJ.

la3c7 The result of the test applied to the new object is used to

select the next branch of the tree by updating the pointer TR.

Control the returns to step la3c3.

DISCREPANCIES

la4a The function DISCREPANCIES is used to compare an object with its

image to determine if any differences exist. Information contained in

the object but lacking in the image is not considered a discrepancy

between the two. Differences pertaining to the object as a whole are

found first, followed by differences in the subobjects which comprised

the object and the image. A list of these differences is returned as

the value of DISCREPANCIES. A null list is returned if no differences

can be found.

la4b DISCREPANCIES is called with three arguments, OBJECT, the object

being investigated, IMAGE, the current image of this object, and X,

the number of discrepancies desired. In the current version of EPAM, X

is always 1.

la4c The flow of DISCREPANCIES is as follows:

la4cl Both OBJECT and IMAGE are considered to be attribute-value

lists as described in section 3.

Page 8: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

6

la4c2 The next attribute on the OBJECT list is examined and if it

is not SUBOBJ, is must be the name of a property which applies to

the object as a whole.

la4c3 The IMAGE list is searched for the property chosen in step

la4c2. the function GETVAL is used to do this.

la4c4 If this property was found on the IMAGE list, its value is

compared with the value of this property on the OBJECT list. If

they are equal, or if this property was not found on the IMAGE list(because of a partial image), control is returned to step la4c2.

la4cs If the two values are not equal, the name of this attribute

is added to the list of differences which will be returned as the

value of DISCREPANCIES. If more discrepancies are desired, (as

indicated by X) control is returned to step la4c2. Otherwise

DISCREPANCIES returns to the caller.

la4c6 After every attribute on the OBJECT list has been examined,

if enough discrepancies have not yet been found (as indicated by

X), the subobject lists from both the OBJECT and IMAGE are compared

in the following manner (if either or both do not have a subobject

list, control is returned to the caller with the value NIL):

la4c7 The first subobject items on both lists are sorted to their

images in the tree.

Page 9: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF TUE LISP VERSION OF EPAM 111

las

7

la4cB If both images are identical, or if a subobject item is

missing from this position on either subobject list (as indicated

by a NULL entry) , no difference exists, the lists are shortened by

one item, and control returns to step la4c7.

la4c9 If the images are not identical, the position of this

subobject in the subobject list, is added under the attribute

IDENTITY on the list of discrepancies which will be returned. If

more discrepancies are desired (indicated by X) , the subobject

lists are shortened by one item and control returns to step la4c7.

If either no more subobjects exist on either list, or if X has been

reduced to zero, DISCREPANCIES returns control to the calling

routine.

ADD-SUBOBJ

lasa The function ADD-SUBOBJ is used to add a pointer (token) to the

image of a subobject onto the subobject list of an object.

laSb ADD-SUBOBJ is called with three arguments; SUBOBJ, the item to

be added, OBJECT, the object whose subobject list will contain the

item SUBOBJ, and POSITION, the ordinal number of the position on the

subobject list where the pointer to the image of SUBOBJ will go.

lasc The flow of ADD-SUBOBJ is as follows:

Page 10: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

"A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

la6

8

lascl The image of SUBOBJ is obtained by sorting SUBOBJ through the

tree using the function SORT.

lasc2 If either the image is empty or there are discrepancies

between SUBOBJ and its image (as determined by DISCREPANCIES), more

must be learned about SUBOBJ and the function FAMILIARIZE is called

with SUBOBJ as its argument.

lasc3 The list under the attribute SUBOBJ is obtained from the

property list of OBJECT by using the function GETVAL. If OBJECT

does not have a subobject list (i.e. no attribute SUBOBJ), a new

one is created and added to the property list of OBJECT.

lasc4 The image of SUBOBJ, found in step lascl, is now inserted

into the subobject list of OBJECT at the position indicated by

POSITION (counting the first item on a list as 1, the second as 2,

etc.) .lascs If the position of the new subobject is beyond the end of the

existing subobject list, NULL items, indicating missing information,

are inserted to fill out the list.

ADD-DETAIL

la6a The function ADD-DETAIL is used to add more information to

partial images in the net. This added information is obtained from

the object which sorts to the terminal node where the image is found,

Page 11: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

9

and can consist of either additional, properties about the object as a

whole, or additional subobjects on the subobject list of the image.

la6b ADD-DETAIL has two arguments, OBJECT, which is the whole object

from which all new information will be extracted, and NODE, which is

the terminal node of the tree containing the image to be augmented.

la6c The flow of ADD-DETAIL is as follows:

la6cl The image found in NODE is checked against OBJECT to

determine which properties or subobjects are omitted from the image

information. The function OMMISSIONS performs this operation.

la6c2 If no omissions can be found, the image is complete (i.e., it

contains all the information which the object itself contains), and

ADD-DETAIL can do no more.

la6c3 If an omission has been found, it is checked to sec whether

it is a property or a subobject which is missing.

la6c4 If the omission was a property, the name of the property and

the value of this property on the OBJECT property list are added to

the property list of the image as an attribute-value pair.

la6cs If the omission was a subobject item, the image of this item

is added to the subobject list of the image at the same position in

the list as it had in the subobject list OBJECT. The function

Page 12: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111.

la7

10

ADD-SUBOBJ is called to perform this operation.

DISTINGUISH- IN-NET

la7a DISTINGUISH- IN-NET is used to augment the size of an existing

test node, by adding a new branch corresponding to an outcome of the

test which was not previously encountered by EPAM.

la7b DISTINGUISH-IN-NET is called with 2 arguments, OBJECT, which is

the new item being discriminated, and IMAGE, which is the (incorrect)

image of OBJECT.

la7c The flow of DISTINGUISH- IN-NET is as follows:

la7cl The local pointer NODE is set first to the entire tree, and

will always point to the next node in the tree at which a test is

to be performed.

la7c2 The test at NODE is performed on both OBJECT and IMAGE and

the results compared.

la7c3 If the results are equal, the appropriate branch of the tree

becomes the next value of NODE and control returns to step la7c2.

la7c4 If the results are not equal, the result of the test on

OBJECT becomes the label at the test node for a new branch of the

tree. This new branch is created by calling the function

Page 13: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

■A REPORT ON THE CURRENT STATUS OF THE; LISP VERSION OF EPAM 111

laB

11

FIRST- IMAGER

\a_"KS

£&s£*. In addition, a check is made to see if the result of the test

on IMAGE is currently the label of a branch of the tree (since

IMAGE could be on the OTHER branch of this node), and if not, a new

label and branch is also created for this.

SUBNET

laBa SUBNET is called when no existing test will discriminate between

an object and an incorrect image, and hence a new test node must be

created.

laBb SUBNET is called with three arguments, OBJECT, which is the now

object to be learned, IMAGE, which is the incorrect current image of

OBJECT, and DIFF, which is the list of differences between OBJECT and

IMAGE which was produced by DISCREPANCIES.

laBc The flow of SUBNET is as follows:

laBel The list DIFF contains items which give the names of

attributes whose values on the property lists of OBJECT and IMAGE

are different, or the position numbers of subobjects which differ

on the subobject lists of OBJECT and IMAGE.

laBc2 DIFF is used to extract the items from the property lists of

OBJECT and IMAGE which are known to be different. The function

Page 14: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

lb so;

lbl

Ib2

Ib3

12

TEST-VALUE performs this operation.

laSco The attribute resulting from the application of TEST-VALUE

to IMAGE becomes the label of the branch with the next node IMAGE.

The attribute resulting from OBJECT becomes the label of a new

branch which is filled in with an image of OBJECT by the function

FIRST-IMAGE. Both of these new branches are thus terminal nodes.

laBc4 The first item on the list DIFF becomes the test for the

newly created test node. In addition, the labels OTHER and NOTAP

arc also added to the new test node for future expansion based on

this test. The branches corresponding to both these labels are

initially empty.

IME EPAM UTILITY FUNCTIONS

SORT ( OBJECT)

Ibla Sorts on object thru the tree from top to terminal node at bottom

and returns the terminal node.

MAKE (FN ARG)

Ib2a This function applys the test FN to the arguments ARG.

GETIMAGE (X)

Page 15: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

2

13

Ib3a Returns image (found in terminal node) of item x when sorted thru

tree (NIL if no image) .

Ib 4 GETVAL (PROP OBJECT)

Ib4a Finds the value of attribute PROP on attribute-value list OBJECT.

Returns NOTAP if no such attribute is on this list.

Ibs GETSUB (BRANCH OBJECT)

Ibsa Returns a piece of tree structure from object pointed to by

ROADMAP branch. It uses the ROADMAP to point to an item on the

subobject list.

EPAM EXECUTIVE FUNCTIONS

2a Letter Learning

2al All the English letters are assumed .to be known to EPAM. In order to

get complete images of all the letters into the discrimination net, the

special executive function LEARN is called at the start.

2a2 LEARN takes the list of letter images which it is given as an

argument and proceeds to familiarize each one twenty times.

2a3 Since each image consists of ten attribute-value pairs, and since

Page 16: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

14

familiarization adds one new detail from the given image, twenty

familiarizations arc just enough to guarantee that each image in the net

will be complete.

2a4 With perfect information about letters, EPAM is ready for nonsense

syllable learning.

2b Paired Associate Learning

2bl Paired associate learning in EPAM in accomplished by three upper level

executives: (1) LEARN-PAIRED-ASSOCIATE-LIST, which simulates the

familiar psychological experiment; (2) ASSOCIATE which controls the

learning of nonsense syllable pairs; (3) RESPOND which controls the

performance of the program in the experiment.

2b2 Highest level executive

2b2a LEARN-PAIRED-ASSOCIATE-LIST (LPA) contains and manipulates the

programs model of the real world, the environment. It also calls the

two other executives, ASSOCIATE and RESPOND.

2b2b When LPA is first entered, it sets all counters for statistics to

zero. All nonsense syllables in the given paired associate list are

introduced to the LISP system by giving them the property DUST.

2b2bl The DUST property is a two element attribute-value list

consisting of (a) the type SYL and (b) the list of subobjects which

Page 17: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

15

are the letters that make up the syllable.

2b2b2 SET-UP-OBJECTS is the function that performs this

initialization.

2b2c LPA then begins a scries of learning trials.

2b2cl At the start of each trial, LPA checks to see if it has

completed the required number of trials or if it has done well

enough on the last trial to quit.

2b2c2 Assuming it should go on, LPA prints the trial number and

positions the make-believe drum to the start of the list (whose

order may have been randomized).

2b2c3 Within each trial, LPA takes pairs one at a time until the

list has been exhausted. It sets STIMULUS to the first syllable of

a pair and RESPONSE to the second syllable while setting the clock

ahead one drum-turn time.

2b2c4 Even though the clock has been set ahead, the previous pair

may have received such a concentrated effort that all the time

available for the current pair has been used. In this case, LPA

prints "NO-TIME-TO-RESPOND"- , sets the response to null and avoids

calling the performance function RESPOND.

2b2c5 If there is time to respond, RESPOND is called to sort the

Page 18: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

16

pair through the tree and retrieve the image of the second object in

the pair. The clock is decreased by GIVE-R-TM.

2b2c6 Nov; that the program has responded to the stimulus (or failed

to), the drum is turned to reveal the complete pair . In actuality

what happens is that the clock is set ahead by the drum-turn time

before the program ever refers to RESPONSE,

2b2c7 Having the program's response, LPA calls PRINTSYLLABLES to

type out the stimulus, subject's response, and correct response, for

which the clock is decreased by Imagcout-tm.

2b2cB CHECK is called to compare the subject's response against the

correct one, take statistics, and charge Chcck-r-tm against the

clock.

2b2c9 If the program detects that its response is in error, it will

call ASSOCIATE to learn something more about the pair. . .provided it

has the time. If ASSOCIATE can be called, the clock will be

charged Assoc-tm.

2b2c10 The last thing LPA does for each pair is to ask if it is the

last one. When the last pair has been seen, Inter-trial time is

added to the clock.

2b2c1 1 Having reached the last pair, LPA marks the end of the trial

and cycles back for the next one.

Page 19: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

17

2b2d At the conclusion of the scries of learning trials, a statistical

summary is printed, along with an ideographic discrimination tree (all

by the function RESULTS).

2b3 Pair learning executive

2b3a ASSOCIATE is the decision and learning function for paired

associate learning. When it is called by LEARN-PAIRED-ASSOCIATE-LIST,it knows the stimulus and response items in the pair from the

environment and the stimulus and response items in the pair from the

discrimination tree.

2b3b At the very start, no stimulus item has an image in the net. Null

stimulus images cause ASSOCIATE to call FIRST-IMAGE to place an image

of the stimulus in the tree.

2b3c On the other hand, if the stimulus item has an image, ASSOCIATE

forms a pair with the stimulus image and the subject's response and

sorts it through the net.

2b3d If there is no image of the pair, ASSOCIATE decides to call

FIRST-IMAGE,

to form an image and does nothing further.

2b3e When there is a pair image, ASSOCIATE obtains the second subobject

of the pair and calls it a response. If it is empty, ASSOCIATE takes

the image of the response item from the environment and calls

Page 20: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

2b4

18

ADD-SUBOBJ TO MAKE THAT IMAGE THE RESPONSE FOR IN THE PAIR IMAGE*

iV3t§-fi#F- Eventually, ASSOCIATE will be dealing with pairs whose response

subobjects are not empty. It checks non-empty responses against theenvironment response, using the function DISCREPANCIES, to find out if

the response is all right as far as it goes. Correct but (possibly)incomplete responses cause ASSOCIATE to call FAMILIARIZE to improveits knowledge about the response. After calling FAMILIARIZE, ASSOCIATE

returns to LPA.

2b3 g Given a response image which is patently bad, ASSOCIATE goes a

little deeper. It asks if the stimulus item of the subjects pairagrees with the environment stimulus, -again by calling DISCREPANCIES.

Presented with a bad stimulus as well, ASSOCIATE will call FAMILIARIZE

to discriminate betweeen the pair which it retrieved from the net and

the environment pair.

2b3h The stimulus item may be all right as far as it goes, while the

response is bad. In this case, ASSOCIATE carries out two tasks.

First, it learns something more about the stimulus by giving it to

FAMILIARIZE. Second, it replaces the response item of the pair with

the image of the true response, calling on ADD-SUBOBJ to make the

replacement.

Performance function

2b4a Given a stimulus item RESPOND has tlie duty of coming back with a

Page 21: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF E.PAM 111

3

19

response. It is called by LPA whenever LPA's attention is free and the

stimulus item alone is showing in tlie imaginary drum's window.

2b4b When entered, RESPOND sorts the stimulus to get the image. A null

pair image will result in a null response.

2b4c Taking a non-empty stimulus image, RESPOND will form a pair from

it and use GETIMAGE to obtain the pair's image from the discrimination

tree. Here again, a null pair image will result in a null response.

2b4d Having found a non-empty pair, RESPOND follows that mysterious

algorithm that identifies the second subobject of the pair as the

subjects response.

EPAM DATA STRUCTURES

3a Each object or image is represented by a property list (actually a

pointer to a property list) which is composed of attributes and their values

in the following format:

(A 1VI A 2V 2 An Vn)

3b The first attribute of every object is the property TYPE. There are 3

possible values of this attribute in the current system. They arc

LETTER

SYL

PAIR

Page 22: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A F EPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

20

The other attributes of an object depend on it's type.

3c An object of type letter has the following other attributes:

UNE

ARCS

LOOP

VERT

PARE

HORIZ

SYM

SLANT

NAME

The values of these attributes depend on tho particular letter. For example

the property list for the letter a is

(LINE 3 ARCS 0 LOOP 1 VERT 0 PARA NO HORIZ 1 SYM V SLANT B

NAMF. A)

3d EPAM docs not permit partial images of letters in that each letter will

have a complete property list (i.c no attributes are missing)

3e Objects of types SYL and PAIR have only two attributes, TYPE and SUBOBJ.

3el The value of this attribute is always a LIST of pointers to other

objects. For example, the value" of the attribute SUBOBJ on the property

list of a PAIR is a list of 2 pointers to SYL objects, the first being the

stimulus variable and the second the response variable.

Page 23: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

21

3e2 A SYL object has in turn as the value of the attribute SUBOBJ a list

of pointers (tokens) to the letters which compose the sylable. In this

manner objects arc built up from ordered sequences of other objects (this

order being determined by their position on the SUBOBJ list).

3e3 Partial images are represented by missing items in the SUBOBJ list.

3f Throughout the following discussion the term "TOKEN" will be used to mean

a pointer to a data structure. In this LISP implementation of EPAM a token

is the core .steHSSfge storage address of the S-expression for the data

structure. The programmer never sees this address, since in all printouts the

S-expression is itself printed in full

3fl The discrimination tree is composed of 2 types of nodes - TEST nodes

and TERMINAL nodes.

3fla The terminal nodes have the format

where <imagc> is a pointer to the property list of the item which sorts

to this node of the tree.

3flb An empty terminal node has the format

(TERM) i.e. the <IMACE> pointer is missing.

All nodes which are not terminal nodes are test nodes and have the

following format:

Here <TEST> is the NAME of a test function, of which there are

(TERM <Ifi! jlge> )

(<TEST> <ROADMAP> OTHER NO NOTAP Nn VI NI ...Vk Nk)

Page 24: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A RETORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

22

basically 2 kinds:

3flbl Those that apply to attributes of an object other then SUBOBJ

(i.e. that are germaine to the object itself independent of its

component parts) and

3flb2 those which apply to the subobjects of which the object is

composed.

3flc For the first kind, <ROADMAP> is NULL while for the second kind,

of which there is currently only one function IDENTITY, <ROADMAP> is a

list of ordinal numbers which point to the item on the SUBOBJ list of

an object to which the test IDENTITY applies.

3fld The result of applying the test function <TEST> to an object is a

value and VI, V2, .... Vk are those values which EPAM has previously

discovered and found necessary to discriminate.

3fle Except for IDENTITY, the test functions have the same name as

attributes on objects and images and the result of applying the test to

an object is simply the vale associated with this attribute on the

property list of the object. If the object does not have this

attribute, NOTAP (for not applicable) is the value of the test.

3flf If V is NOTAP as explained above, Nn will be the next 7iode

searched. If none of the Vj or NOTAP match V, EPAM will use the NO as

the next branch, indicating that something OTHER then VI, ... Vk

Page 25: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

A REPORT ON THE CURRENT STATUS OF THE LISP VERSION OF EPAM 111

23

resulted from applying the function <TEST> to the object.

3flg The test function IDENTITY operates slightly differently in that

the value of IDENTITY is a token of the IMAG): (at some terminal node

in the tree) of the subobject (in the list under the attribute SUBOBJ

on the property list of tlie object) indicated by <ROADMAP>, or NOTAP

if this subobject or its image can not be found.

3flh Thus the values VI, V

2,

... Vk at IDENTITY test nodes are tokens

of images cleswhere in the tree of subobjects. As before, the pointer V

resulting from the IDENTITY test is compared with Vl, V2, ... Vk and if

an exact match is found, say for Vi, the next branch of the tree taken

in the search will be Ni (of Nn if V = NOTAP). NO is taken if no match

can be found.

Page 26: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

APPENDIX 1 -- A USERS GUIDE TO EPAM 111

24

4 INTRODUCTION

4a The EPAM system consists of 3 symbolic LISP files. Two of the files

(LISPS and LISP9) contain various service routines such as TRACE;, EVALQUOTE,

etc. A number of the routines were used when EPAM was run under the DECLISP

system and arc no longer necessary. These functions are on LISPB and will be

removed soon. The actual EPAM lisp program is the file EPAMI2.

5 RUNNING-THE-SYSTEM

5a Go to a teletype and get the attention of the system. This can be done by

typing

CTRL C

one or more times (both keys at once). You have the attention of the system

when it replies by typing a period ".". Next type

C cr (cr stands for carrage return)

The system will respond with the amount of core available. The minimum amount

of core needed to run is 24k. The more core you have, the faster the program

wi 1 1 run .

5b To assign a tape unit enter

A DTA cr

The system will respond with

DTAn assigned

where n is between 1 and 6. If n "- 7 or 0 the system has assigned you one of

Page 27: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

APPENDIX 1 — A USERS

GUIDE;

TO EPAM 111

25

the system tapes in which case you had better deassign it in a hurry. To do

this type

D DTA7 (or 0 as the case may be)

Once you have a tape assigned, mount your tape containing the EPAM files on

that unit.

5c To run the LISP system type

\

R LISPXY nn

(where nn is the amount of core you have)

scl After a short wait the system will respond with

ALLOC

to which you reply by hitting the space bar. You are now talking to EVAI

in LISPXY. This is the MACLISP system.

6 Now you are ready to load EPAM

6a To load the EPAM files type

(INC (INPUT DTAn: LISPB LISP 9EPAMI2 ))

The system now reads these three LISP symbolic files from your tape on DTAn.

The system will respond by typing several lines of function names followed by

(END OF EVALQUOTE OPERATOR)

NIL

This indicates that all of the EPAM functions have been read in and are now

ready for use This can take up to several minutes depending on system use.

6b The first thing one must do is learn the alphabet. To do this one would

Page 28: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

■APPENDIX 1 — A USERS GUIDE TO EPAM 111

26

enter

(LEARN (QUOTE (A B C I) E F G 11 I J X I, M N

0 P Q R S T U V W X V Z)))

This function builds images of all letters of the alphabet into the tree

This is necessary before any paired associate learning can take place.

6bl Since this operation takes approx. 15 minutes of machine time and

ends in a long printout of the resulting tree (which is always the same)

on the teletype, we have provided an additional file on the tape which

contains this tree immediately after the alphabet has been learned.

Therefore an equivalent and significantly faster operation is to enter the

following:

(INC (INPUT DTAn: BEGIN))

This causes the BEGIN file to be read from DTAn and this file contains the

initial tree. After reading, the system will respond with

TREE

(END OF EVALQUOTE OPERATOR)

NIL

The EPA'! discrimination net is associated with the variable TREE. At any

time one can request to see the net by typing in

TREE (followed by at least one space)

This operation will print the contents of the current net on the output

device (see 4c) .6b2 Please note that tlie BEGIN file cannot be placed at the the end of

the list in 3a.

Page 29: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

■APPENDIX 1 -- A USERS GUIDE TO EPAM 111

27

61)3 Furthur note that at any time during a run, you can reinitialize the

tree to the state where the net contains only the letters of the

alphabet by following the procedure outlined in 31)1.

7 Paired Associate Learning in EPAM

7a To get EPAM to learn a paired associate list we call the function LPA

with with one argument which is the list of pairs. For example:

(LPA (QUOTE. ( (KAG LUX) (MEQ DAK) (TOY LEM)

(KUK TIL) (JAL KAQ))))

7b If you wish to learn this list again at some time later during the run,

you can bind the list to a symbol and refer to it as a single word rather

then as a long list. For example to bind the list mentioned above to the

symbol KAGLUK enter

(CSETQ KAGLUK (QUOTE ((KAG LUK) (MEQ DAX) (TOV LEM)

(KUK TIL) (JAL KAQ))))

Now to learn this list enter

(LPA KAGLUK)

The above paired associate list will remain bound to the symbol KAGLUK for

the entire duration of you run.

7c All output is usually directed to the teletype. One may want to use

other devices at times, particularly

7cl the line printer for high volume output: traces, or nitty-gritty

copies of the discrimination net

Page 30: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

APPENDIX 1 -- A USERS GUIDE TO EPAM 111

28

7c2 mag tape for saving new symbolic lisp definitions: paired-associate

lists, or initial dicrimination nets. For example, the BEGIN file.

7c3 To redirect output, use the OUTC and OUTPUT functions.

7c3a To output on the line printer, type:

(OUTC (OUTPUT LPT: )T) NOTE that no response will be given on

the teletype. One continues to use the teletype for input, of course.

7c3b To return output to the teletype, type:

(OUTC NIL T) This prints tlie final line on the printer, and

returns the value NIL, which is typed on the teletype.

7c3c To output on an assigned tape, type:

(OUTC (OUTPUT DTAn: file ) +T) where "n" is the number of the

tape (1,2,..., 6) and file is the name of a file on the tape, (see section 2b

for tape assigning details). Note that no response will be given on the

teletype. The teletype continues to be the input device, of course.

7c3d When one is finished with tape output, type

(OUTC NIL T) to write the last buffer onto tape, and return

the value NIL, which is typed on the teletype.

7c3e For example, if one is tracing many functions (section 5 below),

the teletype would be far too slow. A learning trial on list FOBAZ

would leave a record on the teletype looking like this:

Page 31: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

APPENDIX 1 -- A USERS

GUIDE;

TO EPAM 111

29

(OUTC (OUTPUT LPT:) T) (LPA FOBAZ) (OUTC NIL T) NIL

In the meantime, the complete trace along with the output will have

been printed on the line printer.

8 Tracing allows one to study the detailed behavior of EPAM's functions.

8a To trace a function, eg. FAMILIARIZE, type

(TRACE FAMILIARIZE)

Each time FAMILIARIZE is entered, its name will be printed along with the

values of its arguments.

Bal WARNING: printing is normally done on the teletype---if voluminous

printing is expected, be sure to redirect the output to the line printer

(see section 4c for details.)

Ba2 Tracing a function makes a permanent change in its lisp definition

(for the duration of the lisp rim). To stop a function from tracing, one

must call untrace e.g.,

(UNTRACE FAMI L IAR IZE )

Ba3 Both trace and untrace return the name of their argument when the

operation has successfully been performed. Should you misspell the name

or make some other mistake, trace and untrace return NIL.

Ba4 Note that trace and untrace take exactly one argument, not a list.

9 Timing constants in EPAM may be changed by using CSETQ. To change the

Page 32: Libraries Dept Coil 2+Z> Box 1ffr7^ Foi A r*yl** CuX*^7 lfb9bf011qj1944/bf011... · 2015-10-17 · la2a FAMILIARIZE is the principle net growing and general learning ... of only those

-.APPENDIX 1 A USERS GUIDE TO EPAM 111-rf

30

drum- turn time, for example, type

(CSETQ DRUM-TURN-TM 150.)

where "150." is the new value you wish it to have (the period is optional).

9a Current values for timing constants can be obtained individually by

typing the name of the constant followed by a space; e.g.,

DRUM-TURN-TM b

where "b" stands for a single space

9b A function which prints all the timing constant values is planned. Names

for the timing constants have to be taken from the program listing. (see

lines 6500-6900.)