Inheritance and Orthogonality and Truth
Computing with knowledge, we need to be able to ask whether something is true or false, or whether we don't know the answer. Truth is important for steering processing, and invoking inferences and memories. Truth motivates computation.
Brainhat's vocabulary is built of taxonomies. Every concept, except for the very top concepts, is the child of another. Some are the children of many. A toy is a thing; a ball is a toy. Inheritance is functionally broken, however, when orthogonality is detected. A blue ball is not a red toy, for example.
Just as individual concepts can be the children of others, whole CCs (complex concepts--data structures that capture knowledge) can be the children other CCs. For one CC to be the child of another, the child CC must contain the same basic parts of speech as the parent (in Brainhat parlance, we say that two CCs have the same shape). Furthermore, each of the child's constituent concepts, taken in pairwise comparison to the parent's, must be child concepts, or be the exactly the same concepts.
To take a few examples, the CC on the left is a proper child of the CC on the right. Each of the concepts in the left-hand CC is a child of each of the concepts on the right, and the two CCs have the same shape.
Root Root
o o
/|\ /|\
SUBJ / | \ OBJ SUBJ / | \ OBJ
/ | \ / | \
o | \ o | \
dog VERB o ball animal VERB o toy
| |
o o
to see to sense
The next two CCs do not have a child/parent relationship because they have different shapes. This is because links are different; OBJECT versus ATTRIBUTE. They also lack pairwise inheritance in all but the OBJECT.
Root Root
o o
/|\ /|\
SUBJ / | \ OBJ SUBJ / | \ ATTRIBUTE
/ | \ / | \
o | \ o | \
dog VERB o ball animal VERB o happy
| |
o o
to see to be
In this next comparison, the shape is the same.The corresponding concepts are identical. In fact, the CCs are identical. A concept can be a child of itself; the child/parent relationship is valid.
Root Root
o o
/|\ /|\
SUBJ / | \ OBJ SUBJ / | \ OBJ
/ | \ / | \
o | \ o | \
dog VERB o ball dog VERB o ball
| |
o o
to see to see
Next, we have two CCs that do not share a child/parent relationship because at least one of the constituent parts-of-speech is not a child of the other, even though they have the same shape.
Root Root
o o
/|\ /|\
SUBJ / | \ OBJ SUBJ / | \ OBJ
/ | \ / | \
o | \ o | \
dog VERB o ball dog VERB o ball
| |
o o
to see to eat
In this next example, the constituent concepts of "dog sees red ball" ("dog", "to see" and "ball") are all proper children of the corresponding concepts in the itinerant parent.The shape is the same, too. However, the concepts occupying the OBJECT positions are
orthogonal because they bear orthogonal ATTRIBUTEs ("red" versus "blue"). Thus, even though each of the concepts that make up the two CCs have child/parent relationships, orthogonality between the OBJECT concepts breaks the child/parent relationship between the CCs; when we test to see if the left-hand CC is a child of the right, the answer is NO.
Root Root
o o
/|\ /|\
SUBJ / | \ OBJ SUBJ / | \ OBJ
/ | \ / | \
o | \ o | \
dog VERB o ball dog VERB o toy
| | | |
o ATTRIBUTE o ATTRIBUTE
to see | to see |
o o
red blue
Reviewing all of the examples again, we ask the question:
"is the CC on the left a child of the CC on the right?"
The answers are TRUE, MAYBE, TRUE, MAYBE and FALSE, in order. "TRUE" signifies that the relationship is established; one CC is the child of another. An answer of "FALSE" means that the two are the same shape, but in opposition, due to an orthogonality. "MAYBE" means that there is insufficient shared structure to answer the question. For instance, in the second example, the CC representing 'the dog sees a ball' neither is nor isn't a child of 'the dog is happy'. Accordingly, the answer is MAYBE; the two CCs can't be compared.
Other parts of speech within CCs will affect the child/parent comparison, too. Negation, for example, in a comparison of "ball is not blue" (child) "the ball is red" (parent) will return TRUE. If we reverse them, testing to see whether "the ball is red" is a child of "ball is not blue", the answer will be MAYBE.
Tense can be attached to verbs and attributes. This also affects child/parent comparisons. Take, for example, "the ball is blue" tested as the child of "the toy was red." The answer is MAYBE because the two CCs occur in different tenses. Orthogonality really only applies when attributes are in the present tense (not strictly true; Brainhat can derive relative temporality from a narrative so that CCs in other tenses can be orthoginal; ignore for now).
>> the ball is red
the red ball is red.
>> debug eval the ball is red
the red ball is red.
"True"
>> debug eval the ball was red
the red ball was red.
"Maybe"
>> debug eval the ball is blue
the red blue ball is blue.
"False"
>> debug eval the ball is not grey
the red not grey ball is not grey.
"True"
There are a number of situations where Brainhat may ask itself "is this CC a child of that CC?" or "is this CC true?" The answer may be unknown; "is this CC true?" could return MAYBE. Given an answer of MAYBE, Brainhat will often initiate a more aggressive search for the answer in what is called "self talk." Brainhat will reformulate a question to itself (in English) and process it as if it came from the user. Self-talked input may cause inferences to fire, memories to be restored or motives to be advanced--all of which can lead to a more definitive answer to "is this CC true?"