Notes on "The Teachable Language Comprehender: A Simulation Program and Theory of Language" by M. Ross Quillian (1969)

---

"TLC is in the development stage, and so far it only works on certain isolated phrases and sentences."

---

'"Comprehending" text is here defined as the relating of assertions made or implied in that text to information previously stored as part of the comprehender's general "knowledge of the world." Correspondingly, the central aim of TLC is the ability to appropriately relate text to the correct pieces of stored general knowledge of the world. We assume that this is the basic process involved not only in the comprehension of language but also in a great many other perceptual and cognitive functions.'

---

"it [the memory format] amounts essentially to a highly interconnected network of nodes and relations between nodes."

i.e., a graph

---

Figure 1:

One recalls an American President who was once involved in an incident in which he completely severed the main trunk of a small fruit tree. He reported his action to his father.

Most readers will recognize at some point as they read this that the earlier President mentioned is Washington, the incident being the one in which he cut down his father's cherry tree. Unless the text is related to this fact in the reader's memory, the paragraph has not been very well comprehended. Notice that native speakers can establish this relationship even though they may not have heard or thought about the cherry tree story for ten or more years, and despite the fact that the language in which the incident is described above is almost certainly different in terminology, in syntax, and in surrounding context, from any language in which they have ever heard (or thought about) the story before. What the reader must have, then, as he reads the text above, is an extremely versatile ability to recognize the appropriate chunk of memory information from among literally thousands of others he may since have learned about "Presidents," about "fruit trees," and about "fathers." Most of the following is an effort to describe how TLC attempts to develop such an ability. As part of this description, we first describe the memory and then trace TLC's processing of the example in Figure 1 in some detail.

Sounds like a Jeopardy problem, so IBM's Watson seems to have solved this problem for the general case...(although I can't submit this passage to Watson to test it, since the available Watson demo only allows you to play against it with "questions in the form of answer" supplied by the web site, not by the user).

---

Our plan is to begin with, say, twenty different children's books dealing with firemen and have TLC read all of these under supervision of the monitor. We anticipate that although the program will require a great deal of input by the monitor as it reads the first book, it will tend to require less and less on successive books as it accumulates knowledge and form tests pertinent to the comprehension of such material. Thus the hope is that by the twentieth book TLC will be requiring very little aid, and that, over a long (but finite) period of general reading, the monitor (teacher) will become completely unnecessary, at least within given subject matter areas. Reasons for expecting this are brought together in Section 3.4 below. However, to date no serious attempt has been made to actually amass either factual data or form tests in this way, since almost all our effort has been concerned with developing the executive TLC program. Our method so far has been simply to give TLC sample inputs and memory structures, attempting to devise eounterexample cases to its successful performances.

I wish they had implemented this plan, and provided examples from the children's books, instead of the contrived examples they did come up with ("lawyer's client", etc.). Time now to move beyond the "development" stage they reached!

---

Next, suppose that as a routine proceeds with such a trace it places an "activation tag" on every unit it passes through. This activation tag names the initial starting concept which led (however indirectly) to all the units reached and tagged.

Now, suppose that this process is initially given more than one initial starting unit. Its tracing now proceeds breadth-first through all these concepts at once, moving one level deeper into each of them on each pass. Thus it simultaneously traces out a separate "fan" for each initially given unit. The processor places an activation tag on each unit it reaches, identifying the particular fan it is a part of by naming the initial unit at the fan's head. Moreover, this process now checks every unit it tags to see if the unit has already been reached during prior tracing emanating from some other initial unit. This is easily determined, since any such unit will have a tag showing it has already been reached, indicating its initial unit(s). Whenever such a previously tagged unit is found, it constitutes an ingredient common to these two initial units, an "intersection."

This seems to be describing something like a graph. You can use graph-traversal algorithms and shortest-path algorithms to find chains leading from one vertex to another. For intersections, I think you can trace back from a vertex reached from one starting point, to other starting points. I have tried to do something like the latter in the adviceagent (http://subbot.org/adviceagent):

> John likes Notes from the Underground.
> Mary likes Notes from the Underground and Ulysses.
> What else might John like?
Ulysses
> print graph
John likes Notes from the Underground
Mary likes Notes from the Underground
Mary likes Ulysses

So: "Notes from the Underground" represents an intersection between John and Mary. When asked "what else might John like?", the bot finds the intersection, finds the starting point of the alternate path to the intersection, and does some more processing with that starting point (asking "what does Mary like", and filtering the response by what John already likes) to answer the question.

---