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

Re: Controlled natural language for program debugging



Before commenting on the recent notes by Jeffrey Schiffel
and the Party of Citizens, I'd like to clarify some
points about controlled natural languages:

  1. The term CNL has been used in a variety of ways
     for languages that use the basic vocabulary
     and syntax of some natural language in a more
     controlled or restricted way than usual.

  2. The versions of CNLs I have been talking about are
     true formal languages, which map to some subset
     of first-order logic.  In that sense, they can be
     considered logical notations that are readable
     even by people who have never studied logic.

  3. Although CNLs are easier to read than other notations
     for logic, authors do require some practice or study
     before they can write a CNL.  Good editing and help
     facilities are important for teaching people how
     to stay within the restrictions.  Various CNLs have
     already proved to be useful for many applications,
     but it's not clear exactly which applications are best
     suited to CNLs.  In general, CNLs have a lot of promise,
     but that promise is not likely to be realized without
     good tools and a good development environment.

  4. In my recent note about CNLs for program debugging, I
     pointed to some studies that are being carried out at
     Carnegie-Mellon.  Those studies are still works in
     progress, and I hope that other people will explore
     the potential of CNLs for other kinds of applications.

Jeffrey Schiffel said

 > ... I'd like to comment on the lack of rigor in the use of
 > natural languages throughout the software development life cycle.

It is impossible to use CNLs in a way that is nonrigorous.

 > It would be much better if a CNL could be used during the writing of
 > requirements. Even if not used to produce code by programming directly
 > in CNL, verification of the development process end-to-end through
 > traceability studies, product validation via qualification testing,
 > and writing accompanying documents like user guides would be enhanced.
 > Automated development support tools built around CNL could rely on a
 > consistent, closed semantics.

I can foresee a potential problem:  it is impossible to use a CNL
until after the semantics has been defined.  But during the design
stage, the semantics are still undefined.  However, it might be
possible to design tools that can aid users in converting informal
NLs to more formal CNLs.  An example of tools designed to help
that transformation is the FactGuru system developed by Doug Skuce
and his colleagues:

    http://www.factguru.com

There is still an enormous amount of work that has to be done
in designing good tools, and I don't want to claim that CNLs
will solve all the world's problems without a lot more R & D.

Party of Citizens said

 > Any comments on the approach to software taken at
 > http://www.care-t.com ?
 > Are they trying to achieve the same objective?

I took a look at some of their whitepapers, and they do
not seem to be using CNLs.  They are developing conceptual
modeling tools, which might be usefully commbined with
CNLs.  In fact, one way to use a CNL is for the *output*
stage:  after a system designer had specified a conceptual
model, the tools could automatically generate a complete
specification in a CNL, which the manager who requested
the design is more likely to read than other notations.

John Sowa