Re: Controlled natural language for program debugging
Party of Citizens wrote
> BC Tel ("Telus") now allows free-style interaction
> with a Customer-service Machine. Is that an example
> of what you are calling Controlled Natural Language?
That is one of many special cases that can be handled
by current technology, but it is somewhat different
from controlled NLs.
1. The term "controlled NL" is usually applied to
a restricted subset of a natural language, in which
the author requires some training to learn to live
within the limitations.
2. Since you can't expect customers who call on the phone
to learn a special language, the system must accommodate
anything they might say. The usual way of doing that
is to limit the topic to a small domain for which
the speaker has very few options. Usually the total
information about the subject matter and what to do
can be summarized in about two or three pages. (A
human being is usually called whenever the customer
has a more serious problem that goes outside that
limited domain.)
These are two different strategies for limiting the
language to something that can be interepreted effectively
by current software technology.
> If so, is there any reason a program like that could not
> be generalized to all 2,000 of MIT's OCW courses?
There are many reasons why not:
1. The subject matter of any college level course,
which a bright student is expected to spend several
months studying, is immensely larger than the range
of topics that a telephone customer might want to
discuss. That rules out method #2 above.
2. When you are writing a controlled NL that maps to
logic, you are really writing in logic. In a recent
study, several different groups (one of which was
Cyc) were given projects to translate pages from
a college textbook on chemistry into the logic
notation used for their systems. The average cost
(mostly the salaries of the translators) was about
$10,000 per page.
3. Writing a controlled NL is somewhat easier than writing
in a more traditional notation for logic, but the main
difficulty is in analyzing and specifying the semantics
of the subject. Perhaps a CNL might save a few dollars
or even a few hundred dollars per page -- but the cost
would still be over $9,000 per page.
4. On the other hand, Skuce's FactGuru system has been used
effectively by authors who translated material from their
own textbooks into the format used by FactGuru. The
results weren't a complete replacement for the textbooks,
but they were very useful supplements to the books. I
suggest that you go to the FactGuru web site:
http://www.factguru.com
Then click on the knowledge base for "Object-oriented
software engineering." That knowledge base was created
from the book "Object Oriented Software Engineering:
Practical Software Development using UML and Java"
by the authors of the book.
5. However, the KB for the course is not a complete replacement
for the course, and it is not sufficiently formalized for
a computer system to process it automatically in order to
do automated inference and problem solving. It is a useful
step along the way, but more work needs to be done.
Bottom line: There is a lot that can be done with current
technology, but don't expect miracles.
John Sowa