[Edu-sig] Natural Language Programming

Morris, Steve smorris@cereva.com
Wed, 10 Jan 2001 11:08:33 -0500


Hi Art,

 > One last effort - 

One last reply. :-)

 > Anyone who has worked at  all with 3d graphics knows that
 > a pretty standard vocabulary has developed, by a process
 > of natural selection, over numbers of years.
 > 
 > 99.5% (please don't quote me on the statistic and find other 
 > exceptions) of the 3d graphics world has settled on a vocabulary.
 > Presumably lots of very smart people where involved in the 
 > trial and error process. And what we have is what I suspect is
 > exactly what has been determined to be the most natural
 > language (in standard English) necessary to do a particular
 > job, while avoiding ambiguities and other evils.  Could certain
 > vocabulary words turned out diffierently.  Probably. But the
 > point is its done, and without *COMPELLING* evidence there
 > is no reason to change it.   
 > 
 > I would serious suggest that anyone with a deep interest
 > in the subject of natual language technology study the development.
 > of 3d vocabulary. Because in the end what we are left with is 
 > substanital (though not perfectly - we do go to third and fourth 
 > defintions of standard English words) natural language.
 
 > And vocabulary is about nothing if it is not about communication.

Here is where I disagree or at least disagree with your conclusions.
Language is about communicating in the broad sense. Sometimes the
communication is on many levels and often one of those levels is a level of
exclusion. Vocabulary can be used to say "I am an insider and you are an
outsider." Take legal language for example. This has also evolved by a
process of natural selection, over a number of years. It exists the way it
does (opaque) for several reasons

1) It creates a level of precision. 

2) It evolved this way from archaic forms of English.

3) There is resistance to change for fear that the precision will be lost.
If it ain't broke don't fix it.

4) It creates a private club with a language understood only by the
practicioners thus inreasing the value of their skills. It is part of what
sets apart those special people who have "passed the bar."

5) Practicioners are not bothered by the vocabulary once they have entered
the priesthood and have little incentive to change it.

4 is a not inconsiderable issue. There is a lot of legal pomp and
circumstance that is intended merely to emphasize the importance and
solemnity of the occasion and to create respect for the process.  There no
legal reason that the judge needs to sit on his high bench. The bench
represents his authority. "All rise." Why the heck should we rise when the
judge enters. These proceedures and the language of the law in general exist
at least partially to reduce communication. The entire legal process is an
excercise in controlled communication (ie limiting communication.) Many
things are not allowed to be said in the courtroom, Perry Mason to the
contrary. In other words the language of the law is about limiting
communication.

And how about music. Music notation is a kludge. Only music in the key of C
makes sense. Sharps and flats are repairs to the defective system. In a
properly designed music notation system intervals (the relationship between
notes) would be implicit in the notation. Music is interval and timing. An
octave should leap out at you just from the notation. A fifth should shout
its existance. Music notation was designed for playing, not composition or
analysis. The structure of music (what sounds interesting and why) is highly
mathematical. I defy anyone to see the mathematics in music notation. The
closely held secret of music theory is that it is simple. It is only the
language that is more opaque than it could be.

There's many a potential talented musician who couldn't learn to read music.
Is the defect in them or the notation? I suggest that it is the notation,
hundreds of years of acceptance or not. An M4E program would have to address
this.

Just because there is an accepted vocabulary doesn't mean that it is easy to
learn or that there aren't better alternatitives. What we have here is what
economists call lock in. (VCS vs. Beta is the classic example.) Current
practice is often far from best known practice. This is true of any
evolutionary system. Why this happens is a large, well studied subject that
I don't want to go into to deeply here but I'll make a simple pass.
Physicists think of these as local minima. A marble rolling down a hill
doesn't always reach the lowest point in spite of the driving force of
gravity. The path is critical. Local dips in the terrain grab it and prevent
it from going lower. The same is true of the evolution of vocabulary.

 > I have a simple premise.  If something is easy for me to 
 > comprehend, it
 > is easy for the next guy.  I am not sure who I would be if I thought
 > otherwise.
 > Not someone I would like very much.

Strange premise. There are things that are easy for you that are hard for
me. This is a simple fact and no insult. I am baffled as to why you would
dislike yourself for acknowledging this simple fact.

 > By calling the next guy stupid, you're calling me stupid 
 > because in some
 > other area of endeavor I am going to be the novice. And I am not even
 > going to have the opportunity to tell you - "translate", 
 > "move" - got it,
 > next.

Since you like being personal in these discussions let me offer myself as
one of several examples. Perhaps this personification will make my point
clearer to you. I do not consider myself stupid even though my ability to
acquire vocabulary is limited. I have strengths that I quite immodestly
think are more important and make me a quite capapable person. We all have
different blends of strengths and weaknesses. The world would be boring if
this were not true.

People come in all shapes and sizes and capapabilities. For some, new
vocabularies are a snap. My father in law was an amazing amateur linguist.
He was fluent in 5 languages and did technical translation in 20 more. If he
new the subject he could translate in languages he had never seen before as
long as it shared common roots with one or more of the languages he did
know. (He claimed that most technical words are the same in all languages
anyway.) If he wanted to read something he could pick up a working
capability for a language in a few weeks. He didn't work hard at this. It
came naturally to him. I think the real key to his success was an almost
eidetic memory for vocabulary. He had it in large measure. I have it almost
not at all. You are probably somewhere in the middle. CP4E needs to address
people at my end of the scale. It is an insult to no one to say that my
vocabulary learning skills are less than yours. It is a simple fact. My
proceedural memory and skills just might be better than yours. They
certainly have helped me compensate. I test high in langauge skills because
my comprehension of grammer and syntax is high. In spite of that I have
never been able to learn other verbal languages because I can't get over the
vocabulary hurdle. I have tried again and again. On the other hand I know
over 20 programming languages, maybe as many as 30 (it's hard to count
because I keep forgetting about the ones I rarely use.) There are generally
fewer than 10 key words (basic vocabularly) in programming languages. These
are langueages with high syntatic and grammatical content but are almost
vocabulary free. So I'm a great programmer but a lousy linguist.

I am suggesting very simply and personally that "translate" instead of
"move" (and similar words) could have been a barrier to me. By refusing to
acknowledge this difference between people you would eliminate people with
my strengths and weaknesses from the people you would recruit into a CP4E
type effort. Just because you don't have a problem with vocabulary doesn't
mean no one else does. It is no insult to me to say so.

Special vocabularies are not a barrier to everyone but they are a barrier to
some. I am one. Your insistance that my abilities are the same as yours is
exclusionary. You deal with my weaknesses by denying that they exist and
thus don't help me work around them. That's like saying we should design
programs only for the rich because everyone has the same ability to acquire
money.

I obviously don't mean me personally. I have successfully compensated for my
problems with vocabulary, partially by my choice of careers. I over
compensate perhaps in working on acquiring and using English vocablary.
However CP4E, if the E means anything, should include people to whom
vocabulary is a barrier. I assure you that there are more of us than you
might think.  CP4E (in the broad sense, not just Guido's grant projects)
should be about identifying barriers to entry and addressing them.
Programming is clearly something that anyone can learn. They don't largely
because of various barriers to entry.

The correct way to handle this particular barrier is probably with
transitional vocabularies (perhaps simple aliases to the less 'naturally'
named commands) just the way kindergarden uses transitional spelling
stratagies to teach spelling. If you are going to teach 3d programming,
eventually the student needs to know the standard vocabulary or they can't
benefit from the current body of knowledge. That is no reason to say they
shouldn't be allowed into the temple of 3D learning with out jumping this
vocabulary hurdle first.

I think the heat you see on this subject is from people like me, to whom
specialized vocabulary IS a barrier, taking personally your suggestion that
our problem doesn't exist or deserve to be addressed. CP4E doesn't mean CP4
everyone whose learning abilities exactly match Arthur Siegel's.

Regards,

Steve Morris