ISR-7
June 1964.

V-l

V.

PROCESSING OF THE CONCEPT HIERARCHY
George Shapiro

1.

Introduction
This report describes a system for setting up and referencing ahierarchic structure consisting of integers which represent English language
concepts.
system-These programs are incorporated into the SMART document retrieval

The programs described here do not depend on the significanceattached to the integers (hereafter called "concept numbers"), and confine
themselves to the replacement of sets of original concept numbers by newones found within the hierarchical structure. Thus, search requests producing unsuitable responses might be altered, using such a hierarchy, toproduce in some sense "better" requests (i.e., requests resulting in"better" responses).
English words occurring in search requests or in documents are first
replaced by concept numbers using a thesaurus lookup operation (several
words often have the same number; one word may have several numbers).

These

concepts are arranged in a treelike structure called the hierarchy where,
in general, several related items appear under one item of greater generality. Provision is made for having a given concept number appear inseveral places within the hierarchy by allowing any concept in the tree to"cross reference" any other. Cross referencing is unidirectional andimplies no hierarchic relation. Section ill of this report may be consulted
for a detailed discussion of the considerations involved in generating thehierarchy.

V-2
Two main program blocks, the update and the lookup, are used toprocess the hierarchy which is normally stored on tape. For each update
run, a set of cards is required specifying all changes, additions, anddeletions to be made. The update options are described in Part 3 of thepresent section.

It should be noted that the update programs provide

diagnostic information to detect inconsistencies in the input data.
The hierarchy lookup program uses as argument a vector of concept
numbers and an associated vector of frequencies. The program returns a
new vector corresponding to the expansion of the input (request) vector;
specifically, each item in the input vector is replaced by or added to(depending on the option chosen) its parent, children, brothers or crossreferences (depending again on the option chosen)•

These functions aredetailed in Part 6 of this section.

2.

Structure in CoreTo each item in the hierarchy there correspond three consecutive

locations in core as follows:
PrefixDecrement

Tag

Address

s

l

N

POP

S

2

SON

BRUB

LEVEL

REF

V-3
where Li is the concept number of the item, POP is the core address of thenode corresponding to the parent of the item, SON is the core address ofthe node corresponding to the first member in the (filial) set of the item,
BRUB is the core address of the node corresponding to the next brother inthe filial set of which the item is a member, LEVEL is the index of thelevel (starting from a root) where this item is located in the hierarchy,
and REF is the core address of the first item in a chained list of crossreferences to the item,
JM is the only field which can in no case be equal to zero. S. = +unless the item is marked deleted, in which case S. = - . S p = + if theitem is not the last in the filial set of which it is a member; otherwise

If REF is nonzero, the corresponding address points to the first
item in a chained list containing the cross references to the given item,i^ach element in this list is a 7094 machine word; the decrement partcontains in each case the core address of the node in the main structureof the hierarchy corresponding to a cross reference, and the address part,
if it is nonzero, points to the next item in the cross reference list; azero address denotes the end of the list, The sign of a given word in the
cross-reference list is negative if and only if the given item has been
deleted from that list.
A mechanism must, of course, be available for finding the core
address of a node in the hierarchy corresponding to a given concept number.
To this end, a chained tree of numeric keys is provided in which each item
is of the form

V-4

S

1 2 Decrement

Tag

Address

K

B - P

J

0

R

K represents one (octal) digit of a concept number. Since each concent
number is constrained to be less than 8 = 4-096 and is thus represented byfour octal digits, the key tree includes a total of one for each digit of
the concept number. R

points to the first element in the set of sons(i.e., the set of key digits one level deeper and under K) of the given
word of the key tree. On the fourth level, R points to the core addressin the main structure of the hierarchy of the (unique) concept number
corresponding to this leaf-

B - P points to the brother or parent in the

key tree of the given word, depending on whether S is 0 (plus) or 1 (minus),
respectively. On the fourth level, if and only if bit 1 is 1, the given
item has been deleted.
Lookup in such a tree is a fairly simple procedure (performed bysubroutines NFIND and FIND, which are slight modifications of each other)and updating is simpler than in simple lists, because nothing must be
physically moved when an insertion is made. Flowchart 1

describes sub-routine NFIND. N(I) is the Ith octal digit (from the right) of the concept'
number N which is being looked up. B represents the location of the firstroot of the key tree. C(j) denotes the contents of location J, and, denotes bits a through b of the contents of location J.

The flowcharts appear in the appendix to this section.

//

/A

;/

2

tf

2 —^3

/' /A

/
00000

00004-

/
00007

\|
00012

(a) Tree Representation- 20002 0 20000- 20003 1 20001

L 00001 1 20002- 20006 1 2000^+ 20007 2 20010

r 00004 :i 20006]+ 00007 k 20012- 00012 6 20010(b) Core Image

Example of Key Tree Structure
Figure 1

V-6
It is now apparent why all the various pointers in the main
structure (and the cross-reference lists) point to node addresses rather
than to the concept numbers directly:

in the present system, the concept

number can be picked up easily, and tests and searches can be made; if,
however, the pointers were used to find the concept numbers rather thantheir core addresses, the item would first have to be looked up in the
key tree before tests or searches could be performed.
isiote that no items are ever physically deleted, but rather marked
and later skipped by the lookup programs. In this manner the various
linked lists are never broken, an option is available to write onto anintermediate tape card images of input cards (see Part 3 of this section)
for the hierarchical structure in core, and later to generate an undated
hierarchy. This option is used to eliminate inefficiencies in terms oftime and space arising from large numbers of deletions or reattachments.
The following illustration should help to illuminate the above
discussion of the key list. Suppose the only concept numbers in thehierarchy are (in octal) 0012, 1121, 1134, and 1136, and that the nodes
corresponding to these are located respectively at (octal) 00001, 00004-,
00007, and 00012.

3*

The key tree would then appear as shown in Fig. 1.

Instructions for Using Subroutine GEORGE
Before giving examples of the main structure of the hierarchy, thepresent section specifies the necessary instructions for using subroutine

V-7
GEORGE, the supervisory program for hierarchy update and setup. The
various available options are described in detail.
GEORGE assumes that the input tape containing the hierarchy iscorrectly positioned on A6. It is further assumed that the output tape(i.e., the tape onto which the hierarchy is to be written) is correctly
positioned on B5. An end-of-file mark is written on B5 after the lastword of the hierarchy.
Input cards to GEORGE have the following format:
il - 6,

7 - 1 0 , 1 1 , 12 - 15, 16, 17 - 20, 2 1 , 22 - 2 5 , 26,,

FLAG

NSOK

9

NPOP

NR(1)

>

NR(2)

where FLAG is a six-character alphabetic flag and NSQN,NF0P,NR(l),1= 1,«..,12
are right-justified decimal integers. The list HSDN,NP0P,NR(1) ,NR(2), . •.
terminates at the first zero or blank field.

Any nonnumeric punch(including "+" or "-") in the numeric fields causes the card to be ignoredand printed off-line v/ith a message.
Note that GEORGE, in general, reads in all the input cards andstores the processing requests in the form of so-called "request vectors"
before commencing any processing (except of DELETE cards)•

See, however,the definition of the BYPASS card below.
If
FLAG = INSERT, NSON is inserted as the son of liPOP with
MR(!),..• as cross references if they are present;

V-8
FLAG = TOPMAN, NSON is inserted with no parent and with
NPOP,NR(l),... as cross references if they are present;
FLAG = REFERS, NPOP,NR(l), ... are inserted as cross references
to NSON;FLAG = OUTREF, NP0P,NR(1),. .. are deleted from the crossreference list of NSON;FLAG = DELETE, NSON is deleted from the hierarchy (its children,
if any, are reattached with its old parent as their parent if it had aparent and are left with no parent otherwise•)
FLAG = ATTACH, NSON is removed from its current position in thehierarchy and reattached along with all its children, cross references,
etc., as the child of NPOP, or if NPOP is blank or zero with no new parent;
note that ATTACH cards are processed after INSERT cards;
FLAG = BYPASS, the hierarchy request vectors up to this point areprocessed, and the remaining cards in the input deck are then processed;
FLAG = FINISH, the hierarchy request vectors are processed andinput ceases. If, further, NSON = 2, a listing of the hierarchy is
produced.

If NSON = 1, a listing is produced and the hierarchy isrewritten in "tightened" form.
If the first card of the input deck or, for that matter, the firstcard after a BYPASS card (though in this case the purpose is ill-defined)
contains merely FLAG = TAPE, the hierarchy is read in from tape (A6) beforeV-9
updating commences. Otherwise, the hierarchy is written entirely fromcards (in which case GEORGE does not require that A6 be mounted).
Note that the structure, as far as it has been set up, is -written
out on B5 'whether or not GEORGE thinks that dangerous errors have been
made.

Thus, in some cases it might be desirable to correct the errors by

updating the new (incorrect or incomplete) tape rather than by attempting
to update again the tape originally on A6. This procedure should be
followed only by a person who is acquainted with the hierarchy programs
and is thus familiar with the structure written onto B5-(Alternatively,

this tape might be listed by submitting as an input deck the two cards
TAPE and FINISH0002.)

4.. Hierarchy Setup and Update Processing Examples
The present part describes some typical examples excluding,however, any cross-reference processing which is quite straightforward.
If GEORGE is first given the following input deck

T0PMAN0001
INSERT0002,0001
INSERT0003,0001
INSERT0007,0002
INSERT0008,0002
INSERT0010,0003
IMSERT0011,0003
INSERT0004,0001,
a hierarchical structure Is then generated as shown in Fig* 2.

V-10

>.3

S\ /A
/A

>U

10—>11
Example of Hierarchy Structure
Figure 2

Suppose now that the card INSERT0009,0003 is processed. The procedure used by subroutine CONU to insert the new concept number in thehierarchy is then as follows: three core cells are set aside for concept
number 9- Concept number 3 is then looked up and the location of its son
is saved. This son pointer is then replaced by the location just set aside
for 9, and the address of the old son, now the brother of node 9, isinserted in the "BRUB" location of 9. The hierarcical structure of Fig. 3
then results.

i—^Ac-* u-> 8

9 —^10—>11

Hierarchy Structure of Fig. 2
After Processing Insertion Request
Figure 3

V-ll

Assume now that the card processed next is as follows: DELETE0003,
Then, the structure generated is that of Fig. I4.. The box in Fig, hrepresents the deleted item which merely serves as a pointer, and k now

Hierarchy Structure of Fig. 3
After Processing Deletion Request
Figure kpoints to 9 as its brother (rather than being flagged S= - as before)

Similarly, given the hierarchical structure of Fig. 2 and the
input card ATTACH0003,0002, the structure of Fig. 5 is then generated.
The box in Fig. 5 again represents a deleted item, this time the core

Hierarchy Structure of Fig. 3
After Processing Attach Request
Figure 5V-12location where 3 was previously located; this location now points to (thenew) 3 as its parent so that 9, 10, and 11 still exhibit the correctparent. The location now marked 3 is a physically new node. It is the
only node which must be newly created in order to effect this change.

5. Description of Programs for Setting Up and Updating the Hierarchy
Subroutine GEORGIL (cf. Flowcharts 2 through U explaining various
sections of this program) is the supervisory program for updating thehierarchy.

It accepts and processes the control cards described in Part 3.

and provides fairly comprehensive diagnostic information about illegal
information and inconsistencies in the input cards. In conjunction withSPLASH, options are provided for producing a listing of the hierarchy andfor rewriting the hierarchy in "tightened" form (cf. the discussion ofdeletions and reattachments in Parts 2 and U)•
In order to avoid restrictive conditions regarding the orderingof the input cards, GEORGE has been coded so as to read all input cards
before attempting to process any; the single exception to this rule is that
deletion requests are processed immediately as they are encountered.

(This

exception is made because it is assumed that, during a given update run,an item might be deleted and then reinserted elsewhere, but the opposite
procedure should never be attempted.)
GEORGE keeps one or two integer request vectors for each type ofrequest (see Appendix A, Table 1 for symbol-definitions of specifics).
After all cards for a given run or segment of a run, as indicated by a

V-13
FINISH or BYPASS card, have been read, the processing of these vectors
commences. During the processing, GEORGE calls a large number of FAP-coded
programs which perform "atomic" operations on the hierarchy. The names
and calling sequences of these programs appear below. Note that all ofthese programs return with the argument NTEST equal to zero if and only ifthey have been able to complete their specified functions successfully*
CONU(NPOP,NSON,NTEST) inserts NSON as the son of NFOP. If NPOP is
not in the hierarchy, NTEST is positive on return. If NSON was already inthe hierarchy, NTEST is negative on return.
EPON(NSON,NTEST) inserts NSON in the hierarchy with no parent.
NTEST is positive on return if NSON was already in the hierarchy,
CHANGE(NSON,NPOP,NTEST) detaches NSON from its old parent (if it
had one) and reattaches it as the son of NPOP. If NPOP - 0, NSON is left
without a parent. 0 n return, NTEST is positive if NSON is not in thehierarchy and is negative if NPOP is nonzero and is not in the hierarchy.
DELETE(NSON,NTEST) deletes NSON from the hierarchy; if NSON has any
children they are attached as children of the parent of NSON if it had one;
if it had no parent they are left without a parent. NTEST
positive if NSON

on return, is

was not in the hierarchy.

REFER(NAME,NCRS,NTEST) enters NCRS as a cross reference to NAME.
On return, NTEST is positive if NCRS is not in the hierarchy and is negative
if NAME is not in the hierarchy. No test is made to determine whether
NTEST is already in the cross-reference list of NAME; if it is, and is thenentered a second time, false weights will be generated in expansions during
the lookup programs (cf* Part 6 ) .

V-14
STILL(DUMMY,NCRS,NTEST) enters NGRS as a cross reference to thelast item to which a reference was previously added by REFER (or by STILL).
If none had been added previously, the result of calling STILL is undefined.
The sequence
CALL REFER (NA,NB,M)
CALL STILL (DUMMY,NC,M)

should be used in preference to
CALL REFER (NA,NB,M)
CALL REFER (NA,NC,M)
because IMA is not looked up a second time (with FIND) by STILL. All othercomments applying to REFER apply also to STILuROUT(NAME,NR,NTEST) removes NR from the cross-reference list of
NAME. On return NTEST = 1 if NAME is not in the hierarchy; NTEST = 2 if
not in the hierarchy; and NTEST is negative if NR is in the hierarchy but
is not in the cross-reference list of NAME.
SR0UT(DUMMY,NT,NTEST) acts with respect to ROUT in the same manneras STILL does with respect to REFER*
The algorithm used in connection with CONU may be of interest. The
requests for insertions are stored in vectors NDAD,NB0Y.

In order to avoid

specifying a given order among the input cards, the following method is
employed:a pass is made through the vectors NDAD,NB0Y and an attempt ismade to effect each insertion in turn* those successfully handled are marked
and a count is kept.

GEORGE then continues to scan the vectors until thev-15
count of successes for a complete pass is zero (on each successive pass,items previously entered are ignored).

If any concept numbers still havenot been entered, diagnostic information is printed out.

This is alsodone for any concepts found to be already in the hierarchy•(In this casesubroutine XPOP finds the number of its parent if any, and this number is
included in the diagnostic.) See Flowchart h for a more detailed descriptionof this process.^
After setting up the hierarchy, depending on the FINISH card,
SPLASH may be called either to produce a listing or to list and also leavecard images of input cards on logical tape 80

There are no DELETE, ATTACH,or OUTREF requests among these data. After control is returned to GEORGE,
NTAPE is set to 8, the hierarchy is erased and reinitialized (by subroutine
WENT) and processing is recommended.
When the hierarchy is eventually written on tape, subroutine TAPEU
is called which in turn calls HOUT, a routine used to write the hierarchy,
including also a code record giving length and location, onto tape B^.
Read-in of the hierarchy is performed by subroutine HIER (called in the
update link by INPUT and in the lookup link by FOREST).

If read-in is tobe performed a location other than that from which the hierarchy waspreviously read out, the various pointers in the hierarchy must be relocatedXSCHON is a Fortran integer which sets the sign bit and bit one of its
argument equal to 1. XTHENF(N) is zero if and only if bit one of N is one.
(The items which could not be entered because they were already included
are set negative, so as to be ignored on the next pass, and are also
flagged so that the appropriate diagnostic information can be written out
later.)

V-16
by HIKR.

(It would have been possible to specify that the hierarchy

should always be read into the same core locations; this would, however,
have impaired the flexibility of the various component subprograms.)
It should be noted that GEORGE keeps count of a number of errors
considered dangerous during setup, and if this count (called NF) is
positive the program turns on Sense Light 1 before returning. The main
program in the update link of SMART interprets this as a signal of failure
and writes out an appropriate message.

6.

The Hierarchy Lookup Programs
The second main set of programs includes those which expand(request) vectors of concept numbers. These routines are called (by theroutine TREES in link 1) with a sequence such as CALL NAME (NUMS,NWTS,N,NF),
where NUMS is an N-vector of distinct, nonzero concept numbers, and NWTS isan N-vector containing in position I the integer weight associated with
NUMS(l).

NF = 1 if each item in NUMS is to be replaced by its expansion;

NF = 2 if each (expanded) item is to be added to the original in NUMS. Note
that, if the expansion of an item is null, the Item will be left in the
output vector even if NF = 1*
On return, NUMS, NWTS, and N specify the same type of information
where NUMS is now the vector of expansions. NUMS is compressed in the sensethat if a concept number appears in the expansion of more than one item of
the input vector, it still appears only once in the output vector, the corresponding weights being added•

Thus, on return, NWTS(l) is equal to the sumof the input weights of all the items in whose expansion NUMS(l) occurs.

V-17
CLIMB
If name is /CHILD
FILIALeach item in NUMS
is replaced by or J
added to its

parentchildrenbrothers
cross references

CROSS

For example, if the hierarchy appears as in Fig. 3 and CALLFILIAL(NAMES,NWTS,N,NF) is executed with NF = 2, N = 3, andNAMES(l) = 1

NWTS(l) = 1

NAMES(2) = 9

NWTS(2) = 1

NAMES(3) - 10

NWTS(3) = 1;

then, on return, N - h and
NAMES(l) = 1

NWTS(l) = 1

NAMES(2) * 9N¥TS(2) « 2

NAMES(3) « 10
NAMES (h) = 11

NWTS(3) = 2
NWTS(ij) = 2.

As in the setup link there exist, in the hierarchy lookup link,
FORTRAN-coded "bookkeeping" programs which call additional "atomic" FAP
programs.
CLIMB calls a (function type) subprograms, XDADF(NSON) which returns
with the concept number of the parent of NSON if NSON is in the hierarchyand has a parent, and with zero otherwise. The coding of CLIMB is indicated in Flowchart 5. NCON,NFREQ are (integer) vectors used by generated
expansions and associated weights before they are condensed. MARC is a
subprogram which condenses NCON,NFREQ so that each concept number occurs
only once in NCON.

V-18
CHILD, FILIAL, and CROSS are similar programs, except that a FAP-codedsupervisory program (cards labeled NFUDGE) arranges matters so that different
FAP subroutines labeled KID, BRUB, and CRS, respectively, are called. Eachof these latter is called with a sequence like CALL ME(NH,NCON(l),K) andinserts the expansion of NH in the vector NCON in positions NCON(l) throughNCON(l+K-l), where K (on return) represents the number of concept numbersin the expansion of NH. None of these routines returns NH as part of its
own expansion, thereby permitting the bookkeeping program conditional on
the value of NF to decide whether NH is to be Included in the output vectorCHILD, FILIAL, and CROSS all call MARC, except that CHILD does not
If NF = 1 (since distinct parents have disjoint sets of sons).
Flowchart 6 describes the coding of CHILD, FILIAL, or CROSS; NCON,NFREQ here serve the same function as in CLIMB.
As an example of (a fairly simple) lookup procedure, Flowchart 7
describes the coding of XDAD • The argument is found by the subroutine in
the accumulator (Ace), and the value is returned there. Again, C(X) refers
to the contents of location X and Y, refers to bits a through b of Y.

V-19
APPENDIX A
Definition

SymbolFLAG

the six-character alphabetic flag read in from the input cardNAME

a vector containing in position N the element to "which the Nthitem in the vector NCRS must be added as a cross reference

NAT

the length of the vectors NCH and NEW

NBOI

a vector containing in the Nth position the Nth item to be attempted
to be entered into the hierarchy (it will be added as the son of the
Nth item in NDAD)

NCH

a vector containing in the Nth position the Nth item to be moved(cf. ATTACH option)

NCRS

see definition of NAME

NDAD

see definition of NBOI

NDL

the length of the vector NGUT

NEW

a vector containing in the Nth position the item to which the Nthitem in NCH is to be moved

NF

the number of so-called "dangerous" errors

NINS

the length of the vector NBOY

NOR

the length of the vector NROUT

NGUT

a vector which contains in the Nth position the Nth item to beinserted without a parent (cf. TOPMAN option)NPL

a vector which contains in the Nth position the item from which the Nthitem in the vector NROUT should be deleted as a cross reference

NPOP

the second integer read in from the input cardNR

a vector of length twelve, the third through fourteenth integers to
be read in from the input card

NREF

the length of NCRS

NROUT

see definition of NPL

NSON

the first integer read in from the input card

NTAPE

the number of the input tape (either logical 5 or 8)

NTEST

a variable used by the various FAP routines to indicate to GEORGE
whether or not they have been able to perform their intended task
Definition of Symbols in Subroutine GEORGETABLE 1

20

N NOT FOUND,RETURN

f"
T

,*

I "*

• 1-1

J—[c(J)]3„l7

RETURN; ITEMWAS DELETED"£_J — [c(J)] 3 . l 7
RETURN, J HAS LOCATION
OF N IN HIERARCHY

Subroutine NFIND, Looks up Concept Number (M)i n Key Tree and Returns L o c a t i o n of H i e r a r c h y Node
Flowchart 1

V-21

NTAPE*— S
CALL

WENT

1
SET COUNTS TO ZEROINITIALIZE SWITCHESCHART 3I

IF BYPASS SET SWITCH a\ FOR RERUNIF NSON*0
SET SWITCH cr2 TO CALL SPLASHTOPMANX

REQUESTSCHART 4

PROCESS ALL OTHER
REQUEST VECTORSCALL SPLASH (NSON)

NTAPE*-8

IF NF>-I TURN ON SENSE LIGHT 1°"l

CALL TAPE u

RETURN

Block Diagram of Subroutine GEORGE; (Processing of Request
Vectors Other Than Insertion Requests is Straightforward
and is, Therefore Mot Included)
Flowchart 2

22

SET SWITCHES 5 Q
GO TO CHA8T 4(CALL CLETEINSON. NTESTj)I

WRITE DIAGNOSTIC IF ANY(*• SEE IF NTEST-O)
AMoch

NINS*—NINS • 1
NDOD(NINS)*—NPOPNBOY (NINS)NSON-L

NOL—NOLNOUT(NDL) « — NStyN

NAT • - N A T * I
WCH (NAT)••-—NSONNEW (NAT) ••— NPOP
NREF * — NREF • I
NAME(NREF) -—NSON
NCRS(NREF)-—NPOP

NREF •*— NREF • !
NAME(NREF) +— NSONNCRS(NREF) —"NR(J>NOR •— NOR • I
NROUTINDR)—NPOP
NPL (NOR)*-NSON
J -•— I

NOR — N O R M
NROUT(NOR)-»-NR(J)NPL(NOR) -—NSON

J *— Jt I

Setup of Request Vectors in Hierarchy Update Program
Flowchart 3

V-23

.^,
Q

*~"
1
*—* 1

<
Q
Z

LL

"" O
• <

T
o

5 z
2 ^
»> i • Li

J

zl

•—1

u

| NDA

\\H
A\\

"XSC

/ h?\ V
NTES

/d\

Z

1

s Q~
<
o
z

if

3
S

I
-P
CO

a)

ft!

•P

o

&
o

•H
-P
JH

0)

CO

O

CO
CO
CD

a

V-2U

IPI "

0
1

r\

XOADFINUMS(I))

NC •*-IP * - IP f t
NC<$/NUPHNC
NFREQUP)-*—NWTS(l)IP *NCON(IP)*NFREQUP)

IP+1
NUMS(I)- NWTS(I)

1 *
I

*

\ t

1

ii
*
IND -•— IP-f- I
NCtyN(IND)-*— NUMS(I)NFREQ(INO) *— NWTS(I)<; IN > <MOVE NCON, NFREO into
NUMS, NWTSresp.
N

I IP
ReturnSubroutine CLIMB (NUMS,NWT3,N,NF)
Flowchart £

4

7771
<i

v-25
Enter
\
K •*

11

1

ll

•*

1+ 1

I

}<

I

CALL PROG(NUMS(I), NCON (K), MM, NF)

1

1

£

J *•— J + I

NC0N(M + I)-«—NUMS(I)NFREQ(M+I)-»—NWTS(I)- v i[ : L ^ >NFREQ(K+J-D—NWTS(I)

I ^
I "

1+1

1
M*-M+L

Call MARC(M)(Unless NF = I And PROG = KID)
Move Vectors
NCON, NFREQInfo
NUMS, NWTSResp.

I

L -— M

NCON(K)NFREQ(K)K •NUMS(I)
NWTS(I)- K+1

ReturnF l o w c h a r t of CHILD, FILIAL or CROSS;PROG i s KID, DRUB or CRS, R e s p e c t i v e l y
Flowchart 6

V-26

N •*—Ace
3!

CALL NFIND(N),Core Address Of N's Node--*-J

Acc-[C(J)] 3 _ 17 ]\i'

ReturnSubroutine XDAD
Flowchart 7