(you may click the subfile to be viewed, or scroll down)

This file contains the following subfiles:
 

11.65 - axis incompatibility and input
11.75 - types of complements
11.85 - current situation
11.92 - three avenues to analogy


(Subfile 11.65: 20-questions definition input routine)

Whenever an axis' ID number is entered into the routine that places a value in the definition of a word, a PUSS runs off and fetches elements of two lists: one list of axes that have frequently been associated with the current entry, and the other, axes that are known to be incompatible with it. This information is used to put in order the list of possible axes that is presented to the user: it never prevents the use of a rare or unlikely axis, but it speeds up the user's process of choosing axes for the definition, by reducing the amount of visual searching for relevant axes ( the list of all axes is long! )



(Subfile 11.75: Types of Definition Complements)

The first type of definition complement was introduced in the text (p.3) and is further described on p. 19 and in subfile #51.5. The second type involves the creation of incompatibility templates, either at initial input of axes, or by a crawler, after words are entered. These templates are word-type objects that indicate regions of MS that are, to an extent defined by an associated score, incompatible with axes or axis-groups. It is possible to use an "incompatibility" bomb to achieve the same end, as long as a score for the bomb could be found  from usage.

 When entered at startup, each axis (or specified axis group) will then receive a list of other axes with which it is incompatible. For this purpose the program uses the same data-structure and code as for storing the angles between all non-orthogonal pairs.

The crawler will loop through all words, and will loop through the axes present in each word.  For each axis, it will begin with a template that includes, literally, everything in MS: in this case that will mean "so far, consider this axis to be incompatible with everything". Each other axis in the word being considered, however, is (by definition) not incompatible with the axis in question, and so these other axes get removed one by one from the template for the target axis. As the entire word database is traversed, then, the templates shrink, and in the end indicate regions of meaning space that are never associated with particular axes or axis groups.

These incompatibility templates are used to limit or to score possible reply options.

The entire matrix of incompatibility information may usefully be thought of as a matrix of the type used by economists (see Wassily Leontief) to record the levels of interaction among large sets of defined sectors. In the small sample below, for example, axis #1 is recorded as being slightly incompatible with axis #2, and much more so with axis #5. (Programmers will recognize this as yet another very-large-mostly-empty array of the type so common in this project, and it is once again managed with content-addressing [to make search times low and their increase linear with the matrix size.] In such arrays there is no reason to record redundant information, such as the 'missing' entry in column 1 row 2, where a mirroring ".1"  'should' appear.)

          1       2       3       4       5

  1              .1                        .9

  2

  3      .3                                      

  4                        .7      .7     .7

  5




(Subfile 11.85: the 'Current Situation')

The "current situation" is primarily contained in the status of the two "Great Walls", which see. Every action the program can take involves a 'daemon': a subroutine that executes whenever appropriate input is available. Each daemon has an input or feature vector, as well as "lamps" & "meters" that are visible to other parts of the program. One of the indicator lamps asserts that the input vector has been filled with its required data. The collective status of all these lamps represents a compression of all situations visible to the program (see "reductionism"); further, the Purr-Puss window structure makes it possible to observe this status at any level of resolution. Being able to "see" both subsets and summaries of the entire world makes reasonable the following  requirement for the program's function:  behavior must always be generated no matter the level of novelty that exists in the environment. It's possible to immobilize a kitten by confounding its inputs; this is not possible with a two-year-old.



(Subfile11.86: context activators)



It is the case with most physical objects that their locations are not always relevant. It is also usually true that  a conversation in which a location IS important will have included some words whose definitions centrally involve placement, movement, search, etc. The appearance of such words causes the location axes to be placed in the BigBuffer (which see) . If a conversational decision has to be made (for instance, what aspect of an object to consider next) the existence of "location" axes with a low "buffer age" will activate axes related to that subject. (If multiple such areas have been activated, the program has a signal that it's time to ask a question.)
Having a low age in the registers is one way of being in the forefront for consideration.

The process of using recent events as clues for activating different parts of hypothesized ones has been widely generalized and influences all kinds of other processes. The following examples include 1) subject / focus for conversation, 2) current melodic function, and 3)level of object to use (e.g., syllable, word, phrase, sentence). In each case it is necessary to document the following: what decision has to be made, what axes would be present because of previous events, axes that would be critical for the decision, how the axes already present cause critical decision-axes to be active, and what is improved by this process, or what might happen if critical axes are NOT appropriately activated.




(1) subject and focus for conversation



In this instance we are concerned with the problem that arises when objects present in a discussion have various aspects, not all of which are relevant to the discussion as it has proceeded. The example mentioned involves "home", which might entail the construction of a house or its location within a neighborhood.



Imagine the following conversation:



    George:    My house is green.

    Computer:    The paint is green, or the house is efficient?

    George:    Well, the door facing west leaks.



At this point one could reasonably consider the view of objects to the west, or the construction of the door. This decision would depend on the direction of the previous discussion. If the topic had involved things in the surrounding area, then those things would be present in the BigBuffer; since all physical objects have location, the axes for position would have acquired a strong presence in that register (via the mechanism of a "resonance", which see).  Any process that accesses the disassembled content in the registers - and that includes most processes in the program - will have a simple and quick way to know that "facing west" is more central than "leaks".

The mechanism by which this centrality is expressed is equally simple. Each word, cluster, phrase, etc., in the actual conversation will bring up associations from the Puss-memory; such items are scored in various ways as a matter of course. One way involves the resonances found with axes present in the various ‘registers’ (the BigBuffer, Short-term-memory, running clusters, the two Great Walls, etc., all discussed elsewhere). This means that the associations with resonance to ‘location’ would end up, at the very least, with higher scores than those with resonance to ‘construction’. This might not by itself insure that only location-associated conversational tacks would be taken, but it would enhance their probability.


2) current melodic function

In this second example, the problem involves the different functions that the same note can have at different points in a melody. In Gregorian chant, each mode includes a number of pre-defined functions for specific pitches, as well as pre-defined groupings of notes that are peculiar to that mode only. For example, in the authentic form of the Dorian mode, the final, or key-note, is D, while the A, a perfect fifth above the final, is called the "dominant". This pitch serves as a central pitch for recitation of varying amounts of text. The recitation has its own motives: patterns of notes that signal, for example, the ends of phrases in the text.

When pusses learn the recitation portion of the melody, both the sequences of note-events is stored, but also, the clustering function that records the passage of motives collects those in the recitation formulae. Later, in composing, if the puss predicts that a recitation motive is to follow, the axes peculiar to that motive are placed in the BigBuffer, just as the location axes appeared in the conversational example above. The program would interpret the fact that it is currently within a recitation motive in just the same way it would operate to stay on topic in conversation. The presence of the motive in the BigBuffer inhibits associations (for the note-event being decided) that might continue a melodic idea formed in the absence of the motive; the note-event would have brought up associations, just as the words do in conversation, and the associations that resonate with the motive in the buffer receive enhanced scores. The mechanism is the same: associations that possess coordinates related to the motive are favored.

If the program were limited to short enough window lengths, this mechanism would favor the continuation of recitation formulae beyond what is stylistic. In other realms, such looping might appear stupid or neurotic.

1) The composition process brings up associations with the notes in short-term-memory,
2) the presence of axes in the registers that resonate with associations connected to recitation influence
the scoring of recitation-motive-related associations,
3) the enhancement of those scores encourages the placement of further recitation motives into output,   4) output goes into short-term-memory,
5) axes in short-term-memory automatically go into registers,
6) those axes enhance decisions about to be made.

The use of windows of sufficient length always removes the possibility of such loops. Suppose the melodic style includes a tendency to repeat motive-styles thrice (this is exactly the way J.J. Fux describes appropriate repetition of certain motive-styles in the music of Palestrina). A learning module that sees only one previous motive would ‘see’ recitation-motives being followed by other recitation-motives so often that its predictions would insure looping. A module that sees three motive-style-designators, however, would never predict a fourth, and if, as is the custom in batteries of puss-modules, the longer-window-length modules are more ‘influential’ (that is, the coefficient associated with them in scoring is larger), then such looping is appropriately inhibited.


3) level of object to use

Next we consider an example in which the program is deciding on a parameter of its own internal function, rather than some data to be used a final output (such as a decision on a word or note-event to place into the short-term memory, effectively making that output visible to the outside world.)



All sorts of objects become available as the current situation evolves – these objects are predicted as associations by the various pusses. It is necessary for there to be a way to decide what sorts of objects should be used next, and for such decision-making to be learned. (There are times when this decision is the same as deciding between top-down and bottom-up strategies.)

In this example the process of context-activation is simply the easiest way for the program to stay within one level, or for it to know that a level change is desirable. We consider the linguistic application here, so the decision that has to be made is whether processing should proceed at the syllable, word, phrase, or sentence level.

The axes that would be present because of previous events would be nothing other than these levels themselves; that is, if processing had begun at the syllable level, then the use of daemons that operate at that level would cause objects of that level to be foremost in the registers. Therefore the first choices of the program would be to retain the same level of object. When time comes to change level, the mechanism is exactly as above:

                                   
When a melody has been operating within          When the calculations for replying or reasoning
just one of its possible functions, lower level       have been operating within just one of their
objects (e.g. notes) could only be chosen            possible functions, lower level objects ( e.g., syllables)
by a puss using a marker-element                        could only be chosen by a puss using a marker-element
in the window specifying that function,              in the window specifying that function and that level;
and that level; however, a higher-level                however, a higher-level puss would see “have
puss would see “how many operations                enough operations occurred to complete
have proceeded within that function/level”.         a word?”; this level of information insures
This level of information in a window would      that the lower level operates until a learned
insure that functions, procedures, motives,           stopping point is reached; in this case the
etc., remain relevant for a period of time (or        completion of a learned word definition.
numbers of repetitions), the extent of which 
are learned.

In both cases the activation of axes associated with particular levels of functions promotes the use of those functions, and the use of those functions activates the process necessary to stop operations at a low level and move to a higher one. In the musical example, the question governing the end of the low-level processing is “have enough decisions been made to equal the number of decisions learned to be appropriate” and in the linguistic one, the parallel question is “have enough decisions been made to equal a learned word”.






(Subfile 11.92: avenues to analogy)

        First avenue

In the diagrams here, boldface words represent objects: italic things are bombs. Assume that in the clusters formed by the surrounding conversation, the subject of "texture" has come up.

Part one:

This simple sequence would come up if texture were nearby to apples in conversation:

Apple --> can-be  --> eat -->association  -->chew:  chew plus texture --> negative bomb -->very hard

Suppose, next, someone says "This apple is very hard!" and Teacher asks "Is it frozen?" The branch of STM created for the sequence above would then be terminated and a negative bomb would arise:

(x)  this apple -->can't-be --> eaten.       And yet, we know that apples can be eaten (creates a dissonance)

The sequence creates a dissonance with the original sequence's beginning: Apple --> can-be  --> eat



Part two:

Bolt --> can-be --> turned.

This is a part of the definition of "bolt". Suppose someone says

(y)  this bolt -->can't be--> turned.          And yet bolts can be turned, in general.  (creates a dissonance)

The two similar sequences (x) and (y) resonate by virtue of their identical defTrans structure. Because Teacher asked "Is it frozen" after (x), an STM branch would have been started causing Purr-Puss to store "frozen" associated with the label of the  defTrans. When (y) arrives, Purr-Puss predicts, and thus by analogy, "Is it frozen" is found by the program. This is a matter of backtracking through nearly identical STM fragments. The program has discovered that "frozen" has (at least these) two meanings; a frozen bolt is found to be related to a frozen apple.




        Second avenue

command: Move the block from the right to the left side of the pillar.

This action, commanded  by Teacher,  is assumed to be plausible. The program would store the DefTrans including the bombs below.

Block --> can be-->transfered:   association--> (transfering-->must-be-->preceeded-by-->getting)
getting-->association-->one location to another
(location frame-slots)<-- right-of-pillar, left-of-pillar

But the verb 'has' possesses  the same DefTrans as this transaction (a resonance would be sensed):

Block --> can be --> had:  association--> (having-->must-be-->preceded-by-->getting)
getting-->association-->one owner to another
(owner frame-slots)<--someone else, myself

The operation that would be necessary to make these two sequences equivalent is:  removing or opening the span on the axis (in the definition for "ownership") that involves an agent: an object without an owner still has all its other properties, including a location: location doesn't just fill a frame-terminal of the first event, it appears explicitly. Once ownership is removed, a certain PUSS called FindFields would discover the identity with the sequence about transferring.

This identity of relations would resonate powerfully and cause the program to associate transferring-physically with transferring-ownership, and therefore physical location with ownership. Thus an item can "be" mine and can "be" here. "Be" has (at least these) two meanings.

        Third Avenue

Various operations can be executed that take the form:

    a) for any  possible action (possible because Teacher has either done or reinforced it)
    b) you can open up some spans (expand some cloud, make more fuzzy, etc)
    c) then, move a value around in the newly freed-up characteristic or action or feature-vector
        (either seek an object at the new location or keep moving values around until you find one)
    d) assume or question that the action from (a) is possible with the newly found object

This sequence seems natural when the "possible" thing is an action. It is less natural to our way of thinking, but is exactly equivalent to the program, to say "possible object" or "possible sentence" or "possible idea". We just think of these things as "extant object" or "grammatical sentence" or "correct idea", rather than as "possibilities".

The initial adjustment inherent in the sequence (a)-(d) also implies an analogy between the original and the newly-found object. The construction of similar sequences using "possible" in these four ways sets up a four-way analogy (possible action, object, sentence, or idea). This analogy would be expressed as single bombs between the four items. (Or perhaps as four plus-words that can be added to the ur-form of "possible".) While it seems more complex to us, the relation between these four "possibles" would end up seeming closer to the program than the analogy set up by (a) to (d).


        Fourth Avenue  (see subfile 50.2: Transforms across realms)


.