Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

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