RE: Re: Controlled natural language for program debugging
I agree entirely with John Sowa's points. In my original note, I was
making two observations. The first is that the ad-hoc, "natural
languages" put together during software development are usually sloppy,
inconsistent, and are not sufficient to guarantee clean, clear
statements of requirements. What is needed is a controlled natural
language.
John's original posting concerned the use of CNL in the programming
effort, specifically in debugging. My second point was that in large
software engineering projects (many engineers and engineering support
staff, long development schedules) there are many potential benefits
beyond just the programming group. For example, clear test plans and
protocols can be difficult to write due to semantically imprecise
requirements specifications having varying interpretations by various
team members. This is a major problem in those kinds of projects where
testing is half or more of the time and personnel cost, and where both
the test results and the entire development process are subject to
safety-critical certification by outside agencies.
-- Jeffrey Schiffel
-----Original Message-----
From: John F. Sowa [mailto:sowa@bestweb.net]
Sent: Wednesday, August 04, 2004 10:16 PM
To: Party of Citizens; Schiffel, Jeffrey A
Cc: standard-upper-ontology@listserv.ieee.org; cg@cs.uah.edu; Norbert
E.Fuchs; doug@site.uottawa.ca
Subject: CG: 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