Home  Download  Install  Demo  Programming VoiceXML Speech Interfaces Technical

Brainhat - Basic Knowledge Programming

 






Contact Us
Kevin Dowd
Brainhat
111 Founders Plaza
13th Floor
East Hartford, CT 06108
(860) 291-0851

dowd@brainhat.com
Brainhat programming centers about a collection of definitions known as the Basic Knowledge Pool. The Basic Knowledge Pool describes the words and concepts that Brainhat knows at start-up, and details their relationships to one another. The lineage that makes a ball a toy, and makes a toy a thing, for instance, can be traced back to the basic knowledge pool.

In addition to the Basic Knowledge Pool, Brainhat also depends upon propositions to motivate inference or cause-and-effect. These are not programmed into the basic knowledge pool. Instead, Brainhat learns these through English statements, once the program has bootstrapped (see Building Brainhat Scenarios). You might tell the program "if thing1 is near thing2 then thing2 is near thing1," for instance.

In addition to concept definitions, the Basic Knowledge Pool contains rules that tell Brainhat how to parse input and how to recognize ideas floating about in core. Rule definition isn't covered in this document. Fortunately, you shouldn't have to fool with parsing rules in order to create a vocabulary to match your application.

Concept definitions can be found in the data subdirectory.

 

Concept Definitions 

Concept definitions can appear in any order. One definition ends and another begins whenever Brainhat encounters a define statement. The name given to the definition must be unique. By convention, I have been cardinally ordering different definitions of the same word, e.g. ball-1, ball-2, etc., where the first might describe a toy, the second a grand social event.

 

define   ball-1
         label           ball
         child           toy-1
	 wants           color-1
	 wants           size-1
         typically       round-1

The block above shows some of the basic elements of a concept definition. Statements subsequent to define can appear in any order. Tab characters position the columns. Most other characters count, so when defining concepts, take care to avoid trailing blanks.

 

 

label

 

Concepts can have one or more labels, each representing a synonym for the concept. The labels can be from one to three words long.

 

define   ball-1
         label         ball
         child         toy-1
         wants         color-1
         wants         size-1
         typically     round-1

The definition above shows the use of a wants tag. As with child tags, the rightmost field lists a concept name, not a label.

 

 

typically

 

Like a wants tag, a typically flag specifies a feature of the object being defined. The difference is that satisfying a typically flag scores lower than satisfying a wants tag.

 

 

orthogonal

 

Two concepts are "orthogonal" when they cannot exist together. If you require that something cannot be both red and blue at the same, for instance, then you can declare concepts "red" and "blue" to be orthogonal with respect to "color."

 

define   blue-1
         label         blue
         child         color-1
         orthogonal    color-1

define   red-1
         label         red
         child         color-1
         orthogonal    color-1

define   pink-1
         label         pink
         child         red-1
         orthogonal    color-1

Any concept can serve as the basis for the orthogonality of others. And a given concept can be orthogonal along many axes--color, size, whatever. Note too that orthogonality takes lineage into account. You may say, for example, say that children of red-1, such as pink-1, are orthogonal to color-1, just as red-1 is. But this will not imply that pink-1 is orthogonal to red-1.

 

 

related

 

A related tag helps Brainhat score a concept against other related concepts already committed to the context buffer. An example probably explains this best:

 

define   fun-1
         label          fun
         child          things
         related        happy-1

A previous reference to a "happy" in the context buffer will help the above definition of "fun" score favorably. Note that related tag is different than the wants and typically tags we looked at previously: the concept nominated by a related tag does not need to appear in direct combination "fun." Rather, "fun" would have to be part of the on-going context.

 

 

tense

 

The tense tag is primarily for use with verbs and auxiliary verbs ("enablers") (can, will, does, did). Possible values include past, present, future imperfect, and so-on).

 

 

number

 

The number tag is commonly used with verbs and nouns. Possible values include single and plural. Other possibilities will follow as Brainhat grows up.

 

 

person

 

Used primarily with verbs, the person tag can take the values first, second and third.

 

Definition Guidelines

Definitions for a few types of speech should follow conventions spelled out in this section. This will allow Brainhat relate specific forms back to more general forms.

 

 

verbs

 

All verbs must be able to trace their lineage back to action. This means that, by following child links, you should be able to find action as an ancestor.

Verbs should be organized so that the infinitive form is a parent to all of subordinate forms, as in this set of definitions:

 

define   tosee-1
         label       to see
         child       sense-1

define   see-1
         label       see
         child       tosee-1
         number      plural
         tense       present
         person      third

define   sees-1
         label       sees
         tense       present
         person      third
         number      single
         child       tosee-1

define   saw-1
         label       saw
         child       tosee-1
         number      single
         tense       past
         person      third

There is no requirement that any of the subordinate forms be present. However, at a minimum, it is good idea that you define the infinitive and the third-person-present forms. Notice how the forms are linked together; the subordinate froms are children of the inifinitive.

 

 

nouns

 

All nouns must be able to trace their lineage back to things. This means that, by following child links, you should be able to find things as an ancestor.

Single and plural forms of nouns may be linked such that Brainhat understands their relationship to each other

 

define   spider-1
         label      spider
         number     single
         child      spiders-1

define   spiders-1
         label      spiders
         number     plural
         child      insect-1

Above we see how spider is related to spiders; the former is the child of the latter.

 

prepositions

 

All prepositions must be able to trace their lineage back to prepositions. This means that, by following child links, you should be able to find preposition as an ancestor.
 

attributes

 

All attributes must be able to trace their lineage back to attribute-1. This means that, by following child links, you should be able to find attribute-1 as an ancestor.

 

articles

 

All articles must be able to trace their lineage back to article. This means that, by following child links, you should be able to find article as an ancestor.






 
©2001 Brainhat, Inc. All rights reserved.