There are many things the current version of Babble can
not understand, and even more that it is capable of understanding,
but has not been taught. The best way to get a sense of what
things Babble might have trouble understanding is to list the
reasons that Babble might not understand a statement. These
fall into three categories, which are listed below
- Babble is not familiar with one or more words being used.
- Babble is not familiar with the syntax being used.
- Babble can not represent the underlying meaning of the
sentence.
In addition to the reasons above, there are several more
reasons why Babble may not give the desired response to a
question or command:
- Babble does not possess sufficient information to answer
the question.
- Babble has the information it, but does not know how to
reason out the answer.
- Babble is unable to perform the requested command.
Lets address each of these in turn.
- Babble is not familiar with one or more words being
used.
This happens fairly often, but does not prevent Babble
from understanding the statement, if one is willing to train
it. When you use a word that is in Babble’s dictionary,
but that Babble has not encountered before in actual use,
Babble asks for information about the word. As Babble experiences
more words, it will rarely need to ask.
Babble can add new words to its dictionary, although at the
moment, words are restricted to a sequence of letters. That
is why Babble can’t deal with contractions, hyphenated words,
digits, etc. In addition, Babble can not currently understand
multi-word concepts or idioms, where the meaning of the phrase
does not derive from the individual words. These will also
eventually be handled as dictionary entries. We hope to make
these enhancements to Babble's dictionary related functions
in the next several months.
- Babble is not familiar with the syntax being used.
Syntax rules guide Babble in converting patterns of words
into tridbits representing their meaning. Sometimes Babble
does not find a set of syntax rules it can apply to a sentence
so that it makes sense. Generally it responds to this situation
by stating "I’m confused".
It’s quite possible that the sentence truly doesn’t make
sense. But at this stage of development, its more likely
that Babble has encountered a syntax pattern that it has
not yet learned. Often one can come up with an alternative
way of phrasing the sentence to express the same meaning.
For example, Babble’s syntax rules do not currently tell
it how to generate tridbits from a "with" clause.
So Babble will be confused by the first sentence below,
but could understand the second:
I dug with a shovel.
I dug using a shovel.
It is not difficult to teach Babble new syntax rules. It
would take just a few minutes to train Babble to understand
the "with" clause used above and may well be done
by the time you read this. To teach Babble a new syntax
rule, you must use its native interface. You highlight the
trigger pattern that occurs during Babble’s processing of
the sentence. You then show Babble how the information in
the pattern is used to map it into one or more tridbits.
In a way, this is kind of like how humans try to convey
meaning to someone who doesn’t understand their language.
They use an alternative method, i.e. gestures or illustrations,
to convey the information as they enunciate the appropriate
pattern of words. Eventually through pairings of words and
information, the listener learns how and in what context
the patterns of the new language are used to represent meaning.
Thus, Babble is able to learn the syntax rules it needs as
it encounters new language experiences. The system for processing
syntax rules has been enhanced several times and is quite
good at detecting the patterns of interest within sequences
of words. At this time however, it can not back track all
the way to reversing its choice of word use. Interestingly,
this has not been much of a priority because Babble has understood
what its been told thus far quite well without it. There are
at least three reasons for this. First, Babble can make extremely
good guesses about the word use by using the context of the
surrounding words. If it’s wrong, it can be corrected. Second,
Babble distinguishes word use into fewer categories than the
traditional part of speech. For example the word "wood"
only has one common word use for Babble, a noun representing
the fibrous material obtained from trees. Even in the phrase
"the wood desk" wood is treated as a noun by Babble.
Without as many choices, Babble has a better chance to choose
correctly. Third, Babble’s working vocabulary is still small.
In other words it’s only a matter of time before a golfer
tells Babble, "Tiger used the wood for the shot"
and Babbles first choice for the word "wood" would
not be the best. Of course, by the time Babble’s reasoning
abilities are good enough to figure that out, reversing its
choice of word use would be a simple matter by comparison.
In any case, Babble’s syntax processing system will need to
be enhanced to allow for word use reversal.
Eventually Babble may encounter expressions that require
other syntax system enhancements. Nonetheless, there is
little reason to suspect that it would not be possible to
extend the system to process any syntactical pattern that
is used in natural language. The real challenge and driving
force has been the tridbit structures that result from the
syntax rules being processed. Once those were worked out,
the mapping to these structures fell into place using sophisticated,
but not extraordinary parsing, pattern representation and
interpretation.
These first two reasons are the most common reasons for
Babble not understanding a sentence. But they are easily
remedied, most often by having the person interacting with
Babble teach it the new word or syntax pattern. As Babble’s
exposure to language increases, the likelihood of encountering
a word or syntax pattern it hasn’t learned will decrease,
until it becomes quite unlikely.
- Babble can not represent the underlying meaning of
the sentence.
Unlike the first two reasons, reason number three, if it
could not be resolved, would be a show stopper. It would provide
a counter example to the premise that tridbits can represent
any information expressed via natural language.
The tridbit model has certainly evolved and expanded as broader
types of speech examples were considered. The current model
is pretty well worked out and has been able to represent the
meaning of a broad range of speech examples. Babble will likely
run into a few more speech behaviors that will test the ability
of tridbits to represent meaning, and perhaps necessitate
some further adjustments. However, it seems unlikely at this
point that it will run into speech behavior whose meaning
can not be represented at all.
This is a good point to ask the philosophical question of
whether meaning is really equivalent to stored information.
In other words, do we loose something by extracting information
from the meaning of human speech and storing it as tridbits?
I believe there are branches of mathematics that deal with
the equivalency of different systems of representation. But
here we are comparing a digital knowledge representation system,
with a human one. Though we are intimately familiar with expressing
meaning using our human system, on another level we are quite
ignorant of how it actually works.
Rather than get bogged down in this murky territory, I have
used a very practical approach to determining if a representation
captures the meaning of a speech example. A knowledge representation
is assumed to capture the meaning of a speech example, if
a system using that knowledge representation can provide equivalent
answers to inquiries about the speech as would a native speaker.
This is the standard used in developing tridbit technology.
By this definition, it is hard to conceive of a speech example
that could not be represented using tridbits. It is probably
necessary to read the white paper and understand the details
and mechanisms entailed in tridbit technology to convince
oneself of this.
It is also only fair to mention that the mechanisms for representing
several important concepts are worked out in the white paper,
but not yet implemented. The most fundamental of these are
truth, certainty and comparisons. Thus Babble can’t currently
understand assertions that are not true and certain, for example,
"Susan will probably not run." Nor can Babble currently
understand information that compares, rather than asserts
attributes, such as "Nanda is louder than Merl,"
although it already knows that Nanda is loud and Merl is quiet.
These abilities should be implemented in the very near future.
- Babble does not possess sufficient information to answer
the question.
When you ask Babble a question, such as, What color are cherries,
it is quite possible that Babble may simply not have the information
in its knowledge base to answer. In this case it will respond
with "I don’t know".
At the moment, Babble has a fairly limited knowledge base.
It knows state capitals, a few colors, fruits, flowers and
animals, but not much else. It adds to this knowledge base
by being told things, such as "Cherries are red"
and then given the go ahead to remember the information it
was told. The last step is required because while Babble is
being developed, it is not desirable for it to store all the
odd test cases and not fully debugged results. If Babble is
not told to remember something, it will know the information
only during the current conversation. So once Babble is told
"Cherries are red," it can answer the question "What
color are cherries?"
There is a lot of world knowledge Babble will need to learn.
We hope to train it both by having it interact with people,
such as playing the give me a clue game, and also by inputting
information from textual sources.
- Babble has sufficient information, but does not know
how to reason out the answer.
If Babble knows, "Anne is the mother of Maurice,"
it will be able to answer, "Who is the child of Anne?"
Babble did not have the information about Anne’s children
stored directly, but was able to reason out the answer because
it understands how the concepts of mother and child are related.
If we similarly tell Babble, "Mitch is the father of
Maurice," it will not be able to answer "Who is
the child of Mitch?" because it does not know
how father and child are related.
We can teach Babble the relationship between father and child,
which is stored in an assert attribute tridbit, that relates
a condition, in this case X being the father of Y with a result,
Y being the child of X, using a consequence attribute. But
since we haven’t tried teaching Babble the syntax to understand
if-then relationships through language yet, the tridbits need
to be hand coded into Babble’s knowledgebase – not very user
friendly.
The if-then rules that drive Babbles current reasoning abilities
are tridbits, the same as any other tridbits generated as
a result of natural language. Expanding Babble’s reasoning
abilities will eventually be a simple matter of telling Babble
how conditions and results are paired. For example, "If
the sun is out it is daytime," "If a person smiles
they are happy," etc. Further down the road it should
be possible for Babble to infer its own if-then rules through
observation.
It is appropriate for Babble to store if-then rules in tridbits
since clearly the information can be expressed using natural
language. But using these rules for reasoning seems a separate
endeavor from purely speech oriented activities, crossing
some line between understanding speech and thinking. Of course
most people prefer speaking with someone capable of thinking.
Babble’s reasoning abilities were put in because it turned
out that some rudimentary reasoning is needed to answer a
sequence such as:
Jumbo is big
What size is Jumbo?
Since we weren’t told "The size of Jumbo is big,"
we need to invoke our knowledge that big is a size to properly
answer the question. And who would want to talk to someone
who wasn’t smart enough to answer:
Jumbo is an elephant.
Elephants are big.
What size is Jumbo?
And thus Babble was given a moderately capable reasoning
system that fits very nicely within the rest of the tridbit
technology, exactly where it belongs. Because it sits on top
of a system of meaning representation, many nice things fall
into place. For example, because of Babble’s ability to understand
the scope of a referent, it is perfectly natural to give a
specific individual a property, such as "Jumbo is small"
which is at odds with the general property given to the individual’s
category, i.e. "Elephants are big." All other things
being equal, Babble will give the properties assigned to the
individual priority, while still being able to observe the
dissidence between the two.
I describe Babble’s reasoning ability as moderately capable
because there are many aspects of it that need to be enhanced
before Babble could be considered a good thinker. Babble should
be able to evaluate many conditions, each of which must be
evaluated for truth, certainty and importance in order to
generate a result with its own appropriate truth and certainty
values. Babble also needs to be able to reason about properties
in a way that is different than if-then reasoning. For example
if Babble knows Merl is big and Nanda is small and they are
both cats, it should know Merl is bigger than Nanda. It should
also know that if Merl is 10 lbs. and Nanda is 9 lbs., Merl
is 1 lb. heavier than Nanda. Even with these capabilities
in place, it remains to be seen how human-like such thinking
would be.
- Babble is unable to perform the requested command.
Actually, at the moment, there is only one command Babble
can perform, playing the give me a clue game. If you were
to give Babble a command such as:
Drive me to the store.
It would respond with:
I can’t drive.
We have no immediate plans to teach Babble how to drive,
however we have discussed the desire to have Babble respond
to commands both in the white paper and under Smart Operating
Systems in the Future Uses section of this website.
|